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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file arcodeai-0.1.2.tar.gz.

File metadata

  • Download URL: arcodeai-0.1.2.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.8

File hashes

Hashes for arcodeai-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c973a5f302b9fa3bde8d8bd03c01253444ac86070dd62747b052299bc6638dd8
MD5 d04688790cefb841d00a6bf1037a2566
BLAKE2b-256 e622d4fcfb50495bdac21b325852d02420bf59d3ddb4bf40be632282f8fe0000

See more details on using hashes here.

File details

Details for the file arcodeai-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: arcodeai-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.8

File hashes

Hashes for arcodeai-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5be0d11647a136e68958e595dc4b3972d51101c5ad7d6c4cc20954ef1c43134b
MD5 cb55e51199f9d73d135b4d90910d036e
BLAKE2b-256 5a2501c9fc7c0ffecd6619cc37a289b7c7e089c9bea787097602ebc61d705020

See more details on using hashes here.

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