{"id":34075434,"url":"https://github.com/alexdredmon/arcode","last_synced_at":"2025-12-14T09:44:13.040Z","repository":{"id":242523112,"uuid":"809120776","full_name":"alexdredmon/arcode","owner":"alexdredmon","description":"🕹️ AI development tool","archived":false,"fork":false,"pushed_at":"2025-01-27T11:46:40.000Z","size":7752,"stargazers_count":33,"open_issues_count":7,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-28T01:44:34.469Z","etag":null,"topics":["ai","development","llm","open-source","tool"],"latest_commit_sha":null,"homepage":"https://www.arcodeai.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexdredmon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-01T18:40:57.000Z","updated_at":"2025-01-28T21:11:08.000Z","dependencies_parsed_at":"2024-06-21T20:34:55.715Z","dependency_job_id":"855482fc-ed65-444e-aac2-e11e198bd6fc","html_url":"https://github.com/alexdredmon/arcode","commit_stats":null,"previous_names":["alexdredmon/codey","alexdredmon/arcode"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/alexdredmon/arcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdredmon%2Farcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdredmon%2Farcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdredmon%2Farcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdredmon%2Farcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexdredmon","download_url":"https://codeload.github.com/alexdredmon/arcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdredmon%2Farcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27725079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","development","llm","open-source","tool"],"created_at":"2025-12-14T09:44:11.121Z","updated_at":"2025-12-14T09:44:13.035Z","avatar_url":"https://github.com/alexdredmon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arcode\n![arcode logo](logo-arcode.png)\n\n## Description\n\nArcode 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.\n\n## Features\n\n- Provide requirements and followup feedback to auto-build changes\n- Single button press confirmation + implementation\n- Supplies context from your local files and select remote resources\n- Optional limiting of file context based on relevancy to features\n- Support for various providers/models via LiteLLM\n\n## Demo\n![Demo Animation](media/demo.gif)\n\n### Provide your requirements:\n![Demo 1](media/demo1.jpg)\n\n### Review and approve changes:\n![Demo 2](media/demo2.jpg)\n\n## Examples:\nGenerate a plan and optionally write the changes based on requirements:\n```bash\narcode \"Implement authentication\"\n```\n\nUse with input from a file:\n```bash\ncat feature_requirements.txt | arcode --dir ./my_codebase\n```\n\nProvide remote resources\n```bash\narcode \"Follow the latest docs in the provided resources to add a LangChain SQL query chain to retrieve relevant reporting details from the databse given user input\" --resources=\"https://api.python.langchain.com/en/latest/chains/langchain.chains.sql_database.query.create_sql_query_chain.html#langchain.chains.sql_database.query.create_sql_query_chain\"\n```\n\n## Usage\n\nRun Arcode with and pass it your requirements:\n```bash\narcode \"Build feature X\"\n```\nOr if you're running the .py version, run with one of the following:\n```bash\n./arcode.py \"Build feature X\"\npython arcode.py \"Build feature X\"\n```\n\n## Configuration\n\nYou can pass configuration via CLI arguments or by creating an `arcodeconf.yml` file in your `~/.conf/` directory (i.e. global config at `~/.config/arcodeconf.yml`) and/or in the root of your project working directory.  An `arcodeconf.yml` file can set arguments and environment variables for a project.\n\nSample `arcodeconf.yml`:\n```yaml\nargs:\n  model: anthropic/claude-3-opus-20240229\n  ignore:\n    - build\n    - dist\n    - secrets\n  resources:\n    - https://example.com/resource1\n    - https://example.com/resource2\nenv:\n  ANTHROPIC_API_KEY: 3xampl3\n```\n\n## Models\n\nFor best results, use one of the following models:\n\n - `anthropic/claude-3-5-sonnet-20240620`\n - `bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0`\n - `openai/gpt-4o`\n - `azure/gpt-4o`\n\nOther popular models include:\n\n - `anthropic/claude-3-opus-20240229`\n - `bedrock/anthropic.claude-3-opus-20240229-v1:0`\n - `openai/gpt-4`\n - `azure/gpt-4`\n\nPopular supported embedding models include:\n\n - `openai/text-embedding-3-small`\n\n## API Keys\n\nSet API keys based on the provider(s) you're using - these values should be present in either your shell environment, an `.env` file in the working directory, or the `env` section of an `arcodeconf.yml` file located in the working directory.\n\n### OpenAI\n - `OPENAI_API_KEY`\n\n### Anthropic\n - `ANTHROPIC_API_KEY`\n\n### Gemini\n - `GEMINI_API_KEY`\n\n### Azure\n - `AZURE_API_KEY`\n - `AZURE_API_BASE`\n - `AZURE_API_VERSION`\n\n### AWS Bedrock\n - `AWS_ACCESS_KEY_ID`\n - `AWS_SECRET_ACCESS_KEY`\n - `AWS_REGION_NAME`\n\n## Arguments:\n```bash\nusage: arcode [-h] [--dir DIR] [--auto-write AUTO_WRITE] [--focused FOCUSED]\n              [--model MODEL] [--max-tokens MAX_TOKENS]\n              [--model-embedding MODEL_EMBEDDING]\n              [--mode {implement,question}] [--ignore [IGNORE ...]]\n              [--resources [RESOURCES ...]] [--images [IMAGES ...]] [--debug]\n              [--models [MODELS]] [--max-estimated-cost MAX_ESTIMATED_COST]\n              [--max-file-size MAX_FILE_SIZE] [--temperature TEMPERATURE]\n              [requirements ...]\n\narcode: AI driven development tool\n\npositional arguments:\n  requirements          Requirements for features to build on the codebase or\n                        question to ask about the codebase.\n\noptions:\n  -h, --help            show this help message and exit\n  --dir DIR             The working directory of the codebase, default to\n                        current directory.\n  --auto-write AUTO_WRITE\n                        Whether or not to immediately write the changeset.\n                        Useful when piping to arcode, e.g. cat feature.txt |\n                        arcode\n  --focused FOCUSED     Enable focused mode to limit file context provided\n                        based on relevancy using embeddings - accepts an\n                        integer containing number of file chunks to limit\n                        context to.\n  --model MODEL         LLM provider/model to use with LiteLLM, default to\n                        openai/gpt-4o.\n  --max-tokens MAX_TOKENS\n                        Max number of output tokens\n  --model-embedding MODEL_EMBEDDING\n                        LLM provider/model to use for embeddings with LiteLLM,\n                        default to openai/text-embedding-3-small.\n  --mode {implement,question}\n                        Mode for the tool: \"implement\" for feature building\n                        and \"question\" for asking questions about the\n                        codebase.\n  --ignore [IGNORE ...]\n                        Additional ignore patterns to use when parsing\n                        .gitignore\n  --resources [RESOURCES ...]\n                        List of URLs to fetch and include in the prompt\n                        context\n  --images [IMAGES ...]\n                        List of image file paths to include in the prompt\n                        context\n  --debug               Enable debug mode for additional output\n  --models [MODELS]     List available models. Optionally provide a filter\n                        string.\n  --max-estimated-cost MAX_ESTIMATED_COST\n                        Maximum estimated cost allowed. Actions with a larger\n                        estimated cost will not be allowed to execute.\n                        (integer or float with up to two decimal places)\n  --max-file-size MAX_FILE_SIZE\n                        Maximum file size in bytes for files to be included in\n                        the prompt.\n  --temperature TEMPERATURE\n                        Temperature to use for the LLM\n```\n\n## Install\n\n1. Ensure [Homebrew](https://brew.sh/) is installed\n2. Ensure `libmagic` is installed (or run `brew install libmagic`)\n3. Tap `alexdredmon/arcode`\n    ```bash\n    brew tap alexdredmon/arcode\n    ```\n4. Install arcode\n    ```bash\n    brew install arcode\n    ```\n\n## Development Setup\n\n1. Clone the repository:\n    ```bash\n    git clone https://github.com/alexdredmon/arcode\n    cd arcode\n    ```\n2. Install pyenv (if not already installed):\n    ```bash\n    brew install pyenv\n    ```\n3. Install Python 3.9 using pyenv:\n    ```bash\n    pyenv install 3.9\n    ```\n4. Set local Python version:\n    ```bash\n    pyenv local 3.9\n    ```\n5. Create \u0026 activate virtual environment:\n    ```bash\n    python -m venv venv\n    source venv/bin/activate\n    ```\n6. Install the required dependencies:\n    ```bash\n    pip install -r requirements.txt\n    ```\n7. Set your OpenAI API key:\n    ```bash\n    export OPENAI_API_KEY=\u003cyour_openai_api_key\u003e\n    ```\n    or alternatively set in a .env file:\n    ```bash\n    OPENAI_API_KEY=\u003cyour_openai_api_key\u003e\n    ```\n\n## Build\n\n1. Build a standalone executable via:\n\n    ```bash\n    ./scripts/build.sh\n    ```\n\n2. A binary will be created in `./dist/arcode/arcode`\n3. Add the resulting binary to your PATH to run it anywhere:\n    ```bash\n    export PATH=\"/Users/yourusername/path/to/dist/arcode:$PATH\"\n    ```\n\n## Homebrew Installation\n\nTo install Arcode via Homebrew:\n\n1. Clone the repository and navigate into the project directory:\n    ```bash\n    git clone https://github.com/alexdredmon/arcode\n    cd arcode\n    ```\n\n2. Run the build script to generate the standalone executable and Homebrew formula:\n    ```bash\n    ./scripts/build.sh\n    ```\n\n3. Move the generated formula into your local Homebrew formula directory:\n    ```bash\n    mkdir -p $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/\n    cp Formula/arcode.rb $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/\n    ```\n\n4. Install the formula:\n    ```bash\n    brew install arcode\n    ```\n\n## Upgrade\n\nTo upgrade to the latest version, simply:\n  ```bash\n  brew update\n  brew upgrade arcode\n  ```\n\n## Tests\n\n1. Run tests via:\n\n    ```bash\n    ./scripts/run_tests.sh\n    ```\n\n## License\nThis project is licensed under the MIT License. See the LICENSE file for more details.\n\n## Contributing\nContributions are welcome! Please fork the repository and submit a pull request with your changes.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdredmon%2Farcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexdredmon%2Farcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdredmon%2Farcode/lists"}