ACP Kit provides a common adapter for Agent Frameworks.
Project description
ACP Kit
ACP Kit is a monorepo for ACP-facing agent runtime packages.
acpkitis the root CLI and target resolverpydantic-acpturnspydantic_ai.Agentinstances into ACP agentscodex-auth-helperturns a local Codex login into apydantic-aiResponses model
Installation
Production:
uv pip install "acpkit[pydantic]"
pip install "acpkit[pydantic]"
Development:
uv sync --extra dev --extra docs --extra pydantic
pip install -e ".[dev,docs,pydantic]"
CLI Quick Start
Run a supported agent target through ACP:
acpkit run my_agent
acpkit run my_agent:agent
acpkit run my_agent:agent -p ./agent_home
acpkit resolves module or module:attribute targets, auto-detects pydantic_ai.Agent instances, and dispatches them to the installed adapter package. If only the module is given, it selects the last defined pydantic_ai.Agent instance in that module.
If the matching adapter extra is not installed, acpkit fails with an install hint such as uv pip install "acpkit[pydantic]".
Status
pydantic-acpmilestone 1-7 scope is implementedacpkitCLI supports Click-basedrundispatch for installed adapterscodex-auth-helperprovidescreate_codex_responses_model(...)for Codex-backedpydantic-aiusage
Current Feature Surface
- Root CLI:
acpkit run module,acpkit run module:attribute, repeated-p/--path - Adapter bootstrap:
run_acp(...),create_acp_agent(...) - Agent inputs: direct
Agent, sync or asyncagent_factory, customAgentSource - Session features: create, load, list, fork, resume, close, transcript replay, history replay
- Session persistence: in-memory by default, or file-backed with
FileSessionStore - Session controls: ACP model state, mode state, config options, plan updates
- Session slash commands:
/model,/tools,/hooks,/mcp-servers - Approval flow: ACP permission requests mapped to Pydantic AI deferred approvals
- Projection maps: filesystem read/write diffs and bash command previews
- Capability bridges: hooks, prepare-tools, history processors, MCP metadata and classification
- Hook introspection: existing
Hookscapabilities can be surfaced into ACP updates and/hooks - Host helpers: session-scoped ACP filesystem and terminal adapters
- Codex helper:
create_codex_responses_model(...)frompackages/helpers/codex-auth-helper
/model notes:
/modelprints the current model id/model provider:modelswitches the current session model- Codex-backed selection must be explicit:
/model codex:gpt-5
Quick Examples
Static agent:
from pydantic_ai import Agent
from pydantic_acp import run_acp
agent = Agent("test")
run_acp(agent=agent)
Configured adapter with file-backed sessions:
from pathlib import Path
from pydantic_ai import Agent
from pydantic_acp import AdapterConfig, FileSessionStore, run_acp
agent = Agent("test", name="demo-agent")
run_acp(
agent=agent,
config=AdapterConfig(
session_store=FileSessionStore(base_dir=Path(".acp-sessions")),
),
)
Session-aware factory:
from pydantic_ai import Agent
from pydantic_acp import AcpSessionContext, create_acp_agent
def build_agent(session: AcpSessionContext) -> Agent[None, str]:
return Agent("test", name=f"agent-{session.cwd.name}")
acp_agent = create_acp_agent(agent_factory=build_agent)
Filesystem diff projection:
from pydantic_acp import FileSystemProjectionMap, run_acp
run_acp(
agent=agent,
projection_maps=(
FileSystemProjectionMap(
default_read_tool="read_file",
default_write_tool="write_file",
default_bash_tool="execute",
),
),
)
Hook projection:
from pydantic_acp import HookProjectionMap, run_acp
run_acp(
agent=agent,
projection_maps=(
HookProjectionMap(
hidden_event_ids=frozenset({"after_model_request"}),
),
),
)
Codex-backed pydantic-ai model:
from pydantic_ai import Agent
from codex_auth_helper import create_codex_responses_model
agent = Agent(create_codex_responses_model("gpt-5"))
Example entry points:
examples/pydantic/static_agent.pysmallest directrun_acp(agent=...)setupexamples/pydantic/hook_projection.pynativeHookscapability introspection rendered throughHookProjectionMapexamples/pydantic/my_agent.pybroad end-to-end ACP demo combining factories, providers, approvals, bridges, and host helpers
Development
ACP Kit uses uv for dependency management and tool execution. The canonical local checks are:
uv run ruff check
uv run ty check
uv run basedpyright
make tests
make check
To preview the docs locally:
uv run mkdocs serve --dev-addr 127.0.0.1:8080
Documentation Map
docs/index.md: workspace overview and documentation mapdocs/cli.md: rootacpkitCLI behaviordocs/pydantic-acp.md: adapter architecture and milestone coverageexamples/pydantic/README.md: example inventory and runnable demo entry pointsdocs/helpers.md: helper packages, includingcodex-auth-helperdocs/providers.md: provider seamsdocs/bridges.md: capability bridge systemdocs/host-backends.md: filesystem and terminal helpersdocs/testing.md: behavioral test surface
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file acpkit-0.3.0.tar.gz.
File metadata
- Download URL: acpkit-0.3.0.tar.gz
- Upload date:
- Size: 92.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a0b1005a874b69f04e6d1af46d1bf166abc46fe6a86973a43cfb5b2ebdd71c0
|
|
| MD5 |
e7487ff97fe7dc92dc040e86c923b928
|
|
| BLAKE2b-256 |
117f9af23805f13eb6612ff37f6880e0a4704693ff890c7acdd99e9622d7ea3b
|
File details
Details for the file acpkit-0.3.0-py3-none-any.whl.
File metadata
- Download URL: acpkit-0.3.0-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
517a73215f7b3ec40c2e5b14cd66af8d2f3634a76e28d49af7cc5fcf1b0a71af
|
|
| MD5 |
7ba044cb5c5e941c7514b83cd91b018d
|
|
| BLAKE2b-256 |
d0b016289441012543052ade8a64659094c223954b7a38ebfc7cd7cc5e0b7b63
|