Skip to main content

skate 🛼

Launch an AI-agent bot on a chat channel by answering three questions:

choices
agent Claude Code (MVP) · Codex · Gemini · GitHub Copilot
channel Telegram (MVP) · Slack · Discord (later)
compute Existing VPS / Hetzner (MVP) · provisioned AWS/GCP/Fly (later)

skate is a thin launcher, not a framework. It deploys a small long-poll gateway that bridges the channel to the agent's headless CLI, runs it under systemd, and gets out of the way. Architecture reverse-engineered from openClaw & Hermes — see PLAN.md.

How it works

operator machine                         target VPS (systemd service)
  skate up  ──SSH/rsync──▶  agent CLI (claude) + OAuth creds
                            gateway daemon  ── long-poll ──▶ api.telegram.org
                              ├─ allowlist gate (numeric user IDs)
                              ├─ per-chat session (sqlite + claude --resume)
                              └─ each turn: claude -p --output-format json

Long-polling means no public URL, no inbound ports, no TLS — the bot dials out, so it runs on any box with outbound HTTPS.

Quick start (MVP: Claude Code + Telegram + existing VPS)

  1. Create a bot with @BotFather → /newbot → copy the token.
  2. Get your numeric user ID from @userinfobot.
  3. Deploy:
pip install -e .
skate up \
  --name yann-bot \
  --agent claude --auth oauth \
  --host <vps-ip> --ssh-key ~/.ssh/id_ed25519 \
  --allow 8581449495 \
  --save specs/yann-bot.json
# (prompts for the BotFather token; or pass --token / $TELEGRAM_BOT_TOKEN)

Then message your bot. Manage it:

skate status --spec specs/yann-bot.json
skate logs   --spec specs/yann-bot.json
skate down   --spec specs/yann-bot.json

Test the gateway locally (no VPS)

skate run-local --spec specs/yann-bot.json --token <bot-token>

Auth (OAuth, MVP)

For Claude Code the launcher copies your local ~/.claude/.credentials.json to the target (so the box you run skate up from must be logged in: claude setup-token). API-key auth (--auth api-key) is planned.

Bot commands

/start · /help · /new (reset conversation) · /status. Anything else is sent to the agent.

Status

MVP scaffold. Working: spec model, Telegram long-poll gateway, Claude Code adapter, existing-VPS deploy (rsync + systemd), local run. Planned: codex/gemini/copilot adapters, Hetzner/AWS/GCP/Fly provisioning, Slack/Discord channels, voice/image.

Metadata

Release files for skatebot 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skatebot 0.1.0
File Size Uploaded
skatebot-0.1.0.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skatebot 0.1.0
File Interpreter ABI Platform
skatebot-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.1 kB

Release files / skatebot-0.1.0.tar.gz

Download URL skatebot-0.1.0.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0707d99f544f0493e6ccd8168f9dafedaf42741a8454e5406ed8c10f07de416a
BLAKE2b-256 checksum
How to use checksums
cdcc18d7fbf9dfe9e9f458521638a1cbc7a44f21c4a0b69a7da8726b9c772afa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / skatebot-0.1.0-py3-none-any.whl

Download URL skatebot-0.1.0-py3-none-any.whl
Size 16.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22a1068459874df89eeae5a2da2d88efc90dcb18235bcf919c939c03f22eebdc
BLAKE2b-256 checksum
How to use checksums
2030ca11bccfe7517d7fcbb43ca382b66d22cc59889809b704c73933c2e97468
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page