Gleipnir
runtime Self-hosted AI agent runtime

Automate the toil, enforce the limits.

Gleipnir Runtime runs AI agents on your own servers. They wake on your alerts, webhooks and schedules, use only the tools you grant, wait for a person before any action you mark, and log every step.

A tool it can’t see is a tool it can’t call.

In the Runtime web UI, grant each agent tools from any MCP server (the open standard most agent tools ship as), mark which ones need a person’s sign-off, and cap its tool calls and tokens per run. Tools you don’t grant never enter the agent’s context. A rule in a prompt can be argued around; a missing tool can’t.

ops-agent · tools in context 3 granted
  • docker.list_containers
  • prometheus.query
  • docker.restart_container approval required
  • limits50 tool calls · 20,000 tokens per run
Never offered
  • docker.exec
  • docker.remove_container
  • shell.run
agent question Awaiting Feedback
reason
Two nginx containers on web-01. Which one should I restart?
context
nginx: up 41 days, unhealthy · nginx-old: exited 3 weeks ago

When it’s unsure, it can ask.

Turn on feedback and the agent gets one extra tool: ask a person. The run pauses on its question, someone answers in plain language from Runtime or Slack, and the agent carries on with that answer. Asking is the agent’s call; anything you’ve marked for approval is held either way. No reply in time, and the run stops.

Risky actions wait for a person.

Mark a tool as needing human approval and the runtime holds every call to it until someone approves or denies it, in Runtime or right from Slack. No answer in time counts as a no. The agent can’t route around the gate.

docker.restart_container Awaiting Approval
agent
ops-agent
args
{ "container": "nginx" }
sent to
Runtime · slack #ops
run 01K6ZQ8X… · webhook Complete
  1. 0 capability_snapshot 3 tools granted
  2. 1 thought nginx is down on web-01; list containers first
  3. 2 tool_call docker.list_containers
  4. 3 tool_result nginx (unhealthy), nginx-old (exited)
  5. 4 feedback_request Which nginx should I restart?
  6. 5 feedback_response Restart nginx. Leave nginx-old alone.
  7. 6 approval_request docker.restart_container nginx · approved
  8. 7 tool_result nginx restarted
  9. 8 complete 1m 42s

Read back exactly what it did, and why.

Runtime keeps a record of each run: what triggered it, the tools the agent was granted, its reasoning as the model reports it, and every tool call, result and approval decision. The agent can’t edit it. Auditors can read every run but can’t act on one.

Install on your server. Bring your own model.

One Compose file and one command. Nothing calls home: Runtime talks only to the model and tools you configure, and with a local model and local tools it runs fully offline. Install it yourself, or we’ll walk you through it.

docker-compose.yml
services:  api:    image: docker.io/felagengineering/gleipnir:latest    ports: ["8080:8080"]    environment:      - GLEIPNIR_ENCRYPTION_KEY=${GLEIPNIR_ENCRYPTION_KEY:?}      - GLEIPNIR_PLUGINS_DIR=/plugins    volumes:      - gleipnir_data:/data      - gleipnir_plugins:/plugins    restart: unless-stoppedvolumes:  gleipnir_data:  gleipnir_plugins:
[ -f .env ] || echo "GLEIPNIR_ENCRYPTION_KEY=$(openssl rand -hex 32)" > .env; docker compose up -d
models
Anthropic, OpenAI, Google, or any OpenAI-compatible endpoint, including local
keys
yours, encrypted at rest (AES-256-GCM)
encryption key
in .env; back it up, it can’t be recovered
telemetry
none
offline
yes, with a local model and local tools
license
source-available (BUSL-1.1)
Install guide

FAQ

Can the agent get around its limits?
No. Grants, approvals and per-run caps are checked by Runtime on every call, not by the model.
Who can approve?
Approvers and admins, in Runtime or from Slack. The operators who build agents can’t approve their actions, and auditors can read every run but can’t act. No answer in time counts as a no.
Can my company use it?
Gleipnir is source-available. The community edition is free for home use and education. Anyone who makes money with it, company or individual, needs a commercial license. Runtime is $250 a month per production install, with staging and development included; see the pricing page. Evaluation licenses for testing are free, and design partners use it free for three months.
What does a design partner get that a self-install doesn’t?
A guided install on a call, a direct line to the engineers, a say in what we build next, and three months free. We never need access to your systems.
Design partners

Run Gleipnir Runtime, Relay, or both, free for three months.

You get
Runtime and Relay free for three months, direct access to the engineering team, and a say in the roadmap.
We ask
Run it on your own work and join a call every other week to tell us what you’ve seen.
How long
Three months free. Then early-adopter pricing (40% off) locked in for 24 months, or walk away and give up the lock-in.