Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
89ba2f3
chore(core): add Hono MCP dependencies
ian-pascoe May 19, 2026
e8ad430
refactor(core): share MCP session registration
ian-pascoe May 19, 2026
f14ecfa
feat(core): validate serve transport options
ian-pascoe May 19, 2026
ac769be
feat(core): serve MCP over Hono HTTP
ian-pascoe May 19, 2026
cfba58b
feat(core): add serve command options
ian-pascoe May 19, 2026
89dbbd8
refactor(cli): delegate serve command to core
ian-pascoe May 19, 2026
007dbf3
test(core): cover HTTP MCP sessions
ian-pascoe May 19, 2026
780142f
docs: add HTTP MCP serve design and plan
ian-pascoe May 19, 2026
60c13a1
chore: add changeset for HTTP MCP serving
ian-pascoe May 19, 2026
8f0fcf1
docs: spec remote native Caplets service
ian-pascoe May 19, 2026
98554d4
docs: clarify remote integration config surfaces
ian-pascoe May 19, 2026
4836c3d
docs: plan remote native integrations
ian-pascoe May 19, 2026
c32b641
docs: format remote native plan
ian-pascoe May 19, 2026
1ed186c
feat(core): resolve remote native service options
ian-pascoe May 19, 2026
db6e98c
fix(core): harden remote native URL validation
ian-pascoe May 19, 2026
bf9a836
feat(core): add remote native Caplets service
ian-pascoe May 19, 2026
2c17bc1
fix(core): harden remote native service sessions
ian-pascoe May 19, 2026
87f5fcc
fix(core): retry remote native executions after reconnect
ian-pascoe May 19, 2026
84fb346
fix(core): guard remote native cleanup races
ian-pascoe May 19, 2026
5e3413a
feat(opencode): accept remote Caplets config
ian-pascoe May 19, 2026
7ee73c7
feat(pi): accept remote Caplets args
ian-pascoe May 19, 2026
6f5fbbf
fix(pi): align remote args with Pi extension loading
ian-pascoe May 19, 2026
5d064fa
docs: document remote Caplets service connections
ian-pascoe May 19, 2026
5e7bde0
docs: clarify remote service TLS guidance
ian-pascoe May 19, 2026
61dfea1
chore: add changeset for remote native integrations
ian-pascoe May 19, 2026
fa5deed
fix: initialize remote native tools before registration
ian-pascoe May 19, 2026
4a1362c
fix(pi): load remote args from Pi settings
ian-pascoe May 19, 2026
5127994
fix(pi): use valid remote poll interval examples
ian-pascoe May 19, 2026
f8898e4
fix(pi): support top-level Pi settings
ian-pascoe May 19, 2026
5d0b64e
fix(pi): remove package entry settings support
ian-pascoe May 19, 2026
1d127d0
feat(core): log HTTP MCP requests
ian-pascoe May 19, 2026
38b40d0
feat(pi): show remote Caplets status
ian-pascoe May 19, 2026
f9bd4bf
fix(pi): load project Pi settings
ian-pascoe May 19, 2026
c953581
style(pi): compact remote status widget
ian-pascoe May 19, 2026
7624432
chore: local dev configs
ian-pascoe May 19, 2026
995c338
fix: pi api
ian-pascoe May 19, 2026
61b8e52
fix: address PR review feedback
ian-pascoe May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/fuzzy-carpets-serve-http.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@caplets/core": minor
"caplets": minor
---

Add `caplets serve` transport options, including opt-in Hono Streamable HTTP MCP serving with optional Basic Auth, health/info endpoints, and no-arg help behavior.
8 changes: 8 additions & 0 deletions .changeset/remote-native-caplets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@caplets/core": minor
"@caplets/opencode": minor
"@caplets/pi": minor
"caplets": patch
---

Add remote Caplets service support for native integrations, including remote-backed OpenCode and Pi native tools plus documentation for MCP-backed Codex and Claude Code remote connections.
12 changes: 11 additions & 1 deletion .opencode/opencode.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@caplets/opencode@file:./packages/opencode"],
"plugin": [
[
"@caplets/opencode@file:./packages/opencode",
{
"mode": "remote",
"remote": {
"url": "http://localhost:5387/mcp"
}
}
]
],
"permission": {
"external_directory": {
"~/.config/caplets/": "allow",
Expand Down
8 changes: 7 additions & 1 deletion .pi/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
{
"packages": ["npm:@caplets/pi@file:../../packages/pi"]
"packages": ["npm:@caplets/pi@file:../../packages/pi"],
"caplets": {
"mode": "remote",
"remote": {
"url": "http://localhost:5387/mcp"
}
}
}
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,33 @@ The Claude Code and Codex commands install from this GitHub repository through e
plugin marketplace flow; users do not need to clone the repository manually. Plugin MCP
configs run `caplets serve` directly, so install the Caplets CLI globally first.

### Remote Caplets service

OpenCode and Pi can use native `caplets_<id>` tools backed by a remote Caplets HTTP service. Codex, Claude Code, and any MCP client can connect to the same remote MCP endpoint directly.

Start a local HTTP service:

```sh
caplets serve --transport http --host 127.0.0.1 --port 5387 --path /mcp
```

`caplets serve --transport http` serves plain HTTP. For non-loopback or network access, expose it only through HTTPS/TLS (for example, a reverse proxy or secure tunnel) and enable Basic Auth; Basic Auth over plain HTTP exposes credentials. Keep credentials out of plugin manifests:

```sh
CAPLETS_SERVER_PASSWORD=... caplets serve --transport http --host 127.0.0.1 --port 5387 --path /mcp
```

Native integrations read remote client settings from environment variables:

```sh
CAPLETS_REMOTE_URL=https://caplets.example.com/mcp \
CAPLETS_REMOTE_USER=caplets \
CAPLETS_REMOTE_PASSWORD=... \
opencode
```

For MCP-backed Codex or Claude Code configs, point the agent's MCP server entry at the remote URL using that agent's supported HTTP MCP configuration. If Basic Auth is needed, use the agent's secure secret or environment interpolation mechanism rather than hardcoding credentials.

## Convert Existing Tooling

Caplets is designed to convert what you already use into agent-friendly capability domains.
Expand Down
Loading