tendant

Agent Runner — Communication skill for Claude Code

Communication community

Run Claude Code, Codex, opencode and pi as autonomous agents on your Git repos: planner, iteration loop and reviewer, persistent memory, chat bots (Telegram, WeChat), schedules and a REST API.

How to install Agent Runner

This entry records only its repository, not the path inside it, so there is no exact command to give. Open tendant/agent-runner and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Agent Runner does

Run Claude Code, Codex, opencode and pi as autonomous agents on your Git repos: planner, iteration loop and reviewer, persistent memory, chat bots (Telegram, WeChat), schedules and a REST API. Every agent sandboxed as your own user — gVisor on Linux, Seatbelt on macOS — with credentials kept out.

Alternatives in Communication

  • HolaOS — Open-source agentic workspace enterprises can make their own 10.9k ★
  • Social Media Agent — 📲 An agent for sourcing, curating, and scheduling social media posts with human-in-the-loop 2.8k ★
  • Qiaomu Anything To Notebooklm — Claude Skill: Multi-source content processor for NotebookLM 1.4k ★

README

Agent Runner

Runs coding-agent CLIs ([pi](https://pi.dev), [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://github.com/openai/codex), [opencode](https://github.com/sst/opencode)) as autonomous agents against Git repositories: a planner, an iteration loop and an optional reviewer, persistent memory, chat interfaces (Telegram, Agent Stream, WeChat), scheduled tasks and a REST API.

Prerequisites

  • Go 1.25+
  • Git (repo credentials are given in chat with /secret, not on the host)
  • One agent CLI on $PATH: pi (default), claude, codex or opencode. POST /bootstrap (or /bootstrap in chat) installs a missing one. On a headless Linux server, opencode also needs xvfb (see docs/agents.md).

Quick start

One directory is one agent; all its state (logs, memory, workspaces, repo cache) lives there unless `DATA_DIR` says otherwise ([docs/agents.md](docs/agents.md)).

go build -o ~/go/bin/agent-runner ./cmd/server   # anywhere on $PATH
mkdir my-agent && cd my-agent
echo 'DEEPSEEK_API_KEY=sk-...' > .env               # a provider key; pi picks a model (AGENT_MODEL pins one)
agent-runner
curl -X POST localhost:8080/bootstrap               # installs the CLI if missing, seeds prompts, reports readiness

`AGENT_CLI=claude` needs no key when `claude login` is done on the host; any other provider is in [.env.example](.env.example).

In chat

Once a bot is connected (Telegram needs `TELEGRAM_CHAT_ID`: the one chat that controls the agent; WeChat answers `WECHAT_ALLOWED_USERS`, or the first user to message it; on agent-stream anyone in a channel can talk to the agent, but only the bot's owner and `STREAM_ADMIN_USERS` run commands, and only the owner can add the bot to a channel), `/help` shows how to start:

/secret set GITEE_TOKEN  Gitee API and git      a credential for the agent's tasks
/repo add https://@gitee.com/org/repo.git secret=GITEE_TOKEN