Files
hikari-desktop/README.md
T
naomi bd04328e40
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 51s
feat: add windows build woooooo (#1)
### 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>
2026-01-15 10:05:22 -08:00

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.

  1. Install WSL if you haven't already: https://learn.microsoft.com/en-us/windows/wsl/install
  2. Install Claude Code inside your WSL distribution (see step 1 above)
  3. Run the Windows installer (.exe or .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.