IntentOS
Reliable AI Delegation
IntentOS makes AI delegation controlled, portable, and verifiable.
IntentOS is an open-source, vendor-neutral control and trust layer between human intent and AI execution. It turns rough goals into reviewable delegation contracts: what should be done, relevant context, constraints, risk, approval boundaries, an appropriate execution target/process, and evidence needed to establish completion. The chosen AI tool or agent performs the work.
Software engineering and DevOps are the initial product wedge and current domain-policy support. The long-term vision serves professionals across domains without requiring expertise in prompt engineering, model routing, MCP, or agent internals. Wider domain support requires evidence and separately scoped work.
Intent
→ Normalize / clarify
→ Task + risk
→ Relevant project context
→ Engineering / DevOps policy
→ AI / model route
→ Optimized execution prompt / portable Skill
→ Verification contract
→ Evaluation + versioned run record
→ Learning
Why IntentOS?
A delegation needs a clear goal, relevant context, constraints, risk awareness, and a way to verify the result.
For software engineering and DevOps, that includes engineering expectations, capability/effort guidance, and evidence from actual outcomes. IntentOS makes these concerns explicit in the existing Prepare → Review → Copy workflow and portable preparation artifacts.
Trust comes from explicit interpretation, traceable context, visible assumptions, constraints, consequential human approval, verification criteria, and outcome evidence. IntentOS does not guarantee AI correctness; its preparation guidance does not enforce an agent's permissions or certify completed work.
What makes it different
- Intent contracts — preserve and clarify the goal, scope, constraints, and success criteria in a reviewable execution prompt or portable Skill.
- Context-aware engineering — KISS/YAGNI by default; SOLID, DRY, Clean Code, security, and DevOps guidance only when the task actually benefits from them.
- Risk-aware delegation — production, security, schema, destructive, and persistent changes get stronger approval boundaries.
- Minimal project context — rank, deduplicate, and budget repository context instead of dumping the whole repo into the agent.
- Portable agent context — compile reusable
SKILL.mdartifacts instead of repeating the same instructions in every conversation. - Agent workspace hygiene — detect missing, stale, duplicate, or bloated agent-facing files and propose safe updates.
- Future-proof model routing — route by capability, effort, availability, surface compatibility, and relative cost without hardcoding today's model names into the core.
- Evidence over intuition — regression assertions, A/B ranking, token/latency/retry metrics, versioned privacy-minimal run records, and repeated-failure learning proposals.
- Ease of use by design — common workflows should not require prompt-engineering, model-routing, MCP, or internal architecture knowledge.
- Vendor-neutral core — provider-specific behavior lives behind profiles/adapters.
How people should use IntentOS
IntentOS is designed as one shared core with multiple access surfaces so different users can work in the environment that fits them.
IntentOS Core
│
┌───────────────────┼───────────────────┐
│ │ │
Simple UI VS Code UX CLI / API
│ │ │
└───────────────────┼───────────────────┘
│
MCP
│
Compatible AI agents/tools
Current surfaces:
- CLI — portable use from the terminal and scripts.
- Python API — programmatic access for integrations and automation.
- MCP adapter — optional local stdio connection exposing one bounded
prepare_tasktool. - VS Code extension — the published
0.1.1release provides Prepare → Review → Copy. The unreleased0.2.0candidate adds an Activity Bar workbench for the existing project, governance, delegation, recovery and outcome workflows. - Agent Skills — portable, reusable
SKILL.mdguidance.
Accepted, not-yet-published Core 1.1.0 surface:
- Local Simple UI (Core
1.1.0release candidate) —intentos uiopens an outcome-first local browser interface for Prepare → Review → Copy and guided access to the existing F01–F10 operations. See the UI guide.
The owner-approved graphical scope was integrated by PR #66, accepted at 862c5be0b15125c9f7e3f0ff24de2580fad39a51 with post-merge CI 7/7. Neither Core 1.1.0 nor extension 0.2.0 is published; neither interface silently runs an agent. Neither interface silently runs an agent.
Advanced controls should use progressive disclosure: everyday users see simple outcome-first actions, while experts can inspect and control context, risk, policy, routing, cost, approvals, and verification.
See docs/UX.md for the product usage and UX contract.
Quick start
Requires Python 3.11+.
Stable release installation
IntentOS 1.0.1 is the current stable release. Install it without cloning the repository:
python -m pip install intentos-engineering
intentos --help
intentos optimize "Refactor the parser" --target codex
The Python distribution is named intentos-engineering; its import package and CLI remain intentos. A clean public installation of version 1.0.1 was verified.
Core 1.1.0 source candidate (not yet on PyPI)
After installing from the accepted checkout, launch the local graphical UI with intentos ui, or use intentos ui --no-browser for a one-time local link. Do not expose the link or loopback server through a proxy. The extension 0.2.0 candidate requires the Core 1.1.0 CLI; public versions remain Core 1.0.1 and extension 0.1.1 until independently published.
Development checkout
git clone https://github.com/milad-seify/IntentOS.git
cd IntentOS
python -m pip install -e .
Optimize a request for Codex:
intentos optimize "Refactor the auth module without changing behavior" \
--target codex \
--constraint "No new dependencies" \
--success "Relevant tests pass"
If the target is named in the request, the CLI can detect it:
intentos optimize "Codex: refactor the parser without changing behavior"
Use project context:
intentos optimize "Refactor the parser" \
--target codex \
--context-file AGENTS.md \
--context-file docs/ARCHITECTURE.md
Compile the same engineering contract into a portable Agent Skill without writing files:
intentos skill "Refactor the parser" \
--target codex \
--name parser-refactor
Machine-readable output:
intentos optimize "Review this architecture" --target claude --json
JSON mode returns the versioned machine contract documented in docs/PUBLIC_CONTRACT.md. Schema versioning is independent from the Python package version. The v1 contract is frozen; package version 1.0.1 is the current stable release.
Plan agent workspace maintenance without writing files:
intentos workspace \
--phase "Phase 7B — minimum VS Code UX" \
--document AGENTS.md \
--document docs/STATUS.md
workspace and skill are proposal-first: they emit reviewable artifacts; they do not silently mutate or install anything in your repository.
On the unreleased development branch, review project state and scope from files you choose:
intentos compass --authoritative-document docs/PLAN.md \
--document docs/STATUS.md --task "Review API"
compass reports each extracted claim with its file and line, including D-xxx decision headings, and labels missing, stale, or unresolved facts. An exact in-scope match needs a file you explicitly designated authoritative; the result does not approve execution or verify the underlying claims. Use --json for the review data. This command is not in the published Core 1.0.1 package.
The same unreleased development branch can propose a bounded update to a simple docs/STATUS.md:
intentos state status --root . --current-phase "Milestone 2" \
--evidence "owner-reviewed PR #12"
Review the displayed diff and record its approval digest. Only after explicit owner approval, rerun with the same arguments plus --approve-digest DIGEST. intentos state decision similarly proposes an append-only decision. These commands write only the two named documents, reject changed source revisions, and do not verify that an evidence reference is truthful. Complex status sections require manual review. They are not in Core 1.0.1.
For projects with a simple docs/SCOPE.md, the unreleased intentos state scope command previews an owner-approved scope amendment. It requires an amendment ID, exact task, reason, and approval reference. The preview shows the diff and approval digest; apply requires rerunning with --approve-digest DIGEST. An out-of-scope item moves to the in-scope list only after approval, with an append-only audit entry in the same file. Ambiguous or stale scope requires manual review.
For a development milestone/launch review, place accepted requirements, milestone states and external check references in a local JSON file, then run intentos gates --file project-gates.json --json. The file uses schema_version: 1 and three arrays: requirements (key, outcome, checks, accepted_by_owner, approval_ref), milestones (key, requirement_keys, state, approval_ref), and evidence (requirement_key, check, passed, source_ref, source_revision, independently_reviewed). States are proposed, done, verified and approved; unknown checks remain null. The command reports missing, failed and unreviewed gates and never grants launch approval. It is not in Core 1.0.1.
The unreleased intentos route "Refactor the parser" --target codex --models-file models.json --json command reviews a recommendation from caller-supplied model metadata. The catalog has schema_version: 1 and a models array with each model's name, provider, surfaces, capability (fast/balanced/strong), cost (low/medium/high), available, and verified. Availability and verification default to false when omitted. The report explains eligible and excluded candidates, required capability/effort, relative cost and the catalog SHA-256. No live provider availability or price is claimed; missing or conflicting verified metadata produces a fallback for human review.
For an interrupted development task, intentos checkpoint create --root PROJECT --context-file docs/STATUS.md --spec checkpoint-spec.json --output checkpoint.json --json saves a versioned checkpoint without overwriting an existing file. The spec supplies task_id, next_step_id, approved_plan (step IDs and actions), plan_approval_ref, state_summary, state_evidence_ref, and optional completed steps (step ID, evidence reference, accepted_by_owner), operation_ids, required_approval_ids, and estimated_remaining_tokens. IntentOS reads the actual Git HEAD and fingerprints only the explicitly named context files; it stores the fingerprint, not their contents. After interruption, run intentos checkpoint review with the same --root and --context-file arguments, --checkpoint checkpoint.json, and externally checked --ledger-reviewed, repeated --executed-operation and --accepted-approval values as applicable. A changed revision/context, possible replay, or missing approval blocks resume. A passing review means ready for owner review, never permission to execute; references and ledger checks are caller assertions, not independently verified facts. This development command is not in Core 1.0.1.
The development intentos handoff prepare "TASK" --root PROJECT --target codex --task-id TASK-1 --context-file docs/STATUS.md --output handoff.json --json creates a reviewable packet using the same core preparation as optimize. The packet includes the target-specific prepared task, goal, policy and verification fields, named context sources, source revision and context fingerprint. intentos handoff dispatch --root PROJECT --file handoff.json --json previews an exact approval digest and permission boundary without starting an agent. Only a second invocation with the matching --approve-digest runs the supported Codex CLI adapter; --sandbox read-only is the default, and --sandbox workspace-write additionally requires a clean Git tree and is unavailable for high-risk tasks. Codex's noninteractive mode provides the underlying codex exec sandbox and JSONL event contract. IntentOS reports an agent turn as completed_unverified until independent task checks run. Other target profiles produce portable packets for manual copy and an explicit unavailable dispatch status. Local CLI credentials and any agent actions remain governed by the executing environment; do not include secrets in the task or selected context. These development commands are not in Core 1.0.1.
The development intentos outcome record --file observed.json --output record.json --json captures one externally verified outcome without raw prompts. The input names the task and raw, prepared, or single variant; the executor/model/effort/base/context/permissions/environment conditions; 1–64 named acceptance checks with passed (true, false, or null) and evidence references; execution_success; optional measured quality_score, input_tokens, output_tokens, latency_ms, retries; a source reference; and optional friction, rework, gap and lesson fields. intentos outcome compare --raw raw.json --prepared prepared.json --json requires the same task, conditions and acceptance checks, then uses the existing correctness-first paired comparator. Unknown checks or changed conditions are inconclusive, and missing measures stay null. intentos outcome learn --record RECORD ... --json proposes a lesson only after failures on two distinct tasks; rerunning with the exact proposal digest, external --approval-ref, and new --output saves an approved proposal record without changing runtime policy. All evidence and approvals are caller supplied, not independently collected by IntentOS. These development commands are not in Core 1.0.1 and do not start Phase 8 user validation.
For an explicit model choice, run intentos route with a caller-verified catalog, then pass its selected name as --model to both the handoff dispatch preview and approved dispatch. The model name is part of the approval digest; IntentOS does not claim live model availability. intentos checkpoint review --remaining-budget-tokens N compares a caller-supplied remaining budget with the checkpoint's caller-supplied estimate, blocks an estimated overrun, and reports unknown when either figure is absent. Neither estimate guarantees actual token use.
You can also run the CLI as a module:
python -m intentos optimize "Fix the failing parser test" --target codex
MCP adapter
MCP support is optional so the standard-library core remains lightweight.
Install the MCP extra without cloning:
python -m pip install "intentos-engineering[mcp]"
For development, contributors can install the extra from a repository checkout with python -m pip install -e ".[mcp]".
A compatible local MCP host can launch:
intentos-mcp
The server uses stdio and exposes exactly one tool: prepare_task.
prepare_task accepts the user request, optional target tool, constraints, success criteria, output format/audience, and bounded caller-supplied project context. Project context entries contain only path labels and content; IntentOS does not read those paths from the filesystem. The first slice accepts at most 32 context documents and 6000 characters total.
The MCP result uses the same versioned machine contract as the CLI: ready/clarification status, prepared prompt, task/risk decision, engineering and approval boundaries, routing, context diagnostics, and verification criteria.
MCP preparation does not execute the task, authorize a risky action, mutate the repository, expose workspace/Skill/run-record operations, or turn IntentOS into a general MCP runtime.
VS Code extension
Install the IntentOS extension from the Visual Studio Marketplace. First install the local CLI:
python -m pip install intentos-engineering
Then install the extension from the Marketplace and use this flow:
Request
→ IntentOS preparation
→ Review
→ Copy Prepared Task
→ hand off to Codex / ChatGPT / Claude / Gemini / Cursor / another AI tool
The extension uses the editable package installation only for local development. IntentOS 1.0.1 is also available as the stable public package.
The editor extension lives in integrations/vscode and intentionally has no npm runtime dependencies or build pipeline. The development candidate adds an Activity Bar entry and a native-themed workbench while preserving the published Prepare → Review → Copy path.
Basic flow:
- make sure the
intentosCLI is available to the VS Code extension host - select request text in an editor, or leave nothing selected
- run
IntentOS: Prepare Taskfrom the Command Palette - if needed, type the request into the small input box
- review interpretation, risk/approval boundaries, context summary, verification, and the prepared prompt
- use Copy Prepared Task when ready
Advanced routing/context details stay collapsed by default. The extension invokes intentos optimize ... --json; it does not duplicate IntentOS classification, policy, context, or routing logic in JavaScript.
intentos.executable defaults to intentos and can be changed when VS Code needs a specific virtual-environment executable path.
For the development workbench, open IntentOS in the Activity Bar, then choose Start, Project, Govern, Delegate, Recover or Outcomes. The workbench uses the installed Core 1.1.0 candidate CLI for advanced actions; the published Core 1.0.1 package does not contain those commands. Explicit source selection and approval previews preserve the existing CLI boundaries. There is no automatic project-file discovery, telemetry or background service. See integrations/vscode/README.md.
Python API
from intentos import (
IntentRequest,
RunMetrics,
build_run_record,
build_skill_artifact,
optimize_prompt,
)
result = optimize_prompt(
IntentRequest.from_values(
"Refactor the auth module without changing behavior",
target_tool="codex",
constraints=["No new dependencies"],
success_criteria=["Relevant tests pass"],
)
)
if result.needs_clarification:
print(result.questions)
else:
print(result.policy.task_type, result.policy.risk_level)
print(result.routing.required_capability, result.routing.effort)
print(result.prompt)
skill = build_skill_artifact(result.intent, result.policy)
record = build_run_record(
result,
metrics=RunMetrics(success=True, quality_score=0.9),
)
print(skill.content)
print(record.to_json())
For project-aware prompting, use optimize_project_prompt(). For model selection, pass replaceable ModelMetadata entries. IntentOS intentionally does not hardcode volatile model names in the core.
Run records intentionally avoid storing raw prompts by default. They use fingerprints and compact metadata so future telemetry/dataset adapters can be added without making raw private agent traces a core requirement.
The deterministic task/risk classifier is an advisory preparation mechanism, not a security authorization boundary.
Engineering philosophy
IntentOS prefers:
- minimal sufficient context
- small coherent changes
- KISS and YAGNI before abstraction
- contextual SOLID / DRY / Clean Code
- explicit scope and approval boundaries
- secure defaults and least privilege
- reproducible and recoverable DevOps changes
- evidence-backed completion
- the lowest-overhead model that still meets the quality bar
- simple defaults with expert controls available when needed
It should not force Clean Architecture, microservices, extra abstractions, heavyweight process, or expert-only UX onto small tasks.
Architecture
The conceptual pipeline is:
User Intent
↓
Intent Normalizer
↓
Task + Risk Classifier
↓
Context Selector
↓
Policy Engine
↓
AI / Model Router
↓
Prompt / Skill Compiler
↓
Verification Contract
↓
Evaluation + Run Record
See docs/ARCHITECTURE.md, docs/UX.md, docs/DECISIONS.md, docs/EVALUATION.md, and docs/HUGGINGFACE_RESEARCH.md.
What IntentOS is not
IntentOS is not:
- an IDE
- an LLM or coding-agent replacement
- a general autonomous-agent framework
- a general MCP runtime
- a telemetry backend
- a CI/CD platform
- a project-management suite
- a framework that forces one software architecture
- a giant prompt-template collection
Development
The core and local Simple UI have no third-party runtime dependencies. MCP support is an optional extra rather than a core dependency. The VS Code extension uses plain JavaScript and built-in VS Code/Node APIs.
PYTHONPATH=src python -m unittest discover -s tests -v
GitHub Actions runs the full core suite on Ubuntu with Python 3.11, 3.12, and 3.13, focused Windows/Python 3.13 regression coverage, CLI smoke checks, MCP protocol/stdio parity checks, and a dependency-free VS Code extension syntax check.
Project status
The initial Phase 0–6 roadmap and independent-audit stabilization gate are complete. Phase 7 is complete: MCP parity was proven, VS Code is publicly distributed with a visible status-bar launcher, and the accepted workflow remains Prepare → Review → Copy. The evidence gate did not justify additional adapters or execution capabilities.
The current UI candidate runs 258 Python unit tests (one skipped) locally, plus CLI/MCP smoke, VS Code contract/syntax/real-host checks, a real browser acceptance flow across all six areas and package validation. CI builds and inspects wheel/sdist artifacts, then installs and smoke-tests them from clean environments without publishing. Use exact-head CI for a final gate rather than treating this local count as release acceptance.
Core 1.0.1 is published on PyPI and GitHub, packaging the review-only classification/policy correction. See the 1.0.1 release notes and GitHub Release.
The v1 public compatibility contract is frozen in docs/PUBLIC_CONTRACT.md. IntentOS 1.0.1 is the current stable published core release; VS Code extension 0.1.1 is published. Phase 7 is formally complete. The F01–F10 source scope was accepted at PR #65, and the owner subsequently authorized the bounded pre-release graphical access candidate in D-033. Neither the new UI nor Core source 1.1.0 is published, and the revised integrated freeze awaits exact-SHA verification and owner acceptance. Phase 8 — Adoption & Outcome Validation has an approved protocol, but operational validation and owner-led dogfooding have not started. See status, release notes and release procedure.
See docs/STATUS.md for the concise handoff, docs/DOGFOODING.md for real-world findings, docs/MCP_DOGFOODING.md for MCP parity evidence, docs/HUGGINGFACE_RESEARCH.md for the ecosystem research pass, docs/UX.md for usage/access principles, docs/INDEPENDENT_AUDIT.md for the review contract, and docs/ROADMAP.md for the roadmap.
Contributing
Contributions are welcome, especially:
- real-world failure/regression fixtures
- target-tool profiles where generic behavior is demonstrably insufficient
- provider/model metadata adapters
- context-selection improvements backed by tests
- evaluation and workflow improvements with measurable evidence
- portable Agent Skills and integration adapters that preserve the vendor-neutral core
- usability improvements that reduce friction without duplicating core behavior
Please read CONTRIBUTING.md before opening a PR.
License
MIT
Metadata
Release files for intentos-engineering 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| intentos_engineering-1.1.0.tar.gz | 130.5 kB | With provenance | Details for intentos_engineering-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| intentos_engineering-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for intentos_engineering-1.1.0-py3-none-any.whl |
Total release size: 220.3 kB
Release files / intentos_engineering-1.1.0.tar.gz
| Download URL | intentos_engineering-1.1.0.tar.gz |
|---|---|
| Size | 130.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ec9b98ff3af58272b8c9255a614f86b3de5175a3aecf06bfbac10dddbb9cded
|
|
BLAKE2b-256 checksum How to use checksums |
c3ae930ebeb07e93437f06fb695bd72eeeb135c739314d255b1e5ee098e3192e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 10, 2026.
Transparency logRelease files / intentos_engineering-1.1.0-py3-none-any.whl
| Download URL | intentos_engineering-1.1.0-py3-none-any.whl |
|---|---|
| Size | 89.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31928695df4643e773077191f07151c468b193794fcb351972b43d9f1adf27bb
|
|
BLAKE2b-256 checksum How to use checksums |
1d3674948e035140a4b2e66c679a57d0511f54c9f590387fa2c9e822a3081869
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Nov 10, 2026.
Transparency logSecurity for intentos-engineering 1.1.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for intentos_engineering-1.1.0.tar.gz
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 Nov 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.