Skip to content

hotovo/aider-desk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✨ 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

✨ 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

πŸ“₯ 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

πŸ› οΈ 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 and Anthropic models
  • Flexible Configuration: Enable/disable servers, customize settings, and control usage
  • Seamless Workflow: MCP tools gather information, then Aider implements the code changes

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 ❀️