aider-desk

aider-desk

Desktop application for Aider AI assistant

Stars: 107

Visit
 screenshot

AiderDesk is a desktop application that enhances coding workflow by leveraging AI capabilities. It offers an intuitive GUI, project management, IDE integration, MCP support, settings management, cost tracking, structured messages, visual file management, model switching, code diff viewer, one-click reverts, and easy sharing. Users can install it by downloading the latest release and running the executable. AiderDesk also supports Python version detection and auto update disabling. It includes features like multiple project management, context file management, model switching, chat mode selection, question answering, cost tracking, MCP server integration, and MCP support for external tools and context. Development setup involves cloning the repository, installing dependencies, running in development mode, and building executables for different platforms. Contributions from the community are welcome following specific guidelines.

README:

✨ AiderDesk

Supercharge your coding workflow with AiderDesk, a sleek desktop application that brings the power of aider to your fingertips with a modern GUI. Leverage AI to accelerate your coding tasks while enjoying seamless project management, cost tracking, and IDE integration.

🚀 Introduction

Transform your AI coding experience with AiderDesk - all the power of the Aider console tool in an intuitive desktop interface. Whether you're managing multiple projects, integrating with your favorite IDE, or tracking costs, AiderDesk elevates your productivity to new heights.

Table of Contents

🎬 Quick Demo

Demo Video

✨ Key Features

  • 🖥️ Intuitive GUI - Replace command-line complexities with a sleek visual interface
  • 📂 Project Management - Organize and switch between multiple codebases effortlessly
  • 🔌 IDE Integration - Automatically manage context files in:
  • 🌐 REST API - Expose functionality via REST API for external tools
  • 🧩 MCP Support - Connect to Model Context Protocol servers for enhanced AI capabilities
  • 🔑 Settings Management - Easily configure API keys and environment variables
  • 💰 Cost Tracking - Monitor token usage and expenses with detailed insights
  • 📨 Structured Messages - View code, prompts, and outputs in a clear, organized manner
  • 📄 Visual File Management - Add, remove, and manage context files with ease
  • 🔄 Model Switching - Seamlessly switch between different AI models while preserving context
  • 🔍 Code Diff Viewer - Review changes with side-by-side comparison
  • ⏪ One-Click Reverts - Undo specific AI-generated changes while keeping others
  • 📋 Easy Sharing - Copy and share code changes or conversations instantly
  • 💾 Session Management - Save and load coding sessions to preserve context and progress

📥 Installation

📋 Requirements

  • Python 3.9-3.12 installed on your system

🚀 Quick Start

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

🔧 Troubleshooting

🐍 Python Version Detection

If you encounter issues with the application not detecting the correct Python version, you can specify the path to the desired Python executable using the AIDER_DESK_PYTHON environment variable. This is typically only needed on the initial run/setup of AiderDesk.

For example, on macOS or Linux:

export AIDER_DESK_PYTHON=/usr/bin/python3.10

Or on Windows:

$env:AIDER_DESK_PYTHON = "C:\Path\To\Python310\python.exe"

Replace /usr/bin/python3.10 or C:\Path\To\Python310\python.exe with the actual path to your Python executable.

🚫 Disabling Auto Updates

If you want to disable automatic updates, you can set the AIDER_DESK_NO_AUTO_UPDATE environment variable to true. This is useful in environments where you want to control when updates are applied.

For example, on macOS or Linux:

export AIDER_DESK_NO_AUTO_UPDATE=true

Or on Windows:

$env:AIDER_DESK_NO_AUTO_UPDATE = "true"

📸 Screenshots

🖥️ Aider Desk Interface

Aider Desk

Main application interface showing the chat interface, file management, and project overview

⚙️ Configuration

Configuration

Aider settings and preferences

📂 Multiple Project Management

Multiple Projects

Manage and switch between multiple projects

📄 Context File Management

Context Files

Manage files included in the AI context

🔄 Model Switching Interface

Model Switching

Switch between different models

💬 Chat Mode Selection

Chat Modes

Switch between different chat modes

🤖 Question Answering and Commands

Commands

Answer questions and run commands

🔍 Code Diff Viewer

Code Diff

Side-by-side code comparison and diff viewer

💰 Cost Tracking

Cost Tracking

Token usage and cost tracking for session per project

🛠️ MCP Server Integration

MCP Servers

Configure and manage Model Context Protocol servers for enhanced AI capabilities

💾 Session Management

Session Management

Save and load coding sessions to preserve context and progress

🛠️ Model Context Protocol (MCP) Support

AiderDesk integrates with the Model Context Protocol (MCP), enhancing your coding workflow with external tools and context:

What is MCP?

MCP connects AI models to external tools like web browsers, documentation systems, and specialized programming utilities. AiderDesk can use these tools to gather information, then pass the results to Aider for implementing actual code changes.

Key Features:

  • Tool Integration: Connect to browsers, documentation systems, and language-specific tools.
  • Provider Options: Choose between OpenAI, Anthropic, Gemini, Deepseek, Amazon Bedrock and custom OpenAI compatible providers.
  • Flexible Configuration: Enable/disable servers, customize settings, and control usage.
  • Seamless Workflow: MCP tools gather information, then Aider implements the code changes.
  • Aider Tools: Use Aider tools to perform add/drop context files actions and run prompts.
  • Context Files: Add content of context files into the chat of MCP agent.

AiderDesk should work with any MCP-compatible server, including Brave API MCP server for searching the web and custom language-specific tools.

Built-in AiderDesk MCP Server

AiderDesk comes with a built-in MCP server that provides tools for interacting with the AiderDesk API. This allows you to use MCP to manage context files, run prompts, and more.

Configuration

To use the built-in MCP server, add the following configuration to your MCP settings:

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.

The server supports the following:

Command-line arguments:

  • First argument: Project directory path (default: current directory)

Environment variables:

With this configuration, the MCP server will automatically use the specified project directory for all tool calls, so you don't need to specify the project directory when using the tools.

Available Tools

The AiderDesk MCP server provides the following tools:

  • add_context_file: Add a file to the context of AiderDesk
  • drop_context_file: Remove a file from the context of AiderDesk
  • get_context_files: Get the list of context files in AiderDesk
  • get_addable_files: Get the list of project files that can be added to the context context
  • run_prompt: Run a prompt in AiderDesk

These tools allow MCP clients (Claude Desktop, Claude Code, Cursor, Windsurf...) to interact with your AiderDesk, managing context files and running prompts.

Note: The AiderDesk application must be running for the MCP server to function.

🌐 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
        }
      }
    ]

👨‍💻 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 ❤️

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for aider-desk

Similar Open Source Tools

For similar tasks

For similar jobs