gawkbot
v0.239.0
Published
The open source Grok Bot. gawkbots automate your menial work via AI models and build you microapps to manage the outcome, so that you have a false sense of control.
Maintainers
Readme
gawkbot
open source bots that (almost) serve you
gawkbots automate your menial work via AI models and build you microapps to manage the outcome, so that you have a false sense of control.
One command. One shared office. CEO, PM, engineers, designer, CMO, CRO — all visible, arguing, claiming tasks, and shipping work instead of disappearing behind an API. Unlike the original WUPHF.com, this one works.
"WUPHF. When you type it in, it contacts someone via phone, text, email, IM, Facebook, Twitter, and then... WUPHF." — Ryan Howard, Season 7
Get Started
Prerequisites: one bot CLI — Claude Code by default, or Codex CLI when you pass --provider codex. tmux is only required for --tui mode.
npx gawkbotThat's it. The browser opens automatically and you're in the office. Unlike Ryan Howard, you will not need a second monitor to show investors a 404 page.
Prefer a global install?
npm install -g gawkbot && gawkbotSupported platforms: macOS, Linux, and Windows 10+ on x64 or arm64. The native binary is lazy-downloaded from GitHub releases on first run and cached under node_modules/gawkbot/bin/.
Stability: pre-1.0.
mainmoves daily. Pin to a release tag, notmain.
Options
| Flag | What it does |
|------|-------------|
| --memory-backend <name> | Pick the organizational memory backend (markdown, gbrain, none) |
| --tui | Use the tmux TUI instead of the web UI |
| --no-open | Don't auto-open the browser |
| --pack <name> | Pick a bot pack (starter, founding-team, coding-team, lead-gen-agency, revops) |
| --opus-ceo | Upgrade CEO from Sonnet to Opus |
| --provider <name> | LLM provider override (claude-code, codex, opencode, hermes-agent, openclaw-http, ollama) |
| --collab | Start in collaborative mode — all bots see all messages (this is the default) |
| --unsafe | Bypass bot permission checks (local dev only) |
| --web-port <n> | Change the web UI port (default 7891) |
Memory: Notebooks and the Wiki
Every bot gets its own notebook. The team shares a wiki. New installs get the wiki as a local git repo of markdown articles. Existing Nex/GBrain workspaces keep their knowledge-graph backend untouched.
Backends for the wiki:
markdown(the "team wiki" tile in onboarding) is the default for new installs since v0.0.6. It stores typed facts, entity briefs, cited lookup answers, and lintable wiki articles in a local git repo at~/.wuphf/wiki/. No API key required.nexwas the previous default. It requires a WUPHF/Nex API key and powers Nex-backed context plus WUPHF-managed integrations. Existing users stay onnexvia persisted config.gbrainmountsgbrain serveas the wiki backend.nonedisables the shared wiki entirely. Notebooks still work locally.
gawkbot --memory-backend markdown
gawkbot --memory-backend nex
gawkbot --memory-backend gbrain
gawkbot --memory-backend noneInternal naming for code spelunkers: notebook = private memory, wiki = shared memory.
Other Commands
gawkbot init # First-time setup
gawkbot shred # Kill a running session
gawkbot --1o1 # 1:1 with the CEO
gawkbot --1o1 cro # 1:1 with a specific agentWhat You Should See
- A browser tab at
localhost:7891with the office #generalas the shared channel- The team visible and working
- A composer to send messages and slash commands
If it feels like a hidden bot loop, something is wrong. If it feels like The Office, you're exactly where you need to be.
Bridges
- Telegram:
/connect→ pick Telegram → paste bot token from @BotFather. - OpenClaw:
/connect openclaw→ paste your gateway URL andgateway.auth.tokenfrom~/.openclaw/openclaw.json. Each OpenClaw session becomes a first-class office member you can@mention. If OpenClaw Gateway's OpenAI-compatible HTTP endpoint is enabled, use--provider openclaw-httpto run WUPHF-created bots throughhttp://127.0.0.1:18789/v1with modelopenclaw/default. - Hermes Bot: set
llm_provideror--providertohermes-agentto run gawkbot bots through a local Hermes API server athttp://127.0.0.1:8642/v1.
External Actions
Two action providers ship by default — pick whichever fits your style.
One CLI — local-first (default)
/config set action_provider oneComposio — cloud-hosted
/config set composio_api_key <key>
/config set action_provider composioWhy gawkbot
| Feature | How it works | |---|---| | Sessions | Fresh per turn (no accumulated context) | | Tools | Per-bot scoped (DM loads 4, full office loads 27) | | Bot wakes | Push-driven (zero idle burn) | | Live visibility | Stdout streaming | | Mid-task steering | DM any bot, no restart | | Runtimes | Mix Claude Code, Codex, Hermes Bot, and OpenClaw in one channel | | Memory | Per-bot notebook + shared workspace wiki (knowledge graphs on GBrain or Nex) | | Price | Free to self-host (Sustainable Use License, your API keys) |
Benchmark
10-turn CEO session on Codex. All numbers measured from live runs.
| Metric | gawkbot | |---|---| | Input per turn | Flat ~87k tokens | | Billed per turn (after cache) | ~40k tokens | | 10-turn total | ~286k tokens | | Cache hit rate | 97% (Claude API prompt cache) | | Claude Code cost (5-turn) | $0.06 | | Idle token burn | Zero (push-driven, no polling) |
Accumulated-session orchestrators grow from 124k to 484k input per turn over the same session. gawkbot stays flat.
The Name
From The Office, Season 7. Ryan Howard's startup that reached people via phone, text, email, IM, Facebook, Twitter, and then... WUPHF. Michael Scott invested $10,000. Ryan burned through it. The site went offline.
The joke still fits. Except this gawkbot ships.
"I invested ten thousand dollars in WUPHF. Just need one good quarter." — Michael Scott
Links
- Website: https://wuphf.team
- Source: https://github.com/najmuzzaman-mohammad/gawkbot
- Issues: https://github.com/najmuzzaman-mohammad/gawkbot/issues
- Discord: https://discord.gg/gjSySC3PzV
- Architecture: https://github.com/najmuzzaman-mohammad/gawkbot/blob/main/ARCHITECTURE.md
- Forking guide: https://github.com/najmuzzaman-mohammad/gawkbot/blob/main/FORKING.md
Dev override
To point the wrapper at a locally-built binary, set WUPHF_BINARY:
WUPHF_BINARY=./wuphf npx gawkbot --versionAuto-upgrade
npm install -g does not pull new versions on its own, so the wrapper
checks registry.npmjs.org once per 24h (cached at
~/.wuphf/cache/latest-version.json). If a newer release is available it
downloads the matching binary into ~/.wuphf/cache/binaries/ and runs it
instead — same SHA256 verification as postinstall. A one-line hint points
you at npm install -g gawkbot@latest for a permanent upgrade.
Set WUPHF_SKIP_VERSION_CHECK=1 to disable the check entirely.
Fair-code licensed (Sustainable Use License). Free to self-host, your API keys.
