THE OX WORKSPACE

Unifying Knowledge and Code

A methodology for developers who think and build in the same place.

THE PROBLEM

Your Tools Don't Talk to Each Other

Context-Switching Tax

Developers switch between knowledge tools (Notion, Confluence) and execution tools (IDE, terminal) dozens of times per day.

Decisions Never Reach Code

The rationale behind an architectural choice lives in a Confluence page nobody reads.

</>

Lessons Never Reach Docs

That hard-won debugging insight stays in Slack, then disappears forever.

Fragmented Onboarding

Pointing new engineers to 5+ disconnected systems, each with its own mental model.

No Unified AI Context

Every new conversation with an AI agent starts from zero.

KNOWLEDGE WORLD
W
CONTEXT GAP
CODE WORLD

THE INSIGHT

Co-locate Knowledge and Code in a Single Directory Tree

Same Directory Tree

Knowledge and code live together in the same tree.

Cross-Referenced

Daily notes, project docs, commits and configs link to each other.

Designed for AI Agents

Agents traverse the same tree humans do from day one.

Not a Monorepo

Projects keep independent git history; the root is intentionally not a repo.

~/ox/ (Workspace Root)
Bidirectional Links
o/ (Knowledge)
x/ (Code)

INTRODUCING OX

Two Trees, One Workspace

O

The Obsidian Vault

Knowledge, decisions, context and people — the "why" of what you build.

X

Code Repositories

Execution and implementation — the "what" and "how."

Root is NOT a Git Repo

Deliberate: prevents accidental commits and keeps workspace history clean.

Infinite Cross-References

Two trees, one workspace — OX as metaphor and directory structure.

~/ox - tree -L 3
~/ox/
├── o/ # Obsidian vault (knowledge)
│ ├── who/
│ ├── what/
│ ├── when/
│ └── where/
├── x/ # Code layer
│ ├── code/
│ └── remote/
└── .agents/ # AI agent context
The root ~/ox/ is intentionally NOT a git repository.

THE KNOWLEDGE LAYER

Organized by Who, What, When, Where

The o/ vault uses a PERM-like taxonomy — four top-level dimensions that map to every type of knowledge a developer needs. Exhaustive by design.

WHO (PEOPLE)

Team members, clients, contacts, stakeholders. Every person gets a note. Every interaction is linked.

WHAT (TOPICS)

Organizations, projects, skills, tools, technologies. The substance of your work.

WHEN (TEMPORAL)

Daily notes, weekly reviews, monthly cycles, project timelines. The audit trail of decisions.

WHERE (LOCATIONS)

Offices, servers, cloud environments, deployment targets. The geography of your infrastructure.

WHO

Team Members

Clients & Stakeholders

External Contacts

Vendors

WHAT

Projects & Repos

Organizations

Tools & Tech Stack

Skills & Concepts

WHEN

Daily Notes

Weekly Reviews

Sprint Cycles

Milestones

WHERE

Cloud Environments

Physical Servers

Deployment Targets

Office Locations

o/

DAILY NOTES

An Unbroken Audit Trail of Every Decision

Structured Daily Capture

Structured notes each day: interactions and tasks.

Web of Context

Links to people, projects, and code.

Decision Archaeology

Trace why choices were made and what code they touched.

Standardized Pattern

Human-readable and parseable by agents.

o/when/daily/2026.March.16.Monday.md

# 2026.March.16.Monday

## Interactions

- [[Alice]] — discussed auth migration

## Work Done

- Fixed JWT expiry bug in...

- Updated [[infrastructure.yaml]] (staging)

## Decisions

- Chose RS256 over HS256 — see [[auth-decisions]]

## Tasks

- [ ] Write migration guide

THE CODE LAYER

Every Repo Independent, Every Repo Accessible

Strict Path Convention

Mirrors remote repos: x/code/remote/{host}/{org}/{repo}/

Independent Versioning

Each repo keeps its own .git for isolated history.

