aider-desk

MCP.Pizza Chef: hotovo

AiderDesk is a desktop client that provides a graphical interface for the Aider AI assistant, enhancing software development workflows. It offers multi-project management, seamless IDE integration, and cost tracking, making AI-powered coding accessible and efficient through an intuitive GUI. It streamlines context syncing and project handling for developers.

Use This MCP client To

Manage multiple coding projects from a single desktop interface Sync AI assistant context automatically with active IDE editors Track AI usage costs across projects in one place Replace command-line AI interactions with a user-friendly GUI Switch seamlessly between different codebases during development Integrate AI coding assistance directly into desktop workflows

README

✨ AiderDesk: AI-Powered Coding

Elevate your development workflow with AiderDesk, a sophisticated desktop application bringing all the power of aider into a user-friendly graphical interface. Whether you're managing multiple projects, integrating with your favorite IDE, or tracking costs, AiderDesk elevates your productivity to new heights.

🎬 Overview

See AiderDesk in action:

✨ Key Features

AiderDesk is packed with features designed for modern software development:

  • πŸ–₯️ Intuitive GUI: A clean, visual interface replacing command-line interactions.
  • πŸ“‚ Multi-Project Management: Seamlessly organize, switch between, and manage multiple codebases.
  • πŸ”Œ Effortless IDE Integration: Automatically sync context files with your active editor in:
  • πŸ€– Powerful Agent Mode: Utilize an autonomous AI agent (powered by Vercel AI SDK) capable of complex task planning and execution using various tools.
  • 🧩 Extensible via MCP: Connect to Model Context Protocol (MCP) servers to grant the Agent access to external tools like web search, documentation lookups, and more.
  • πŸ“„ Smart Context Management: Automatically manage context via IDE plugins or manually control context using the integrated project file browser.
  • πŸ’Ύ Robust Session Management: Save and load entire work sessions (chat history, context files) to easily switch between tasks or resume later.
  • πŸ”„ Flexible Model Switching: Change AI models on the fly while retaining your conversation and context.
  • πŸ’¬ Multiple Chat Modes: Tailor the AI interaction for different needs (e.g., coding, asking questions).
  • πŸ” Integrated Diff Viewer: Review AI-generated code changes with a clear side-by-side comparison.
  • βͺ One-Click Reverts: Easily undo specific AI modifications while keeping others.
  • πŸ’° Cost Tracking: Monitor token usage and associated costs per project session for both Aider and the Agent.
  • βš™οΈ Centralized Settings: Manage API keys, environment variables, and configurations conveniently.
  • 🌐 Versatile REST API: Integrate AiderDesk with external tools and workflows.
  • πŸ“¨ Structured Communication: View prompts, AI responses, agent thoughts, and tool outputs in an organized format.
  • πŸ“‹ Easy Sharing: Copy code snippets or entire conversations effortlessly.

πŸ“„ Comprehensive Context File Management

Keep the AI focused on the relevant code with flexible context management options.

  1. Automatic IDE Sync: Use the IntelliJ IDEA or VSCode plugins to automatically add/remove the currently active file(s) in your editor to/from the AiderDesk context.
  2. Manual Control: Utilize the "Context Files" sidebar in AiderDesk, which displays your project's file tree. Click files to manually add or remove them from the context, giving you precise control.

πŸ’Ύ Session Management

Never lose your work. Save and load complete sessions, including chat history and context files, per project.

  • Preserve State: Save messages and context files as a named session.
  • Resume Seamlessly: Load a session to restore your exact workspace.
  • Manage Multiple Tasks: Easily switch between different features, bug fixes, or experiments within the same project.

πŸ€– Agent Mode & MCP Support

Unlock advanced AI capabilities with AiderDesk's Agent mode. Built on the Vercel AI SDK, the agent can autonomously plan and execute complex tasks by leveraging a customizable set of tools.

Agent Capabilities:

  • Tool-Driven: Functionality is defined by connected tools (MCP servers + built-in Aider interaction).
  • Autonomous Planning: Breaks down complex requests into executable steps using available tools.
  • Seamless Aider Integration: Uses Aider for core coding tasks like generation and modification.
  • Multi-Provider LLMs: Supports various LLM providers (OpenAI, Anthropic, Gemini, Bedrock, Deepseek, OpenAI-compatible).
  • Transparent Operation: Observe the agent's reasoning, plans, and tool usage in the chat.

