Druks

AI agents work. You make the call.

Druks finds the work, does it on the tools you already use,
and brings the important decisions to you. Self-hosted or Druks Cloud.

Try it now · Install on your AI · Docs

License: FSL-1.1-ALv2 Status: pre-1.0 Works with Claude Code and Codex All Contributors

A Druks security sweep waiting for approval: upgrade 3 packages in acme/api, closes 7 vulnerabilities, cost so far $0.41, with Approve, Change and Stop buttons

**Druks is a self-hosted or cloud platform where AI agents such as Claude Code and Codex do a company's recurring engineering work, and a person approves each change.** - **It finds the work.** A schedule, an alert or a button starts it. Nobody writes a prompt. - **It does the work with your tools.** Claude Code or Codex, with your own Claude or OpenAI account, in a sandbox, on your real repositories. You see the cost after every step. - **You make the call.** The run stops and asks you: Approve, Change or Stop. You answer in Slack, the dashboard, the Druks chat or Claude Code. It waits up to 14 days and costs nothing while it waits. ## Why Druks | If you use… | It helps when… | Druks adds… | | --- | --- | --- | | A coding assistant (Claude Code, Codex, Copilot) | A developer sits down and asks | Work that starts by itself, every week, with nobody at the keyboard | | An agent board | You write a ticket and assign it to an agent | Processes that find the work themselves, like a weekly security sweep | | A workflow builder | You design each step of the flow | Apps that already work. Build your own only when you want to | Druks does not replace your coding agent. It puts the agent on a schedule, runs it in a sandbox, and brings you its result as one decision. ## What a run looks like The **security sweep** checks one repository every Monday: 1. It reads the open Dependabot alerts and checks which ones touch code you actually call. 2. It upgrades the packages in a sandbox and runs your tests. 3. It asks you: *"Upgrade 3 packages. Closes 7 vulnerabilities, 2 in code you call. Approve?"* After your yes, it opens a pull request. 4. You get a summary: the pull request, what was fixed, how long it took and what it cost. The included **Ticket to pull request** app (`software_factory`) takes a ticket, writes and checks the change, and opens a pull request for review. ## Get started Druks Cloud and self-hosted Druks work the same way. You get the same apps and approve in the same places. The only difference is where Druks runs. **Druks Cloud.** Druks runs on our servers. Nothing to install. [Try it now](https://app.druks.ai/sign-in?utm_source=github&utm_medium=readme). **Self-hosted.** Druks runs on your laptop or your own server. You need Docker with Compose. Paste this into Claude Code, Codex or any coding agent on the machine: ```text Install Druks on this machine with https://druks.ai/install.sh. Read the script, then run it. Then run the steps it prints: build the sandbox images and run druks doctor. If a step fails, stop. Show me the failed step and its output. Do not improvise a fix. When druks doctor passes, open http://127.0.0.1:8001 in my browser. ``` Or run the installer yourself: ```bash curl -fsSL https://druks.ai/install.sh | bash ``` Then build the sandbox images, check the install and open the dashboard: ```bash cd ~/druks docker compose exec web druks sandboxes build docker compose exec web druks doctor open http://127.0.0.1:8001 # on Linux: xdg-open ``` In the dashboard, connect your AI account under **Settings → Providers** and the GitHub App under **Settings → Connections → Services**.
Remote installs (exe.dev and other providers) Name the provider. The installer lists the values only you know, then exits. Set them in `~/druks/druks.toml` and `~/druks/.env`, and run the same command again. ```bash curl -fsSL https://druks.ai/install.sh | DRUKS_PROVIDER=exe bash ``` The [deployment guide](https://docs.druks.ai/deployment) covers access control, upgrades and rollback.
## What runs where When you self-host, this is what happens with your code and your keys: - **Druks runs on your machine.** The dashboard, Postgres, Redis and the sandbox service run in Docker on your host. - **By default, each agent call runs in its own Drukbox sandbox,** with the tools and credentials of that step. - **Your code goes to the AI provider you choose,** through your own Claude or OpenAI account, and back to GitHub as pull requests. - **Connection secrets are encrypted** in your own database. - **GitHub access goes through your own GitHub App,** on the repositories you pick. - **No telemetry.** Druks does not send usage data to us. - **Apps ask before they act.** The security sweep opens a pull request only after your yes. Every proposal, decision and cost stays in the run history. Found a security problem? Follow the [security policy](SECURITY.md). Do not open a public issue. ## How it works

How Druks works: a trigger starts an app workflow. Each durable step saves its result in Postgres. An agent step runs Claude Code or Codex in an isolated Drukbox sandbox. A gate pauses the workflow until a person or a system answers in Slack, the dashboard, the chat or Claude Code, then it resumes. Events go to the run history, feed, notifications and webhooks.

Each process is an **app**. After a restart or deploy, Druks picks up where it left off and does not repeat finished work. [Concepts and guarantees](https://docs.druks.ai/concepts) explains the details. ## Documentation | I want to… | Start here | | --- | --- | | Install Druks on my machine | [Quickstart](https://docs.druks.ai/quickstart) | | Run Druks for my team | [Deployment](https://docs.druks.ai/deployment) and [configuration](https://docs.druks.ai/configuration) | | Automate my own process | [Writing an app](https://docs.druks.ai/writing-an-app), then `uvx --from druks druks create app my-app` | | Understand restarts and approvals | [Concepts](https://docs.druks.ai/concepts) | | Fix a problem | [Troubleshooting](https://docs.druks.ai/troubleshooting) | ## Status Druks is **pre-1.0**. Breaking changes can happen. `main` and `latest` are edge builds, not stable releases. Run the installer again to upgrade. For a fixed version, see [installing an immutable version](https://docs.druks.ai/releasing#install-an-immutable-version). ## Community - **Bugs, questions and ideas:** [open an issue](https://github.com/czpython/druks/issues) - **Contributing:** [contribution guide](CONTRIBUTING.md) ## License Druks is available under the [Functional Source License](LICENSE) (FSL-1.1-ALv2): - You can read, run and change all of the code. - You can self-host Druks for your company's work and build apps on it. - You cannot sell it as a competing hosted service. - Each release becomes Apache 2.0 two years after it ships. The [licensing page](https://docs.druks.ai/licensing) explains the details. ## Contributors Thanks goes to these wonderful people:
Paulo Alvarado
Paulo Alvarado

💻
Krzysztof Socha
Krzysztof Socha

💻
Pravin
Pravin

💻
Dan Serbanoiu
Dan Serbanoiu

💻
Sīlavāpi Cheesley
Sīlavāpi Cheesley

💻
Stefan Foulis
Stefan Foulis

💻
yuripulga
yuripulga

💻
Kakshil Shah
Kakshil Shah

💻
Andrzej Jasonek
Andrzej Jasonek

💻
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!