{"id":44045918,"url":"https://github.com/jhd3197/cachibot","last_synced_at":"2026-02-28T07:12:06.948Z","repository":{"id":336892679,"uuid":"1151170006","full_name":"jhd3197/CachiBot","owner":"jhd3197","description":"The Armored AI Agent — visual dashboard, sandboxed execution, multi-provider LLM support. See what your bots do.","archived":false,"fork":false,"pushed_at":"2026-02-10T06:50:20.000Z","size":1807,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-11T01:48:15.777Z","etag":null,"topics":["ai","ai-agents","chatbot","claude","discord-bot","llm","prompture","python","telegram-bot"],"latest_commit_sha":null,"homepage":"https://cachibot.com/","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/jhd3197.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"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-02-06T06:11:05.000Z","updated_at":"2026-02-10T06:53:54.000Z","dependencies_parsed_at":"2026-02-11T01:00:58.399Z","dependency_job_id":null,"html_url":"https://github.com/jhd3197/CachiBot","commit_stats":null,"previous_names":["jhd3197/cachibot"],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/jhd3197/CachiBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhd3197%2FCachiBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhd3197%2FCachiBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhd3197%2FCachiBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhd3197%2FCachiBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhd3197","download_url":"https://codeload.github.com/jhd3197/CachiBot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhd3197%2FCachiBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29354690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"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":["ai","ai-agents","chatbot","claude","discord-bot","llm","prompture","python","telegram-bot"],"created_at":"2026-02-07T22:09:11.913Z","updated_at":"2026-02-28T07:12:06.941Z","avatar_url":"https://github.com/jhd3197.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/hero.png\" alt=\"CachiBot\" width=\"800\" /\u003e\n\n  \u003ch1\u003eCachiBot\u003c/h1\u003e\n\n  \u003cp\u003e\u003cstrong\u003eThe Armored AI Agent\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003e\u003cem\u003eVisual. Transparent. Secure.\u003c/em\u003e\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://cachibot.ai\"\u003eWebsite\u003c/a\u003e ·\n    \u003ca href=\"https://codewiki.google/github.com/jhd3197/cachibot\"\u003eCodeWiki\u003c/a\u003e ·\n    \u003ca href=\"docs/README.es.md\"\u003eEspañol\u003c/a\u003e ·\n    \u003ca href=\"docs/README.zh-CN.md\"\u003e中文版\u003c/a\u003e ·\n    \u003ca href=\"docs/README.pt.md\"\u003ePortuguês\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" alt=\"Windows\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/macOS-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" alt=\"macOS\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\" alt=\"Linux\" /\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://pypi.org/project/cachibot\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/cachibot.svg\" alt=\"PyPI\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/cachibot\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dm/cachibot.svg\" alt=\"Downloads\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/jhd3197/CachiBot/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\" alt=\"License\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://python.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3.10+-blue.svg\" alt=\"Python\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://react.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/React-19-61DAFB.svg\" alt=\"React\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/jhd3197/CachiBot/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/jhd3197/CachiBot?style=social\" alt=\"Stars\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/93QEWZeHRK\"\u003e\u003cimg src=\"https://img.shields.io/discord/1470624345188732992?label=Discord\u0026logo=discord\u0026logoColor=white\u0026color=5865F2\" alt=\"Discord\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    A visual AI agent platform with full transparency. Named after the Venezuelan \u003cem\u003ecachicamo\u003c/em\u003e (armadillo) — built to be armored, auditable, and yours to control.\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e ·\n    \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e ·\n    \u003ca href=\"#supported-providers\"\u003eProviders\u003c/a\u003e ·\n    \u003ca href=\"#security\"\u003eSecurity\u003c/a\u003e ·\n    \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e ·\n    \u003ca href=\"https://discord.gg/93QEWZeHRK\"\u003eDiscord\u003c/a\u003e\n  \u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\n## Why CachiBot?\n\nMost AI platforms force you to choose: chatbot UIs with no automation, workflow builders with no conversational AI, or developer frameworks that take weeks to ship.\n\n**CachiBot gives you all three.** Build specialized bots, deploy them to any messaging platform, run them in collaborative rooms, and automate workflows — all from a visual dashboard with full transparency into what your agents are doing.\n\n\n![arepa-war](https://github.com/user-attachments/assets/5996fc02-0c4c-4a61-a998-f007189494fd)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/G8JEhkcRxD8\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/YouTube-Watch_Demo-red?style=for-the-badge\u0026logo=youtube\u0026logoColor=white\" alt=\"Watch on YouTube\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://cachibot.ai/marketplace/rooms/great-arepa-war?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=arepa_war_room\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/CachiBot-View_Room-blue?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white\" alt=\"View the Chat on CachiBot\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://dev.to/juandenis/ai-settles-the-ultimate-venezuelan-vs-colombian-arepa-debate-2ngm\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Dev.to-Read_Article-0A0A0A?style=for-the-badge\u0026logo=devdotto\u0026logoColor=white\" alt=\"Read on Dev.to\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Install\n\n### Linux / macOS\n\n```bash\ncurl -fsSL cachibot.ai/install.sh | bash\n```\n\nSets up Python, a virtual environment, and a systemd service — everything you need in one command.\n\n### Windows\n\n```powershell\nirm cachibot.ai/install.ps1 | iex\n```\n\n### pip\n\n```bash\npip install cachibot\n```\n\nThen start the server:\n\n```bash\ncachibot server\n```\n\nOpen **http://localhost:5870** — the frontend is bundled and served automatically. No separate build step.\n\n### Docker\n\n```bash\ndocker compose up\n```\n\n### Desktop App\n\nDownload the installer for your platform from [GitHub Releases](https://github.com/jhd3197/CachiBot/releases). Available as NSIS installer (Windows), DMG (macOS), and AppImage/DEB/RPM (Linux). Includes auto-update.\n\n### Configure your API keys\n\nYou can set API keys directly from the dashboard UI — no environment variables required. Just open the settings panel and add your keys there.\n\nIf you prefer environment variables, those work too:\n\n```bash\nexport OPENAI_API_KEY=\"your-key\"       # OpenAI / GPT-4\nexport ANTHROPIC_API_KEY=\"your-key\"    # Claude\nexport MOONSHOT_API_KEY=\"your-key\"     # Kimi\n# or use Ollama locally (no key needed)\n```\n\n### CLI Usage\n\n```bash\ncachibot server                    # Start the dashboard\ncachibot \"summarize this project\"  # Run a single task\ncachibot                           # Interactive mode\ncachibot --model claude/sonnet     # Override model\ncachibot --workspace ./my-project  # Set workspace\ncachibot --approve                 # Require approval for each action\ncachibot --verbose                 # Show thinking process\ncachibot diagnose                  # Check installation health\ncachibot repair                    # Fix corrupted installation\ncachi server                       # Short alias\n```\n\n## Features\n\n### Multi-Agent Platform\n\n- **Unlimited Specialized Bots** — Create bots with custom system prompts, per-bot model routing, capability toggles, and isolated API keys per provider\n- **Collaborative Rooms** — Run multiple bots together with 9 response modes: parallel, sequential, chain, router, debate, waterfall, relay, consensus, and interview\n- **Bot Marketplace** — Pre-built bot and room templates for common use cases, installable from the dashboard\n\n### Capability-Gated Plugin System\n\nEvery bot has a set of capability toggles that control which tools are available. Plugins are loaded dynamically based on these toggles, powered by [Tukuy](https://github.com/jhd3197/Tukuy):\n\n| Capability | Tools |\n|-----------|-------|\n| Code Execution | Sandboxed Python with AST risk analysis |\n| File Operations | Read, write, edit, list, info — scoped to workspace |\n| Git Operations | Status, diff, log, commit, branch |\n| Shell Access | Shell commands with security restrictions |\n| Web Access | Fetch URLs, search the web, HTTP requests |\n| Data Operations | SQLite queries, zip/tar compression |\n| Work Management | Tasks, todos, jobs, functions, schedules |\n| Image Generation | DALL-E, Google Imagen, Stability AI, Grok |\n| Audio Generation | OpenAI TTS, ElevenLabs, Whisper transcription |\n| Coding Agents | Spawn Claude Code, OpenAI Codex, or Gemini CLI as sub-agents |\n| Knowledge Base | Semantic search across uploaded documents and notes |\n| Custom Instructions | LLM-powered instruction packs (analysis, writing, developer) |\n\n### Platform Integrations\n\nDeploy bots to **7 messaging platforms** with built-in adapters. Connections are stored encrypted, auto-reconnected on server restart, and health-monitored:\n\nTelegram · Discord · Slack · Microsoft Teams · WhatsApp · Viber · LINE\n\n### Knowledge Base \u0026 RAG\n\n- Upload documents (PDF, TXT, MD, DOCX) — automatically chunked and embedded\n- Vector similarity search with configurable chunk size, overlap, and relevance threshold\n- Embedding providers: OpenAI, Ollama, or local FastEmbed (no API key needed)\n- Freeform notes as an additional knowledge source\n- Storage: SQLite with cosine similarity or PostgreSQL with pgvector\n\n### Work Management \u0026 Automation\n\n- **Work Items** — Top-level units with status tracking (pending, in progress, completed, failed, cancelled, paused)\n- **Tasks** — Steps within work items with dependency tracking and automatic blocking/unblocking\n- **Jobs** — Background agent executions, managed by a job runner service with real-time WebSocket progress\n- **Todos** — Lightweight checklist items\n- **Functions** — Reusable task templates with typed parameters and step-level dependencies\n- **Schedules** — Cron, interval, once, or event-triggered execution of functions\n- **Scripts** — Python scripts with version history, Monaco editor, and a separate execution sandbox\n\n### Voice Conversations\n\nTalk to your bots with real-time speech-to-text and text-to-speech through a dedicated voice interface.\n\n### OpenAI-Compatible API\n\nCachiBot exposes `/v1/chat/completions` and `/v1/models` endpoints, so external tools like Cursor or VS Code extensions can use your bots as if they were OpenAI models. Authenticated with `cb-*` API keys from the developer panel. Supports streaming via SSE.\n\n### Security \u0026 Control\n\n- **Visual Approval Flows** — Approve or reject risky operations before they execute\n- **Sandboxed Execution** — Python runs in isolation with AST-based risk scoring (SAFE / MODERATE / DANGEROUS)\n- **Workspace Isolation** — All file access scoped to the workspace\n- **Encrypted Credentials** — Platform connection secrets stored with AES encryption\n- **Full Audit Trail** — Every action logged with timing, token usage, and cost\n\n### Authentication \u0026 Access Control\n\n- JWT-based auth with access and refresh tokens\n- Self-hosted mode with local user management via setup wizard\n- User roles (admin, user) with bot ownership and group-based access control\n- Rate limiting on auth endpoints\n\n## What Can You Build?\n\n- **Customer Support Bot** — Deploy to Telegram with a knowledge base of your docs, auto-answer FAQs\n- **Data Analysis Room** — 3 bots (SQL specialist + Python analyst + report writer) collaborating on insights\n- **Voice Assistant** — Talk to a bot with STT/TTS, manage tasks and reminders hands-free\n- **Content Pipeline** — Research bot + writer bot + image generator producing blog posts end-to-end\n- **DevOps Agent** — Monitor repos, run sandboxed scripts, send alerts to Slack on schedule\n- **Coding Assistant** — Bot that spawns Claude Code or Codex to handle complex coding tasks\n\n## Supported Providers\n\nCachiBot uses [Prompture](https://github.com/jhd3197/Prompture) for model management with auto-discovery — set an API key and available models appear automatically.\n\n| Provider | Example Models | Environment Variable |\n|----------|---------------|---------------------|\n| OpenAI | GPT-4o, GPT-4, o1 | `OPENAI_API_KEY` |\n| Anthropic | Claude Sonnet, Opus, Haiku | `ANTHROPIC_API_KEY` |\n| Moonshot | Kimi K2.5 | `MOONSHOT_API_KEY` |\n| Google | Gemini Pro, Flash | `GOOGLE_API_KEY` |\n| Groq | Llama 3, Mixtral | `GROQ_API_KEY` |\n| Grok / xAI | Grok-2 | `GROK_API_KEY` |\n| OpenRouter | Any model on OpenRouter | `OPENROUTER_API_KEY` |\n| Azure OpenAI | GPT-4, GPT-4o | `AZURE_OPENAI_API_KEY` |\n| ZhipuAI | GLM-4 | `ZHIPUAI_API_KEY` |\n| ModelScope | Qwen | `MODELSCOPE_API_KEY` |\n| Stability AI | Stable Diffusion (image gen) | `STABILITY_API_KEY` |\n| ElevenLabs | Voice synthesis | `ELEVENLABS_API_KEY` |\n| Ollama | Any local model | *(no key needed)* |\n| LM Studio | Any local model | *(no key needed)* |\n\nAll keys can also be configured from the dashboard UI without touching environment variables.\n\n## Security\n\nCachiBot is built with security as a core principle. **Visibility is security** — the biggest risk with AI agents is not knowing what they're doing.\n\n### Sandboxed Execution\n\nPython code runs in a restricted environment:\n\n- **Import Restrictions** — Only safe modules allowed (json, math, datetime, etc.)\n- **Path Restrictions** — File access limited to the workspace via SecurityContext\n- **Execution Timeout** — Code killed after timeout (default: 30s)\n- **Risk Analysis** — AST-based scoring (SAFE / MODERATE / DANGEROUS) before execution\n- **Approval Flow** — Dangerous operations require explicit approval through the dashboard\n\n### Always Blocked\n\nThese are never allowed regardless of configuration: `subprocess`, `os.system`, `ctypes`, `socket`, `ssl`, `importlib`, `eval`, `exec`, `pickle`, `marshal`.\n\n## Configuration\n\nCachiBot supports layered configuration: environment variables override workspace TOML, which overrides user `~/.cachibot.toml`, which overrides defaults. See [`cachibot.example.toml`](cachibot.example.toml) for all options.\n\nKey sections: `[agent]` (model, temperature, max iterations), `[sandbox]` (allowed imports, timeout), `[knowledge]` (chunk size, embedding model, similarity threshold), `[coding_agents]` (default agent, timeout, CLI paths), `[database]` (SQLite or PostgreSQL URL), `[auth]` (JWT settings).\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide. Quick start:\n\n```bash\ngit clone https://github.com/jhd3197/CachiBot.git\ncd CachiBot\n\n# Backend\npython -m venv venv \u0026\u0026 source venv/bin/activate  # or .\\venv\\Scripts\\activate on Windows\npip install -e \".[dev]\"\n\n# Frontend\ncd frontend \u0026\u0026 npm install \u0026\u0026 cd ..\n\n# Desktop (optional — only if working on the Electron shell)\ncd desktop \u0026\u0026 npm install \u0026\u0026 cd ..\n\n# Run everything\nbash dev.sh              # or .\\dev.ps1 on Windows\nbash dev.sh desktop      # with Electron\nbash dev.sh watch-lint   # lint watcher (ruff + ESLint on save)\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for all dev script modes, project structure, testing, and code style guidelines.\n\n## Community\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cachibot.ai\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Website-cachibot.ai-blue?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white\" alt=\"Website\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/93QEWZeHRK\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Discord-Join_the_community-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white\" alt=\"Discord\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/jhd3197/CachiBot/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Issues-Report_a_bug-red?style=for-the-badge\u0026logo=github\u0026logoColor=white\" alt=\"Issues\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n## Credits\n\n- Built with [Prompture](https://github.com/jhd3197/Prompture) for structured LLM interaction and multimodal drivers\n- Plugin system powered by [Tukuy](https://github.com/jhd3197/Tukuy)\n- Named after the Venezuelan *cachicamo* (armadillo)\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with care by \u003ca href=\"https://juandenis.com\"\u003eJuan Denis\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhd3197%2Fcachibot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhd3197%2Fcachibot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhd3197%2Fcachibot/lists"}