NeuralCodeDOCS
Getting started

How it's built

A look under the hood: the Tauri + React stack, the git-worktree model, how agent output streams in, and where your data lives.

The stack#

LayerTechnology
ShellTauri v2 (Rust) — a native macOS window, ~3 MB bundle. The Rust side owns git, processes, the terminal PTY, OAuth and storage.
UIReact 19 + TypeScript + Vite. Fonts: Inter (UI) and JetBrains Mono (code/terminal).
Terminalxterm.js wired to a real pseudo-terminal (PTY) per workspace.
Markdownreact-markdown + remark-gfm for agent responses.

The git-worktree model#

Each workspace is a real git worktree created from your project repo:

git worktree add -b <prefix>/<slug> <worktree_path> <base_branch>

Worktrees live under the app's data directory (in a worktrees/<workspace-id> folder). Because each is a separate checkout on a separate branch, agents run truly in parallel with no file collisions. Merging runs a git merge --no-ff of the workspace branch back into its base.

Data flow & streaming#

The frontend talks to Rust through Tauri commands (see the backend commands reference). Agent runs are spawned as claude --print --output-format stream-json child processes; their output is forwarded to the UI as events:

EventCarries
agent-outputStreaming NDJSON chunks of the agent's turn (text deltas + tool_use).
agent-exitThe process exit code, ending the run.
review-output / review-exitThe self-review agent's stream.
term-output / term-exitThe embedded terminal's PTY output.

Each event is tagged with a session_id like agent:<workspace-id> so the UI routes streams to the right workspace. The full shapes are documented in Events & streaming.

Where your data is stored#

State is persisted as a single JSON file, store.json, inside the app's data directory (on macOS, under ~/Library/Application Support/). It holds your projects, workspaces (including full chat history), settings, custom commands, usage records, and GitHub account info.

Local & plaintext
store.json is plaintext on your machine. Your GitHub token (if you sign in) is stored there but never exposed back to the UI. Nothing is sent to NeuralCode servers — agents talk directly to Anthropic via the Claude Code CLI.

Crash recovery#

A spawned agent can't survive an app restart, so on launch any workspace left in the running state is reset to idle. Live processes and terminals are never persisted — only their results.

Read-only file access
The file explorer reads files through a guarded backend command: it refuses paths outside the worktree, skips binary files, and caps reads at ~400 KB.