fujie
v0.1.0
Published
a calm shell for a coding agent
Downloads
17
Maintainers
Readme
fujie
a calm shell for a coding agent.
what
fujie is a terminal interface for AI coding agents. it renders a serene, distraction-free environment where you can ask questions, run commands, and review outputs — all framed by an ASCII mt. fuji, a low sun that tracks the hour of day, a moon that tracks the lunar phase, and an occasional haiku.
built with:
- ink — react for terminals
- effect — typesafe async & error handling
- effectctx — an effect-based agent harness
how
# install
bun install
# run
bun run dev
# or install globally
bun link
fujieon first launch, fujie asks you to pick a provider and paste your key. the key is stored in your OS keychain (macOS Keychain / Windows Credential Manager / Linux libsecret) — never touches disk.
providers
fujie supports two model-routing providers. pick one at first launch:
| provider | env var | default model |
|---|---|---|
| Vercel AI Gateway | VERCEL_AI_GATEWAY_API_KEY | moonshotai/kimi-k2.6 |
| OpenRouter | OPENROUTER_API_KEY | moonshotai/kimi-k2.6 |
override the model for a session with NOKI_MODEL=<id> fujie. env vars take precedence over the keychain.
the scene
the ASCII landscape on launch is generated from three seeds:
- mountain seed — from your workspace path; stable across sessions
- water seed — from your git state (HEAD + uncommitted edits); shifts on every commit and every dirty edit
- sky seed —
Date.now()on each launch; clouds and birds reroll
the sun and moon move along parabolic arcs based on real sunrise/sunset for your location (default San Francisco). set NOKI_LAT and NOKI_LON to override.
this means: the mountain stays, but the lake remembers, and the sky is different every time you open it.
keybinds
| key | action |
|---|---|
| tab | insert sample prompt |
| ctrl+q | quit |
| ↑ / ↓ | scroll transcript |
| /exit or /quit | also quit |
environment
all optional unless you want to skip the first-run prompt:
# provider key (env overrides keychain)
export VERCEL_AI_GATEWAY_API_KEY=...
# or
export OPENROUTER_API_KEY=...
# model override
export NOKI_MODEL=openai/gpt-5
# location (for sun/moon arc timing)
export NOKI_LAT=37.7749
export NOKI_LON=-122.4194
# optional smithery MCP integration
export SMITHERY_API_KEY=...
export SMITHERY_NAMESPACE=my-nslicense
MIT.
