{"id":13631414,"url":"https://github.com/vysakh0/dravid","last_synced_at":"2026-02-19T07:23:18.586Z","repository":{"id":248142807,"uuid":"825301133","full_name":"vysakh0/dravid","owner":"vysakh0","description":"AI powered cli coding agent that monitors your dev/test server and fixes errors and adds features","archived":false,"fork":false,"pushed_at":"2024-08-20T06:48:07.000Z","size":437,"stargazers_count":198,"open_issues_count":1,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-04T09:17:39.088Z","etag":null,"topics":["ai-engineer","claude","cli","co-pilot","coding-agents"],"latest_commit_sha":null,"homepage":"","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/vysakh0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-07T11:58:40.000Z","updated_at":"2025-07-20T21:26:45.000Z","dependencies_parsed_at":"2024-11-08T23:30:51.328Z","dependency_job_id":"b09455f1-bb40-460a-a240-fd4104e7506e","html_url":"https://github.com/vysakh0/dravid","commit_stats":null,"previous_names":["vysakh0/dravid"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vysakh0/dravid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vysakh0%2Fdravid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vysakh0%2Fdravid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vysakh0%2Fdravid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vysakh0%2Fdravid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vysakh0","download_url":"https://codeload.github.com/vysakh0/dravid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vysakh0%2Fdravid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29606251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-engineer","claude","cli","co-pilot","coding-agents"],"created_at":"2024-08-01T22:02:24.503Z","updated_at":"2026-02-19T07:23:18.557Z","avatar_url":"https://github.com/vysakh0.png","language":"Python","funding_links":[],"categories":["cli","Python","Building","Agent Categories"],"sub_categories":["Testing","\u003ca name=\"Unclassified\"\u003e\u003c/a\u003eUnclassified"],"readme":"# Dravid (DRD) - AI-Powered CLI Coding Framework\n\n![PyPI](https://img.shields.io/pypi/v/dravid.svg)\n![Build Status](https://github.com/vysakh0/dravid/actions/workflows/main.yml/badge.svg)\n![Coverage Status](https://codecov.io/gh/vysakh0/dravid/branch/main/graph/badge.svg)\n![License](https://img.shields.io/github/license/vysakh0/dravid.svg)\n\nDravid (DRD) is an advanced, AI-powered CLI coding framework (in alpha) designed to follow user instructions until the job is done, even if it means fixing errors, including installation issues. It can also listen to a live dev server or a test server (in watch mode) or any processes with interactive pair programming. It can generate code and fix errors autonomously until the intended result is achieved.\n\n\n## Installation\n\n### Prerequisites\n\n- Python 3.7+\n- pip (Python package installer)\n- API key for your chosen AI provider (environment variable should be set). Please see the LLM providers section. Supports AI providers: Claude (default), OpenAI, Azure OpenAI, Llama 3, Mixtral (through Anyscale, Groq, or NVIDIA), and local LLM models through Ollama.\n\n\nTo install Dravid, run the following command:\n\n```\npip install dravid\n```\n\nTo upgrade for latest fixes:\n\n```\npip install --upgrade dravid\n```\n\n\n## Usage\n\nAfter installation, you can use the `drd` command directly from your terminal. Here are some common usage examples:\n\nNOTE: for better results, go step by step and communicate clearly. You can also define project_guidelines.txt\nwhich will be referenced in the main query, you can use this to instruct on how the code should be generated etc.\n\nAlso, any png or jpg files that will be generated and needs to be replaced will have placeholder prefix, so you\nknow that it has to be replaced.\n\n## Turbo dev mode\n\nYou can run the development server with automatic error fixing.\n\nThis command will start your dev server or test server and then continually fix any errors\nand then restart, you can sitback and sip coffee :)\nYou can give instructions into this mode, it will generate code, fix any errors, restart.\nYou can also provide image for reference, or any number of files for references.\n\n```\ndrd \"rails server\"\n```\n\n```\ndrd \"npm run test:watch\"\n```\n\n## The bootstrap mode\n\n- When you want to create a fresh project\n\n```\ndrd --do \"create a nextjs project\"\n```\n\n- When you to quickly fix or change something in a project without starting a dev or test server.\n\n```\ndrd --do \"make the walls permeable in the snake_game file\"\n```\n\n#### With larger text (multi line string)\n\nWhen you have larger string or if you want to copy paste a error stack with double quotes etc, please use this.\n\n```\ndrd --do \"\"\"\nFix this error:\n....\n\"\"\"\n```\n\n### Ask Questions or Generate Content\n\nAsk questions or generate content:\n\n```\ndrd --ask \"how is the weather\"\n```\n\nGenerate a file directly:\n\n```\ndrd --ask \"create a MIT LICENSE file, just the file, don't respond with anything else\" \u003e\u003e LICENSE\n```\n\n--ask is much faster than the execute command because it doesn't load project context or project guidelines (you can create your own project_guidelines.txt)\n\n### Image-based Queries\n\nUse image references in your queries:\n\n```\ndrd --do \"make the home image similar to the image\" --image \"~/Downloads/reference.png\"\n```\n\n\n### Security and Sandbox (important note)\n\n- Always try in a new directory for a fresh project.\n- For existing projects, create a separate git branch or a sandbox environment. Monitor the generated commands. Git add or commit when you get results.\n- Your file content will be sent to the your chosen LLM for response. Do not include sensitive files in the project.\n- Don't use hardcoded API_KEYS. Use .env and ensure it's part of .gitignore so the tool can skip reading it.\n- \n## AI Models and Providers\n\nDravid supports multiple AI providers and models to suit your needs. Here's an overview of the available options:\n\n### Default: Claude (Anthropic)\n\nBy default, Dravid uses Claude 3.5 Sonnet from Anthropic. Claude is known for its strong performance across a wide range of tasks, including coding, analysis, and creative writing.\n\nTo use Claude, set the following environment variable:\n\n```\nCLAUDE_API_KEY=your_claude_api_key_here\n```\n\n### OpenAI\n\nDravid also supports OpenAI's models. When using OpenAI, the default model is gpt-4o.\n\nTo use OpenAI, set the following environment variables:\n\n```\nDRAVID_LLM=openai\nOPENAI_API_KEY=your_openai_api_key_here\n```\n\nYou can control the specific OpenAI model used by changing the `OPENAI_MODEL` environment variable.\nFor example:\n\n```\nOPENAI_MODEL=gpt-4 # for standard GPT-4\nOPENAI_MODEL=gpt-3.5-turbo # for GPT-3.5 Turbo\n```\n\n## Other Providers\n\nDepending on your chosen AI provider, you'll need to set different environment variables:\n\n### Azure OpenAI\n\n```\nDRAVID_LLM=azure\nAZURE_OPENAI_API_KEY=your_azure_api_key_here\nAZURE_OPENAI_API_VERSION=your_api_version_here\nAZURE_OPENAI_ENDPOINT=your_azure_endpoint_here\nAZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name_here\n```\n\n### Custom Provider compatible with OpenAI spec(e.g., Anyscale, Togeether, Groq, NVIDIA, or your own)\n\n```\nDRAVID_LLM=custom\nDRAVID_LLM_API_KEY=your_custom_api_key_here\nDRAVID_LLM_ENDPOINT=your_custom_endpoint_here\nDRAVID_LLM_MODEL=your_preferred_model_here\n```\n\n### Ollama (for local LLM models)\n\n```\nDRAVID_LLM=ollama\nDRAVID_LLM_MODEL=your_preferred_local_model_here\n```\n\n## Project Structure\n\n- `src/drd/`: Main source code directory\n  - `cli/`: Command-line interface modules\n  - `api/`: API interaction\n  - `utils/`: Utility functions and helpers\n  - `prompts/`: AI prompt templates\n  - `metadata/`: Project metadata management\n- `tests/`: Test suite for the project\n\n## Contributing\n\nWe welcome contributions to Dravid! Please see our [Contributing Guide](CONTRIBUTING.md) for more details on how to get started.\n\n## Development\n\nTo install Dravid, you need Python 3.7+ and Poetry. Follow these steps:\n\n1. Clone the repository:\n\n   ```\n   git clone https://github.com/vysakh0/dravid.git\n   cd dravid\n   ```\n\n2. Install dependencies using Poetry:\n\n   ```\n   poetry install\n   ```\n\n3. Set up environment variables:\n   Create a `.env` file in the project root and add your API keys:\n\n   For eg: if you use CLAUDE, if you use other services, you can add those env.\n\n   ```\n   CLAUDE_API_KEY=your_claude_api_key_here\n   ```\n\n4. You can use Dravid to add features or functionalities to the project. As this project uses drd.json\n   and has used Dravid to build Dravid.\n\n```\npoetry run drd --do \"refactor api_utils\"\n```\n\nor\n\n```\npoetry run drd --do \"add tests for utils/utils\"\n```\n\n```\npoetry run drd --ask \"who are you\"\n```\n\n## Testing\n\nAfter adding some functionalities, if you want to test how it works, I suggest creating a directory\ncalled `myapp` or `testapp` or `test-app` in the root of this project. These folder names are already in .gitignore.\n\n```\ncd myapp\npoetry run drd --do \"create a simple elixir project\"\n```\n\nTo run the test suite:\n\n```\npoetry run pytest\n```\n\n## Errors or Exception\n\n### Installation\n\n- Make sure you are installing with python 3.8 and above, please check your python version\n  and pip version if you have both python2 and python3 in your system.\n- If you get \"SyntaxError: multiple exception types must be parenthesized\" after installation\n  and when you do `drd --version` it means the pygments library (dependency of openai) needs upgrade\n\n```\npip install --upgrade pygments\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## Contact\n\nFor questions, suggestions, or issues, please open an issue on the GitHub repository or contact the maintainers directly.\n\nHappy coding with Dravid!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvysakh0%2Fdravid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvysakh0%2Fdravid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvysakh0%2Fdravid/lists"}