Skip to main content

Druks

Druks

[!WARNING] Druks is under active development. Expect breaking changes and rough edges before 1.0; main and latest are edge builds, not stable releases.

Druks is the self-hosted home for durable agent apps, running on the Claude and Codex subscriptions you already pay for. Ship comes bundled: autonomous software delivery from ticket to reviewed pull request.

An ordinary agent script loses its place when the process dies. A Druks workflow records the result of each completed durable operation in Postgres. After a restart or deploy, Druks replays the workflow and reuses those recorded results instead of repeating completed work. If the process was interrupted inside an operation, that operation may run again, so side effects still need idempotency. Durability and recovery explains the exact boundary.

Install

The installer supports three deployment shapes backed by Drukbox:

  • docker (default): local sandbox containers on the host Docker daemon — the zero-config laptop shape
  • exe: exe.dev sandbox VMs over a tailnet
  • any other provider name: the generic remote shape

The default is the local shape, so the bare command boots a stack with no authored values:

curl -fsSL https://druks.ai/install.sh | bash

That command follows the edge channel while Druks has no stable release. Once versioned releases exist, install the script and image from the same tag as described in the release process. Re-running is also the upgrade path. Then follow full local setup to finish in the dashboard: connect the agent harnesses and the GitHub App the bundled ship extension acts through; a standalone extension may have different integration requirements.

Or hand the install to a coding agent — paste this into Claude Code, Codex, or any agent with shell access on the target machine:

Install druks on this machine by following https://raw.githubusercontent.com/czpython/druks/main/INSTALL.md exactly: run every step's verification, and if one fails, stop and show me the failing step and its output instead of improvising.

For a remote install, name the provider — exe for exe.dev VMs, any other Drukbox provider name for the generic remote shape:

curl -fsSL https://druks.ai/install.sh | DRUKS_PROVIDER=exe bash

The installer is non-interactive: the first run writes ~/druks/druks.toml with generated secrets, and when a remote shape still needs values only you know (provider credentials, identity edge) it prints that checklist and exits; set them in druks.toml and re-run the same command. See the deployment runbook for prerequisites, access control, verification, and rollback.

trigger ──> extension workflow ──> durable step ──> agent ──> sandbox
                 │                     │              │
                 │                     │              └─ Claude or Codex harness
                 │                     └─ result checkpointed in Postgres
                 ├─ event ──> feed / extension reaction
                 └─ gate  ──> wait for human or external system ──> resume

Platform and applications stay separate

Druks owns the execution and operating substrate:

  • DBOS workflows and queues backed by Postgres
  • typed human gates, cancellation, schedules, and observable run state
  • Claude and Codex harness dispatch through isolated Drukbox sandboxes
  • append-only events, live feeds, webhooks, notifications, MCP servers, and skills
  • validated operator settings, encrypted MCP/OAuth secrets, and the dashboard shell
  • extension discovery, API namespaces, and independent migration histories

An extension owns the application: its workflows, agents, domain models, routes, events, provider reactions, and optional dashboard pages. It is a normal Python distribution registered through the druks.extensions entry-point group. Installing the distribution registers it; Druks does not need an extension-specific plugin list.

Scaffold one with the published CLI, no checkout required:

uvx --from druks druks create extension night_watch

The generated project root carries an AGENTS.md with the contracts and a link to the authoring guide.

The bundled ship extension is a concrete example. It coordinates coding agents through tickets and GitHub pull requests, but GitHub PR orchestration is ship behavior—not the definition of Druks.

Documentation

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

druks-0.2.0.tar.gz (285.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

druks-0.2.0-py3-none-any.whl (377.8 kB view details)

Uploaded Python 3

File details

Details for the file druks-0.2.0.tar.gz.

File metadata

  • Download URL: druks-0.2.0.tar.gz
  • Upload date:
  • Size: 285.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for druks-0.2.0.tar.gz
Algorithm Hash digest
SHA256 73361912c16c960517dd365f6de03b9080c954dfd7559ee1fca4e2546469506a
MD5 80a0ad8326c52fd701ffbac79c801c86
BLAKE2b-256 dea7f05bc02cce3809178baf05378f96061899fedae197ec797ce0eccee1c5f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for druks-0.2.0.tar.gz:

Publisher: release.yml on czpython/druks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file druks-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: druks-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 377.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for druks-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7a6d53cfaa3a78da5e2ef067afb1e6d3e83bc1f79c5f1de6266423f30259e00
MD5 ed4a9e3ca083e21533b8e047b3763f4c
BLAKE2b-256 7c39b145749f0b00ca1b4ecd8d91ee3678be836697a0aa9adbd266cb1908f938

See more details on using hashes here.

Provenance

The following attestation bundles were made for druks-0.2.0-py3-none-any.whl:

Publisher: release.yml on czpython/druks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page