πŸ› οΈ Extending Capabilities with MCP

Connect AiderDesk to Model Context Protocol (MCP) servers to significantly enhance the Agent's abilities. MCP allows AI models to interact with external tools (web browsers, documentation systems, custom utilities).

  • Access External Tools: Grant the agent capabilities beyond built-in functions.
  • Gather Richer Context: Enable the agent to fetch external information before instructing Aider.
  • Flexible Configuration: Manage MCP servers and individual tools within Agent settings.

AiderDesk is compatible with any MCP server, allowing you to tailor the agent's toolset precisely to your needs.


🌐 REST API

AiderDesk provides a REST API for external tools to interact with the application. The API is running on the same port as the main application (default 24337, configurable by AIDER_DESK_PORT environment variable).

Add Context File

/api/add-context-file
  • Method: POST
  • Request Body:
    {
      "projectDir": "path/to/your/project",
      "path": "path/to/the/file",
      "readOnly": false
    }
  • Response:
    [
      {
        "path": "path/to/the/file",
        "readOnly": false
      }
    ]
    Returns the list of context files in the project.

Drop Context File

/api/drop-context-file
  • Method: POST
  • Request Body:
    {
      "projectDir": "path/to/your/project",
      "path": "path/to/the/file"
    }
  • Response:
    []
    Returns the list of context files in the project.

Get Context Files

/api/get-context-files
  • Method: POST
  • Request Body:
    {
      "projectDir": "path/to/your/project"
    }
  • Response:
    [
      {
        "path": "path/to/the/file",
        "readOnly": false
      }
    ]
    Returns the list of context files in the project.

Get Addable Files

/api/get-addable-files
  • Method: POST
  • Request Body:
    {
      "projectDir": "path/to/your/project",
      "searchRegex": "optional/regex/filter"
    }
  • Response:
    [
      {
        "path": "path/to/the/file"
      }
    ]
    Returns the list of files that can be added to the project.

Run Prompt

/api/run-prompt
  • Endpoint: /api/run-prompt
  • Method: POST
  • Request Body:
    {
      "projectDir": "path/to/your/project",
      "prompt": "Your prompt here",
      "editFormat": "code" // Optional: "code", "ask", or "architect"
    }
  • Response:
    [
      {
        "messageId": "unique-message-id",
        "baseDir": "path/to/your/project",
        "content": "The AI generated response",
        "reflectedMessage": "Optional reflected message",
        "editedFiles": ["file1.txt", "file2.py"],
        "commitHash": "a1b2c3d4e5f6",
        "commitMessage": "Optional commit message",
        "diff": "Optional diff content",
        "usageReport": {
          "sentTokens": 100,
          "receivedTokens": 200,
          "messageCost": 0.5,
          "totalCost": 1.0,
          "mcpToolsCost": 0.2
        }
      }
    ]

πŸ”Œ AiderDesk as an MCP Server

AiderDesk includes a built-in MCP server, allowing other MCP-compatible clients (like Claude Desktop, Cursor, etc.) to interact with AiderDesk's core functionalities.

Configuration

Add the following configuration to your MCP client settings, adjusting paths as needed:

Windows
{
  "mcpServers": {
    "aider-desk": {
      "command": "node",
      "args": ["path-to-appdata/aider-desk/mcp-server/aider-desk-mcp-server.js", "/path/to/project"],
      "env": {
        "AIDER_DESK_API_BASE_URL": "http://localhost:24337/api"
      }
    }
  }
}

Note: Replace path-to-appdata with the absolute path to your AppData directory. You can find this value by running echo %APPDATA% in your command prompt.

macOS
{
  "mcpServers": {
    "aider-desk": {
      "command": "node",
      "args": ["/path/to/home/Library/Application Support/aider-desk/mcp-server/aider-desk-mcp-server.js", "/path/to/project"],
      "env": {
        "AIDER_DESK_API_BASE_URL": "http://localhost:24337/api"
      }
    }
  }
}

Note: Replace /path/to/home with the absolute path to your home directory. You can find this value by running echo $HOME in your terminal.

