Skip to main content
vibe-with-me-tools

agent-reachout

by vibe-with-me-tools

Installation guide →

Documentation

# Agent Reachout

Let your Claude Code message you on Telegram when it needs decisions or finishes work, even when you’re away from your desk.

<p align="center">
  <img src="assets/agent-reachout-flow.png" alt="Agent Reachout – Claude Code to Telegram flow" width="800">
</p>

> Claude Code → Agent Reachout → Telegram → Human reply → Agent continues

---

## Why?

AI agents are great at doing work, but real workflows still need **human judgment**.

In practice, agents:
- hit ambiguous decisions
- need approval before destructive actions
- finish long tasks while you’re not watching the terminal

Dashboards assume you go check them.  
**Messaging flips the model** — the agent comes to you only when needed.

Agent Reachout turns agent workflows into something asynchronous and interrupt-driven, without babysitting the CLI.

---

## What it does

- Sends notifications to Telegram when an agent:
  - finishes a task
  - hits a blocker
  - needs a decision
- Supports one-way notifications or two-way conversations
- Lets the agent pause → ask → resume
- Designed for human-in-the-loop agent workflows

Currently implemented as a **Claude Code plugin**.

---

## Why Telegram first?

This started as a **personal workflow tool**, not a team platform.

Telegram was chosen because:
- it’s already on my phone
- fast setup and low friction
- feels like a push notification, not another dashboard
- works well for solo devs and small setups

The concept is **channel-agnostic** — Telegram is just the first integration.

---

## What it’s not

- Not a workflow engine
- Not a chatbot framework
- Not a full agent orchestration system

It’s a small bridge between agents and humans.

---

## Use cases

- Approving file changes or deletions
- Answering clarification questions mid-task
- Getting notified when long-running tasks complete
- Running agents asynchronously without monitoring logs

---

## Installation

### Prerequisites

- Claude Code CLI installed
- Bun installed (https://bun.com/docs/installation)
- A Telegram account

---

### 1. Create a Telegram Bot

1. Open Telegram and search for [@BotFather](https://t.me/botfather)
2. Send `/newbot` and follow the prompts to create your bot
3. Copy the **bot token** (looks like `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`)

---

### 2. Get Your Telegram Chat ID

1. Search for [@userinfobot](https://t.me/userinfobot) on Telegram
2. Start a chat with it
3. Copy your **chat ID** (a number like `123456789`)

> **Tip:** Start a conversation with your newly created bot first by searching for it and clicking "Start".

---

### 3. Configure Environment Variables

Set the following environment variables. You can add them to your shell profile (`.zshrc`, `.bashrc`) or set them before running Claude Code:

**Shell format:**

```bash
export AGENT_REACHOUT_TELEGRAM_BOT_TOKEN=your_bot_token_here
export AGENT_REACHOUT_TELEGRAM_CHAT_ID=your_chat_id_here
```

**Or in your Claude Code settings** (`~/.claude/settings.json`):

```json
{
  "env": {
    "AGENT_REACHOUT_TELEGRAM_BOT_TOKEN": "your_bot_token_here",
    "AGENT_REACHOUT_TELEGRAM_CHAT_ID": "your_chat_id_here"
  }
}
```

<details>
<summary><strong>Environment Variables Reference</strong></summary>

| Variable | Required | Description |
|----------|----------|-------------|
| `AGENT_REACHOUT_TELEGRAM_BOT_TOKEN` | Yes | Bot token from @BotFather |
| `AGENT_REACHOUT_TELEGRAM_CHAT_ID` | Yes | Your personal chat ID from @userinfobot |
| `AGENT_REACHOUT_NOTIFY_DEFAULT_TIMEOUT_MS` | No | Timeout for waiting for responses (default: 300000ms / 5 min) |
| `AGENT_REACHOUT_CLAUDE_COMMAND` | No | Claude Code CLI command for Telegram task runner (default: `claude`) |
| `AGENT_REACHOUT_TELEGRAM_TASK_PREFIX` | No | Telegram command prefix for tasks (default: `/task`) |
| `AGENT_REACHOUT_ALLOWED_TOOLS` | No | Allowed tools for Agent SDK CLI (passed to `--allowedTools`) |
| `AGENT_REACHOUT_HISTORY_LIMIT` | No | Max number of task history entries to keep (default: 25) |

</details>

---

### 4. Install the Plugin

Run these commands in Claude Code:

```
/plugin marketplace add vibe-with-me-tools/agent-reachout
/plugin install agent-reachout@agent-reachout
```

Restart Claude Code. Done!

---

## Start tasks from Telegram (Agent SDK)

You can trigger Claude Code tasks by sending a Telegram message.
Tasks are queued and executed one at a time. The runner keeps a short in-memory
history and remembers the latest Claude session ID for `/continue`.

1. Ensure the Claude Code CLI is installed and authenticated.
2. From the `server/` directory, run:

```
bun run telegram-agent
```

3. In Telegram, send a message like:

```
/task Summarize the repo and propose next steps
```

The runner uses the Agent SDK CLI (`claude -p`) to execute the task and replies with the result.

### Telegram commands

- `/task <description>`: start a new task (queued)
- `/continue <description>`: continue the latest session
- `/resume <session_id> <description>`: resume a specific session
- `/history [count]`: show recent jobs
- `/status`: show current job + queue depth + last session + allowed tools
- `/allowed_tools <list>`: set CLI `--allowedTools` for future tasks (send empty to clear)
- `/cancel`: cancel the current job and clear the queue
- `/help`: list commands

## Roadmap

- Slack integration
- WhatsApp / Discord support
- Model-agnostic agent support
- Better conversation state handling

Feedback will shape this.

---

## Feedback & Contributions

This is early and intentionally small.

If you:
- hit similar problems
- have strong opinions on human-in-the-loop agents
- want a specific notification channel

Issues, discussions, and PRs are very welcome.

---

## Repo

https://github.com/vibe-with-me-tools/agent-reachout

---

## License

MIT