Looped AFAlpha

The open source framework for building agents.

Build contained, event-driven AI agents. Define your agent in a single config file, run it in a container and deploy it anywhere.

Open-source · Docker-native

agent.yaml
handle: issue-bot
triggers: [discord]
skills: [gh-issues]
permissions:
net: [api.github.com]
memory:
scope: thread

waiting on triggers…

defineshiprun

How it works

An agent is a file.

agent.yaml01 / 07
1handle: issue-bot
2description: Turns team Discord messages into GitHub issues.
3purpose: |
4 You turn Discord messages into well-formed
5 GitHub issues in myorg/myrepo, using the gh CLI.
6 Reply with the issue link. If a message isn't an
7 issue report or feature request, say so briefly
8 instead of inventing one.
10model:
11 provider: openai-compatible
12 id: gpt-5.4-mini
14triggers:
15 - type: discord
16 channels: ["issues"]
18skills:
19 - ./skills/gh-issues.md
21permissions:
22 net: [api.github.com, discord.com, gateway.discord.gg]
23 run: [gh]
25env:
26 GITHUB_TOKEN: ${GITHUB_TOKEN}
28memory:
29 scope: thread
30 persistent: true

01Start with a purpose

Write a description in plain language of what your agents main job is.

Triggers & capabilities

Wire it into the tools your team already lives in.

Agents wake on the events you already produce — a webhook, a schedule, a message — and act through skills, tools, and tightly-scoped permissions.

Discord

Discord

Slack

Slack

Telegram

Telegram

Webhook

Cron

Skills

Tools / MCP

Memory

agent.yaml

One file defines your agent

Need a different trigger or integration?

The framework is open-source — open a PR on GitHub and wire in your own.

Open a PR on GitHub →

Security

Locked down, in nested layers.

An unattended agent has no one to ask “may I run this?” — so the answer is written down before it starts. Allowlists in the file, checked at three boundaries: the permission engine, the Deno runtime, and the container as the outer wall.

  • Allowlists for net, run, read, and write — deny by default
  • Every allow and deny logged to an audit trail
  • Permissions change like code — file edit, review, redeploy
container
deno runtime
permission engine

agent

net api.looped.shnet evil.dev · blocked
issue-botvps-01
ghcr.io/loopedautomation/agent
standup-bothomelab
ghcr.io/loopedautomation/agent
invoice-chasercloud
ghcr.io/loopedautomation/agent

Just use our image

$ docker pull ghcr.io/loopedautomation/agent:latest

Or use it as a base and build your own

FROM ghcr.io/loopedautomation/agent:latest
RUN apk add --no-cache github-cli
COPY agent.yaml /agent/agent.yaml

Deployment

Runs anywhere.

Because every agent is a single container, you manage a fleet with the tools you already know — Docker, Compose, and whatever orchestrator you like. VPS, homelab, or cloud, it runs the same.

  • docker run for one, docker compose for a fleet
  • Runs on any VPS, homelab box, or cloud platform
  • Fleet management through the container ecosystem you know
  • Reproducible — the agent is the file plus the image

Once deployed

Agents are working.

Once deployed, each agent waits on its triggers and acts on its own — filing issues, running standups, paging on-call. You watch the stream; it does the work.

Live · Agent activity

app.looped.sh / activity
issue-bot filed a GitHub issue
standup-bot posted the daily standup
deploy-bot acked a push to main
triage-bot labelled 3 new tickets
alert-bot paged the on-call engineer
alert-bot paged the on-call engineer

Every run is logged, permission-scoped, and reproducible from the agent file.

Open-source · Docker-native

Build your first agent today.

Talk to a human

Got something the agents can't handle yet?