Skip to content

From Innerpedia, the encyclopedia of you

For the other folder named xo-space, see xo-space (disambiguation).

xo-space is a Python FastAPI service at the top level of github.com/quirq-ai. Created in February 2026, it was last touched 3 weeks ago. It holds 762 files across 141 folders, 10 MB in all. Of its folders, six lie past the six levels Innerpedia reads: their files are counted, but they have no pages of their own. Its Git history runs to 272 commits by 20 authors, from February 2026 to October 2026. Innerpedia has ten articles on folders inside it, the largest being space_ui, quirq-state and space_ui_preview. It keeps instructions for coding agents in CLAUDE.md and AGENTS.md. three agents keep folders of their own here: .agents, .claude-plugin and .github.

Build, observe and measure agentic work, locally, across every coding agent you use.

Contents
  1. (Top)
  2. Overview
  3. The problem
  4. What XO Space is
  5. Key capabilities
  6. Quick start
  7. Supported agents
  8. Structure
  9. Technology
  10. History
  11. See also
  12. External links

Overview

One environment for Claude Code, Codex, OpenClaw, Hermes and Antigravity. Every project, session, todo and cost on one screen. Measure output, not just tokens.

Quick start · Capabilities · Supported agents · How it works · Docs · Contributing


The problem

Every coding agent keeps its own session store, its own auth, its own todo list and its own idea of what a "project" is. Use two of them on the same codebase and you have two histories, two usage bills and no single place to look. And none of them tell you what was actually delivered — only what was spent.

What XO Space is

XO Space is the environment layer between your machine and your agents: a local server (this repository) that sits in front of the agents you already have installed, plus a browser UI that reads what they do. It does not run models or replace the agents. It stitches them together and measures what they deliver.

curl -fsSL https://quirq.ai/install | sh      # then open http://localhost:5002/space/

Key capabilities

  • 👀 Watch your agents work — see which agent is active in which project right now, what it touched, and what it's been doing session by session.
  • 🗂️ Your whole workspace in one place — every folder is a project. Files, git history, todos and live agent activity, browsable from one screen instead of five terminals.
  • ✅ Manage the work, not the chat — todos per project, kept up to date as agents check them off, so you always know what's done and what's next.
  • 🔌 One API for every agent — POST /api/chat/prompt, read an SSE stream. Same contract whether Claude Code, Codex, OpenClaw, Hermes or Antigravity is behind it; switch with one environment variable.
  • 📡 Sessions across runtimes — session telemetry from every agent that exposes it, side by side, whichever one you're chatting with.
  • 📈 Know what it cost — tokens, cost, per-model and per-tool breakdowns in one shape regardless of runtime.
  • 🕰️ See how it grew — every project's git history in parallel lanes; open any commit as a 3D city map where building height is the churn.
  • 🛰️ Local-first — binds to localhost, needs no account, sends nothing until you sign in. What leaves your machine.

Quick start

Install in Codex

Add this repository to Codex once:

codex plugin marketplace add quirq-ai/xo-space

Open Plugins → Quirq → XO Space → Install, start a new task, and say “Open XO Space.” Codex installs and starts Space in ~/xo-workspace (or the workspace you name), selects the Codex backend, and opens the UI. Existing installations keep their settings. The server runs while its task/terminal stays alive. Plugin setup, prerequisites and development-branch installs.

One-click setup

Run this from the directory you want as your workspace — each sub-folder becomes a project:

curl -fsSL https://quirq.ai/install | sh

Then open http://localhost:5002/space/.

What the installer does: clones this repo into ./xo-space, creates a Python 3.12 venv with uv, and starts the server in the foreground. Ctrl-C stops it; re-running the command updates and restarts it. Machine-local state and logs live in ./.quirq/, next to your projects — including logs/quirq.log for server output and inbox/activity/commands.log for every external command Quirq runs in that state root — and the whole install is one folder you can move or delete. For a clean removal that keeps your project folders, run ./xo-space/uninstall.sh — see INSTALLATION.md.

Requirements: git. Everything else is optional and only disables its own feature — node/npm for installing an agent CLI, gh for project backup, rclone for Drive/OneDrive. Windows runs under WSL (details).

Manual setup

Same result, step by step — if you'd rather see what you're running, or you're going to hack on it:

# 1. Clone
git clone https://github.com/quirq-ai/xo-space && cd xo-space

# 2. First run — detects the checkout, uses it in place, writes ./.env with
#    working defaults, and starts the server. Ctrl-C when you've seen it.
./install.sh

# 3. Configure — edit .env to taste (see the table below), then run again
./install.sh

