Skip to content

Latest commit

 

History

1,636 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rika

Rika is a collaborative coding-agent CLI and terminal application. Every Turn runs as a durable execution that survives client and executor restarts. Local execution remains the default, while an explicitly remote Thread runs in an isolated Box workspace. Hosted identity, access, Threads, and product state live in PostgreSQL; Generalist execution authority lives in the runtime object store.

Install

curl -fsSL https://raw.githubusercontent.com/In-Time-Tec/rika/main/install.sh | sh

Or with a package manager:

npm install -g @rikafx/cli
# or
bun add -g @rikafx/cli

All three install the same binaries and give you a rika command. The curl installer puts them under ~/.local/share/rika/current with a link at ~/.local/bin/rika; set RIKA_VERSION, RIKA_INSTALL_ROOT, or RIKA_BIN_DIR to change the version or locations. Supported targets are macOS arm64, Linux arm64, and Linux x64.

Update any of these installs with:

rika update

Rika uses npm or Bun for package-managed installs and verified release archives for curl installs. It updates the existing installation, not a second copy elsewhere on PATH.

Setup

Only needed to work on Rika itself.

bun install
bun run check
bun run dev

The standard repository commands are build, check, dev, format, test, and typecheck. See the script map for what each development and packaging helper does.

Offline TUI scenarios

apps/tui-v2 is the connected Solid/OpenTUI interface embedded in the production rika CLI, built with Effect V4 and Effect/CLI. It also runs standalone deterministic offline scenarios without authentication, hosted services, model calls, or workspace execution — useful for rendering and interaction checks.

bun run tui-v2
bun run tui-v2 --scenario conversation
bun run tui-v2 scenarios
bun run --cwd apps/tui-v2 build
./apps/tui-v2/dist/rika-tui-v2 --scenario approval

The build produces a native executable for the current host. Add --no-animate to disable decorative animation. The default layout has no persistent Thread list. Ctrl+O opens commands and scenario selection; Ctrl+T or Alt+W opens the Thread switcher and preview; Ctrl+S selects a mode. Type @ for file completion and @@ for Thread mentions. Alt+T toggles the right-hand file tree; Alt+S toggles changed files.

Enter submits or queues a prompt, Shift+Enter inserts a newline, and Ctrl+Enter interrupts and sends. With an empty composer, Up selects a pending instruction: Ctrl+E edits it, Enter steers it into the active Turn, and Backspace removes it. Enter saves an edit; Escape restores the original draft. Tab/Shift+Tab selects expandable transcript sections; Enter toggles the selected section and Shift+D toggles all sections. Large text pastes are compressed in the composer and expanded when submitted. Ctrl+V inserts a deterministic image attachment fixture; it does not access the system clipboard.

Approval, denial, removal, and steering are also available through the command palette. Ctrl+C cancels active playback; a second Ctrl+C force-quits. When idle, Ctrl+C opens the exit menu. Files, images, and Threads are offline fixtures; no workspace files are read or modified. State is discarded on exit.

Personal Railway stack

bun run dev:remote deploys the current Docker worktree to an isolated rika-dev-* Railway project. Alchemy creates private API and web services, private PostgreSQL 17, a runtime-storage Bucket, and the only public service, Caddy. The service processes use production configuration. Set the external GitHub OAuth, GitHub App, Resend, Rivet, model, and Box provider/template values from .env.example before deploying. Set RAILWAY_WORKSPACE_ID in the command process so the project cannot land in another workspace. Authenticate Alchemy's Railway provider with an Alchemy profile or inject RAILWAY_API_TOKEN into the command process. Do not store that provisioning token in .env.

bun run dev:remote
bun run dev:remote:destroy

The generated stage identity is retained at .alchemy/rika-dev-stage with mode 0600. Keep it and the matching .alchemy/state/Rika/<stage> state after failed deploys or destroys so Alchemy can retry cleanup. The destroy command accepts only the generated dev-<UUIDv4> identity and refuses production, staging, and pr-* stages. Interrupted deploys reuse that identity and adopt only its random-named project resources. Destroy also requires the matching Alchemy Railway.Project state, so missing state fails closed instead of reporting a false cleanup.

Configuration

Global settings live at ~/.config/rika/settings.json. A workspace can override them with .rika/settings.json. Model-provider credentials belong to the selected Personal or Organization owner, are encrypted by the API, and are never returned by read APIs. Local, Runner, and Orb execution use that hosted owner; executors never receive model credentials.

{
  "subagents": {
    "maxDepth": 4,
    "maxSubagents": 4
  },
  "keymap": {
    "submit": "enter",
    "newline": "shift+enter"
  }
}
rika auth login
rika provider login codex
# Or configure a hosted API-key provider:
rika credential set openrouter
rika config list
rika doctor
rika

Read PRODUCT.md for product direction and CONTEXT.md for the vocabulary and ownership model.

About

An opinionated effect-native coding agent

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages