Skip to content

Releases: DmacMcgreg/psibot

v0.3.0 — Inline Keyboards & Mini App

13 Feb 03:51

Choose a tag to compare

What's New

Telegram Inline Keyboards

Transform the bot from command-driven to tap-to-act. Every response and listing now includes interactive buttons:

  • Agent responses[Regenerate] [Continue] [Switch Model] buttons on every reply
  • Session management[Resume] [Fork] buttons per session in /sessions
  • Job management[Run] [Pause] [Enable/Disable] [Delete] buttons per job in /jobs
  • Model picker — Tap Switch Model for [Opus] [Sonnet] [Haiku] quick selection
  • Delete confirmation[Yes, delete] [Cancel] safety prompt before removing jobs
  • 12 callback actions with compact action:payload encoding (fits Telegram's 64-byte limit)
  • Shared ChatState class between commands and callback handler for consistent state

Telegram Mini App Dashboard

Embedded mobile dashboard accessible via the "Dashboard" menu button in Telegram:

  • Chat — Full agent chat with SSE-streamed responses, themed message bubbles
  • Jobs — View, trigger, pause, toggle, and delete scheduled jobs
  • Memory — Browse and search agent memory entries
  • Sessions — Combined mini-app and Telegram session history with tap-to-resume
  • Native Telegram theming via --tg-theme-* CSS variables (auto light/dark)
  • HMAC-SHA256 initData authentication for API routes per Telegram spec
  • Mounted at /tma, exempted from IP allowlist, secured by Telegram auth

Agent Reliability

  • Agent now always provides a final response when hitting turn or budget limits instead of silently stopping
  • Stop reason tracking (end_turn, max_turns, budget_exceeded, stale_timeout) shown in run metadata

Files Changed

19 files changed, 1,352 insertions, 51 deletions

Full Changelog: v0.2.0...v0.3.0

v0.2.0 - Job Pausing, Model Selection & YouTube Improvements

11 Feb 00:30

Choose a tag to compare

What's New

Job Pause/Resume

  • Pause until a date/time — job stays scheduled but executor skips runs until the datetime passes, then auto-clears
  • Skip N runs — job skips the next N scheduled executions, decrementing each tick, then auto-resumes
  • Both modes can be combined; manual triggers (job_trigger) always bypass pause conditions
  • New job_pause and job_resume MCP tools for Telegram control
  • Web UI: inline pause form, amber status badges, and resume button

Per-Job Model Selection

  • Jobs can now specify a Claude model (e.g. claude-sonnet-4-5-20250929) instead of always using the default
  • Supported across MCP tools (job_create, job_update, job_get), web UI, and executor
  • YouTube Watchlist Processor job seeded with explicit Sonnet model

YouTube Pipeline Improvements

  • Real-time progress notifications via Telegram during playlist processing
  • Per-video status details ([NEW], [SKIP], [MOVE], [FAIL]) in processing results
  • Model passthrough for transcript analysis (configurable via YOUTUBE_ANALYSIS_MODEL)
  • Reduced retry limit to prevent re-processing stuck videos
  • New scripts/audit-playlists.ts for database synchronization audits

Agent Infrastructure

  • model override support in AgentRunOptions — queries can now specify a model per-run
  • Keep-alive callback resets the stale timer during long-running tool calls (e.g. YouTube processing)

Files Changed

17 files changed, 411 insertions, 36 deletions

Full Changelog: v0.1.0...v0.2.0

v0.1.0 - Initial Release

10 Feb 22:30

Choose a tag to compare

psibot v0.1.0

Personal AI assistant: Telegram bot + web dashboard, powered by Claude Agent SDK.

Core

  • Telegram bot with grammy - command handlers, voice messages, photo handling, auth middleware
  • Web dashboard with Hono + HTMX - SSE-based agent chat streaming, job/memory/log viewers
  • Claude Agent SDK integration with MCP servers and subagent spawning
  • SQLite database with WAL mode, FTS search, and session tracking

Agent Capabilities

  • MCP tool servers: memory, knowledge, browser automation, job scheduling, Telegram media, git worktrees
  • Media tools: Gemini image generation/editing, Edge TTS (text-to-speech), mlx-audio STT (speech-to-text)
  • Subagents: image-generator, audio-processor, coder, researcher - each with specialized models
  • YouTube processing: video transcript extraction, structured analysis, vector embeddings for semantic search, playlist batch processing via OAuth

Infrastructure

  • macOS daemon via LaunchAgent with CLI management (psibot install/start/stop/restart/status/logs)
  • Heartbeat system: periodic maintenance cron with quiet hours and budget limits
  • Job scheduler: croner-based cron and one-off scheduled tasks with budget controls
  • Webhook mode: Telegram webhooks via Tailscale Funnel
  • Session management: resume/fork sessions, session hashing for message stats

User Experience

  • Setup/uninstall scripts (scripts/setup.sh, scripts/uninstall.sh) for automated first-time installation from a fresh clone