.env is written once and never rewritten, so your edits survive updates. Values exported in your shell win over the file (PORT=8080 ./install.sh). The keys it contains:

KeyWhat it doesDefault
AGENT_NAMEWhich agent handles chat: claude_code, codex, openclaw, hermes, antigravity, grokbotclaude_code
XO_PROJECTS_ROOTYour workspace — the directory whose sub-folders are projectsthe directory you ran the installer from
QUIRQ_STATE_ROOTMachine-local state: runtime config, saved credentials, watcher cursors, logs. Must not be inside a project./.quirq in that directory
AI_WORKSPACE_ROOTThe directory the agent subprocess is started in and allowed to touchsame as XO_PROJECTS_ROOT
HOST, PORTWhere the server listens. Loopback only by default. The API has no login, so HOST=0.0.0.0 lets every device on your network read and change your files: use it only on a network you trust127.0.0.1, 5002
STAGElocal finds agent CLIs with which; beta assumes the hosted container layoutlocal
QUIRQ_WATCHER_SOURCE_MODEall — the watcher reads every installed agent's session store, so Sessions shows all of them; active — only AGENT_NAME'sall
QUIRQ_SKIP_BOOT_INSTALL1 — install nothing beyond requirements.txt. Set 0 to let boot hooks apt/nvm/npm -g the agent CLI for you1
UVICORN_RELOADAuto-restart on code changes — turn on when hacking on the serverfalse
ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKENOptional. The agent CLI normally uses its own login; set one only if it isn't already authenticated. Leave commented rather than blankunset
XO_API_KEYLinks this install to your XO accountunset

Agent-specific knobs (CLAUDE_CLI_PATH, CODEX_CLI_PATH, the OpenClaw/Hermes gateway URLs and tokens, Google Drive/Vercel connector settings) are documented in .env.example. Roots, the state directory and watcher timing: INSTALLATION.md.

