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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skatebot-0.1.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skatebot-0.1.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file skatebot-0.1.0.tar.gz.

File metadata

  • Download URL: skatebot-0.1.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for skatebot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0707d99f544f0493e6ccd8168f9dafedaf42741a8454e5406ed8c10f07de416a
MD5 eb26e106f4d600487db9ff72870403a2
BLAKE2b-256 cdcc18d7fbf9dfe9e9f458521638a1cbc7a44f21c4a0b69a7da8726b9c772afa

See more details on using hashes here.

File details

Details for the file skatebot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: skatebot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for skatebot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 22a1068459874df89eeae5a2da2d88efc90dcb18235bcf919c939c03f22eebdc
MD5 afa68d2eece04f0a0d3a135bd979a7f3
BLAKE2b-256 2030ca11bccfe7517d7fcbb43ca382b66d22cc59889809b704c73933c2e97468

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page