### Explanation _No response_ ### Issue _No response_ ### Attestations - [x] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/) - [x] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/). - [x] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/). ### Dependencies - [ ] I have pinned the dependencies to a specific patch version. ### Style - [ ] I have run the linter and resolved any errors. - [ ] My pull request uses an appropriate title, matching the conventional commit standards. - [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request. ### Tests - [ ] My contribution adds new code, and I have added tests to cover it. - [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes. - [ ] All new and existing tests pass locally with my changes. - [ ] Code coverage remains at or above the configured threshold. ### Documentation _No response_ ### Versioning Minor - My pull request introduces a new non-breaking feature. Reviewed-on: #1 Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com> Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
4.2 KiB
Hikari Desktop
A Linux desktop application that wraps Claude Code with an anime girl character that reacts to Claude's activities in real-time.
Features
- Visual character that reflects Claude's current state (thinking, typing, searching, coding, etc.)
- Terminal-style output display
- Permission prompts with approve/deny interface
- Real-time state detection from Claude Code's NDJSON stream
Installation
1. Install Claude Code
Hikari Desktop requires Claude Code to be installed and authenticated:
npm install -g @anthropic-ai/claude-code
claude # Follow the prompts to authenticate
2. Install Runtime Dependencies
Debian/Ubuntu:
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0 libayatana-appindicator3-1 xdg-utils
Fedora:
sudo dnf install webkit2gtk4.1 gtk3 libappindicator-gtk3 xdg-utils
Arch Linux:
sudo pacman -S webkit2gtk-4.1 gtk3 libappindicator-gtk3 xdg-utils
| Package | Purpose |
|---|---|
| webkit2gtk-4.1 | WebView rendering (app UI) |
| gtk3 | Window management and native widgets |
| libappindicator | System tray support |
| xdg-utils | Opening URLs/files with default applications |
3. Install Hikari Desktop
Download the latest release for your platform.
Linux
AppImage (any distro):
chmod +x hikari-desktop_*.AppImage
./hikari-desktop_*.AppImage
Debian/Ubuntu:
sudo dpkg -i hikari-desktop_*.deb
Fedora:
sudo rpm -i hikari-desktop-*.rpm
Windows
The Windows build requires WSL (Windows Subsystem for Linux) with Claude Code installed inside WSL.
- Install WSL if you haven't already: https://learn.microsoft.com/en-us/windows/wsl/install
- Install Claude Code inside your WSL distribution (see step 1 above)
- Run the Windows installer (
.exeor.msi)
Character States
| State | Trigger |
|---|---|
| Idle | Waiting for user input |
| Thinking | Processing/API call in progress |
| Typing | Streaming text output |
| Searching | Using Read/Glob/Grep tools |
| Coding | Using Edit/Write tools |
| MCP | Running MCP tool calls |
| Permission | Permission prompt needed |
| Success | Task completed |
| Error | Error occurred |
Building from Source
Prerequisites
- Node.js and pnpm
- Rust toolchain
Windows Cross-Compilation (from Linux/WSL)
To build Windows binaries from Linux, install the following:
sudo apt install nsis lld llvm clang
You will also need cargo-xwin:
cargo install cargo-xwin
Build
# Install dependencies
pnpm install
# Development mode
pnpm run dev
# Build for Linux (AppImage, deb, rpm)
pnpm build:linux
# Build for Windows (exe/msi/nsis)
pnpm build:windows
# Build all platforms
pnpm build:all
Architecture
Linux (Tauri App)
├── Svelte Frontend
│ ├── AnimeGirl (sprites + animations)
│ ├── Terminal (output display)
│ ├── InputBar (user input)
│ └── PermissionModal (approve/deny)
└── Rust Backend
├── Process Manager (spawn & communicate)
└── State Parser (NDJSON → character state)
│
│ stdin/stdout (NDJSON stream)
▼
claude -p --output-format stream-json --input-format stream-json
Tech Stack
- Tauri 2.x - Desktop framework with Rust backend
- Svelte 5 - Reactive frontend with runes
- Tailwind CSS - Styling
- Tokio - Async runtime for process management
Feedback and Bugs
If you have feedback or a bug report, please feel free to open a ticket request in our Discord!
Contributing
If you would like to contribute to the project, you may create a Pull Request containing your proposed changes and we will review it as soon as we are able! Please review our contributing guidelines first.
Code of Conduct
Before interacting with our community, please read our Code of Conduct.
License
This software is licensed under our global software license.
Copyright held by Naomi Carrigan.
Contact
We may be contacted through our Chat Server or via email at contact@nhcarrigan.com.