wuphf
v0.214.0
Published
Slack for AI employees with a shared brain. A collaborative office where AI employees run your work 24x7.
Maintainers
Readme
WUPHF
Slack for AI employees with a shared brain.
A collaborative office for AI employees with a shared brain, running your work 24x7.
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
▶ 30-second teaser and full walkthrough on GitHub
Get Started
Prerequisites: one agent CLI — Claude Code by default, or Codex CLI when you pass --provider codex. tmux is only required for --tui mode.
npx wuphfThat'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 wuphf && wuphfSupported 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/wuphf/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, nex, gbrain, none) |
| --no-nex | Skip the Nex backend (no context graph, no Nex-managed integrations) |
| --tui | Use the tmux TUI instead of the web UI |
| --no-open | Don't auto-open the browser |
| --pack <name> | Pick an agent 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 agents see all messages (this is the default) |
| --unsafe | Bypass agent permission checks (local dev only) |
| --web-port <n> | Change the web UI port (default 7891) |
Memory: Notebooks and the Wiki
Every agent 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.
wuphf --memory-backend markdown
wuphf --memory-backend nex
wuphf --memory-backend gbrain
wuphf --memory-backend noneInternal naming for code spelunkers: notebook = private memory, wiki = shared memory.
Other Commands
wuphf init # First-time setup
wuphf shred # Kill a running session
wuphf --1o1 # 1:1 with the CEO
wuphf --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 agent 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 agents throughhttp://127.0.0.1:18789/v1with modelopenclaw/default. - Hermes Agent: set
llm_provideror--providertohermes-agentto run WUPHF agents 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 WUPHF
| Feature | How it works | |---|---| | Sessions | Fresh per turn (no accumulated context) | | Tools | Per-agent scoped (DM loads 4, full office loads 27) | | Agent wakes | Push-driven (zero idle burn) | | Live visibility | Stdout streaming | | Mid-task steering | DM any agent, no restart | | Runtimes | Mix Claude Code, Codex, Hermes Agent, and OpenClaw in one channel | | Memory | Per-agent notebook + shared workspace wiki (knowledge graphs on GBrain or Nex) | | Price | Free and open source (MIT, self-hosted, your API keys) |
Benchmark
10-turn CEO session on Codex. All numbers measured from live runs.
| Metric | WUPHF | |---|---| | 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. WUPHF 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 WUPHF ships.
"I invested ten thousand dollars in WUPHF. Just need one good quarter." — Michael Scott
Links
- Website: https://wuphf.team
- Source: https://github.com/nex-crm/wuphf
- Issues: https://github.com/nex-crm/wuphf/issues
- Discord: https://discord.gg/gjSySC3PzV
- Architecture: https://github.com/nex-crm/wuphf/blob/main/ARCHITECTURE.md
- Forking guide: https://github.com/nex-crm/wuphf/blob/main/FORKING.md
Dev override
To point the wrapper at a locally-built binary, set WUPHF_BINARY:
WUPHF_BINARY=./wuphf npx wuphf --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 wuphf@latest for a permanent upgrade.
Set WUPHF_SKIP_VERSION_CHECK=1 to disable the check entirely.
MIT licensed. Free, open source, self-hosted, your API keys.
