{"id":49693468,"url":"https://github.com/cjus/solrac","last_synced_at":"2026-05-15T04:01:54.003Z","repository":{"id":356369195,"uuid":"1232156289","full_name":"cjus/solrac","owner":"cjus","description":"Self-hosted Claude-Code-style Agent over Telegram (Bun runtime)","archived":false,"fork":false,"pushed_at":"2026-05-10T21:59:36.000Z","size":2016,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T23:23:17.293Z","etag":null,"topics":["agent","anthropic","bun","claude","claude-agent-sdk","claude-code","coding-agent","self-hosted","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cjus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-07T16:38:01.000Z","updated_at":"2026-05-10T21:59:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cjus/solrac","commit_stats":null,"previous_names":["cjus/solrac"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/cjus/solrac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjus%2Fsolrac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjus%2Fsolrac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjus%2Fsolrac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjus%2Fsolrac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjus","download_url":"https://codeload.github.com/cjus/solrac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjus%2Fsolrac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33053144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","anthropic","bun","claude","claude-agent-sdk","claude-code","coding-agent","self-hosted","telegram","telegram-bot"],"created_at":"2026-05-07T20:01:00.072Z","updated_at":"2026-05-15T04:01:53.998Z","avatar_url":"https://github.com/cjus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solrac\n\n\u003e A self-hosted, hackable personal Agent: free local Ollama by default, Claude Sonnet/Opus on demand via Anthropic's Claude Agent SDK. Reach it from Telegram or a browser; own every audit row, permission rule, and budget cap.\n\n\u003cimage src=\"./docs/solrac.png\" width=\"300px\" /\u003e\n\n## Why Solrac\n\nSolrac is a single-process Bun agent that bridges Telegram (and an optional browser UI) to a local Ollama model, escalating to Claude Sonnet or Opus only when you explicitly ask. It was built as part of [PNXStudios.com](https://pnxstudios.com) to manage a complex monorepo from anywhere — and, in doing so, to explore the mechanics of building a personal agent from first principles while enforcing hard cost controls and behavior auditing on every turn.\n\nIt's deliberately smaller and narrower than other personal-assistant projects:\n\n- **[OpenClaw](https://github.com/openclaw/openclaw)** — Node/TypeScript \"Gateway\" daemon with macOS/iOS/Android companion apps, Voice Wake, Live Canvas, and ~25 inbound channels.\n- **[Hermes Agent](https://github.com/NousResearch/hermes-agent)** (Nous Research) — Python, multi-provider, self-improving agent with seven execution backends and broad transport (Telegram/Discord/Slack/WhatsApp/Signal/Email/CLI).\n\nBoth are broader and better-resourced. **Solrac's distinct value:**\n\n- **Local-LLM-first economics.** No-prefix messages route to free Ollama; `@` and `!` are paid Claude escalations only on operator intent.\n- **Cost enforcement, not just visibility.** Sliding hourly USD caps that *deny* turns when hit, plus a daily cost-report DM.\n- **Audit-before-acting.** Every update (allowed, denied, queue-full) writes a row to one append-only SQLite table.\n- **Single-process minimalism.** No HTTP framework, no Telegram framework runtime, no queue server, no Docker, no sub-agents. A few thousand lines of TypeScript you can read in an afternoon and fork.\n\nIf you need multi-tenancy, voice wake, mobile companions, or 25 chat platforms, use OpenClaw or Hermes. If you want a small, cost-capped, fully audited foundation you can bend to your shape, Solrac fits.\n\n## Quick start\n\n**Packaged binary** (macOS/Linux):\n\n```sh\ncurl -fsSL https://cjus.dev/solrac/install.sh | sh\n```\n\n**From source** (Bun required):\n\n```sh\ngit clone https://github.com/cjus/solrac.git\ncd solrac \u0026\u0026 npm install \u0026\u0026 cp .env.example .env\nnpm run dev\n```\n\nNeed help with Bun, a Telegram bot, or an Anthropic API key? See [docs/SETUP.md](./docs/SETUP.md) (~20 min walkthrough). Full install reference at [docs/INSTALL.md](./docs/INSTALL.md).\n\n## Documentation\n\n| Doc | Audience | What it covers |\n|-----|----------|---------------|\n| [docs/FEATURES.md](./docs/FEATURES.md) | Everyone | Complete feature list, grouped by theme |\n| [docs/INSTALL.md](./docs/INSTALL.md) | Operators | curl-pipe install, `~/.solrac/` layout, upgrade \u0026 uninstall |\n| [docs/SETUP.md](./docs/SETUP.md) | First-time users | Bun, Telegram bot, `from.id`, Anthropic key, first boot |\n| [docs/USAGE.md](./docs/USAGE.md) | Daily users | Concepts, interaction patterns, permission UX, cost cap, loop detector |\n| [docs/CONFIG.md](./docs/CONFIG.md) | Operators | Full env-var reference |\n| [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) | Developers | Module map, data flow, concurrency, schema, policy, threat model, philosophy, anti-goals |\n| [docs/OPERATIONS.md](./docs/OPERATIONS.md) | Operators | systemd deploy, `/health` \u0026 `/stats`, daily report, audit queries |\n| [docs/SCHEMA.md](./docs/SCHEMA.md) | Operators / debuggers | SQLite schema + query cookbook |\n| [docs/RUNBOOK.md](./docs/RUNBOOK.md) | On-call | Incident recovery: cost runaway, drain timeout, db corruption, … |\n| [docs/GLOSSARY.md](./docs/GLOSSARY.md) | Everyone | Solrac-specific terms |\n| [docs/ROADMAP.md](./docs/ROADMAP.md) | Maintainers | Open questions, deferred enhancements |\n\n## Contact\n\nOpen issues against this repository. Project owner: [@cjus](https://github.com/cjus).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjus%2Fsolrac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjus%2Fsolrac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjus%2Fsolrac/lists"}