Standardized Anatomy

Predictable files: CLAUDE.md, docker-compose.yml, apps/

Single Workspace Root

16+ repos accessible from the same workspace root.

TERMINAL // x-layer-structure
x/
├── code/
├── remote/
│ └── github.com/
│ └── acme-org/
│ ├── crm-api/
│ │ ├── .git/
│ │ └── CLAUDE.md
│ └── infra-tools/
│ ├── .git/
│ └── CLAUDE.md

CROSS-REFERENCING IN ACTION

Turning Isolated Notes into a Living Knowledge Graph

The Power is in the Links

The power of OX is not in any single file — it is in the links between files.

The Context Chain

A daily note references a project doc, which references a code repo.

Example Flow: "Fixed Auth Bug"

Links to the project doc, the person who reported it, and the infra it touches.

Queryable Graph

This creates a traversable graph — for humans and AI agents alike.

Person Note
Infra Config
Code Repo
Project Doc

INFRASTRUCTURE AS KNOWLEDGE

Not in a Separate Ops Silo

The 700-Line Single Source of Truth

infrastructure.yaml lists servers, containers, DNS and secrets in the o/ vault — not a separate repo.

Cross-Referenced Reality

Deployment maps and env configs are cross-referenced from project and daily notes.

"Where does this run?"

The location is one Obsidian link away — no Slack ping needed.

Readable Prose

YAML plus notes makes infrastructure readable and versioned with design rationale.

o/where/infrastructure.yaml
servers:
 
production:
 
host: prod-01.example.internal
 
region: us-east-1
 
containers:
- name: crm-api
Daily Note (Mar 16)
Project: CRM API
infrastructure.yaml

THE AGENT LAYER

AI Agents Are First-Class Citizens of the Workspace

Universal Rules

The .agents/ directory sits at the workspace root — universal rules and context for every AI agent (Claude, Cursor, Copilot).

Shared Context Files

workspace-structure.md, infrastructure.yaml, philosophy.md.

Philosophy Documents

SOUL.md and IDENTITY.md encode team values, preventing AI suggestions that violate architecture.

Same Context as Humans

Agents get the same context humans get. The workspace IS the AI's context window.

AI
Claude
Cursor
</>
Copilot
TERMINAL // .agents-structure
.agents/
├── workspace-structure.md # The map
├── philosophy.md # The values
├── SOUL.md # Identity & principles
└── IDENTITY.md # Behavioral guidelines
o/ (Knowledge)
x/ (Code)

AI-NATIVE BY DESIGN

CLAUDE.md in Every Repo Means Instant Productivity

Instant Agent Onboarding

CLAUDE.md lets an agent read one file and grasp purpose, architecture, and constraints.

Full Context Traversal

Agents can follow context across notes, docs, code, and infra references.

Persistent Memory

A memory layer preserves key context across conversations so agents don't start from zero.

Value Protection

Philosophy docs enforce project values and discourage risky rewrites.

x/code/remote/github/acme/crm-api/CLAUDE.md

# CLAUDE.md — CRM API

## Purpose

CRM API for web and mobile clients.

## Architecture

Node.js 22 + Fastify. PostgreSQL (Supabase). Auth: JWT (RS256).

## Conventions

routes in apps/routes/, migrations in supabase/migrations/, no secrets in repo.

## Cross-References

Project doc: [[o/what/projects/crm]] — Infra: [[o/where/infrastructure.yaml]]

SECRET MANAGEMENT

Documented in the Knowledge Base — Not Stored There

Infisical Integration

Manages secrets across all projects. Each repository links to its secret project via .infisical.json.

Three Environments

Dev, staging, and prod with RBAC. Developers get dev secrets, CI/CD gets staging, production is locked down.

Document Purpose, Not Value

The knowledge base documents what each secret is for and when it rotates — but never its raw value.

The Secret Map

Any developer can understand the secret architecture without ever seeing a raw credential.

