Portable human context that follows you between AI tools instead of living inside one chat product's memory. Exposes profile artifacts as MCP resources so Claude can read your preferences, constraints, and communication style without you repeating them every session. Includes validation hooks, redaction policies, and interop formats for handoffs between assistants or orchestrators. Reach for this when you want stable context across coding agents, editors, or analysts without manually pasting system prompts. Integrates with SET for repo-local orchestration and generates compact JSON artifacts from markdown profiles. Think of it as the protocol layer underneath assistants, not another assistant itself.
ID is Git-like infrastructure for portable human-AI identity context.
Git versions code. ID versions the reviewed context that tells AI tools how to work with a person.
It is not another assistant. It is the profile, contract, and release layer that can travel across tools.
profile.* -> source
soul.md -> build artifact
context.compact.json -> release bundle
idctl diff -> semantic identity diff
validate -> CI gate
provenance -> blame surface
freshness -> stale detection
soul.md for fast agent bootstrapcontext.compact, interop.v1, mcp)idctl diffSET, agentsgen, and other repo workflowsClaude Code
|
v
profile.* + soul.md + context.compact.json
|
v
ChatGPT / Gemini / Cursor / Continue / OpenAI API
The value is simple: create one reviewed profile, then reuse it across tools without rebuilding user context from scratch.
See docs/WILD.md for concrete cross-tool workflows.
Install:
uv tool install id-protocol
Bootstrap:
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
make validate
make compact
You end up with:
profile.minimal.md as the first owner checkpointsoul.md as the short reviewed handoff layercontext.compact.json as the portable compact artifactCheck what changed before sharing or switching tools:
idctl diff --owner-id <owner-id> --since 7d
Source of truth:
profiles/<owner>/profile.minimal.mdprofiles/<owner>/profile.core.mdprofiles/<owner>/profile.extended.mdprofiles/<owner>/CHANGELOG.mdDerived layers:
profiles/<owner>/soul.mdprofiles/<owner>/context.compact.jsonprofiles/<owner>/interop.v1.jsonprofiles/<owner>/mcp.context.resource.jsonID keeps user context explicit, versioned, reviewable, and portablesoul.md exists because the full profile stack is often too heavy for the first pass. It gives agents a short bootstrap surface without replacing the canonical profile files.
ID owns portable human contextagentsgen owns repo-scoped agent contextSET can orchestrate both layersPractical rule:
ID for the humanagentsgen for the repositorySET when you want orchestration around bothLite: docs/LITE.mdShare: docs/SHARE.mdBench: docs/BENCH.mdWild: docs/WILD.mdIdentity Diff: docs/IDENTITY_DIFF.mdSoul: docs/SOUL.mdIntegrations: docs/INTEGRATIONS.mdReleases: docs/RELEASES.mddocs/README.mdRuns analyzed: 4
| Metric | Value | Meaning |
|---|---|---|
| onboarding latency | 1.15 | Less is better |
| clarification turns | 0.85 | Less hand-offs |
| task success | 0.6 | Higher is better |
| alignment index | 18.3 | Higher is better |
Profile freshness score (owner markoblogo): 0.0
Key artifacts:
- profiles/markoblogo/profile.core.md: score=0.0 age=98 ttl=14
- profiles/markoblogo/profile.extended.md: score=0.0 age=97 ttl=30
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
idctl validate
idctl diff --owner-id <owner-id>
idctl export-compact --owner-id <owner-id>
idctl export-interop --owner-id <owner-id>
idctl export-mcp --owner-id <owner-id>
Today ID functions as:
Latest release: v0.4.0 adds idctl diff, wild workflows, and Git-like identity context positioning.