AIDA is an experimental desktop coding workspace built with Tauri, React, TypeScript, and Rust.
The app is no longer just a file explorer and editor shell. The current codebase includes a working project explorer, Monaco editor, integrated terminal, Git panel, project search, AI chat, and best-effort LSP integration when a language server is available.
- Open a project folder through the native folder picker.
- Browse the project tree with keyboard support and a context menu for creating, renaming, and deleting files or folders.
- Open multiple files in Monaco editor tabs with dirty-state indicators and
Ctrl/Cmd+Ssave support. - Track external file changes and refresh open tabs when files are modified on disk.
- Show inline diagnostics and a Problems panel when LSP diagnostics are available.
- Request LSP completion, hover, and go-to-definition for open files when a language server is available for that file type.
- Search project contents and jump from results directly to the matching file and position.
- Use PTY-backed terminal tabs inside the app.
- Inspect Git status, stage and unstage files, and create commits from the sidebar.
- Chat with Claude, OpenAI-compatible models, or Ollama with streamed responses and saved conversation history.
- Switch between dark and light themes.
- Persist layout state, app settings, and saved AI conversations between launches.
- You need to open a project folder each time you launch the app. The current project root is kept in runtime state and is not restored automatically on startup.
- LSP features are opportunistic. If no language server is available for a file, editing still works but completion, hover, definitions, and diagnostics may be absent.
- The AI chat streams plain-text responses and stores conversations, but the agent approval UI and tool-execution backend are still groundwork rather than a fully wired autonomous editing loop.
- The search panel exposes a regex toggle in the UI, but the backend currently performs plain-text matching only.
- The browser preview component exists in the editor stack and the backend can fetch and extract web content for AI tooling, but browser browsing is not yet a primary end-user workflow in the app shell.
aida-app/- the desktop application workspaceaida-app/src/- the React and TypeScript frontendaida-app/src-aida/- the Rust backend used by Tauridocs/- project notes and roadmap material
Install the following before running the desktop app:
- Node.js
- npm
- Rust
1.77.2or newer - the OS-specific Tauri prerequisites for your platform
The Rust version is pinned in aida-app/src-aida/Cargo.toml.
From the repository root:
cd aida-app
npm installFrom aida-app/:
npx tauri devThis starts the Vite dev server and launches the Tauri desktop shell together.
If you only want the frontend dev server:
cd aida-app
npm run devFrontend-only mode is useful for UI work, but filesystem access, project search, terminal sessions, Git integration, settings persistence, and AI provider calls depend on the Tauri backend.
From aida-app/:
npm run buildTo produce a desktop bundle:
npx tauri buildFrontend:
cd aida-app
npm testRust backend:
cd aida-app
cargo test --manifest-path src-aida/Cargo.tomlCurrent automated coverage is still light. The frontend has a small Vitest footprint, and most backend behavior is exercised manually today.
The settings dialog currently supports three provider configurations:
- Claude via Anthropic API key
- OpenAI-compatible chat completions via API key and optional base URL override
- Ollama via local base URL and model name
Default models in the current codebase are:
- Claude:
claude-sonnet-4-20250514 - OpenAI:
gpt-4o - Ollama:
llama3.1
AIDA writes app data under your platform config directory in an aida/ folder.
Today that includes:
settings.jsonfor provider settings and themelayout.jsonfor pane visibility and sizesconversations/*.jsonfor saved AI chats
On Linux this is typically under ~/.config/aida/.
Ctrl/Cmd+S- save the active fileCtrl/Cmd+B- toggle the sidebarCtrl/Cmd+J- toggle the bottom panelCtrl/Cmd+Shift+I- toggle the AI panelCtrl/Cmd+Shift+P- open the command palette