Incident response, on an alert
When Uptime Kuma flags the site as down, an agent wakes, works out what broke across the container, VM, and proxy, and waits for your approval before it runs the fix.
Gleipnir is the self-hosted harness for your AI agents: they wake on the events you choose, act only within the hard limits you set, and leave a fine-grained record of everything they touch. That's trustworthy enough to close the laptop and actually take the vacation.
You can't prompt an agent into behaving. Give it a goal and room to reason, and it will reason its way around any rule you wrote in plain English. So Gleipnir puts the boundary outside the agent, in the runtime where it can't be argued with, and the agent reaches only what you grant.
Because Gleipnir runs on your own hardware with the source open to read, none of that is something you take on faith. Everything it does is on the record: every action it takes, and the reasoning behind it, kept for you to read back. Trust, but verify. Gleipnir is built so you can do both.
A Gleipnir agent runs on its own. Wire it to whatever should set it off: a webhook, a cron schedule, or a polling check against a source you choose. The trigger fires, the agent wakes, does the work, and goes idle until the next one. No prompt to write, no one to kick it off.
An agent's tools are fixed when you declare it, and they are the whole of what it can reach. It cannot widen that reach by reasoning, by persuasion, or by any clever turn, because the limit is held by the harness, not written into a prompt. When a single call should answer to a person, you put approval in front of that tool call, and the agent goes no further until you sign off. Like the limit itself, the gate lives outside the agent, where nothing it does can get around it.
The record starts the moment something wakes the agent and follows the whole run: the trigger that set it off, every thought along the way, every tool call it makes, in the order it happened. Nothing is summarized, nothing is dropped. The log is append-only, so the history only ever grows and the agent can't go back and revise what it already did. When you want to know why it made a call, the answer is the trace itself, step by step.
Three agents, three triggers. Each is a real playbook you can run today.
When Uptime Kuma flags the site as down, an agent wakes, works out what broke across the container, VM, and proxy, and waits for your approval before it runs the fix.
On a schedule it reads your calendar for free evenings, picks recipes from your Mealie library without repeats, and writes the plan. If a dietary constraint is unclear, it stops and asks.
Every few minutes it picks up the tasks you tagged for research, searches the web, and posts the findings as a comment. It can comment and untag, nothing else.
Anthropic, OpenAI, and Google work out of the box, and any OpenAI-compatible endpoint does too, including local models, so you can keep inference on your own hardware. You bring the key; Gleipnir stores it encrypted.
One file. One command. The runtime is up on localhost:8080.
services:
api:
image: felagengineering/gleipnir:latest
ports:
- "8080:8080"
environment:
- GLEIPNIR_ENCRYPTION_KEY=${GLEIPNIR_ENCRYPTION_KEY:?required}
volumes:
- gleipnir_data:/data
restart: unless-stopped
volumes:
gleipnir_data:
Source-available under the Business Source License 1.1. Free for non-commercial use: personal projects, education, evaluation, and home labs. Every release converts to Apache 2.0 after two years.
The core runtime will always be free for personal use, and the source will always be open to read, fork, and run. If you run Gleipnir for yourself and not for profit, you never need permission and you never get a bill. That won't change with our next funding round or pricing page.