Skip to content

lifesahaskell/aida

Repository files navigation

AIDA

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.

What The App Does Today

  • 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+S save 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.

Current Limitations

  • 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.

Project Layout

  • aida-app/ - the desktop application workspace
  • aida-app/src/ - the React and TypeScript frontend
  • aida-app/src-aida/ - the Rust backend used by Tauri
  • docs/ - project notes and roadmap material

Prerequisites

Install the following before running the desktop app:

  • Node.js
  • npm
  • Rust 1.77.2 or newer
  • the OS-specific Tauri prerequisites for your platform

The Rust version is pinned in aida-app/src-aida/Cargo.toml.

Install

From the repository root:

cd aida-app
npm install

Run

From aida-app/:

npx tauri dev

This 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 dev

Frontend-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.

Build

From aida-app/:

npm run build

To produce a desktop bundle:

npx tauri build

Tests

Frontend:

cd aida-app
npm test

Rust backend:

cd aida-app
cargo test --manifest-path src-aida/Cargo.toml

Current automated coverage is still light. The frontend has a small Vitest footprint, and most backend behavior is exercised manually today.

AI Providers And Settings

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

Local Storage

AIDA writes app data under your platform config directory in an aida/ folder.

Today that includes:

  • settings.json for provider settings and theme
  • layout.json for pane visibility and sizes
  • conversations/*.json for saved AI chats

On Linux this is typically under ~/.config/aida/.

Useful Shortcuts

  • Ctrl/Cmd+S - save the active file
  • Ctrl/Cmd+B - toggle the sidebar
  • Ctrl/Cmd+J - toggle the bottom panel
  • Ctrl/Cmd+Shift+I - toggle the AI panel
  • Ctrl/Cmd+Shift+P - open the command palette

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors