[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-96287":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":9,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":14,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":15,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":16,"hasPages":16,"topics":18,"createdAt":9,"pushedAt":9,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":14,"starSnapshotCount":14,"syncStatus":37,"lastSyncTime":9,"discoverSource":38},96287,"gawkbot","najmuzzaman-mohammad\u002Fgawkbot","najmuzzaman-mohammad","open source grok bot. gawk bots automate your menial work via AI models and build you microapps to manage the outcome, so that you have a false sense of control.",null,"https:\u002F\u002Fgithub.com\u002Fnajmuzzaman-mohammad\u002Fgawkbot","Go",1371,118,0,19.23,false,"main",[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"agents","autonomous-agents","claude-code","knowledge-graph","grokbot","ai-agents","ai-teammates","codex","grok-bot","grok-bot-alternative","local-llm","microapps","open-source","self-hosted","workflow-automation","2026-09-21 02:04:31","# gawkbot\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Community-5865F2?logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FgjSySC3PzV)\n[![License: Sustainable Use License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Sustainable%20Use%20License-A87B4F)](LICENSE)\n[![Go](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGo-1.25+-00ADD8?logo=go&logoColor=white)](go.mod)\n\n\u003Cp align=\"left\">\n  \u003Ca href=\"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=47899844\">\n    \u003Cimg src=\"website\u002Fhn-badge.svg\" alt=\"gawkbot — Hacker News Life of Product Week's #1\" width=\"223\" height=\"48\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n### open source grok bot. gawkbots use local VMs as computers (cloud option available) and build microapps to manage all your work.\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F84c4b8cf-fb5d-4e9b-b720-213648c2e20b\n\ngawkbot lets anyone turn their manual workflows into microapps across 1200+\nintegrations in minutes. Describe the job in one sentence — or demo it once on\na call — and your AI builds the bot that runs it: its own screen, its own\nschedule, its own tools, with a human approval gate on everything it sends.\nRuns local, on your machine, on your account.\n\ngawkbots automate your menial work via AI models and build you microapps to\nmanage the outcome, so that you have a false sense of control.\n\n> **grok** *(verb)* — to understand something profoundly and intuitively.\n> **gawk** *(verb)* — to stare openly and stupidly.\n\nIt is named after the second one. Not after the bots. The bots are working.\nYou are the one with the dashboard open.\n\n## The open source Grok Bot\n\ngawkbot is an open source Grok Bot: always-on AI bots on your own machine\ninstead of xAI's cloud, free, on the coding bot you already pay for, with\nan approval gate on every external action. The honest version, row by row:\n\n| | Grok Bot (xAI) | gawkbot |\n|---|---|---|\n| Price | Bundled with SuperGrok and Cursor paid plans | Free. No account, no seats, no usage fees |\n| Source | Closed | Public, Sustainable Use License |\n| Runs on | xAI's cloud | Your machine, with your keys |\n| Models | Grok, chosen for you | Claude Code, Codex, Opencode, local models, Hermes, OpenClaw |\n| Bot computers | One per bot, in the cloud | Not yet. Per-bot directory and tool allowlist on your machine |\n| Approvals | Bots act on your accounts around the clock | Every send, commit, purchase, and delete waits for your click |\n\nFull comparison, where Grok Bot is better, and the other open source\nalternatives (Rakazo, OpenMausBot, OpenBot):\n[gawk.bot\u002Fopen-source-grok-bot](https:\u002F\u002Fgawk.bot\u002Fopen-source-grok-bot.html).\nWebsite: [gawk.bot](https:\u002F\u002Fgawk.bot).\n\n## Get Started\n\n**Prerequisites:** one bot CLI, signed in — [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code)\nby default, or [Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) \u002F [Opencode](https:\u002F\u002Fopencode.ai).\nThe first-run screen verifies your runtime before anything else happens.\n\n```bash\nnpx gawkbot\n```\n\nThat's it. The browser opens, you verify your runtime, name your office, and\nhand off your first workflow — you land on your first bot being built, live.\n\nPrefer a global install?\n\n```bash\nnpm install -g gawkbot && gawkbot\n```\n\nBuilding from source (requires Go and Bun):\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fnajmuzzaman-mohammad\u002Fgawkbot.git\ncd gawkbot\ncd web && bun install && bun run build && cd ..\ngo build -o gawkbot .\u002Fcmd\u002Fwuphf\n.\u002Fgawkbot\n```\n\nRoutine execution runs on a small sidecar service (`agent\u002F`). The broker\nfinds and supervises it automatically on source checkouts (set\n`WUPHF_AGENT_DIR` to point elsewhere, or `WUPHF_AGENT_URL` if you manage it\nyourself).\n\n## What you get\n\nEvery bot ships with all six. Not a chatbot in a trench coat.\n\n| Part | What it is |\n|---|---|\n| **The app** | A real screen, built live in front of you. Reads and writes real workspace data. |\n| **Routines** | \"Every Monday 9:00.\" Versioned prompts, run history, a transcript per run. New bots get a starter weekly routine from the workflow you described. |\n| **Tools** | Self-authored. \"Score a lead.\" \"Post to #ae-handoffs.\" Teach more in the bot's chat. |\n| **Knowledge** | Wikipedia-style pages about the bot, every claim cited back to its source. |\n| **Data + integrations** | Its own typed tables, plus 1200+ integrations. Connect once; every bot shares it. |\n| **Approval gate** | Reads are free. Writes are held until you tap approve. Then it runs 24x7. |\n\nIf your workflow names a system that is not connected yet (\"audit our\nHubSpot\"), gawkbot asks before building — build against live workspace data\nnow, or hold while you connect. It never silently re-scopes your job.\n\n## Setup prompt (for AI bots)\n\nPaste this into Claude Code, Codex, or Cursor and let your bot drive the install:\n\n```text\nSet up https:\u002F\u002Fgithub.com\u002Fnajmuzzaman-mohammad\u002Fgawkbot for me. Read `README.md`\nfirst, then run `npx gawkbot` — the web UI opens at http:\u002F\u002Flocalhost:7891.\n\nWalk the onboarding: verify the runtime, name the office, and start the first\nworkflow. Confirm you land on a bot being built (a live build feed beside a\nchat), and that when it finishes the bot shows tabs for UI, Routines, Tools,\nData, Knowledge, and Integrations.\n\nFor agent conventions read `AGENTS.md`; for internals read `ARCHITECTURE.md`;\nfor forking read `FORKING.md`.\n```\n\n## Options\n\n| Flag | What it does |\n|------|-------------|\n| `--provider \u003Cname>` | Runtime override (`claude-code`, `codex`, `opencode`, `ollama`, `hermes-agent`, `openclaw-http`) |\n| `--no-open` | Don't auto-open the browser |\n| `--web-port \u003Cn>` | Change the web UI port (default 7891) |\n| `--workspace \u003Cname>` | Use a specific workspace for one command (does not change the active workspace) |\n| `--unsafe` | Bypass bot permission checks (local dev only) |\n\n### Local models and custom endpoints\n\nFor custom OpenAI-compatible endpoints (LiteLLM, local proxies, Ollama):\n\n```bash\nWUPHF_OLLAMA_BASE_URL=\"http:\u002F\u002F127.0.0.1:20128\u002Fv1\" \\\nWUPHF_OLLAMA_MODEL=\"openai\u002Fgpt-5.4-mini\" \\\ngawkbot --provider ollama --no-open\n```\n\n`--provider opencode` shells out to the `opencode` CLI binary; MLX-LM and\nOllama can be set up from the first-run screen with no cloud key at all.\n\n### Other runtimes\n\nAlready running [Hermes Bot](https:\u002F\u002Fgithub.com\u002FNousResearch\u002Fhermes-bot)\nor an [OpenClaw](https:\u002F\u002Fopenclaw.ai) gateway? Point bots at them with\n`--provider hermes-agent` (default `http:\u002F\u002F127.0.0.1:8642\u002Fv1`) or\n`--provider openclaw-http` (default `http:\u002F\u002F127.0.0.1:18789\u002Fv1`). Endpoints,\nmodels, and auth are overridable via `WUPHF_HERMES_AGENT_*` \u002F\n`WUPHF_OPENCLAW_HTTP_*` env vars or `provider_endpoints` in config.\n\n## Memory: the company brain\n\ngawkbot ships with built-in memory — no backend choice, no API key. Your\nworkspace state lives in local files you can `cat`: bot knowledge, run\ntranscripts, and the company brain under `~\u002F.wuphf\u002F`. Knowledge pages are\nsynthesized with citations back to their sources, so you can check the\nreceipts on anything a bot claims.\n\n## Other Commands\n\n```bash\ngawkbot init                    # First-time setup\ngawkbot share                   # Invite one team member over Tailscale\u002FWireGuard\ngawkbot shred                   # Delete workspace state and reopen onboarding\ngawkbot workspace list          # Run multiple isolated workspaces side by side\ngawkbot workspace switch \u003Cname> # Flip the active workspace\n```\n\n## Share With a Team Member\n\nTwo ways to invite a teammate, both from the CLI:\n\n**Private network — Tailscale or WireGuard.** Both machines on the same mesh;\nthe invite never leaves the network:\n\n```bash\ngawkbot share\n```\n\n**Public tunnel — no shared network needed.** The broker can spin up a\nCloudflare quick tunnel (`POST \u002Fapi\u002Fshare\u002Ftunnel\u002Fstart`; the trycloudflare\nURL is paired with a 6-digit passcode, invites are one-use and expire in 24\nhours, and the join handler is rate-limited per source IP). `cloudflared`\nships with the npm install (pinned SHA256 per platform). The one-click\nbutton for this is being resurfaced in the operator shell — until then the\nendpoint is the path.\n\nFor the full walkthrough, see\n[Share gawkbot With a Team Member](docs\u002Ftutorials\u002Fshare-with-team-member.md).\n\n## External Actions\n\nBots act through two providers — pick whichever fits:\n\n- **One CLI** (default, local-first): actions execute through a local CLI on\n  your machine; credentials never leave it.\n- **Composio** (cloud-hosted OAuth): connect Gmail, Slack, HubSpot, and the\n  rest of the 1200+ catalog from any bot's **Integrations** tab. Connections\n  are shared across the office.\n\nEither way, the approval gate holds every external write until you approve it.\n\n## Privacy & Telemetry\n\ngawkbot can send anonymous product analytics and session recordings (with typed\ntext masked) to help us improve it. This is **optional**, controlled by you, and\n**off unless a PostHog key is configured** — a stock source build and every fork\nship with no key, so they never phone home.\n\nTwo independent toggles (onboarding and Settings), both on by default, both\nreversible at any time:\n\n- **Product analytics** — anonymous usage events: which flows are used, where\n  people get stuck, error counts. We send **counts and shapes only, never your\n  content** (no message text, task titles, customer data, or secrets).\n- **Session recording** — recordings **mask everything you type**\n  (`maskAllInputs: true`): passwords, API keys, and any form field are\n  obscured. We capture layout, clicks, and navigation to fix rough edges.\n\nNo autocapture, no cookies (localStorage only). Self-hosted operators can\npoint at their own PostHog (`WUPHF_POSTHOG_KEY` \u002F `WUPHF_POSTHOG_HOST`) or\nleave the key unset to keep gawkbot fully dormant. Full taxonomy and policy:\n[docs\u002Fspecs\u002Fproduct-analytics.md](docs\u002Fspecs\u002Fproduct-analytics.md).\n\n## Why gawkbot\n\n| | |\n|---|---|\n| **One bot per workflow** | Small enough to read in a minute, real enough to do the whole job — instead of one giant assistant that does everything badly. |\n| **You watch it get built** | The build streams live: the screen, the routine, the tools, assembling in front of you. |\n| **Honest by default** | No connected data → the app says \"simulated\" in plain text. Missing integration → it asks before building. Every knowledge claim carries a citation. |\n| **Approval gate** | No email, Slack post, or CRM write leaves without a human tap. |\n| **Local** | Runs on your machine, on your keys. Workspace state is files you can `cat`. |\n| **Cost you can see** | Settings shows exactly what your bots have spent — dollars, tokens, runs. A typical bot build lands in the $1–2 range on Claude Code. |\n| **Price** | Free to self-host (Sustainable Use License, your API keys). |\n\n## Claim Status\n\nEvery claim in this README, grounded to the code that makes it true.\n\n| Claim | Status | Where it lives |\n|---|---|---|\n| Describe a workflow → bot builds live with a streaming activity feed | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fsurfaces\u002FAppBuilderChat.tsx`, `web\u002Fsrc\u002Fcomponents\u002Fapps\u002FAppActivity.tsx` |\n| Onboarding hands the first workflow straight into the build | ✅ shipped | `web\u002Fsrc\u002Foperator\u002FfirstWorkflowSeed.ts`, `web\u002Fsrc\u002Foperator\u002FOperatorApp.tsx` |\n| New bots get a starter weekly routine from the described workflow | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fsurfaces\u002FAppBuilderChat.tsx` |\n| Routines: broker-owned cron, versioned prompts, per-run transcripts | ✅ shipped | `internal\u002Fteam\u002Fscheduler_operator_routines.go`, `web\u002Fsrc\u002Foperator\u002Froutines\u002FRoutinesTab.tsx` |\n| The broker spawns and supervises the routine runner | ✅ shipped | `internal\u002Fteam\u002Fbot_service_supervisor.go` |\n| Ask-before-building when a referenced integration is not connected | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fbuilder\u002FdescribedIntegrations.ts` |\n| Approval gate on external writes | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fcomponents\u002FApprovalPrompt.tsx`, `internal\u002Fteam\u002Fbroker_action_grants.go` |\n| Knowledge pages with inline citations | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fsurfaces\u002FKnowledgeSurface.tsx` |\n| Usage readout — cost, tokens, runs | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fsurfaces\u002FSettingsSurface.tsx` (GET `\u002Fusage`) |\n| Operator is the only front door; legacy office routes redirect | ✅ shipped | `web\u002Fsrc\u002Froutes\u002FRootRoute.tsx`, `web\u002Fe2e\u002Ftests\u002Froute-matrix.spec.ts` |\n| Per-bot typed tables (Data tab) | ✅ shipped | `web\u002Fsrc\u002Foperator\u002Fsurfaces\u002FAppDataTab.tsx` |\n| Mix runtimes: Claude Code, Codex, Opencode, local models, Hermes, OpenClaw | ✅ shipped | `internal\u002Fprovider\u002F`, first-run pre-pick screen |\n| Multi-workspace, share, and public-tunnel invites | ✅ shipped | `cmd\u002Fwuphf\u002Fworkspace.go`, `cmd\u002Fwuphf\u002Ftunnel.go`, `internal\u002Fworkspaces\u002F` |\n| Pixel-art bot portraits (every bot has a face) | ✅ shipped | `web\u002Fsrc\u002Fcomponents\u002Fui\u002FPixelAvatar.tsx` |\n| Routine runner packaged into the npx\u002Fdesktop installs | 🔜 planned | supervisor adopts it the moment it ships |\n\nLegend: ✅ shipped · 🟡 partial · 🔜 planned. If a claim and a status disagree, the code wins — file an issue.\n\n## Evaluate This Repo\n\nBefore you fork, run this prompt against the codebase with any AI coding assistant:\n\n```\nYou are a cynical senior engineer evaluating whether to fork this repo as the\nbase for a bots-that-run-workflows product. No prior context — explore it\nas you naturally would. Tell me: should I fork this, and what's your honest\ntake? Be specific: file paths, line numbers, actual evidence. \"The docs are\nbad\" is useless. Under 500 words.\n```\n\nWe run this ourselves before every release. If the AI finds something we\nmissed, [file an issue](https:\u002F\u002Fgithub.com\u002Fnajmuzzaman-mohammad\u002Fgawkbot\u002Fissues).\n\n## The Name\n\nGrok is named for a verb that means to understand something completely and\nintuitively. That is a confident name. It promises you a machine that gets it.\n\ngawkbot is named for a verb that means to stare at something openly, at\nlength, and without taking in any of it. That is the honest name for what\nactually happens once the bots are running. The work is done. You are\nlooking at a dashboard about it.\n\nWe are a parody of a bot company. We also ship, which is the part they did\nnot see coming.\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=najmuzzaman-mohammad%2Fgawkbot&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=najmuzzaman-mohammad\u002Fgawkbot&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=najmuzzaman-mohammad\u002Fgawkbot&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=najmuzzaman-mohammad\u002Fgawkbot&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n","gawkbot 是一个开源的、可本地运行的 AI 自动化代理框架，用于将重复性人工任务转化为带审批门控的轻量级微应用。其核心功能包括：基于自然语言描述或一次演示自动生成工作流；支持 Claude Code、Codex、Hermes 等多种模型（含本地 LLM）；所有操作在用户设备上执行，敏感动作需人工确认；内置 1200+ 集成与微应用管理界面。适用于个人开发者、小团队在隐私敏感场景下实现安全、可控的日常事务自动化，如邮件处理、代码提交审核、跨平台数据同步等。",2,"trending"]