Skip to main content

Druks

Druks

[!WARNING] Druks is under active development. Breaking changes and rough edges can occur before version 1.0. main and latest contain edge builds. They are not stable releases.

Druks is a self-hosted home for durable agent apps. It runs agents through connected harnesses. The included Software Factory app automates software delivery from a ticket to a 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 stops inside an operation, that operation can run again. Thus, side effects still require idempotency. Durability and recovery explains this boundary.

Install

The installer supports three deployment shapes backed by Drukbox:

  • Docker: docker (default) starts local sandbox containers on the host Docker daemon.
  • Remote: exe starts exe.dev sandbox VMs over a tailnet.
  • Each other provider name selects 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. Versioned releases use an installer script and an image from the same tag. The release process explains this method. Run the installer again to upgrade Druks.

Then follow full local setup. Connect the agent harnesses in the dashboard. Connect the GitHub App that software_factory uses. A standalone app can require different integrations.

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 each verification step. If a verification fails, stop. Show me the failed step and its output. Do not improvise a fix.

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 does not ask questions. The first run writes ~/druks/druks.toml with generated secrets. A remote shape can require values that only you know. These values include provider credentials and identity-edge details.

The installer prints this list and exits. Set the values in druks.toml. Then run the same command again.

See the deployment runbook for prerequisites, access control, verification, and rollback.

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

Platform and apps stay separate

Druks owns the execution and operating substrate:

  • DBOS workflows and queues that use Postgres
  • Typed human gates, cancellation, schedules, and observable run state
  • Agent harness dispatch through isolated Drukbox sandboxes
  • Append-only events, live feeds, webhooks, notifications, MCP servers, and skills
  • Validated operator settings, encrypted MCP and OAuth secrets, and the dashboard shell
  • App discovery, API namespaces, and independent migration histories.

An app owns its workflows, agents, domain models, routes, events, provider reactions, and optional dashboard pages. It is a Python distribution that uses the druks.apps entry-point group. Install the distribution to register it. Druks does not require an app-specific plugin list.

Scaffold one with the published CLI, no checkout required:

uvx --from druks druks create app night_watch

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

The bundled software_factory app is a concrete example. It coordinates coding agents through tickets and GitHub pull requests. GitHub pull-request orchestration belongs to software_factory, not to 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.5.0.tar.gz (338.2 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.5.0-py3-none-any.whl (448.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for druks-0.5.0.tar.gz
Algorithm Hash digest
SHA256 fd4642f4ce06297766d0dcc1fa98c764cbf94ba54efd41a01ee3726a72557aef
MD5 c3e83291dc5a195ce7968f78119ac9c0
BLAKE2b-256 5f261dfb52a5256a330d5c0dcfe71fc0d70ae22c3985e69ffacf82867cc8e1b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for druks-0.5.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.5.0-py3-none-any.whl.

File metadata

  • Download URL: druks-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 448.6 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d224d388a64e335a459bfe34f74613feaf3689ad5067cd18fd553e01e5569dcb
MD5 53744d118783d5b9e0116be6be662808
BLAKE2b-256 2d78829eceb3d90388d64bc3518ebf64254af55d253ad46c43b51c6237b232e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for druks-0.5.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

This release

0.5.0 This release

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

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