Skip to main content

Holistic software development via LLM

Project description

arcode

arcode logo

Description

Arcode is a command-line tool designed to help facilitate holistic software development via LLM. It allows users to generate feature implementations for a given codebase based on user-defined requirements.

Features

  • Provide requirements and get recommended changes
  • Single button press confirmation + implementation
  • Supplies context from your repo/local files
  • Optional limiting of file context based on relevancy to features
  • Support for various providers/models via LiteLLM

Demo

Demo Animation

Provide your requirements:

Demo 1

Review and approve changes:

Demo 2

Parameters:

positional arguments:
  requirements       Requirements for features to build on the codebase.

options:
  -h, --help         Show this help message and exit
  --dir DIR          The working directory of the codebase, default to current directory.
  --write WRITE      Whether or not to write the changeset immediately. If piping input to arcode, this defaults to true.
  --focused FOCUSED  Enable focused mode to limit files based on relevancy using embeddings - accepts an integer containing number of files to limit context to.
  --model MODEL      Specify the LLM provider/model to use with LiteLLM, default to openai/gpt-4o.

Examples:

Generate a plan and optionally write the changes based on requirements:

arcode "Implement authentication"

Use with input from a file:

cat feature_requirements.txt | arcode --dir ./my_codebase

Install

  1. Ensure Homebrew is installed
  2. Tap alexdredmon/arcode
    brew tap alexdredmon/arcode
    
  3. Install arcode
    brew install arcode
    

Development Setup

  1. Clone the repository:

    git clone https://github.com/alexdredmon/arcode
    cd arcode
    
  2. Create & activate virtual environment:

    virtualenv venv
    source venv/bin/activate
    
  3. Install the required dependencies:

    pip install -r requirements.txt
    
  4. Set your OpenAI API key:

    export OPENAI_API_KEY=<your_openai_api_key>
    

    or alternatively set in a .env file:

    OPENAI_API_KEY=<your_openai_api_key>
    

Build

  1. Build a standalone executable via:

    ./build.sh
    
  2. A binary will be created in ./dist/arcode/arcode

  3. Add the resulting binary to your PATH to run it anywhere:

    export PATH="/Users/yourusername/path/to/dist/arcode:$PATH"
    

Homebrew Installation

To install Arcode via Homebrew:

  1. Clone the repository and navigate into the project directory:

    git clone https://github.com/alexdredmon/arcode
    cd arcode
    
  2. Run the build script to generate the standalone executable and Homebrew formula:

    ./build.sh
    
  3. Move the generated formula into your local Homebrew formula directory:

    mkdir -p $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
    cp Formula/arcode.rb $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
    
  4. Install the formula:

    brew install arcode
    

Usage

Run Arcode with and pass it your requirements:

arcode "Build feature X"

Or if you're running the .py version, run with one of the following:

./arcode.py "Build feature X"
python arcode.py "Build feature X"

Configuration

Ensure OPENAI_API_KEY is set as an environment variable and/or update the default value for API_KEY in .env / config.py.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arcodeai-0.1.2.tar.gz (2.2 MB view hashes)

Uploaded Source

Built Distribution

arcodeai-0.1.2-py3-none-any.whl (4.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page