by nex-crm
WUPHF is a collaborative office of AI employees who build and maintain their own knowledge base to never lose context for the tasks you give them. Supports Claude Code, Codex, OpenClaw and local LLMs via OpenCode.
# Add to your Claude Code skills
git clone https://github.com/nex-crm/wuphfLast scanned: 5/4/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-04T06:43:35.857Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}No comments yet. Be the first to share your thoughts!
30 days in the Featured rail · terms & refunds
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 — what the office feels like when the agents are actually working.
Full walkthrough — launch to first shipped task, end to end.
Prerequisites: one agent CLI — Claude Code by default, or Codex CLI when you pass --provider codex. tmux is required for --legacy-tui mode (the web UI runs agents headlessly by default; tmux-backed dispatch remains as an internal fallback).
npx wuphf
That'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 && wuphf
Building from source (requires Go and Bun):
git clone https://github.com/nex-crm/wuphf.git
cd wuphf
cd web
bun install
bun run build
cd ..
go build -o wuphf ./cmd/wuphf
./wuphf
Forking this? See FORKING.md for running WUPHF without Nex, swapping branding, and adding your own agent packs. For the internals, see ARCHITECTURE.md.
Stability: pre-1.0.
mainmoves daily. Pin your fork to a release tag, notmain.
Paste this into Claude Code, Codex, or Cursor and let your agent drive the install:
Set up https://github.com/nex-crm/wuphf for me. Read `README.md` first, then run
`npx wuphf` to install and launch the office — the web UI opens at
http://localhost:7891 automatically.
Once it is running, confirm you can see #general, the team of agents, and the
composer. If anything looks off, re-read the "What You Should See" and "Other
Commands" sections of README.md before retrying — do not skip to flags.
For agent conventions and the MCP tools each teammate gets, read `AGENTS.md`.
For internals and how the broker, workspaces, and memory fit together, read
`ARCHITECTURE.md`. If I mention forking or rebranding, read `FORKING.md`.
After it is installed and running, open https://github.com/nex-crm/wuphf in my
browser. If I am logged in to GitHub, ask me whether you should star the repo
for me as a quick demo that the browser interaction works — only click the star
if I say yes. If I am not logged in, just open https://wuphf.team.
| Flag | What it does |
|---|---|
--memory-backend <name> |
Override the built-in markdown wiki (nex, gbrain, none) — legacy installs only |
--no-nex |
Skip the Nex backend (no context graph, no Nex-managed integrations) |
--legacy-tui |
Use the legacy 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, ollama, hermes-agent, openclaw-http) |
--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) |
--workspace <name> |
Use a specific workspace for one command (does not change the active workspace) |
--legacy-tui is deprecated, slated for removal, and retained only while the desktop replacement lands.
--provider opencode shells out to the opencode CLI binary. WUPHF does not
own that provider's HTTP path, and provider_endpoints.opencode.base_url is not
consulted.
For custom OpenAI-compatible endpoints such as LiteLLM, OmniRoute, or local
proxies, use --provider ollama and set WUPHF_OLLAMA_BASE_URL or
provider_endpoints.ollama.base_url:
WUPHF_OLLAMA_BASE_URL="http://127.0.0.1:20128/v1" \
WUPHF_OLLAMA_MODEL="openai/gpt-5.4-mini" \
wuphf --provider ollama --memory-backend none --no-open
--no-nex still lets Telegram and any other local integration keep working. To switch back to CEO-routed delegation after launch, use /focus inside the office.
WUPHF ships with built-in memory. No backend choice, no API key, no setup step in the wizard. Every agent gets its own notebook, and the team shares a wiki — a local git repo of markdown articles at ~/.wuphf/wiki/. cat, grep, git log, and git clone all work.
The promotion flow:
Nothing is promoted automatically. Agents decide what graduates from notebook to wiki.
The wiki is not just a markdown folder. It is a living knowledge graph: typed facts with triplets, per-entity append-only fact logs, LLM-synthesized briefs committed under the archivist identity, /lookup cited-answer retrieval, and a /lint suite that flags contradictions, orphans, stale claims, and broken cross-references. The web UI gives you a Wikipedia-style reading view, a rich editor with WUPHF-specific inserts, and an AI-assisted maintenance assistant. See DESIGN-WIKI.md for the reading view and docs/specs/WIKI-SCHEMA.md for the operational contract.
Onboarding seeds the wiki for you. The wizard optionally scans your website and any files you point it at, then writes a starter set of company-context articles (about, owner, products) before the first agent turn fires. Your team starts already knowing who you are and what you ship.
Legacy backends. Existing installs on Nex or GBrain keep working — backend selection is sticky in config.json and there is no forced migration. The CLI flag stays available for power users and for moving off legacy backends:
wuphf --memory-backend nex # hosted Nex graph + WUPHF-managed integrations
wuphf --memory-backend gbrain # local Postgres-backed graph
wuphf --memory-backend none # no shared wiki; notebooks still work
The web wizard no longer surfaces this as a choice. Markdown is the default and the only path for fresh installs.
Internal naming (for code spelunkers): the notebook is private memory, the wiki is shared memory. On the built-in markdown backend the MCP tools are notebook_write | notebook_read | notebook_list | notebook_search | notebook_promote | team_wiki_read | team_wiki_search | team_wiki_list | team_wiki_write | wuphf_wiki_lookup | run_lint | resolve_contradiction. On nex/gbrain the MCP tools are the legacy team_memory_query | team_memory_write | team_memory_promote. The two tool sets never coexist on one server instance — backend selection flips the surface.
The examples below assume wuphf is on your PATH. If you just built the binary and haven't moved it, prefix with ./ (as in Get Started above) or run go install ./cmd/wuphf to drop it in $GOPATH/bin.
wuphf init # First-time setup
wuphf share # Invite one team member over Tailscale/WireGuard
wuphf shred # Delete workspace state and reopen onboarding
wuphf workspace list # Run multiple isolated offices side by side
wuphf workspace switch <name> # Flip the active workspace
wuphf --1o1 # 1:1 with the CEO
wuphf --1o1 cro # 1:1 with a specific agent
Two ways to invite a teammate. Pick the one that fits your network.
Private network — Tailscale or WireGuard. Both machines on the same private mesh. The invite never leaves the network and no public interface is exposed:
wuphf share
Or click "Create invite" on the Health Check tile inside the office to mint one without leaving the browser. Send the printed /join URL to your teammate. The invite is one use, expires after 24 hours, and the shared web listener only binds to a private-network address by default.
Public tunnel — no shared network needed. Click "Start tunnel" on the Health Check tile and WUPHF spins up a Cloudflare quick tunnel. The trycloudflare URL is paire