x/code/.../crm-api/.infisical.json
{
  "workspaceId": "proj_crm_api",
  "defaultEnvironment": "dev",
  "gitBranchToEnvironmentMapping": {
    "main": "prod",
    "staging": "staging"
  }
}
o/what/projects/crm-api

## Secrets: crm-api

SecretPurpose
DATABASE_URLSupabase
JWT_SECRETRS256
SMTP_KEYTransactional

THE OX WORKFLOW

From Morning Stand-Up to End-of-Day Commit

1

CHECK DAILY NOTE

What was decided yesterday? What's in progress? What's blocked? Start with context.

2

READ PROJECT DOCS

What are the constraints and decisions for today's task? Review the architecture.

3
</>

OPEN CODE

The repo is one directory away in the same workspace, not a separate window.

6

UPDATE DAILY NOTE

End of day: link what you touched, what you decided, what you deferred.

↓ TOMORROW
5

AI AGENTS

Agents have full context automatically. Open Cursor or Claude; they already know the project.

4

INFRASTRUCTURE

Config is one directory away. No Slack message needed to find where it runs.

ELIMINATING PRODUCTIVITY KILLERS

Concrete Gains from Unified Context and Zero Switching

CONTEXT SWITCHING

Switching between Notion, Jira, GitHub and the IDE breaks flow.

✓ THE OX SOLUTION

Zero Switching. Everything lives in one directory — you never leave your editor to find docs or infra.

LOST DECISIONS

Decisions are buried in old Slack threads.

✓ THE OX SOLUTION

Decision Archaeology. Daily notes capture the "why" and link to the code that implements the "what".

STALE DOCUMENTATION

Docs rot when disconnected from the codebase they describe.

✓ THE OX SOLUTION

Co-located Reality. Docs live next to code; update the markdown in the same commit.

AI HALLUCINATIONS

AI suggests architectures without the project's context.

✓ THE OX SOLUTION

Unified Agent Context. .agents/ and CLAUDE.md give AI the same context map developers use.

BUILT FOR RESILIENCE

Scalable, Offline-First, and Completely Tool-Agnostic

SOLO TO TEAM

Start as a personal productivity system. Scale to an engineering team by putting the o/ vault in a shared Git repository. Collective memory grows organically.

SHARED GIT VAULT

OFFLINE-FIRST

No cloud dependencies for your daily workflow. Everything lives on your local disk. Work on an airplane, in a cabin, or during a major cloud provider outage.

LOCAL MARKDOWN

ZERO LOCK-IN

It's just Markdown files and Git repositories. If your current tools disappear tomorrow, open the folder in any text editor. Your knowledge outlives the tools.

TOOL AGNOSTIC

THE METHODOLOGY COMPARISON

OX Outperforms Both Traditional Setups and Monorepos

DIMENSION TRADITIONAL MULTI-TOOL MONOREPO OX WORKSPACE
Knowledge Location Notion, Confluence, Google Docs (Cloud) Scattered README files Obsidian Vault (Local, o/ dir)
Code Location Multiple disconnected repositories Single massive repository Multi-repo, unified under x/ dir
AI Context Separate & Manual Limited to code only Unified (.agents/ & CLAUDE.md)
Cross-References Manual URLs, easily broken In-repo relative links only Bidirectional across code & docs

GETTING STARTED

From Zero to OX in Six Steps

1

CREATE WORKSPACE ROOT

Create the root directory. Do not run git init here. The root is just a container.

$ mkdir my-workspace && cd my-workspace
4

ADD AGENT CONTEXT

Create the .agents/ directory and add the workspace structure map for AI tools.

$ mkdir .agents && touch .agents/workspace-structure.md
2

SET UP OBSIDIAN VAULT

Create the o/ directory and initialize it as an Obsidian vault with a PERM taxonomy.

$ mkdir -p o/{projects,areas,resources,archive}
5

START DAILY NOTES

