developlisted
Install: claude install-skill martinappberg/chimaera
# Developing Chimaera locally
Chimaera is a Rust daemon (`crates/`) that embeds and serves a Svelte web UI
(`web-ui/`), plus a standalone Tauri app (`crates/chimaera-app`). See
[AGENTS.md](../../../AGENTS.md) for the repo map; this skill is the run loop.
## The dev loop (do this to develop the UI + daemon)
Run the daemon and the Vite dev server side by side, then work against
`http://localhost:5173`. The launch configs are in
[`.claude/launch.json`](../../launch.json):
- **chimaerad** → `cargo run -p chimaera -- serve --port 9700`
- **web-ui** → Vite on 5173, proxying `/api`, `/ws`, `/raw` to the daemon on 9700
Prefer the preview tooling to start them (`preview_start` with the `chimaerad`
then `web-ui` config), or `just`:
```sh
just dev-ui # Vite dev server (assumes a daemon is already running)
# in another shell:
cargo run -p chimaera -- serve --port 9700
```
**Auth is automatic in dev.** Vite exposes the local daemon's
`~/.chimaera/manifest.json` at `/dev/manifest` (dev-only middleware, absent from
production builds), so the page picks up the bearer token itself — don't
hand-copy tokens. Point a second UI at a different daemon with
`CHIMAERA_DEV_TARGET=http://127.0.0.1:<port>` (see the `web-ui-sandbox` config).
## Isolated per-worktree run (coding agents — use this in a worktree)
The default `chimaerad` / `web-ui` configs hardcode ports 9700 / 5173 and share
`~/.chimaera`. That collides the moment a second worktree or chat is live:
`serve` **writes the manif