dart_acp_opencode
dart_acp_opencode finds the local OpenCode CLI, starts its built-in ACP
server, and returns an initialized, typed dart_acp_sdk client connection.
Install
dart pub add dart_acp_opencode
Install and authenticate the OpenCode CLI separately.
Quick start
import 'dart:io';
import 'package:dart_acp_opencode/dart_acp_opencode.dart';
Future<void> main() async {
final client = await OpenCodeAcpClient.start();
try {
final session = await client.agent
.newSession(cwd: AcpAbsolutePath(Directory.current.path))
.start();
final result = await session
.prompt(
content: <ContentBlock>[
ContentBlockText(TextContent(text: 'Summarize this project.')),
],
)
.collectText();
print(result.text);
session.dispose();
} finally {
await client.close();
}
}
Configuration
Pass OpenCodeAcpClientOptions to select an executable, working directory,
environment, initialization timeout, shutdown timeout, and stderr observer.
Discovery checks OPENCODE_EXECUTABLE, PATH, official install locations,
and common package-manager locations on Windows, macOS, and Linux.
Pass your own AcpClientApp to OpenCodeAcpClient.start when the client should
handle permission, file-system, terminal, or elicitation requests. The default
client deliberately advertises none of those proxy capabilities and declines
permission requests.
OpenCode is launched as opencode acp, using its native JSON-RPC-over-stdio
ACP server.
This is an independent community package and is not built by or affiliated with the OpenCode team.
Testing
Unit tests use deterministic fake processes. To also verify the installed CLI:
DART_ACP_LIVE_TESTS=true dart test test/live_integration_test.dart
Contributing
See CONTRIBUTING.md.
License
Licensed under the Apache License 2.0.
Libraries
- dart_acp_opencode
- Launch and connect to OpenCode's native ACP server.