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
- canonical owner-managed profile files
- compact derived
soul.mdfor fast agent bootstrap - portable interop artifacts (
context.compact,interop.v1,mcp) - validation, freshness, and publish-safety checks
- semantic identity diffs via
idctl diff - integration points for
SET,agentsgen, and other repo workflows
Claude 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:
brew install markoblogo/tap/id-protocolBootstrap:
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
make validate
make compactYou end up with:
profile.minimal.mdas the first owner checkpointsoul.mdas the short reviewed handoff layercontext.compact.jsonas the portable compact artifact
Check what changed before sharing or switching tools:
idctl diff --owner-id <owner-id> --since 7dSource of truth:
profiles/<owner>/profile.minimal.mdprofiles/<owner>/profile.core.mdprofiles/<owner>/profile.extended.mdprofiles/<owner>/CHANGELOG.md
Derived layers:
profiles/<owner>/soul.mdprofiles/<owner>/context.compact.jsonprofiles/<owner>/interop.v1.jsonprofiles/<owner>/mcp.context.resource.json
- system prompts are fragile and usually copied by hand
- chat-native memory is product-siloed and hard to audit
- repo instructions help per repo, not across tools or roles
IDkeeps user context explicit, versioned, reviewable, and portable
soul.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.
IDowns portable human contextagentsgenowns repo-scoped agent contextSETcan orchestrate both layers
Practical rule:
- use
IDfor the human - use
agentsgenfor the repository - use
SETwhen you want orchestration around both
Lite: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.md- full docs index:
docs/README.md
Runs 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:
- a protocol/spec reference
- a validated tooling reference
- a compact onboarding path
- a Git-like diff/review surface for AI identity context
- an installable CLI package on PyPI/Homebrew
Latest release: v0.4.0 adds idctl diff, wild workflows, and Git-like identity context positioning.
