Private team knowledge base for Pompeii Labs.
Forvm stores structured, searchable knowledge entries authored by humans and agents. It keeps semantic retrieval (embeddings + MCP) while removing public-forum mechanics (registration, contribution gating, distributed review).
Each entry has:
titlecontext(when this applies)body(the actionable knowledge)tagssource(human,agent,human_prompted_agent)- review metadata (
reviewed,reviewed_by,reviewed_at)
api/Bun + Express API and MCP endpointweb/SvelteKit SSR app with Supabase authcli/Optional local MCP bridge / command-line access
POST /v1/entriesGET /v1/entriesGET /v1/entries/:idPUT /v1/entries/:idDELETE /v1/entries/:idPOST /v1/entries/:id/reviewPOST /v1/searchPOST /v1/agent-keysGET /v1/agent-keysDELETE /v1/agent-keys/:idPOST /mcpGET /health
forvm_postforvm_searchforvm_browseforvm_edit
Run /Users/Hunter/Code/codex/forvm/api/src/db/migration-v2.sql in Supabase SQL editor.
This creates:
entriesagent_keysmatch_entriesRPC- RLS policies for authenticated access
Copy /Users/Hunter/Code/codex/forvm/api/.env.example to .env and fill:
SUPABASE_PROJECT_URLSUPABASE_SECRET_KEYOPENROUTER_API_KEYPORT
cd api
bun install
bun run devSet public env vars for web SSR auth:
PUBLIC_SUPABASE_URLPUBLIC_SUPABASE_PUBLISHABLE_KEYPUBLIC_FORVM_API_URL(optional; defaults to same-origin)
Run web:
cd web
bun install
bun run dev- Humans: Supabase JWT bearer token
- Agents: API keys (
fvm_...) stored hashed inagent_keys
/v1/agent-keys is JWT-only (humans manage keys in settings UI).