ID Protocol — portable context for AI tools
Keep your working preferences in files you control. ID turns a reviewed profile into compact, privacy-filtered context that can move between AI tools and repositories.
Try it in five minutes
Requires Python 3.11 or newer.
uv tool install id-protocol
mkdir my-id-profile && cd my-id-profile
idctl init --owner-id demo
Edit profiles/demo/profile.minimal.md, then build and inspect the portable output:
idctl validate --owner-id demo
idctl refresh-soul --owner-id demo
idctl export-compact --owner-id demo
idctl diff --owner-id demo --since 7d
The starter profile is provisional until you review it. Use an alias such as demo or my-work-profile; a legal name is unnecessary. ID does not upload generated files.
Files and ownership
| File | Role |
|---|---|
profile.minimal.md |
Small owner-edited starting profile |
profile.core.md |
Canonical profile when a fuller source is needed |
profile.extended.md |
Optional detailed workflows and context |
privacy-policy.v1.json |
Per-field export permissions |
handshake.md |
Concise rules for applying context |
soul.md |
Short derived bootstrap for an agent |
context.compact.json |
Privacy-filtered portable context |
mcp.context.resource.json |
Resource payload for an external MCP adapter |
Markdown profiles remain the source of truth. Generated JSON is a transport view and may omit nuance. The package is a local CLI; it does not provide an MCP server or synchronize vendor accounts.
Privacy behavior
Compact and MCP resource exports require a valid policy whose owner_id matches the requested profile. Unlisted fields stay local-only. Missing, malformed, mixed, conflicting, or owner-mismatched policies block export.
Legacy list policies from earlier releases are normalized in memory during validation and export. Their source files remain unchanged and their restrictions remain effective. --allow-unfiltered only permits a missing policy in a reviewed legacy workflow; it cannot bypass an invalid policy.
Review the resulting export before attaching it to another tool. See the privacy model, policy schema, and threat model.
ABVX toolchain
| Product | Responsibility | Tested release |
|---|---|---|
| ID | Human preferences and operating constraints | 0.5.2 |
| agentsgen | Repository instructions and commands | 0.5.0 |
| SET | Review-first workflow planning and exports | 0.4.0 |
| abvx-agent-skills | Optional reusable workflows | 0.15.0 |
These remain independently installable. ID does not install companions or grant tool permissions.
For a repository that already contains a reviewed ID profile:
idctl install-set-hook --path .
The adapter returns owner-local bootstrap pointers to SET and preserves an existing custom hook. See the SET integration guide.
Evidence
Three reproducible demos exercise installed onboarding, policy-filtered omission, legacy-policy compatibility, and the agentsgen/SET handoff with synthetic data. They measure local CLI behavior and runtime, not AI answer quality.
The historical benchmark snapshot is a small checked-in sample with explicit limits. AI-client behavior still depends on each client's configuration and context rules.
Develop
git clone https://github.com/markoblogo/ID.git
cd ID
python -m venv .venv
. .venv/bin/activate
python -m pip install ".[dev]" build twine
make validate
make drift-check
make coverage
make release-build
make release-check
Start with the documentation index, protocol, integration boundaries, and contributing guide. Use synthetic profiles in public issues and pull requests.
Metadata
Release files for id-protocol 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| id_protocol-0.5.2.tar.gz | 67.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| id_protocol-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 145.0 kB
Release files / id_protocol-0.5.2.tar.gz
| Download URL | id_protocol-0.5.2.tar.gz |
|---|---|
| Size | 67.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f46b43624489af904bb4b00ec7f2e17ae3d3745ac9e9317cd473bcbb22a206b5
|
|
BLAKE2b-256 checksum How to use checksums |
90ce8bff67e34cbb698c7518edbf5615a6146d25d1775d2952430479e55f014c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / id_protocol-0.5.2-py3-none-any.whl
| Download URL | id_protocol-0.5.2-py3-none-any.whl |
|---|---|
| Size | 78.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2f7200833c46d168e4f415dcf72f8ceb1943869ebfd482848f3ee86c45a3fdf
|
|
BLAKE2b-256 checksum How to use checksums |
dacf0d2b09bfc5162a0daeec5f324a0a79a383841d854b2ee56b935bfd4f8a1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency log