Skip to main content

Bot-based system to interact with Claude CLI on remote machines

Project description

Codecast

Codecast

Control Claude CLI on remote machines from Discord & Telegram

PyPI CI License Python


Send a message in Discord or Telegram. It reaches Claude CLI on your GPU server, your cloud VM, or any machine with SSH access — and streams the response back in real time.

Why Codecast?

Problem Solution
Claude CLI only runs locally Run it on any remote machine via SSH
Lose context when you close the terminal Sessions persist — detach and resume anytime
Can't use Claude on mobile Chat through Discord or Telegram from any device
Managing multiple dev machines is tedious One bot, many machines — switch with a command

Architecture

  You (Discord / Telegram)
        │
        ▼
  ┌──────────────┐
  │  Head Node   │  ← Your laptop or a small always-on server
  │  (Python)    │     Runs the chat bot
  └──────┬───────┘
         │ SSH tunnel (encrypted)
         ▼
  ┌──────────────┐
  │   Daemon     │  ← Your GPU box / cloud VM / any Linux server
  │   (Rust)     │     Manages Claude CLI processes
  └──────┬───────┘
         │ stdin/stdout
         ▼
  ┌──────────────┐
  │  Claude CLI  │  ← Long-lived process, keeps full context
  └──────────────┘

Quick Start

Prerequisites: Python 3.11+, Rust/cargo, SSH access to a remote machine with Claude CLI installed.

Install:

pip install codecast

Or one-line from source:

curl -fsSL https://raw.githubusercontent.com/Chivier/codecast/main/scripts/install.sh | bash

Configure:

cp config.example.yaml ~/.codecast/config.yaml
$EDITOR ~/.codecast/config.yaml   # add machines + bot token

Run:

codecast

Then open Discord or Telegram and type /start my-server ~/projects/myapp.

Key Features

  • Persistent sessions — Claude CLI runs as a long-lived process; context survives across messages
  • SSH tunnels — daemon binds to localhost only, never exposed to the internet
  • Detach & resume/exit keeps the session alive, /resume picks it back up
  • Multiple machines — connect any number of servers, switch between them
  • Permission modesauto (full autonomy), code (auto-edit files), plan (read-only), ask (confirm everything)
  • Real-time streaming — responses stream back via SSE as Claude types
  • Mobile-friendly — works from any device with Discord or Telegram

Commands

Command What it does
/start <machine> <path> Start a new Claude session
/resume <name> Resume a detached session
/new New session, same directory
/clear Fresh context, same directory
/exit Detach (process keeps running)
/ls machine List machines
/ls session List sessions
/mode <auto|code|plan|ask> Switch permission mode
/status Current session info
/health Daemon health check

See Commands Reference for the full list.

Documentation

Guide Description
Getting Started Installation, first session walkthrough
Adding a Discord Bot Create a Discord Application step by step
Adding a Telegram Bot Create a Telegram bot via BotFather
Adding a Server SSH config, jump hosts, password auth
Commands Reference Every command with examples

Configuration

Config files are searched in order:

  1. CLI argument: codecast /path/to/config.yaml
  2. ~/.codecast/config.yaml
  3. ./config.yaml (dev fallback)

Requirements

  • Python 3.11+ — head node
  • Rust/cargo — daemon binary is compiled during pip install codecast (rustup.rs)
  • SSH access — to remote machine(s) with Claude CLI installed
  • Bot token — Discord and/or Telegram

License

MIT

Project details


Download files

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

Source Distribution

codecast-0.2.6.tar.gz (81.9 kB view details)

Uploaded Source

File details

Details for the file codecast-0.2.6.tar.gz.

File metadata

  • Download URL: codecast-0.2.6.tar.gz
  • Upload date:
  • Size: 81.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for codecast-0.2.6.tar.gz
Algorithm Hash digest
SHA256 dc57cf62736356cee5f1863b7e11b0a12c9a21f53d246c6544dfafdce7fad0e9
MD5 7fa2da7b8e158dfab36b1a7b41c6e8a8
BLAKE2b-256 6a4ce622f3cabab303e93ed4a0b3190160b63c8797eeae8328115ae4f64e8915

See more details on using hashes here.

Provenance

The following attestation bundles were made for codecast-0.2.6.tar.gz:

Publisher: release.yml on Chivier/codecast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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