Hm – a task runner with a Python DSL, growing into a CI/CD system
Hi HN! My name is Marko and I am working on a CI/CD system at harmont.dev, a CI/CD system that sucks slightly less. As I've been working on the cloud, I realized that the CLI might be generally useful as a task runner, even if you don't care for our CI/CD, and that's what I'm sharing here! Every CI system I've used at Tesla, Bun, and mesa.dev has had the same problems: stateless and slow (GHA), or stateful and horizontally unscalable (Jenkins), with YAML on top of either. The straw that broke the camel's back for me was the realization that all my Claudes are waiting upwards…
In plain words
Hm is a task runner that uses Python as its domain-specific language, with plans to expand into a full CI/CD system. It allows developers to define and execute tasks programmatically instead of using YAML configuration files. The tool is designed for developers who want a more scalable alternative to existing CI/CD systems, offering a simpler API than comparable tools. It can be used standalone as a task runner or as part of a larger CI/CD workflow.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
Hi HN! My name is Marko and I am working on a CI/CD system at harmont.dev, a CI/CD system that sucks slightly less. As I've been working on the cloud, I realized that the CLI might be generally useful as a task runner, even if you don't care for our CI/CD, and that's what I'm sharing here! Every CI system I've used at Tesla, Bun, and mesa.dev has had the same problems: stateless and slow (GHA), or stateful and horizontally unscalable (Jenkins), with YAML on top of either. The straw that broke the camel's back for me was the realization that all my Claudes are waiting upwards of an hour. So I quit my job to work on harmont, which aims to solve all of these pain points I've had. In its current state, the project is very similar to Dagger in spirit with the core difference of harmont having what I believe to be a more pleasant API as well as being smaller in scope. I'm looking for opinions and feedback. What might be the most interesting with the CLI is the DSL -- I've tried to make it ergonomic and friendly. To get started: curl -fsSL https://get.harmont.dev/install.sh | sh mkdir foo cd foo uv init cat >> pyproject.toml <<EOF [dependency-groups] dev = [ "pytest", "ruff", "ty", ] EOF # Create the pipeline mkdir .harmont cat > .harmont/pipeline.py <<EOF import harmont as hm from harmont.python import PythonToolchain @hm.target() def project() -> PythonToolchain: return hm.python(path=".") @hm.pipeline( "ci", default_image="ubuntu:24.04", triggers=[hm.push(branch="main")], ) def ci(project: hm.Target[PythonToolchain]) -> tuple[hm.Step, ...]: return ( project.test(), project.lint(), project.fmt(), project.typecheck(), ) EOF hm run Currently our API has pretty good support for Rust, Typescript and Python. There are other languages that are "supported" in the examples, but those are mostly demo APIs and are likely to change, aggressively. The project is early, but usable and I'd love to get your feedback. What's coming next: - COW filesystems: In a future release of hm, we mount FS layers on top of preceding layers, copy-on-write. I ran some experiments and they resulted in up to 40% faster runs on `uv run ruff`-style commands. - Development containers: `hm dev` enables you to spin up your application in however many instances you need -- if you have a local application, there is nothing stopping you from spinning it up once, twice, or 10 times. - The cloud: In parallel to the CLI, I've been working on the cloud, which I am hoping to private-access release in the coming month. It follows the same model as the CLI, but uses a very different execution engine (supporting RAM caches too, for you Bazel enjoyers =). - Additional language SDKs -- The private-access cloud is written in Haskell, Elixir and Rust. We already have harmont rules for Rust (which I would suggest you check out in Harmont's very own dogfood pipeline: https://github.com/harmont-dev/harmont-cli/blob/main/.harmont/ci.py), but we're adding more languages! - Plugin system: I recognize that not everyone will want to join the Harmont cloud but may find some utility in the Harmont task runner. At some point, I had a plugin system in place that allowed you to download and use harmont without any cloud-specific bloat, but unfortunately I tore that out, because the code wasn't great. Definitely working on bringing that back. Full disclaimer: I am the founder of Harmont, Inc. PBC. We are committed to the CLI remaining open-source and as bloat-free as possible and doing the best we can with the cloud for the community. PS: I've gotten questions about the name. It is a reference to https://en.wikipedia.org/wiki/Roadside_Picnic (awesome sci-fi book, worth a read =) )
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com

Launched alongside, May 2026
the whole month →

Parallel agents, diff reviewer, and multi-model comparisons
Dev tools · May 2026 · kilo.ai


- NW
Hey HN, Henry here from Cactus. We open-sourced Needle, a 26M parameter function-calling (tool use) model. It runs at 6000 tok/s prefill and 1200 tok/s decode on consumer devices. We were always frustrated by the little effort made towards building agentic models that run on budget phones, so we conducted investigations that led to an observation: agentic experiences are built upon tool calling, and massive models are overkill for it. Tool calling is fundamentally retrieval-and-assembly (match query to tool name, extract argument values, emit JSON), not reasoning. Cross-attention…
Life & fun · May 2026 · github.com
- FM
Dev tools · May 2026 · github.com