{"id":49073566,"url":"https://github.com/getboring/boring-think-agent","last_synced_at":"2026-04-20T08:34:24.761Z","repository":{"id":350342777,"uuid":"1206418436","full_name":"getboring/boring-think-agent","owner":"getboring","description":"AI coding assistant built on Cloudflare Workers, Durable Objects, and Workers AI. Persistent workspace, sandboxed code execution, git integration.","archived":false,"fork":false,"pushed_at":"2026-04-09T22:38:20.000Z","size":194,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-10T00:27:29.577Z","etag":null,"topics":["ai-agent","cloudflare-workers","coding-assistant","durable-objects","react","typescript","workers-ai"],"latest_commit_sha":null,"homepage":null,"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/getboring.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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-04-09T22:34:42.000Z","updated_at":"2026-04-09T22:41:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/getboring/boring-think-agent","commit_stats":null,"previous_names":["getboring/boring-think-agent"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/getboring/boring-think-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getboring%2Fboring-think-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getboring%2Fboring-think-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getboring%2Fboring-think-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getboring%2Fboring-think-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getboring","download_url":"https://codeload.github.com/getboring/boring-think-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getboring%2Fboring-think-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32040336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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-agent","cloudflare-workers","coding-assistant","durable-objects","react","typescript","workers-ai"],"created_at":"2026-04-20T08:34:24.008Z","updated_at":"2026-04-20T08:34:24.749Z","avatar_url":"https://github.com/getboring.png","language":"TypeScript","readme":"# BoringWorks Think Agent\n\nAn AI coding assistant built on Cloudflare Workers with a persistent virtual filesystem, sandboxed code execution, and full git integration.\n\n## Features\n\n- **Persistent Virtual Filesystem** — Files persist across conversations using SQLite + R2 hybrid storage\n- **Sandboxed Code Execution** — Run JavaScript safely in an isolate-backed sandbox via `runStateCode`\n- **Git Integration** — Init, add, commit, log, diff, status (all via isomorphic-git)\n- **Streaming Chat** — Real-time AI responses with markdown rendering\n- **File Browser** — Visual sidebar for browsing, viewing, and deleting workspace files\n- **File Delete UI** — Trash icon on hover (always visible on mobile); disabled during AI streaming\n- **Mobile Responsive** — Sidebar drawer with overlay, hamburger toggle, `h-dvh` for iOS Safari safety\n- **Dark/Light Theme** — Toggle between themes with persistence\n- **Workspace Stats** — R2 file count and storage usage displayed in sidebar footer\n\n## Quick Start\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen http://localhost:5173 in your browser. The dev server uses Cloudflare's remote AI binding (free Workers AI access).\n\n## Deploy\n\n```bash\nnpm run deploy\n```\n\nRequires a Cloudflare account with Workers AI enabled.\n\n## Tools Available to the AI\n\n| Tool | Description |\n|------|-------------|\n| `readFile` | Read file contents |\n| `writeFile` | Create/update files (auto-creates parent dirs) |\n| `listDirectory` | List files and directories |\n| `deleteFile` | Delete files or empty directories |\n| `mkdir` | Create directories recursively |\n| `glob` | Find files by pattern (e.g. `**/*.ts`) |\n| `runStateCode` | Execute JS in sandboxed isolate for multi-file ops |\n| `gitInit` | Initialize a git repository |\n| `gitStatus` | Show working tree status |\n| `gitAdd` | Stage files for commit |\n| `gitCommit` | Create a commit |\n| `gitLog` | Show commit history |\n| `gitDiff` | Show changes since last commit |\n\n## Built With\n\n- [@cloudflare/think](https://www.npmjs.com/package/@cloudflare/think) — Think\u003cEnv\u003e agent base class with session persistence and lifecycle hooks\n- [@cloudflare/ai-chat](https://www.npmjs.com/package/@cloudflare/ai-chat) — React chat hooks (useAgentChat)\n- [@cloudflare/shell](https://www.npmjs.com/package/@cloudflare/shell) — Persistent virtual filesystem (SQLite + R2)\n- [@cloudflare/codemode](https://www.npmjs.com/package/@cloudflare/codemode) — Sandboxed code execution in isolates\n- [@cloudflare/kumo](https://www.npmjs.com/package/@cloudflare/kumo) — UI component library\n- [workers-ai-provider](https://www.npmjs.com/package/workers-ai-provider) — AI SDK provider for Workers AI\n- [agents](https://www.npmjs.com/package/agents) — Cloudflare Agents SDK\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetboring%2Fboring-think-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetboring%2Fboring-think-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetboring%2Fboring-think-agent/lists"}