swiftrun.ai
A self-hosted agent platform: automations run here as scheduled pipelines with connectors, a login and a report at the end.
558 commits · first 19 Jan 2026 · last 18 Oct 2026 · 272 days · swiftrun.ai
commits per week, counted from the repository when this page was last built

Forty-seven chat tabs
Every automation I built ended up as a chat window with a prompt pasted in. It worked once, on my machine, with me watching. What was actually needed was the same run every Monday, on someone else’s data, with nobody watching.
The platform is the place where those runs live: a pipeline of agents with connectors to the data, a schedule, and a report at the end that a person can read and forward.
First commit
7d96237 19 Jan 2026
It did not start as an agent platform. The first commit initialised a repository for an advertising product, and the first thing built was a channels page. The platform grew out of the realisation that the interesting part was the pipeline underneath, not the one use case on top.
Customers and invitations
7689d6c 14 Mar 2026
In March the backend arrived and the product became multi-tenant: customers, users, invitations. From here on a run belongs to someone, and someone can be invited to see it. It sounds like plumbing. It is the difference between a demo and a product.
A pipeline’s output becomes a report
2bea6f3 24 Mar 2026
Multi-stage pipelines used to return raw model output. This commit formats it as a structured report with a title, a greeting and a PDF, so that the person who scheduled the run gets a document, not a transcript.

The page analyser moves in
f533518 31 May 2026
The analyser behind seitenhebel became a worker service inside the platform: same engine, offered as a free tool to anyone. The free tools are how people find the platform, and they run on the same pipelines the paid work does.

A health endpoint and an instant alarm
9062ff6 13 Jun 2026
A health endpoint that reports whether the funnel works end to end, and an alarm to my phone the moment it does not. Written after a week in which the signup form was broken and nobody knew.
Four tables were never migrated
e86171d 17 Aug 2026
A security audit in August found five critical issues. Fixing them surfaced that four tables and two columns the code relied on had never been created by a migration; they existed only on the machine where they were first typed. The audit also found two checks that praised themselves. All of it is closed, and the log says how.

Green tests certified a file that nobody runs
dce9706 17 Aug 2026
The code that executes an agent run existed twice. One version, 295 lines, was carefully tested and called from nowhere in the entire repository. The version that actually ran had no tests at all. Every green result was a statement about the wrong file, and every correction I made landed in the copy nobody used.
The living path had a race as well: when one branch failed, the run was marked finished while its siblings were still working and then wrote their results into a completed run. From outside, a failed run and a running run looked exactly alike. The order of repair mattered — tests for the living path first, then the faults, then delete the dead copy. The other way round you repair blind.
What it does tonight
The platform is live with free tools in front and scheduled pipelines behind a login, and it is free during the beta. Its own marketing runs on the same nightly loops as everything else on this site — the platform is both the thing being built and one of the things doing the building.
Runs on its own
- scheduled pipeline runs with connectors to analytics and project tools
- reports as documents, with PDF
- the free tools: page analyser, ads analyser
- the health check and the alarm to my phone
Stays with me
- designing a pipeline
- reading the report before anyone else does
- deciding what gets automated next
Not measured on this page. Runs are metered per tenant inside the platform.


Where this goes
Automations live here from now on rather than scattered across separate machines, which makes them observable and, when one breaks, fixable in one place at night. The next public thing is a second report type; the next private thing is a run that starts on a schedule without anyone pressing anything.