Begin your daily log. Link everything you touch: people, projects, and code repositories.

$ touch o/daily/$(date +%Y-%m-%d).md
3

CLONE REPOSITORIES

Clone your projects into the x/code/ tree, mirroring their remote paths.

$ git clone <url> x/code/remote/github.com/org/repo
6

ADD CLAUDE.MD

Add a CLAUDE.md file to each repository to provide instant context for AI agents.

$ echo "# Context" > x/code/.../repo/CLAUDE.md

FIVE DESIGN PRINCIPLES

What Makes OX a Methodology, Not Just a Folder Structure

CRAFT DON'T CODE

Elegance over speed. Writing code is easy; crafting a maintainable system requires deliberate thought, documentation, and care.

SIMPLIFY RUTHLESSLY

Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.

SINGLE SOURCE OF TRUTH

Each fact lives in exactly one place. If a decision changes, you update one markdown file, not five disconnected systems.

PROGRESSIVE DISCLOSURE

Read only what you need. The workspace is structured so you can dive deep into a specific component without being overwhelmed by the whole.

AGENT-AGNOSTIC

The methodology works for any AI tool. Whether you use Claude, Cursor, Copilot, or the next big model, the context structure remains valid.

WHAT'S NEXT

OX Is Growing Into a Full Developer Platform

OPEN-SOURCE TEMPLATES

Ready-to-use workspace scaffolds. Clone a starter repository that includes the directory structure, Obsidian settings, and default agent prompts.

RUST TUI TOOL

A blazingly fast Terminal User Interface built in Rust for navigating the vault, creating daily notes, and querying the knowledge graph without leaving the command line.

DEEP AI INTEGRATION

Native Model Context Protocol (MCP) servers that allow Claude and Cursor to dynamically query the Obsidian vault and understand cross-references in real-time.

TEAM WORKFLOWS

Standardized patterns for multi-player sync, resolving knowledge graph conflicts, and merging daily notes across distributed engineering teams.

THE OX CLI

One Binary. Every Platform. Zero Dependencies.

Single Static Go Binary (~5MB)

No runtime dependencies. Ships as a single self-contained executable.

Cross-Platform

macOS (Intel + ARM), Linux (x86 + ARM), Windows — one install command everywhere.

Install in One Command

curl -fsSL https://iamox.ai/install.sh | bash

7 Commands

init, clone, index, search, serve, status, version

Idempotent by Design

Safe to re-run at any time. Git-backed revert safety on every operation.

ox init Bootstraps Everything

Creates the full workspace tree from scratch in a single 9-step sequence.

TERMINAL // ox-install-and-init
$ curl -fsSL https://iamox.ai/install.sh | bash
  Installing ox v0.2.0 for darwin/arm64...
  Downloaded ox to /usr/local/bin/ox
  Done.
 
$ ox init
  [1/9] Pre-flight checks... ok
  [2/9] Creating ~/ox directory tree... ok
  [3/9] Installing dependencies... ok
  [4/9] Configuring git... ok
  [5/9] Cloning org repos... 12 repos cloned
  [6/9] Syncing dotfiles... ok
  [7/9] Generating .ox/config.json... ok
  ok
  [9/9] Post-init verification... ok
 
  OX workspace ready at ~/ox
  Knowledge: o/o/ (0 notes)
  Code: x/code/ (12 repos)
  Agents: .agents/ configured
SYS.MODULE // SLIDE: 21 COMPONENT: CLI LANG: Go SIZE: ~5MB

KNOWLEDGE GRAPH + RAG

290x Faster Than Obsidian CLI Search

Hybrid Search

BM25 full-text (Bleve) + vector similarity (Ollama embeddings) — ranked together in a single query.

SQLite Knowledge Graph

Nodes (notes, tags) + edges (LINKS_TO, HAS_TAG). Zero cloud dependencies.

Pluggable Backends

GraphStore, VectorStore, TextSearchStore, Embedder interfaces. Default: SQLite + Bleve + Ollama.

