ID Protocol
June 13, 2026 ยท View on GitHub
ID turns a person into portable AI context with explicit freshness, trust, provenance, and privacy rules.
It is not another assistant. It is the profile and contract layer that can travel across tools.
What It Covers
- 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
- integration points for
SET,agentsgen, and other repo workflows
Start In 5 Minutes
Install:
brew install markoblogo/tap/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.mdas the first owner checkpointsoul.mdas the short reviewed handoff layercontext.compact.jsonas the portable compact artifact
Core Files
Source 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
Why This Exists
- 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.
Ecosystem Role
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
Quick Paths
Lite:docs/LITE.mdShare:docs/SHARE.mdBench:docs/BENCH.mdSoul:docs/SOUL.mdIntegrations:docs/INTEGRATIONS.mdReleases:docs/RELEASES.md- full docs index:
docs/README.md
Live Public Metrics
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=74 ttl=14
- profiles/markoblogo/profile.extended.md: score=0.0 age=73 ttl=30
Current CLI Surface
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
idctl validate
idctl export-compact --owner-id <owner-id>
idctl export-interop --owner-id <owner-id>
idctl export-mcp --owner-id <owner-id>
Current Status
Today ID functions as:
- a protocol/spec reference
- a validated tooling reference
- a compact onboarding path
- an installable CLI package on PyPI/Homebrew
Latest release: v0.3.0 adds the derived soul.md layer and refresh flow.