How to set up, build, and work on ThatCode locally.
Release target (v1): Windows — NSIS + MSI + portable zip on GitHub Releases.
/
├── src/ # React + TypeScript frontend
├── src-tauri/ # Rust backend (Tauri)
├── .github/workflows/ # CI (Ubuntu) + release (Windows)
├── docs/ # Product, trust, temp pivot plans
└── scripts/ # e.g. generate-sha256.ps1
git clone https://github.com/Satan2049/that-code.git
cd that-code
npm ciEnsure Rust is installed:
rustc --version
cargo --versionInstall Tauri prerequisites for Windows.
npm run tauri devnpm run build # TypeScript + Vite
npm run typecheck
npm run test:rust # cargo test
npm run lint:rust # cargo clippy -D warningsnpm run tauri buildArtifacts: src-tauri/target/release/bundle/ (NSIS + MSI in tauri.conf.json). Add portable zip to the release manually if needed.
.\scripts\generate-sha256.ps1Compare output with SHA256.txt before tagging.
| Directory | Purpose |
|---|---|
commands/ |
Tauri IPC handlers |
orchestrator/ |
Message pipeline (run_turn) |
agents/ |
Executor tool loop, tier profiles |
tools/ |
Workspace sandbox, verify, git |
ai/ |
HTTP client and prompts |
db/ |
SQLite persistence |
ThatCode works with any OpenAI-compatible chat API.
| Role | Example |
|---|---|
| Chat | Ollama http://localhost:11434/v1 |
| Embeddings (RAG) | Ollama nomic-embed-text |
| Cloud | OpenAI, Azure, compatible proxies |
Agent bench (no API key):
cargo test bench:: --manifest-path src-tauri/Cargo.tomlLive LLM eval (optional):
$env:THATCODE_EVAL_LIVE="1"
$env:THATCODE_API_BASE="http://localhost:11434/v1"
$env:THATCODE_MODEL="llama3.2"
cargo test live_eval --manifest-path src-tauri/Cargo.toml -- --ignored --nocaptureLegacy MUSE_EVAL_* env names still work.
.github/workflows/ci.yml — build + Rust tests on Ubuntu (push/PR).
.github/workflows/release.yml — Windows only when a v* tag is pushed. Attaches SHA256.txt.
- docs/temp/thatcode-todo.md — phase checklist
- ROADMAP.md — milestones including Phase 9