Planned Backends

Neo4j, Qdrant, Pinecone, OpenAI embeddings — swap without changing your workflow.

Incremental Indexing

SHA-256 change detection. Full index: 12.4s. Incremental re-index: 0.8s. Read-only — no file locks.

290x
FASTER THAN OBSIDIAN CLI 40ms vs 40,000ms for the same search
TERMINAL // ox-index-and-search
$ ox index
  Indexing vault at ~/ox/o/o/...
  Parsed 847 notes, 2,341 links, 892 tags
  Generated 847 embeddings (nomic-embed-text)
  Graph: 1,739 nodes, 3,233 edges
  Index time: 12.4s (incremental: 0.8s)
 
$ ox search "auth migration decision"
  0.94 o/when/daily/2026.March.16.Monday.md
        "discussed auth migration with Alice..."
  0.87 o/what/orgs/COM/iwl/maxre/auth-decisions.md
        "JWT refresh token rotation strategy..."
  0.81 x/code/.../crm-api/CLAUDE.md
        "Auth middleware uses Supabase JWT..."
  Results: 3 (0.04s)
SYS.MODULE // SLIDE: 22 COMPONENT: SEARCH BACKEND: SQLite+Bleve+Ollama LATENCY: 40ms

CODE INDEXING

Your Notes AND Your Repos, in One Graph

Indexes Both Trees

ox indexes repos in x/code/ alongside vault notes in o/o/ — one unified graph.

Rich Code Metadata

File trees, symbols, git metadata, and dependencies — all indexed as graph nodes.

True Cross-Reference

A note about "auth migration" links to the actual auth code file. The graph spans both trees.

Unified Search Results

ox search returns both knowledge AND code results, ranked together by relevance.

The Killer Feature for AI Agents

When your agent searches, it finds decisions AND implementations in a single traversal.

UNIFIED KNOWLEDGE + CODE GRAPH
o/ (KNOWLEDGE)
daily/2026.Mar.16
what/projects/crm
who/Alice.md
ox index
x/ (CODE)
crm-api/
auth/middleware.ts
CLAUDE.md
CROSS-REFERENCE
SYS.MODULE // SLIDE: 23 COMPONENT: INDEX SCOPE: o/ + x/ GRAPH: UNIFIED

MCP SERVER

Your Vault Becomes a Tool for AI Agents

ox serve — Stdio MCP Server

Starts a Model Context Protocol server on stdio. No ports, no daemons, no config.

4 Tools Exposed

search_vault, find_related, get_backlinks, vault_stats — the full graph, queryable by any agent.

Works with Any MCP Client

Claude Code, Cursor, Windsurf, and any MCP-compatible agent connects with two lines of config.

Same Tree, Agent-Navigable

The agent traverses the same directory structure humans do — no special API, no wrapper layer.

AGENTS.md — Universal Instructions

.agents/AGENTS.md provides universal instructions for all AI agents. The workspace is agent-navigable by construction.

.mcp.json + agent query
$ cat .mcp.json
{
  "mcpServers": {
    "ox": {
      "command": "ox",
      "args": ["serve"],
      "env": { "OX_ROOT": "~/ox" }
    }
  }
}
 
# Agent query (via Claude Code):
> Search vault for "deployment checklist"
 
search_vault("deployment checklist")
-> 3 results in 0.04s
-> o/what/orgs/COM/iwl/deploy-checklist.md (0.96)
-> o/when/daily/2026.March.20.Thursday.md (0.84)
-> x/code/.../infra/docs/DEPLOY.md (0.79)
Claude Code Cursor Windsurf + any MCP client
SYS.MODULE // SLIDE: 24 COMPONENT: MCP PROTOCOL: stdio TOOLS: 4

STOP CONTEXT-SWITCHING.

START CROSS-REFERENCING.

The workspace IS the documentation.
The documentation IS the workspace.