First run. Space opens on Projects → Overview (#/projects/overview). Projects contains Overview | Data | Timeline | Manage, with List | Graph | Tree views inside Data. Choose Data → List (#/projects/data/list) to browse the folders in your workspace, or open Manage → Add project to clone a Git repository. Before the first chat, check Setup → Intelligence layer for the agent connection and activity collection settings. Full walkthrough: INSTALLATION.md.

Finding your projects. Search by name, folder ID or description, filter to Live sessions or Pinned projects, and sort by recent activity, name, indexed files or creation date. Pin projects from Manage; pins stay in this browser and appear in Data’s Pinned filter. Open a Data List row to browse files; folder position and filters survive navigation, and Refresh files rereads the current folder. File counts describe the visible file index, with + when scanning was incomplete; a project missing from the index shows Not indexed. Graph root, available throughout Projects, opens the graph at the chosen node.

Managing projects. Projects → Manage (#/projects/manage) contains cloning, inline sharing and guarded local removal. Each card groups View activity, Share, Pin, Copy GitHub URL and Remove in its header. Expand a card to view its metadata and GitHub Issues and copy recorded values. To share, enter the destination Space ID in the card without leaving Manage. Individual access must be revoked before a shared project can be deleted locally. The old #/setup/projects address opens Manage.

Inbox and activity. Inbox contains Items | Connections | Jobs | Activity | Sharing activity | Sharing. Activity shows project events; select a project for its todos and current sessions. Sharing activity shows the relay's recent events, while Sharing manages repository access and synchronization.

Setup. Workspace and Intelligence layer guide initial configuration. Workspace shows the Space ID, workspace owner, XO account and verified GitHub identity. Connectors, Secrets, Commands and Server provide app connections, environment keys, saved commands/results and server controls. Direct URLs are #/setup/workspace, #/setup/intelligence, #/setup/connectors, #/setup/secrets, #/setup/commands and #/setup/server. Opening Setup starts at Workspace; existing #/setup, #/connectors and #/secrets links remain compatible.

Search Setup to find a setting and jump to its control. Connectors includes GitHub, MagicPath, Vercel, Google Drive and OneDrive alongside account apps, with connection status and the existing sign-in and management actions.

XO Managed Cloud

Don't want to run a server? app.xo.builders gives you the same XO Space, already running, in an XO-provisioned workspace — one click, nothing to install, your agents and projects ready when you open the tab.

Self-hostedXO Managed Cloud
Runs onyour machineXO-provisioned workspace
Setupone command, you keep it runningnone — always on
Account & sign-inoptionalbuilt in
Updatesre-run the installerautomatic
Sharing projects with a teamvia GitHub backupbuilt in
Codethis repothis repo

Supported agents

Pick the active agent with AGENT_NAME (or from the Setup tab). Agents that expose session telemetry show up in the Agents tab even when they are not the active one.

AgentAGENT_NAMEChatSessionsNotes
Claude Codeclaude_code✅✅claude CLI subprocess
Codexcodex✅✅codex exec subprocess
OpenClawopenclaw✅✅HTTP gateway on :18789; the default when nothing is configured
Hermeshermes✅✅HTTP gateway on :8642, one per profile
Antigravityantigravity✅✅agy CLI subprocess + Google OAuth
Grok BotgrokbotpartialpartialExternal host gateway on :1340; replies arrive after polling. Text history comes from the gateway for Space-indexed chats. No Space project/MCP/model selection, usage, status integrations, Agents management, telemetry or prompt suggestions. See Grok Bot limits.
Cursor——✅Read-only: sessions appear in telemetry, cannot run a turn
Your own<name>✅✅Drop config/agents/<name>/ + services/cowork_agent/adapters/<name>/ — auto-discovered, no core edits. Guide: DEVELOPING.md §4

Grok Bot limits

Set AGENT_NAME=grokbot and run the host separately. The gateway defaults to http://127.0.0.1:1340 (GROKBOT_GATEWAY_URL, alias SAND_GATEWAY_URL); chat needs SAND_GATEWAY_TOKEN or the token in sand-data/gateway.json. The community SDK documents the gateway protocol; it is not a host installer. Space

Structure

Folders

13 subfolders

.git is left out of the index.

Files

17 files at the top level
  • AGENTS.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • cowork-api.sh
  • cowork-update.sh
  • DEVELOPING.md
  • Dockerfile
  • install.sh
  • INSTALLATION.md
  • LICENSE
  • pytest.ini
  • README.md
  • RELEASING.md
  • requirements-dev.txt
  • requirements.txt
  • server.py
  • uninstall.sh

Technology

Languages

share of 708 files
Python66%JavaScript11%JSON9.5%Markdown6.1%CSS3.1%Shell2.5%YAML<1%HTML<1%

Frameworks and libraries

Dependencies

14 runtime
  • fastapi
  • uvicorn
  • pydantic
  • python-dotenv
  • httpx
  • requests
  • anyio
  • gunicorn
  • python-multipart
  • Pillow
  • argus-code
  • PyYAML
  • mcp
  • composio

History

272
Commits
20
Authors
Feb 2026
First commit
Oct 2026
Latest commit

Activity

November 2024: 0 commitsDecember 2024: 0 commitsJanuary 2025: 0 commitsFebruary 2025: 0 commitsMarch 2025: 0 commitsApril 2025: 0 commitsMay 2025: 0 commitsJune 2025: 0 commitsJuly 2025: 0 commitsAugust 2025: 0 commitsSeptember 2025: 0 commitsOctober 2025: 0 commitsNovember 2025: 0 commitsDecember 2025: 0 commitsJanuary 2026: 0 commitsFebruary 2026: 22 commitsMarch 2026: 10 commitsApril 2026: 32 commitsMay 2026: 63 commitsJune 2026: 23 commitsJuly 2026: 17 commitsAugust 2026: 42 commitsSeptember 2026: 62 commitsOctober 2026: 1 commit
Commits per month, November 2024 to October 2026. Busiest: May 2026, with 63 commits.

Authors

the eight most active
  • KrishBhimani80
  • Seemant Tripathi40
  • Ankit Dwivedi32
  • Mukesh Mali23
  • Suraj Sharma20
  • sharmasuraj012316
  • Krish Bhimani12
  • SAGAR RAMBADE9

Recent commits

on main
  1. ci: run the full test suite and route-parity check on every PR (#201)

    Suraj Sharmac3cea98

  2. Add Grok Bot adapter (`AGENT_NAME=grokbot`) (#186)

    quirqy509208e

  3. chore(deps): floor FastAPI at 0.141.1 so installs agree on body parsing (#191)

    KrishBhimani95fa136

  4. fix(space): guard every write against cross-site browser requests (#139)

    KrishBhimanif1935f1

  5. Add xo-doctor: a read-only health check for Quirq state (#187)

    Ankit Dwivedidd9fb96

  6. Composio: run blocking SDK calls off the event loop (#163) (#164)

    KrishBhimani5a27f56

  7. Archive the command log under inbox/activity and move state migrations to their own module

    KrishBhimani179e317

  8. docs: pull requests target main; development is the staging branch (#185)

    KrishBhimani00b81c4

  9. Stream activity labels from claude_code and record codex reasoning summaries (#183)

    KrishBhimani387ec78

  10. Index sessions started without a project (#146) (#180)

    KrishBhimanicd1f683

See also