New The complete Clem stack: orchestration, memory, communication, issue tracking, and operations Explore the architecture  →
Agent orchestrator and bootstrapper

Turn CLI agents into a working team.

Clem turns the CLI agents you choose into an owner-directed team. Assign work through Discord, Slack, or GitHub, preserve context with ZestMem, coordinate agents with AgentBus, and supervise the fleet from your own Linux host.

You assign the issues and keep the judgment. Agents persist on assigned work and report what happened.

Open source · Go · MIT licensed · Runs on Linux with systemd

Works withsystemdGitHubDiscordSlackMCPSOPSOllama
The Clem stack

One stack for running a CLI agent team.

Clem runs the team and tracks its work through Discord, Slack, or GitHub. AgentBus carries agent-to-agent messages, ZestMem preserves operator-curated durable memory, and MCP servers connect agents to configured tools and services.

flowchart LR
  owner["Owner
priorities, roles, approvals"] issues["Clem issue tracking
Work surfaces: Discord · Slack · GitHub"] subgraph core["Clem core"] direction TB orchestrator["Agent orchestrator
schedule · lifecycle · supervise · coordinate"] bootstrapper["Agent bootstrapper
OS users · identity · config · CLI runtimes"] enablement["Agent environment
prompts · skills · best practices
context compression · output compression"] operations["Fleet supervision
schedules · watchdog · logs · terminals
runtime usage signals"] security["Security and isolation
vault and credential brokering · egress
permissions · resource limits"] agents["CLI agent team
Claude Code · Codex · other CLIs"] orchestrator --> bootstrapper bootstrapper --> agents orchestrator --> operations bootstrapper --> security enablement -. "installs configuration" .-> agents operations -. "starts and supervises" .-> agents security -. "confines and protects" .-> agents end subgraph companions["Companion services"] agentbus["AgentBus
agent communication bus"] zestmem["ZestMem
durable agent memory"] end mcp["MCP servers and sidecars
tools · data · internal services"] systems["Repositories and systems
GitHub · browsers · APIs · databases"] owner -->|"defines the team"| orchestrator owner <-->|"assigns and reviews"| issues issues <-->|"claim · update · complete"| agents agents <-->|"messages"| agentbus agents <-->|"recall · remember"| zestmem agents <-->|"tool calls"| mcp mcp <-->|"scoped access"| systems classDef person fill:#C2532B,color:#fff,stroke:#A8431F,stroke-width:2px classDef coreNode fill:#F6F0E2,color:#1E1B17,stroke:#C2532B,stroke-width:2px classDef companion fill:#E2D5B8,color:#1E1B17,stroke:#3B5A3A,stroke-width:2px classDef external fill:#fffaf0,color:#1E1B17,stroke:#655d4d,stroke-width:1.5px class owner person class orchestrator,bootstrapper,enablement,operations,security,agents coreNode class agentbus,zestmem companion class issues,mcp,systems external

AgentBus and ZestMem are optional, independently deployable companion services. Clem uses GitHub, Discord, or Slack as the human-facing work surface.

Start here

From assigned issue to reviewed artifact.

On the schedule you set, each agent checks its assigned issues, continues one item, verifies its work, and reports progress. When no assigned work is ready, it waits.

“Assigned work stays visible from claim to handoff.”
One turn around the loop

One scheduled iteration, start to finish.

1

Checks assigned issues

Reads the configured work surface and operator corrections.

2

Continues one item

Resumes an active issue or claims one assigned to its role.

3

Implements

Produces one concrete artifact without opening unrelated work.

4

Verifies

Runs the relevant tests and checks the result.

5

Reports status

Opens or updates the pull request and reports to the team.

6

Waits

Ends the iteration and waits for the next scheduled run.

Each iteration advances owner-assigned work or waits when nothing is ready.

Under the skin

Built from inspectable Linux services.

Each agent runs in a systemd-managed tmux session, with Clem generating and supervising the surrounding configuration for your chosen CLI agent.

systemd → tmux → runner loop → CLI agent

A single Clem configuration defines agents, roles, runtimes, schedules, and integrations. Inspect the generated services, attach to an agent's tmux session, or read its logs from the host.

clem.yaml
# one configuration defines the team
project: myteam            # OS user prefix → myteam-lead

coordination:
  backend: discord         # or: slack | github
  server_id: "${DISCORD_SERVER_ID}"

# route contained agents through the configured proxy
egress:
  enabled: true
  domains: ["api.openai.com", "*.anthropic.com", "github.com"]

agents:
  lead:
    name: Atlas
    role: Lead Software Engineer
    runtime: codex
    model: gpt-5.4
    effort: high
    iteration: 10m
  worker:
    name: Scout
    role: Software Engineer
    runtime: claude-code
    model: claude-sonnet-4-6
    effort: medium
    iteration: 5m
What you get

A complete operating layer for CLI agents.

Agents run as inspectable services on infrastructure you control. Clem itself does not require a hosted control plane; agents still connect to the model providers and services you configure.

Per-agent OS identity

Each agent has its own Linux user, home directory, Git identity, runtime credentials, and work-surface identity. Optional resource limits reduce cross-agent interference.

Kernel egress containment

When containment is enabled, per-user nftables rules route agent traffic through the configured proxy. The rules run outside the agent user's permissions.

Secret-zero broker

Agents hold placeholders. A separate user injects the real credential on egress, so the secret never lands in the agent. Choose either egress containment or brokering for each agent, not both.

Privileged MCP sidecars

Secret-holding tools run as another user behind a loopback MCP endpoint, so the agent does not need the credential.

Watchdog recovery

A systemd watchdog restarts agents that exit or stop making progress. Alerts fire after repeated failures.

Issue tracking where you work

Clem tracks assigned agent work through Discord, Slack, or GitHub. Agents claim issues, report status, and record completion on the configured surface.

No hosted Clem control plane

Clem runs on the host you control. Agents connect to the model providers, work surfaces, MCP servers, and other services you configure.

Runs on supported Linux hosts

Run Clem on an x86-64 or arm64 Linux host with systemd, from a spare machine to a VPS.

Owner-directed, continuously supervised

Configure the boundaries. Inspect the result.

Treat every agent as an untrusted workload. It may need credentials and network access, but it should receive only the access required for its assigned role.

Clem provides opt-in controls outside the agent user. Credential brokering keeps configured HTTP secrets under a separate user; egress containment routes traffic through the configured allowlisting proxy. The threat model documents the guarantees and non-goals.

“Agents execute within configured boundaries. Operators retain sensitive decisions.”

Set the boundaries

Configure per-agent egress, permissions, credentials, and resource limits.

Reserve sensitive actions

Team instructions should reserve money, customer, production, and other sensitive decisions for an operator.

Inspect the fleet

Read service logs, agent output, current status, and repeated-failure alerts from the host.

In production

Clem runs the consultant.dev engineering team.

At consultant.dev, Clem agents work assigned engineering issues and report through Discord. Each runs as a separate OS user, with optional credential brokering and egress containment.

The coordination channel is a representative rendering, not a live screenshot. Agent names and messages vary by team.

Good questions

The things people actually ask.

Why not just run a CLI agent in a container?

A container provides a process boundary, but it does not provision agent identity, issue tracking, scheduled iteration, watchdog recovery, skills, or runtime-specific configuration. When enabled, Clem also adds per-user egress controls or credential brokering outside the agent user.

Which CLI runtimes does Clem support?

Clem supports Claude Code, Codex, and OpenCode. Each agent can use its own runtime, model, provider, effort level, credentials, and schedule.

What do I need to run a fleet?

Any Linux host with systemd, a supported CLI runtime with its required credentials, and a configured Discord, Slack, or GitHub work surface.

Which provider terms apply?

Provider terms differ by runtime, credential type, account, and usage pattern. Review the terms for every CLI and account you configure, especially for scheduled or multi-agent use. Clem does not make compliance claims for a provider or plan.

What can a compromised agent reach?

Without opt-in controls, an agent has access to its own files and the host's normal network path. With credential brokering, configured secrets remain under a separate user. With egress containment, per-user rules restrict traffic through the configured proxy. The agent still holds its model credential and any explicitly unbrokered secrets. The threat model lists the guarantees and non-goals.

How do I give the agents work?

Assign an issue through the configured Discord, Slack, or GitHub surface. The agent claims it, works it across scheduled iterations, reports status, and records completion or a blocker.

Is it really free?

Yes. Clem is open source under the MIT license. There is no Clem account or seat pricing. You provide the host, runtime, model access, and any companion services. A local model avoids a per-token provider bill but still uses your hardware.

How do I control model usage?

Set active and overnight iteration schedules, choose the model and effort level per agent, use cheaper subagent models where supported, and monitor usage through the configured runtime. Clem does not impose a provider budget ceiling.

Don't I still have to review everything they produce?

Yes. Agents produce artifacts and report status; your team reviews and approves the result. Team instructions should reserve sensitive actions for an operator, and technical controls should enforce boundaries where possible.

Get started

Install Clem.

A single configuration defines agents, roles, runtimes, schedules, and integrations. Free and open source under the MIT license.

install
# install clem (Linux x86-64)
$ base=https://github.com/jahwag/clem/releases/latest/download
$ sudo curl -fsSL $base/clem_linux_amd64 -o /usr/local/bin/clem
$ sudo chmod +x /usr/local/bin/clem
# arm64: swap clem_linux_amd64 -> clem_linux_arm64
$ clem --version

Want to verify first? Every release ships a checksums.txt and an SBOM, or read the source and build it yourself.

Owner-directed agent teams, running on your infrastructure.

scroll