Repository navigation
v0.5.0
Minor release with breaking API changes (allowed by 0.x SemVer). Renames the agent-selection surface so that what you pass to the runtime reads as "which agent", not "which configuration preset". Also expands the set of agents that ship as built-in named constants from 3 to 6.
Breaking
RuntimeOptions.profileis nowRuntimeOptions.agent. Same forRunOneShotPromptOptions.profile(runOneShotPrompt),AcpTransport.connect({ profile }), andAcpConnectionFactory.create({ profile }). The field type is now strictlyAgentProfile— string ids are no longer accepted; import the named constant instead.RuntimeSession.profileis nowRuntimeSession.agent(read-only).- Removed:
BuiltInProfileId,builtInProfiles,resolveAgentProfile. Code that didprofile: 'claude'should switch toagent: ClaudeCode(import { ClaudeCode } from '@acp-kit/core'). - The startup-error message format changed from
... failed for profile "X".to... failed for agent "X"..
Added
-
Six built-in agent constants exported from
@acp-kit/core, all typed asAgentProfile:GitHubCopilot—npx @github/copilot-language-server@latest --acpClaudeCode—npx @zed-industries/claude-code-acp@latestCodexCli—npx @zed-industries/codex-acp@latestGeminiCli—npx @google/gemini-cli@latest --experimental-acpQwenCode—npx @qwen-code/qwen-code@latest --acp --experimental-skillsOpenCode—npx opencode-ai@latest acp
Override individual fields with a spread:
{ ...ClaudeCode, env: { ANTHROPIC_API_KEY: '...' } }.
Why
The word "profile" suggested a configuration preset, but the value really answered "which agent". Accepting bare strings (profile: 'claude') made typos a runtime failure and made it awkward to override a single field. Named constants give IDE autocompletion, compile-time safety, and a one-line spread for partial overrides — while still letting custom agents drop in via a plain AgentProfile literal.
Migration
// Before (0.4.x):
import { createAcpRuntime } from '@acp-kit/core';
await using acp = createAcpRuntime({ profile: 'claude', host });
// After (0.5.0):
import { createAcpRuntime, ClaudeCode } from '@acp-kit/core';
await using acp = createAcpRuntime({ agent: ClaudeCode, host });
// Custom agent (was already supported, now passed under `agent`):
await using acp = createAcpRuntime({
agent: { id: 'my-agent', displayName: 'My Agent', command: 'my-cli', args: ['--acp'] },
host,
});