harmont

CI/CD that doesn't suck. For you and your agents.

Run CI on your working tree. Write your pipelines in your favorite language. The best of persistent CI and stateless CI.

// how it works

  1. 00

    download hm.

    A single static binary — nothing else to install.

    curl -fsSL https://get.harmont.dev/install.sh | sh
  2. 01

    write a pipeline.

    Pipelines are real code, not YAML. Toolchains like uv and cargo bring lint, typecheck, and test steps with them.

    import harmont as hm
    @hm.pipeline(default_image="ubuntu:24.04")
    def ci() -> hm.Step:
    app = hm.py.uv(path=".")
    return hm.group([
    app.lint(),
    app.typecheck(),
    app.test(),
    ])
  3. 02

    run it locally.

    hm run executes your working tree exactly as it is — no commit, no push, no runner queue. Failed runs cost nothing.

    This is the actual pipeline that builds the Harmont CLI.
  4. 03

    commit and push.

    under construction wip

    A branch is a persistent box — write openapi.json once and it's there next step, no artifact upload/download. Forks run in parallel from the same warm disk. Persistent state, stateless scale.

  5. 04

    debug with agents.

    under construction wip

    A step fails? Your agent reads the logs, fixes your pipelines, and re-runs.

  6. 05

    deploy across agents.

    under construction wip

    hm dev runs your whole stack locally. Each deploy is namespaced, so two agents can bring the same repo up in parallel without colliding on ports. Every PR gets a preview environment.

    $ hm dev up   # claude #1
     api      localhost:4001
     web      localhost:4002
     preview  pr-128.preview.harmont.dev
    
    $ hm dev up   # claude #2
     api      localhost:4011
     web      localhost:4012
     preview  pr-129.preview.harmont.dev

How hm compares.

Harmont gh actions buildkite
local working tree yes no no
no git host required yes no partial
runs without a queue yes no no
persistent workspace yes no no
pipeline language python, ts yaml yaml
type-checked pipelines yes no no
headless rest api yes partial partial
agent-driven debugging yes no no
json output yes partial partial
self-hostable yes partial partial

// register

Join the waitlist.

Hosted Harmont is under construction — persistent disks, parallel forks, zero runner management. Drop your email and we'll tell you the moment it opens.

Or join the community on Discord.