Bahamut is an open-source, local-first, permission-driven AI-native development environment. It combines an agentic IDE (IDE mode) and a task-oriented coding agent (Agent mode) in one desktop application.
Bahamut is built on Tauri v2 + React + TypeScript + Monaco Editor (see ADR-002, Accepted):
- Rust is the trusted security and execution boundary. All sensitive filesystem and command operations pass through narrow, audited Rust commands — the webview holds no filesystem or shell permissions.
- Every file path is canonicalised and validated against the user-selected project root (symlink-escape, NTFS alternate-data-stream, and reserved device-name protections included), revalidated at the point of use.
- Saves verify the original file hash, store a pre-change snapshot, and write atomically; snapshots can be restored (and the restore undone).
- Every save, rollback, and denied attempt is recorded in a hash-chained,
tamper-evident SQLite audit log (
verify_audit_chain). - Bahamut remains local-first, model-neutral, permission-driven, and auditable.
apps/bahamut-desktop/— the production desktop application. React + TypeScript frontend (src/), Rust backend (src-tauri/), npm-managed with committedpackage-lock.jsonandsrc-tauri/Cargo.lock.docs/— product vision, architecture, security model, ADRs, licensing.assets/— branding source assets. The application/installer icon set is generated fromassets/branding/source/Bahamut Logo no bg no title.pngvianpm run icons(seeassets/branding/README.md)..github/workflows/— CI (frontend type-check/tests/build, Rust fmt/clippy/test, Windows Tauri packaging).
The earlier Eclipse Theia spike and its Rust sidecar were retired per ADR-002;
their history is preserved in the archive/pre-platform-consolidation tag.
- Node.js:
22.12.0or later (see.nvmrc; Vite 7 requires ≥ 20.19) - npm: lockfile-driven installs via
npm ci - Rust: stable toolchain (MSVC on Windows)
From apps/bahamut-desktop/:
npm ci # reproducible dependency install
npx tsc --noEmit # type check
npm test # frontend unit tests (vitest)
npm run build # production frontend build
npm run tauri dev # run the desktop app in development
npm run tauri build # package the desktop appFrom apps/bahamut-desktop/src-tauri/:
cargo fmt --check
cargo clippy -- -D warnings
cargo test # includes adversarial sandbox + audit-chain tests- Bahamut is named after a dragon.
- No dragons were consulted during the development of this project.