https://github.com/eunmin/haskclaw
Telegram ↔ Claude Code bridge bot in Haskell, with per-chat isolation and a cron scheduler (MCP).
https://github.com/eunmin/haskclaw
anthropic claude-code claw cron haskell mcp model-context-protocol scheduler telegram-bot
Last synced: about 2 months ago
JSON representation
Telegram ↔ Claude Code bridge bot in Haskell, with per-chat isolation and a cron scheduler (MCP).
- Host: GitHub
- URL: https://github.com/eunmin/haskclaw
- Owner: eunmin
- License: mit
- Created: 2026-04-20T06:35:37.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-21T07:14:51.000Z (about 2 months ago)
- Last Synced: 2026-04-21T07:31:11.782Z (about 2 months ago)
- Topics: anthropic, claude-code, claw, cron, haskell, mcp, model-context-protocol, scheduler, telegram-bot
- Language: Haskell
- Homepage:
- Size: 42 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# haskclaw
Telegram ↔ Claude Code bridge bot with per-chat isolation and a cron scheduler.
## Features
- Long-polling Telegram bot
- Per-chat working directory under `~/.haskclaw/chats//`
- Session resume via `claude -p --resume`
- Scheduler MCP server (`schedule_task`, `list_tasks`, `cancel_task`, ...) — register recurring tasks in natural language
## Requirements
- [Stack](https://haskellstack.org)
- [Claude Code CLI](https://docs.claude.com/en/docs/claude-code) on `PATH`
- A Telegram bot token ([@BotFather](https://t.me/BotFather))
## Build & Run
```sh
stack build
TELEGRAM_BOT_TOKEN=xxx stack exec haskclaw-exe
```
## CLI Options
Pass flags after `--` when running through `stack exec`:
```sh
stack exec haskclaw-exe -- --help
```
| Option | Description |
| --- | --- |
| `-h`, `--help` | Show the help message and exit. |
| `--all`, `--all-messages` | Dispatch every message in group chats. Default behavior is to forward only messages that mention the bot or reply to one of its messages. |
| `--dangerously-skip-permissions` | Forward this flag to the underlying `claude` subprocess so it skips its permission prompts. |
| Environment Variable | Description |
| --- | --- |
| `TELEGRAM_BOT_TOKEN` | Required. Telegram Bot API token from [@BotFather](https://t.me/BotFather). |
## Layout
```
~/.haskclaw/
├── CLAUDE.md # shared instructions (auto-seeded)
├── state.json # chat → session id
└── chats//
├── .mcp.json # haskclaw MCP server registration
├── .claude/settings.json
├── schedules.json # scheduled tasks
└── bot.log
```
## Example
Send to the bot in Telegram:
> "Every morning at 8am, give me the weather."
Claude registers a cron task; the bot delivers the response each tick.
## License
MIT.