feat(tools): set up proper CI (#2)
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 57s
CI / Lint & Test (push) Successful in 14m1s
CI / Build Linux (push) Successful in 16m8s
CI / Build Windows (cross-compile) (push) Successful in 26m18s

### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] 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

_No response_

Reviewed-on: #2
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit was merged in pull request #2.
This commit is contained in:
2026-01-15 20:06:47 -08:00
committed by Naomi Carrigan
parent bd04328e40
commit c241544743
80 changed files with 2689 additions and 266 deletions
+1 -176
View File
@@ -1,176 +1 @@
# 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:
```bash
npm install -g @anthropic-ai/claude-code
claude # Follow the prompts to authenticate
```
### 2. Install Runtime Dependencies
**Debian/Ubuntu:**
```bash
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0 libayatana-appindicator3-1 xdg-utils
```
**Fedora:**
```bash
sudo dnf install webkit2gtk4.1 gtk3 libappindicator-gtk3 xdg-utils
```
**Arch Linux:**
```bash
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):
```bash
chmod +x hikari-desktop_*.AppImage
./hikari-desktop_*.AppImage
```
**Debian/Ubuntu:**
```bash
sudo dpkg -i hikari-desktop_*.deb
```
**Fedora:**
```bash
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:
```bash
sudo apt install nsis lld llvm clang
```
You will also need `cargo-xwin`:
```bash
cargo install cargo-xwin
```
### Build
```bash
# 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](https://chat.nhcarrigan.com)!
## 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](CONTRIBUTING.md) first.
## Code of Conduct
Before interacting with our community, please read our [Code of Conduct](CODE_OF_CONDUCT.md).
## License
This software is licensed under our [global software license](https://docs.nhcarrigan.com/#/license).
Copyright held by Naomi Carrigan.
## Contact
We may be contacted through our [Chat Server](http://chat.nhcarrigan.com) or via email at `contact@nhcarrigan.com`.
tem