https://github.com/paulwritescode/luna-chat
Instead of running `kiro` from a terminal and managing prompts by hand, you open SkillForge, pick the skills you want active for this session, point it at a folder of resumes, and chat — all from a polished UI. Outputs land in a folder you choose.
https://github.com/paulwritescode/luna-chat
Last synced: 2 days ago
JSON representation
Instead of running `kiro` from a terminal and managing prompts by hand, you open SkillForge, pick the skills you want active for this session, point it at a folder of resumes, and chat — all from a polished UI. Outputs land in a folder you choose.
- Host: GitHub
- URL: https://github.com/paulwritescode/luna-chat
- Owner: paulwritescode
- License: agpl-3.0
- Created: 2026-06-29T23:09:30.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2026-06-30T02:11:12.000Z (4 days ago)
- Last Synced: 2026-06-30T04:09:54.566Z (4 days ago)
- Language: C#
- Size: 115 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# luna-chat
luna-chat is a cross-platform native desktop client (macOS + Windows) that wraps a
locally installed `kiro-cli` binary and your collection of `.skill` files into a
visual, chat-based workflow tool.
Instead of running `kiro` from a terminal and managing prompts by hand, you open
luna-chat, toggle the skills you want active for a session, point it at your input
and output folders, and chat. Outputs land in the folder you choose.
The interface follows a utilitarian, Codex-style control-center aesthetic: dark
surfaces, monospace data, and a signature **Skill Rail** of glowing skill chips.
## Features
- **Skill Rail** — toggle `.skill` files on/off per session; glowing chips show what's loaded
- **Terminal-style chat** — streamed kiro output with Markdown rendering
- **Sidebar** — navigation, session history, and a live kiro status indicator
- **File browser** — input/output folder browsing with watch-based refresh
- **Settings** — kiro binary detection, folder paths, appearance, test connection
- **Local-first** — JSON persistence only, no database, no cloud
## Tech Stack
| Layer | Technology |
|---|---|
| UI | AvaloniaUI 12 (C# / .NET 10) |
| Pattern | MVVM (lightweight `ViewModelBase` + `RelayCommand`) |
| kiro integration | `Process.Start()` subprocess calls |
| Markdown | Markdig |
| Persistence | `System.Text.Json` to the platform data dir |
> The original spec targeted .NET 8 / Avalonia 11 + ReactiveUI. This build targets
> .NET 10 / Avalonia 12 (the installed SDK). Avalonia 12 has no ReactiveUI package,
> so a lightweight hand-rolled MVVM layer is used instead. All spec features are
> implemented.
## Prerequisites
- .NET 10 SDK
- `kiro-cli` installed and on your `PATH` (optional — the app runs without it and
shows a "kiro not found" status)
## Run
```bash
dotnet run --project luna-chat.csproj
```
or:
```bash
./run.sh
```
## First-run setup
1. Open **Settings** (sidebar ⚙).
2. Confirm the **kiro binary path** (auto-detected from `PATH`) and click **Test connection**.
3. Set your **Skills folder** (containing `.skill` files or folders with `SKILL.md`).
4. Set **Input** and **Output** folders.
5. Click **Save settings**. Skills appear in the Skill Rail on the chat view.
## Data locations
| Platform | Data dir |
|---|---|
| macOS | `~/Library/Application Support/LunaChat/` |
| Windows | `%APPDATA%\LunaChat\` |
Sessions are stored as JSON under `sessions/`, settings in `settings.json`.
## Build
See `build/build-mac.sh` and `build/build-windows.ps1` for publishing
self-contained binaries.