Linux
{
  "mcpServers": {
    "aider-desk": {
      "command": "node",
      "args": ["/path/to/home/.config/aider-desk/mcp-server/aider-desk-mcp-server.js", "/path/to/project"],
      "env": {
        "AIDER_DESK_API_BASE_URL": "http://localhost:24337/api"
      }
    }
  }
}

Note: Replace /path/to/home with the absolute path to your home directory. You can find this value by running echo $HOME in your terminal.

Arguments & Environment:

  • Command Argument 1: Project directory path (required).
  • AIDER_DESK_API_BASE_URL: Base URL of the running AiderDesk API (default: http://localhost:24337/api).

Available Tools via MCP

The built-in server exposes these tools to MCP clients:

  • add_context_file: Add a file to AiderDesk's context.
  • drop_context_file: Remove a file from AiderDesk's context.
  • get_context_files: List files currently in AiderDesk's context.
  • get_addable_files: List project files available to be added to the context.
  • run_prompt: Execute a prompt within AiderDesk.

Note: AiderDesk must be running for its MCP server to be accessible.


πŸ“₯ Installation

Requirements

  • Python 3.9-3.12 installed.

Quick Start

  1. Download the latest release for your OS from Releases.
  2. Run the executable.

Troubleshooting

Python Version Issues

If AiderDesk struggles to find your Python installation, specify the path via the AIDER_DESK_PYTHON environment variable (usually only needed on first run):

  • macOS/Linux: export AIDER_DESK_PYTHON=/path/to/your/python3.x
  • Windows: $env:AIDER_DESK_PYTHON = "C:\Path\To\Python\python.exe"

Disabling Auto Updates

To prevent automatic updates, set the AIDER_DESK_NO_AUTO_UPDATE environment variable:

  • macOS/Linux: export AIDER_DESK_NO_AUTO_UPDATE=true
  • Windows: $env:AIDER_DESK_NO_AUTO_UPDATE = "true"

πŸ‘¨β€πŸ’» Development Setup

If you want to run from source, you can follow these steps:

# Clone the repository
$ git clone https://github.com/hotovo/aider-desk.git
$ cd aider-desk

# Install dependencies
$ npm install

# Run in development mode
$ npm run dev

# Build executables
# For Windows
$ npm run build:win

# For macOS
$ npm run build:mac

# For Linux
$ npm run build:linux

🀝 Contributing

We welcome contributions from the community! Here's how you can help improve aider-desk:

  1. Fork the repository on GitHub
  2. Create a new branch for your feature or bugfix:
    git checkout -b my-feature-branch
  3. Commit your changes with clear, descriptive messages
  4. Push your branch to your fork
  5. Create a Pull Request against the main branch of the original repository

Please follow these guidelines:

  • Keep PRs focused on a single feature or bugfix
  • Update documentation when adding new features
  • Follow the existing code style and conventions
  • Write clear commit messages and PR descriptions

For major changes, please open an issue first to discuss what you would like to change.

⭐ Star History

Star History Chart

Thank you ❀️

aider-desk FAQ

How does AiderDesk integrate with my IDE?
AiderDesk automatically syncs context files with your active editor, supporting popular IDEs to keep AI assistance relevant and up-to-date.
Can I manage multiple projects simultaneously in AiderDesk?
Yes, AiderDesk allows seamless organization and switching between multiple codebases within its desktop client.
Does AiderDesk provide cost tracking for AI usage?
Yes, it includes features to track AI usage costs across your projects to help manage expenses effectively.
Is AiderDesk limited to command-line interactions?
No, it replaces command-line interactions with an intuitive graphical user interface for easier AI assistant access.
What platforms does AiderDesk support?
AiderDesk is a desktop application compatible with major operating systems, designed to integrate smoothly with your development environment.
Can AiderDesk work with different AI providers?
While primarily designed for Aider AI, it can be extended or integrated with other LLM providers like OpenAI, Claude, and Gemini through MCP.
How does AiderDesk improve developer productivity?
By consolidating AI assistance, project management, and IDE integration into one client, it streamlines workflows and reduces context switching.
Is AiderDesk open source?
Yes, AiderDesk is available on GitHub, allowing developers to contribute and customize the client.