{"id":22839295,"url":"https://github.com/srtab/daiv","last_synced_at":"2026-03-15T03:22:46.356Z","repository":{"id":266837728,"uuid":"794591267","full_name":"srtab/daiv","owner":"srtab","description":"AI-driven tool for automating development tasks and improving workflows.","archived":false,"fork":false,"pushed_at":"2025-04-03T22:06:41.000Z","size":2163,"stargazers_count":11,"open_issues_count":13,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T23:19:22.676Z","etag":null,"topics":["ai-agent","anthropic","django","genai","gitlab","google-gemini-ai","langchain","langgraph","llm","openai","openrouter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srtab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-05-01T14:37:10.000Z","updated_at":"2025-03-29T23:38:07.000Z","dependencies_parsed_at":"2025-03-03T11:25:33.151Z","dependency_job_id":"2231e1f2-b51f-4c4b-beab-5a05e82fd65d","html_url":"https://github.com/srtab/daiv","commit_stats":null,"previous_names":["srtab/daiv"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srtab%2Fdaiv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srtab%2Fdaiv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srtab%2Fdaiv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srtab%2Fdaiv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srtab","download_url":"https://codeload.github.com/srtab/daiv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248830395,"owners_count":21168272,"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","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-agent","anthropic","django","genai","gitlab","google-gemini-ai","langchain","langgraph","llm","openai","openrouter"],"created_at":"2024-12-13T00:11:29.567Z","updated_at":"2026-03-15T03:22:46.340Z","avatar_url":"https://github.com/srtab.png","language":"Python","funding_links":[],"categories":["Development Workflows \u0026 Agents","Python","Agent Categories"],"sub_categories":["Other IDEs","\u003ca name=\"Unclassified\"\u003e\u003c/a\u003eUnclassified"],"readme":"\u003ch1 align=\"center\"\u003eDAIV\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003cstrong\u003eOpen-source async SWE agent for your Git platform\u003c/strong\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fsrtab%2Fdaiv%2Fmain%2Fpyproject.toml\" alt=\"Python Version\"\u003e\n  \u003ca href=\"https://github.com/srtab/daiv/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/srtab/daiv\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/srtab/daiv/actions\"\u003e\u003cimg src=\"https://github.com/srtab/daiv/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nDAIV integrates directly with **GitLab** and **GitHub** repositories through webhooks. No separate interface needed — you keep using your existing workflow while DAIV handles automation in the background.\n\n## What DAIV does\n\nDAIV automates routine software engineering work so you can focus on creative problem-solving:\n\n- **Issue Addressing** — Converts issue descriptions into working code. DAIV reads the issue, generates a plan, waits for your approval, then opens a merge/pull request with the implementation.\n- **Pull Request Assistant** — Responds to reviewer comments, applies requested changes, and repairs failing CI/CD pipelines — all from within the merge/pull request conversation.\n- **Slash Commands \u0026 Skills** — Invoke commands and skills directly from issues and merge requests (`/help`, `/plan`, `/code-review`, `/clone-to-topics`). Built-in skills provide planning, code review, and security audits — and you can create your own.\n\n## Quick example\n\n1. **You create an issue:** \"Add rate limiting to the API endpoints\"\n2. **DAIV posts a plan:** Analyzes the codebase and proposes implementation steps\n3. **You approve:** Comment `@daiv proceed`\n4. **DAIV implements:** Creates a merge request with the code changes\n5. **Reviewer asks for changes:** \"@daiv use Redis instead of in-memory storage\"\n6. **DAIV updates the code:** Modifies the implementation and pushes\n\n## Under the hood\n\nDAIV's agent has access to a set of capabilities that make this possible:\n\n- **Scalable Workers** — Handle more concurrent tasks by increasing worker replicas — no architecture changes needed.\n- **Subagents** — Specialized agents for fast codebase exploration and complex multi-step tasks.\n- **Sandbox** — Secure command execution for running tests, builds, linters, and package management inside an isolated Docker container.\n- **MCP Tools** — External tool integrations via the [Model Context Protocol](https://modelcontextprotocol.io/), such as Sentry for error tracking.\n- **Monitoring** — Track agent behavior with [LangSmith](https://www.langchain.com/langsmith) to analyze performance and identify issues.\n- **LLM Providers** — [OpenRouter](https://openrouter.ai/), [Anthropic](https://www.anthropic.com/api), [OpenAI](https://openai.com/api/), and [Google Gemini](https://ai.google.dev/gemini).\n\n## Technology Stack\n\n- **Agent Framework**: [Deep Agents](https://github.com/langchain-ai/deepagents) — the core agent engine powering DAIV. A general-purpose deep agent with sub-agent spawning, middleware stack, and virtual filesystem. Built on [LangGraph](https://langchain-ai.github.io/langgraph).\n- **Backend Framework**: [Django](https://www.djangoproject.com/) for building robust APIs and managing database models.\n- **Async Tasks**: [Django Tasks](https://docs.djangoproject.com/en/6.0/topics/tasks/) with the [`django-tasks` backend](https://pypi.org/project/django-tasks/) and [`django-crontask`](https://pypi.org/project/django-crontask/) for periodic scheduling.\n- **Code Executor**: [Sandbox](https://github.com/srtab/daiv-sandbox/) for running commands in a secure sandbox to allow the agents to perform actions on the codebase.\n- **Observability**: [LangSmith](https://www.langchain.com/langsmith) for tracing and monitoring all the interactions between DAIV and your codebase.\n- **Error Handling**: [Sentry](https://sentry.io/) for tracking and analyzing errors.\n\n## Getting Started\n\n### Prerequisites\n\n- **Docker \u0026 Docker Compose**\n\n### Local Development Setup\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/srtab/daiv.git\n   cd daiv\n   ```\n\n2. **Configure Environment**:\n   Copy `docker/local/app/config.secrets.env.example` to `docker/local/app/config.secrets.env` and update it with your Git platform credentials (GitLab token or GitHub App credentials), OpenAI API Key, Anthropic API Key, Google API Key, and LangChain API Key.\n\n   ```bash\n   cp docker/local/app/config.secrets.env.example docker/local/app/config.secrets.env\n   ```\n\n3. **Install Dependencies** (optional):\n   We use [uv](https://docs.astral.sh/uv/) to manage dependencies on DAIV.\n\n   ```bash\n   uv sync\n   ```\n\n   \u003e [!NOTE]\n   \u003e This will install the project dependencies into a virtual environment. Useful for running linting outside of Docker or enabling autocompletion in VSCode.\n\n4. **Start the Server**:\n\n   ```bash\n   docker compose up --build\n   ```\n\n   This will start all needed services locally. You can access them at:\n\n   - DAIV API documentation: https://localhost:8000/api/docs/\n   - GitLab (local test repository platform): http://localhost:8929\n   - Sandbox (secure code execution): http://localhost:8888/docs\n\n   \u003e [!NOTE]\n   \u003e The local development setup includes a GitLab instance for testing. For GitHub integration, you'll need to use GitHub.com or your own GitHub Enterprise instance.\n\n5. **Run the tests** (optional):\n   DAIV includes a comprehensive test suite. To run tests with coverage:\n\n   ```bash\n   $ docker compose exec -it app bash\n   $ make test\n   ```\n\n6. **Run linting** (optional):\n   To ensure code quality:\n\n   ```bash\n   $ docker compose exec -it app bash\n   $ make lint      # to check for linting and formatting issues\n   $ make lint-fix  # to automatically fix linting and formatting issues\n   ```\n\n7. **Configure test repository**:\n   To be able to test DAIV, you need to configure a test repository on the local GitLab instance (or use your own GitHub repository).\n\n   1. First you need to obtain root password to authenticate with [local GitLab](http://localhost:8929):\n\n      ```bash\n      $ docker compose exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password\n      ```\n\n   2. Then you need to configure a personal access token (you can use the root user or create a new user) and add it to the `docker/local/app/config.secrets.env` file.\n\n   3. Now you need to create a new project in GitLab and follow the instructions to push your testing code to it.\n\n      \u003e [!TIP]\n      \u003e You can import using repository URL, go to `Admin Area` -\u003e `Settings` -\u003e `General` -\u003e `Import and export settings` and check the `Repository by URL` option.\n\n   4. After you push/import your code to the repository, you need to set up webhooks and index the repository in DAIV:\n\n      ```bash\n      # Enter the app container\n      $ docker compose exec -it app bash\n\n      # Set up webhooks to trigger automatically DAIV actions. You can disable SSL verification for local development by adding `--disable-ssl-verification` to the command.\n      $ django-admin setup_webhooks\n\n      ```\n\n      \u003e [!NOTE]\n      \u003e If you're getting the error `Invalid url given` when setting up the webhooks on local GitLab, go to `Admin Area` -\u003e `Settings` -\u003e `Network` -\u003e `Outbound requests` and check the `Allow requests to the local network from webhooks and integrations` option.\n\n   5. Finally, you can test DAIV by creating an issue in your repository, add `daiv` label to it and see how DAIV will automatically present a plan to address the issue.\n\n\n## Roadmap\n\n- [x] Add support to GitHub.\n- [x] Add support to [AGENTS.md](https://agents.md/) format to guide agents.\n- [x] Add support to Agent Skills.\n- [ ] Add support to custom MCP servers.\n- [x] Add an evaluation system to measure the quality of DAIV's agents.\n- [ ] Add support to automated pull request review.\n- [ ] Create a frontend to DAIV initial setup and configuration, dashboard with some metrics, a chat interface to interact with DAIV...\n- [ ] Automate the onboarding of new projects into DAIV, by adding a `.daiv.yml` file to the repository.\n\n\n## Contributing\n\nWe welcome contributions! Whether you want to fix a bug, add a new feature, or improve documentation, please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information.\n\n## License\n\nThis project is licensed under the [Apache 2.0 License](LICENSE).\n\n## Support \u0026 Community\n\nFor questions or support, please open an issue in the GitHub repository. Contributions, suggestions, and feedback are greatly appreciated!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrtab%2Fdaiv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrtab%2Fdaiv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrtab%2Fdaiv/lists"}