ID — portable context for AI tools
Keep your working preferences in reviewed files. Reuse them across projects and AI tools, and inspect what changed before sharing.
ID gives you a small owner profile, a derived soul.md, portable JSON exports,
privacy rules, and a semantic diff. You choose which files an AI tool receives.
Start with one profile
Requires Python 3.11+ and uv. Run in a private working directory:
uv tool install id-protocol
idctl init --owner-id demo
Edit profiles/demo/profile.minimal.md: language, level of detail, working rules,
and what a good result means to you. The starter is provisional until you review it.
Use an owner ID such as demo or my-work-profile; a real name is unnecessary.
idctl validate --owner-id demo
idctl refresh-soul --owner-id demo
idctl export-interop --owner-id demo
idctl export-compact --owner-id demo
idctl validate-compact --owner-id demo
These commands work from an installed package, outside this repository. No Makefile, API key, central registry, or paid service is required. Validation checks structure and freshness; it cannot decide whether the profile reflects you.
What you get
| File | Purpose |
|---|---|
profile.minimal.md |
Owner-edited starting point |
privacy-policy.v1.json |
Rules for filtered exports |
handshake.md |
Instructions for confirming context |
soul.md |
Short derived bootstrap; refresh after source edits |
context.compact.json |
Portable, policy-filtered context |
Add profile.core.md and profile.extended.md when you need more detail.
If core exists, it takes precedence over minimal for interop exports.
The extended profile is optional. Init refuses to overwrite existing starter files.
Review before sharing
idctl diff --owner-id demo --since 7d
Diff uses Git history; commit reviewed source changes if you want version comparisons.
interop.v1.json and soul.md are local derived context, not privacy-filtered sharing bundles.
Review your policy and the resulting compact export before giving it to another tool.
Legacy list policies (always_share, local_only, task_class_scoped) are
converted in memory during validation and export; your source file stays unchanged.
Unlisted fields remain local-only. Scoped entries map field paths to task-class lists.
Mixed formats, conflicting rules, invalid types, and owner mismatches still block export.
Missing policies also block compact/MCP export. The explicit
--allow-unfiltered option permits a missing policy for a reviewed legacy workflow;
it does not bypass an invalid policy.
Generating or exporting a file does not upload it. Source profiles remain under your control.
Use with agentsgen and SET
| Product | Owns | Tested release |
|---|---|---|
| ID | Human preferences and operating constraints | 0.5.1 |
| agentsgen | Repository commands and instructions | 0.5.0 |
| SET | Workflow presets and planning exports | 0.3.1 |
| abvx-agent-skills | Optional reusable agent workflows | 0.14.0, optional pairing |
All remain separate products. ID does not install the others automatically. The first three versions are exercised together in release CI; skills are an optional workflow reference and are not part of the executable compatibility test.
For a repository that already has ID profiles:
idctl install-set-hook --path .
This creates a small repo-local adapter for SET. It requires idctl on PATH,
preserves an existing custom hook, and resolves bootstrap files inside the selected
owner directory. Complete SET setup.
Evidence and compatibility
Three reproducible demos verify installed onboarding, privacy-policy omissions, and the agentsgen/SET handoff with synthetic profiles. They measure CLI behavior and runtime, not AI task quality.
AI-client loading depends on each client's configuration. ID exports files for
manual attachment or an adapter; it does not automatically synchronize ChatGPT,
Claude, Cursor, or other clients. export-mcp creates resource JSON for an adapter;
this package does not run an MCP stdio or HTTP server.
Historical benchmark runs are available as a dated snapshot. They are a small sample, not a general performance guarantee.
Explore or contribute
- Core protocol and full documentation.
- Profile layers, sharing, and semantic diffs.
- Integration boundaries and release notes.
- Contributing: include a synthetic reproduction, package version, and expected/actual output.
For source development: install .[dev], then run make validate and make coverage.
Keep real private profiles outside this public repository.
Metadata
Release files for id-protocol 0.5.1
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.1.tar.gz | 71.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| id_protocol-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 153.9 kB
Release files / id_protocol-0.5.1.tar.gz
| Download URL | id_protocol-0.5.1.tar.gz |
|---|---|
| Size | 71.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2193f147b5abfe2dc4e8e242531926124ab6bd6d0104934da44f0c7a6f31a9c3
|
|
BLAKE2b-256 checksum How to use checksums |
0470e621b5c9c56c38e3413a1e02dfc0509ed29bbf345738bdf4dbd36575d78f
|
| 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 7, 2026.
Transparency logRelease files / id_protocol-0.5.1-py3-none-any.whl
| Download URL | id_protocol-0.5.1-py3-none-any.whl |
|---|---|
| Size | 82.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8610a1270586fb3e415c1fafc43f43654aa99c71d61debdde06755630a7c0822
|
|
BLAKE2b-256 checksum How to use checksums |
e8e220821aefd85358bff53f117c28d857f843252a2cc77450a058fd9029dcbc
|
| 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 7, 2026.
Transparency log