Aiden Cline
7ebd344fa2
feat(core): add session form service ( #34855 )
2026-07-02 17:15:18 -05:00
Kit Langton
bc2e270f82
feat(server): durable log reads, changes feed, and watermarked snapshots ( #34962 )
2026-07-02 16:42:30 -04:00
Aiden Cline
c176baee82
feat(core): port v2 command invocation ( #34849 )
2026-07-02 11:22:04 -05:00
Kit Langton
7843f8fb38
feat(core): API-managed per-session context entries ( #34941 )
2026-07-02 10:05:47 -04:00
Simon Klee
f016392368
feat(mini): migrate mini to v2 ( #34895 )
...
feat(run): migrate non-interactive prompts to V2
feat(run): route mini prompts through V2
fix(run): use current session contracts
fix(run): fix V2 prompt turns
feat(cli): add mini subcommand
feat(run): use settled execution events
fix(run): handle remote prompt file attachments
feat(run): send prompt files as attachments
feat(run): use current APIs for run state
fix(run): adopt app-node runtime deps
feat(run): track subagent sessions
feat(run): move catalogs and default model onto current APIs
2026-07-02 12:06:49 +02:00
Dax Raad
d972aa9d83
feat(core): tool execute hooks, session instructions, synthetic endpoint
...
- V2 tool execute hooks: add `ctx.tool.execute.before/after` plugin API,
core ToolHooks service, and registry wiring so hosted/local tool calls
run registered before/after hooks; provider-executed calls are excluded.
- Session synthetic endpoint: add `POST /api/session/:sessionID/synthetic`
with text/description/metadata plus regenerated Promise/Effect/JS client
surfaces.
- SessionInstructions service: read tool discovers nearby AGENTS.md walking
up to the Location root (exclusive) and injects them as durable synthetic
instructions, with lazy history dedup of prior claims.
- to-llm-message: stop forwarding synthetic message metadata to the model so
bookkeeping annotations stay model-hidden.
- schema changelog entry for synthetic metadata and the metadata leak fix.
2026-07-01 20:50:10 -04:00
Dax Raad
e2bca216a2
feat: background blocking tools
2026-07-01 12:18:04 -04:00
Dax Raad
6a91a682e4
feat(core): add plugin list endpoint
...
Adds a plugin.list HTTP endpoint that reports currently loaded plugins, wires it through protocol, server, and generated clients, and merges it into sdk-next's plugin API. Also updates the sample plugin to register a primary agent instead of a subagent for local testing.
2026-07-01 00:53:53 -04:00
Kit Langton
1ce607c230
refactor(plugin): move tool implementation to plugin ( #34665 )
2026-06-30 23:30:56 -04:00
Kit Langton
194b0615e0
feat(plugin): support plugin-provided tools ( #34619 )
2026-06-30 13:18:56 -04:00
Dax Raad
655adbf46e
fix: stabilize v2 runtime behavior
2026-06-26 20:56:36 -04:00
Victor Navarro
6eec98371a
feat(tui): add main branch source to diff mode ( #30942 )
2026-06-24 10:35:37 +00:00
opencode-agent[bot]
cfddb2407c
chore: generate
2026-06-23 23:46:36 +00:00
Dax
cf80b5c470
feat(core): add opencode integration ( #33555 )
2026-06-23 23:45:02 +00:00
Dax Raad
975b1132f1
refactor(plugin): use direct runtime registry
2026-06-22 20:10:29 -04:00
Dax
909a1a6d78
feat(plugin): add namespaced hook API ( #33416 )
2026-06-22 19:06:57 -04:00
Dax
c780d7cee7
feat(plugin): add v2 effect host ( #33111 )
2026-06-21 08:05:49 -04:00
Aiden Cline
ae92f3158f
feat(core): update Copilot for token-based billing ( #30181 )
2026-06-01 14:55:23 -05:00
Aiden Cline
519d344470
feat(plugin): add dispose hook ( #29493 )
2026-05-26 21:21:53 -05:00
James Long
a6e1aa085f
fix(tui): default new sessions always to local project ( #28541 )
2026-05-20 18:35:37 -04:00
Sebastian
8dd6448c90
use keymap state for layer visibility ( #26246 )
2026-05-19 17:07:26 +02:00
James Long
12ae22378f
fix(plugin): ask in tools from plugins returns promise instead of effect ( #28217 )
2026-05-18 18:57:29 +00:00
Aiden Cline
48122b31cc
fix(tool): bridge custom tool zod metadata ( #27770 )
2026-05-15 14:50:21 -05:00
Aiden Cline
ef7d801271
fix(tool): preserve custom tool arg descriptions ( #27750 )
...
Co-authored-by: khimaros <231498+khimaros@users.noreply.github.com>
2026-05-15 10:11:01 -05:00
Sebastian
d6367853ae
Add TUI notifications and attention sounds (disabled by default) ( #26980 )
2026-05-13 03:26:25 +02:00
Aiden Cline
cb511f78ff
fix(plugin): preserve tool attachments ( #27157 )
2026-05-12 16:23:15 -05:00
Musa
159964b172
feat(plugin): add DigitalOcean OAuth + Inference Routers ( #26095 )
2026-05-12 16:22:40 -05:00
Dax
36d40fee4d
Track session usage totals ( #26644 )
2026-05-12 01:18:57 -04:00
Sebastian
9a8b54fe62
Plugin command API shim ( #26564 )
2026-05-09 21:56:49 +02:00
Sebastian
a0fc27e424
flatten to keybind compatible config ( #26421 )
2026-05-09 01:29:13 +02:00
Sebastian
19da27e1cb
internal which-key plugin, inactive by default ( #26337 )
2026-05-08 13:55:49 +02:00
Sebastian
98f5e6e713
introduce opentui keymap as sole key/cmd engine ( #26053 )
2026-05-07 20:35:31 +02:00
Kit Langton
8c79c58c4d
refactor: rename workspace adapters ( #25272 )
2026-05-01 07:36:52 -04:00
opencode-agent[bot]
8b3323708d
chore: generate
2026-04-20 17:43:32 +00:00
James Murdza
3406f18746
fix(plugin): add env parameter to WorkspaceAdaptor.create type ( #23235 )
2026-04-20 13:41:38 -04:00
Dax
4bd5a158a5
fix: preserve prompt input across unmount/remount cycles ( #22508 )
2026-04-17 04:23:30 +00:00
Jason Quense
7b3bb9a761
fix: preserve plugin tool metadata in execute result ( #22827 )
...
Co-authored-by: jquense <jquense@ramp.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-04-16 21:38:21 -05:00
Kit Langton
cf423d2769
fix: remove 10 unused type-only imports and declarations ( #22696 )
2026-04-16 02:17:59 +00:00
Kit Langton
d6b14e2467
fix: prefix 32 unused parameters with underscore ( #22694 )
2026-04-15 21:56:23 -04:00
Aiden Cline
34e2429c49
feat: add experimental.compaction.autocontinue hook to disable auto continuing after compaction ( #22361 )
2026-04-13 20:14:53 -05:00
James Long
bf50d1c028
feat(core): expose workspace adaptors to plugins ( #21927 )
2026-04-13 13:33:13 -04:00
Kit Langton
d84cc33742
refactor(plugin): return Effect from ToolContext.ask ( #21986 )
2026-04-10 23:50:50 -04:00
James Long
180ded6a27
rector(core,tui): handle workspace state in project context, add workspace status, improve ui ( #21896 )
2026-04-10 13:03:20 -04:00
James Long
5d48e7bd44
refactor(core): support multiple event streams in worker and remove workspaces from plugin api ( #21348 )
2026-04-07 13:22:34 -04:00
Aiden Cline
40e4cd27a1
tweak: adjust chat.params hook to allow altering of the maxOutputTokens ( #21220 )
2026-04-06 18:13:30 +00:00
Sebastian
29f7dc073b
Adds TUI prompt traits, refs, and plugin slots ( #20741 )
2026-04-02 22:11:17 +02:00
Aiden Cline
1fcfb69bf7
feat: add new provider plugin hook for resolving models and sync models from github models endpoint (falls back to models.dev) ( #20533 )
2026-04-01 23:04:14 +00:00
Sebastian
14f9e21d5c
pluggable home footer ( #20057 )
2026-03-30 14:33:01 +02:00
Sebastian
38af99dcb4
prompt slot ( #19563 )
2026-03-29 00:27:27 +01:00
Sebastian
f3997d8082
Single target plugin entrypoints ( #19467 )
2026-03-27 23:44:46 +00:00
Sebastian
6274b0677c
tui plugins ( #19347 )
2026-03-27 15:00:26 +01:00
Aiden Cline
d500a8432a
fix: ensure enterprise url is set properly during auth flow ( #19212 )
2026-03-25 23:59:53 -05:00
Aiden Cline
171e69c2fc
feat: integrate support for multi step auth flows for providers that require additional questions ( #18035 )
2026-03-18 11:36:19 -05:00
Dax
bb232247d0
Fix ESM imports for @opencode-ai/plugin ( #16916 )
2026-03-10 13:11:36 -04:00
Helge Tesdal
1aa18c6cd6
feat(plugin): pass sessionID and callID to shell.env hook input ( #13662 )
2026-02-18 14:14:18 -06:00
Spoon
1608565c80
feat(hook): add tool.definition hook for plugins to modify tool description and parameters ( #4956 )
2026-02-12 22:52:17 -06:00
Dax Raad
56ad2db020
core: expose tool arguments in shell hook for plugin visibility
2026-02-12 09:54:47 -05:00
Tyler Gannon
a30696f9bf
feat(plugin): add shell.env hook for manipulating environment in tools and shell ( #12012 )
2026-02-03 15:18:41 -06:00
adamelmore
1f9313847f
feat(core): add worktree to plugin tool context
2026-01-27 06:29:19 -06:00
adamelmore
a8c18dba82
fix(core): expose Instance.directory to custom tools
2026-01-26 20:07:47 -06:00
Aiden Cline
94dd0a8dbe
ignore: rm spoof and bump plugin version
2026-01-25 17:27:24 -05:00
Aiden Cline
c89f6e7ac6
add chat.headers hook, adjust codex and copilot plugins to use it
2026-01-21 15:10:08 -06:00
Spoon
bfd2f91d5b
feat(hook): command execute before hook ( #9267 )
2026-01-18 13:11:22 -06:00
Daniel M Brasil
73d5cacc06
fix: add missing metadata() and ask() defintions to ToolContext type ( #8269 )
2026-01-13 17:31:18 -06:00
Spoon
4752c83155
feat: pass sessionID to chat.system.transform ( #7718 )
2026-01-10 18:21:51 -06:00
Frédéric DE MATOS
1662e149b3
fix: add ChatGPT-Account-Id header for organization subscriptions ( #7603 )
2026-01-10 07:50:24 -06:00
Aiden Cline
5aa4fd0042
core: add variant to chat.message input
2026-01-04 00:28:52 -06:00
Eduardo Santos de Brito
4657fa823f
feat(plugin): expose server URL to plugins ( #6373 )
2025-12-29 21:05:08 -06:00
Joel Hooks
eab177f5e7
feat(plugin): allow compaction hook to replace prompt entirely ( #5907 )
2025-12-22 22:19:14 -06:00
Joel Hooks
24430287c5
feat(plugin): add experimental.session.compacting hook for pre-compaction context injection ( #5698 )
...
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-17 13:57:09 -06:00
Aiden Cline
81134cf61e
add ability to set topK
2025-12-15 14:34:56 -06:00
DS
b021b26e77
feat: restore experimental.chat.messages.transform and add experimental.chat.system.transform hooks ( #5542 )
2025-12-14 22:51:11 -06:00
Jorgen Henriksen
2a9269c347
add experimental.chat.messages.transform hook ( #5207 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-11 14:38:45 -06:00
franlol
81ee8541ab
feat: add experimental.text.complete plugin hook ( #4962 )
2025-12-07 19:44:04 -06:00
Ben Vargas
6c25e64658
fix: correct Provider type in chat.params plugin hook ( #5003 )
2025-12-02 22:50:21 -06:00
Dax
23ea8ba1ce
Tui onboarding ( #4569 )
...
Co-authored-by: GitHub Action <action@github.com>
2025-11-21 00:21:06 -05:00
Mathias Beugnon
d9ffe07391
fix: messageID type in chat.message ( #4128 )
...
Co-authored-by: GitHub Action <action@github.com>
2025-11-09 09:39:50 -06:00
Mathias Beugnon
d85eb1b880
feat: add input context to chat.params and chat.message ( #4085 )
2025-11-08 23:29:27 -06:00
GitHub Action
34ff87d504
chore: format code
2025-11-08 01:59:02 +00:00
Dax Raad
1ea3a8eb9b
big format
2025-11-06 13:03:12 -05:00
Ola
fe94bb8e50
feat(provider): add GitHub Enterprise support for Copilot ( #2522 )
...
Co-authored-by: Jon-Mikkel Korsvik <48263282+jkorsvik@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-04 15:36:12 -06:00
Dax
96bdeb3c7b
OpenTUI is here ( #2685 )
2025-10-31 15:07:36 -04:00
Jérôme Benoit
0eb899a950
chore: cleanup versioned zod imports ( #3460 )
...
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
2025-10-26 14:50:41 -05:00
Dax Raad
1ffc8be2b6
rework custom tools
2025-09-18 05:42:59 -04:00
Dax
3b6c0ec0b3
support custom tools ( #2668 )
2025-09-18 03:58:21 -04:00
Dax Raad
38e8c42cf0
ci: format
2025-09-09 23:44:04 -04:00
Zack Jackson
ab3c22b77a
feat: add dynamic tool registration for plugins and external services ( #2420 )
2025-09-08 16:25:04 -04:00
Dax Raad
f6bc9238df
docs: sdk
2025-09-01 17:35:52 -04:00
Dax
f993541e0b
Refactor to support multiple instances inside single opencode process ( #2360 )
...
This release has a bunch of minor breaking changes if you are using opencode plugins or sdk
1. storage events have been removed (we might bring this back but had some issues)
2. concept of `app` is gone - there is a new concept called `project` and endpoints to list projects and get the current project
3. plugin receives `directory` which is cwd and `worktree` which is where the root of the project is if it's a git repo
4. the session.chat function has been renamed to session.prompt in sdk. it no longer requires model to be passed in (model is now an object)
5. every endpoint takes an optional `directory` parameter to operate as though opencode is running in that directory
2025-09-01 17:15:49 -04:00
Dax Raad
4518f96e3d
add plugin hook for config
2025-08-21 11:22:24 -04:00
Dax
f19586cebd
fix anthropic console auth ( #2049 )
2025-08-18 17:12:21 -04:00
Dax Raad
a433766a31
allow plugins to create custom auth providers
2025-08-14 16:25:08 -04:00
Dax Raad
3ab4f42ebb
support agent options
2025-08-10 20:30:37 -04:00
Dax Raad
b824809605
re-export shell $ for plugin
2025-08-04 23:20:04 -04:00
Dax Raad
f85d30c484
wip: plugins
2025-08-03 21:43:58 -04:00
Dax Raad
1bac46612c
wip: plugin load from package
2025-08-03 21:19:03 -04:00
Dax Raad
ca031278ca
wip: plugins
2025-08-02 18:50:19 -04:00