# fluws > Shared, portable Markdown memory for AI coding agents and engineering teams. fluws gives every agent its own key, stored in a local keystore. The CLI (npx -y @fluws/cli) wires the project with keyless session hooks and the universal AGENTS.md cycle. It is stored as Markdown, portable to S3 or GitHub, and can require human review before every write. ## Canonical resources - Homepage: https://fluws.com/ - Documentation: https://fluws.com/docs - Pricing: https://fluws.com/pricing - Supported clients: https://fluws.com/integrations - Use cases: https://fluws.com/use-cases - Security: https://fluws.com/security - Privacy: https://fluws.com/privacy - Full agent reference: https://fluws.com/llms-full.txt - MCP endpoint: https://fluws.com/mcp - Public read-only demo MCP: https://fluws.com/mcp/demo - Public demo guide: https://fluws.com/demo ## Core concepts - Shared memory for AI coding agents - Markdown as the portable source of truth - CLI-first integration (keys in keystore, keyless hooks, AGENTS.md) - MCP over HTTP for Claude Code, Cursor, OpenCode, Codex, and other MCP clients - Human review and governance for agent-written memory - Full-text search expanded through Markdown wikilinks - Freshness, provenance, confirmation, and superseded documents - Shared work, agent contributions, evidence, and handoffs ## First integration step (CLI-first) 1. Create an API key per agent in Settings (read, write, or admin scope). 2. Store the key in the local keystore: fluws keys set claude --key Repeat for each agent (opencode, codex, cursor, kimi). Keys live in ~/.fluws/keys.json, never in the repo. 3. Wire the project: fluws init --agent claude This writes keyless session hooks (Claude Code, Codex, Cursor) and the AGENTS.md/CLAUDE.md cycle blocks. AGENTS.md is the universal fallback for Cursor, OpenCode, Codex, and Kimi. 4. Restart the agent. The memory injects at session start. Query with: fluws context --task "the real task" --project "project-name" ## Alternative: MCP server If your client only supports MCP, add the remote server: { "mcpServers": { "fluws": { "type": "http", "url": "https://fluws.com/mcp", "headers": { "Authorization": "Bearer " } } } } The workspace is selected by the API key. Start each task with context({ task: "the real task", project: "project-name" }). ## Agent enrollment A workspace owner can generate a one-time enrollment token for an agent. The agent exchanges it once for a scoped API key: POST https://fluws.com/agent/enroll { "token": "enr_", "name": "agent-name" } The response contains the new flw_... key and its scope. Enrollment tokens expire, are single-use, and can only create read or write keys. The agent should store the returned key in the local keystore with fluws keys set --key and never publish it. ## Source and trust fluws does not replace Git for source code or issue trackers for task state. It preserves the reasoning, evidence, decisions, and context that should survive a session and be available to the next agent. Read the security page for storage, access, and known limitations.