Compare commits

...

3626 Commits

Author SHA1 Message Date
Matt Silverlock
8b298a233e github: add OIDC_BASE_URL for custom GitHub App installs (#5756) 2025-12-18 11:31:13 -06:00
Adam
6f43d03043 fix(desktop): checkbox render in safari fml 2025-12-18 11:16:33 -06:00
Adam
c868a4088d fix(desktop): rendering shell mode messages 2025-12-18 11:16:33 -06:00
Adam
83d8a88c90 fix(desktop): error styles 2025-12-18 11:16:33 -06:00
Adam
268f37f8c9 fix(desktop): prompt history nav, optimistic prompt dup 2025-12-18 11:16:33 -06:00
Adam
b0aaf04957 fix(desktop): session ordered by most recent 2025-12-18 11:16:32 -06:00
Adam
b7875256f3 feat(desktop): shell mode 2025-12-18 11:16:32 -06:00
Adam
7bc47fb904 chore: cleanup 2025-12-18 11:16:32 -06:00
GitHub Action
5cf8e54372 chore: format code 2025-12-18 16:39:21 +00:00
Ariane Emory
7437ccd6f4 feat(tui): fork slash command for keyboard-friendly session forking (resolves #5599) (#5610)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-18 10:38:19 -06:00
Jeon Suyeol
4bf882ba81 fix(command): validate model before executing slash command (#5740) 2025-12-18 10:35:40 -06:00
Frank
d5dcc55a47 Revert "add client header"
This reverts commit 2fb89161c8.
2025-12-18 11:21:22 -05:00
barış
e1925f4fe8 docs: fix typos (#5753) 2025-12-18 09:56:37 -06:00
Aiden Cline
ee3d034e16 ci: fix discord 2025-12-18 09:56:08 -06:00
Aiden Cline
257a4d5b86 bump bun version 2025-12-18 09:47:42 -06:00
Daniel Polito
1fc5836f64 Improve Github Action Hallucinations (#5751) 2025-12-18 09:40:04 -06:00
Frank
2fb89161c8 add client header 2025-12-18 10:33:25 -05:00
GitHub Action
251fbc0a99 ignore: update download stats 2025-12-18 2025-12-18 12:16:54 +00:00
Brendan Allan
0da901a188 tauri: disable pinch zoom on linux (#5735) 2025-12-18 05:13:09 -06:00
Brendan Allan
17221e6ffe tauri: configure display backends more correctly on linux (#5730) 2025-12-18 18:34:12 +08:00
GitHub Action
cc9f88ac8f chore: format code 2025-12-18 10:28:55 +00:00
Adam
fe65ed6a61 fix(desktop): disable pinch to zoom 2025-12-18 04:28:03 -06:00
Adam
e37a75a411 feat(desktop): custom update toast 2025-12-18 04:26:21 -06:00
opencode
194ff4919c release: v1.0.167 2025-12-18 09:45:33 +00:00
shuv
83843a794f fix: handle empty directory query parameter in server middleware (#5732) 2025-12-18 03:27:50 -06:00
Brendan Allan
235a60d3c2 tauri: say OpenCode Server instead of OpenCode CLI 2025-12-18 17:18:46 +08:00
Brendan Allan
b70d186bd1 tauri: server spawn fail dialog w/ copy logs button (#5729) 2025-12-18 03:17:31 -06:00
Frank
647331de28 zen: error handling for stream requests 2025-12-18 00:47:37 -05:00
GitHub Action
57ef115375 chore: format code 2025-12-18 04:30:54 +00:00
Jeon Suyeol
942498211f docs: add OPENCODE_DISABLE_TERMINAL_TITLE to environment variables (#5725) 2025-12-17 22:30:21 -06:00
Jake Nelson
e789fcf5e5 feat(tui): add option to disable terminal title (#5713) 2025-12-17 22:30:01 -06:00
Frank
b9fb180bc6 zen: error handling for stream requests 2025-12-17 22:55:44 -05:00
Rohan Mukherjee
7427b887f9 MCP improvements (#5699) 2025-12-17 20:49:45 -06:00
Jay V
289b2b6a51 docs: add legal pages with privacy policy and terms of service links 2025-12-17 20:17:33 -05:00
GitHub Action
49b4b5907e chore: format code 2025-12-18 01:09:02 +00:00
Ryan Vogel
f82442c123 docs: add opencode.cafe to ecosystem page (#5714) 2025-12-17 19:08:29 -06:00
opencode
e682cc9daf release: v1.0.166 2025-12-17 22:08:15 +00:00
Adam
d359e086a4 chore: cleanup 2025-12-17 16:04:41 -06:00
Adam
f949755367 fix: better init error messages 2025-12-17 16:04:40 -06:00
Adam
a168d854f4 fix: auto-scroll 2025-12-17 16:04:40 -06:00
GitHub Action
31645f5578 chore: format code 2025-12-17 22:03:43 +00:00
Sercan Sagman
a1b68daa9a fix(tui): exclude reverted assistant reply when copying last message (#5705)
Signed-off-by: assagman <ahmetsercansagman@gmail.com>
2025-12-17 16:03:06 -06:00
opencode
ca65da2d9e release: v1.0.165 2025-12-17 21:46:21 +00:00
Adam
e48d804d84 feat(desktop): startup errors shown 2025-12-17 15:42:55 -06:00
Adam
b4209582fb feat(desktop): optimistic prompt submit 2025-12-17 15:42:55 -06:00
Aiden Cline
dbdea2f659 fix: better error messages 2025-12-17 15:32:44 -06:00
Aiden Cline
a50ab4b5b5 fix: prevent 1 from showing when preparing write 2025-12-17 15:25:04 -06:00
Nalin Singh
4d7c3f56fa feat: add viewportOptions to scrollbox for padding adjustments to avoid scrollbar overlap (#5703) 2025-12-17 15:09:41 -06:00
Spoon
16b41d2bea UI: show plugins in /status (#4515)
Co-authored-by: GitHub Action <action@github.com>
2025-12-17 15:01:52 -06:00
Nalin Singh
a8c499ae8f fix: prevent session list selection from jumping to active session when confirming delete (#5666) 2025-12-17 14:35:46 -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
Github Action
1f52731255 Update Nix flake.lock and hashes 2025-12-17 19:13:06 +00:00
Adam
4a3ba58f65 chore: localStorage -> tauri store 2025-12-17 13:11:02 -06:00
Brendan Allan
2a3a8a1ec2 console: use download proxy to rename mac and windows installers (#5697)
Co-authored-by: GitHub Action <action@github.com>
2025-12-18 01:59:23 +08:00
Ravi Kumar
69e562125d fix(tui): resolve session_status TypeError (#5520) 2025-12-17 11:38:05 -06:00
Aiden Cline
b5e97eb338 fix: keep session dialog open if deleting session 2025-12-17 11:29:55 -06:00
Aiden Cline
16e6941495 fix: remove needless tui event publish on session delete 2025-12-17 11:29:55 -06:00
GitHub Action
f033e0317e chore: format code 2025-12-17 17:02:36 +00:00
Adam
ddd88f92cc fix: sticky visual issues 2025-12-17 11:02:00 -06:00
Aiden Cline
99101edc13 ci: add windows label to triage bot 2025-12-17 11:01:53 -06:00
GitHub Action
6e85a07977 chore: format code 2025-12-17 16:59:57 +00:00
Brendan Allan
be1a3536ae console: add /download/[platform] endpoint 2025-12-18 00:59:16 +08:00
Qio
1e4bfbcf6f add OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX to override 32k default (#5679)
Co-authored-by: qio <handsomehust@gmail.com>
2025-12-17 10:35:43 -06:00
Adam
204e3bf382 feat(desktop): inter and ibm plex mono 2025-12-17 10:30:35 -06:00
Adam
8fb014a48d feat(desktop): inter and ibm plex mono 2025-12-17 10:30:03 -06:00
Paolo Ricciuti
57c3cf1f8b fix: send mcpName as state if authUrl doesn't have state (#5681) 2025-12-17 10:26:23 -06:00
Aiden Cline
f9d0850c5e test: add regression test for setCacheKey option 2025-12-17 10:24:53 -06:00
Spoon
8864da7a77 batch: enable edit, todoread, clarify error message, minor tool description change (#5659) 2025-12-17 10:23:35 -06:00
Rhys Sullivan
1b39199083 fix: change subagent navigation order to newest-to-oldest (#5680) 2025-12-17 10:22:57 -06:00
Shantur Rathore
b8204c0bb7 fix: config option setCacheKey not being respected (#5686) 2025-12-17 10:20:10 -06:00
Aiden Cline
fe8c5c143e docs: update share link 2025-12-17 10:18:30 -06:00
Frank
d6f86e9bb7 zen: add gemini 3 flash 2025-12-17 11:10:58 -05:00
Brendan Allan
bf00b2bfc9 tauri: nsis header and sidebar 2025-12-18 00:02:16 +08:00
Brendan Allan
382ec8fb2c tauri: update nsis icon 2025-12-17 23:40:52 +08:00
Stoufiler
6454adcd69 docs: Sort LSP Server list (#5688) 2025-12-17 09:14:26 -06:00
Rohan Mukherjee
99548554d7 feat: added lucent-orng theme (#5678)
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-12-17 09:10:35 -06:00
Sachnun
751899eeec fix: remove unsupported parameter from bash tool description (#5676) 2025-12-17 08:59:42 -06:00
Brendan Allan
f8df1d3185 tauri: return after update failures 2025-12-17 22:54:54 +08:00
GitHub Action
b07a47fc89 chore: format code 2025-12-17 14:52:05 +00:00
Brendan Allan
c6f84f32d7 tauri: only alert on update failure when triggered manually 2025-12-17 22:51:14 +08:00
Brendan Allan
ebe25c3e9a tauri: dev icons + separate prod config (#5691)
Co-authored-by: GitHub Action <action@github.com>
2025-12-17 22:23:03 +08:00
Adam
65d7fc3ccd fix: command shortcuts 2025-12-17 07:36:53 -06:00
Github Action
4f3037d803 Update Nix flake.lock and hashes 2025-12-17 13:35:05 +00:00
Amadeus Demarzi
5c490c51ed Diffs Performance Improvements (#5653)
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2025-12-17 07:33:46 -06:00
GitHub Action
5da1c0087b ignore: update download stats 2025-12-17 2025-12-17 12:04:41 +00:00
David Hill
4375149e63 wip: auto-detect OS and show desktop download button 2025-12-17 11:43:04 +00:00
David Hill
b695d3b6bb fix: website cta button 2025-12-17 11:21:57 +00:00
Adam
d7e133732c chore: cleanup 2025-12-17 03:58:16 -06:00
Adam
494e6fff01 feat(desktop): share sessions 2025-12-17 03:47:49 -06:00
Adam
0c7a297b1d feat(desktop): lsp diagnostics displayed 2025-12-17 03:47:48 -06:00
Github Action
9b1f9007c3 Update Nix flake.lock and hashes 2025-12-17 08:41:07 +00:00
GitHub Action
34ef5f4ece chore: format code 2025-12-17 08:40:22 +00:00
Sebastian Herrlinger
73ad20b90c upgrade opentui to v0.1.61 2025-12-17 09:38:04 +01:00
Jeon Suyeol
340e80257a Add availability to disable terminal title using OPENCODE_DISABLE_TERMINAL_TITLE env (#5661) 2025-12-16 23:57:03 -06:00
Dax Raad
c23ea2a211 ci: update publish workflow configuration 2025-12-16 21:01:44 -05:00
GitHub Action
a5f964aec6 chore: format code 2025-12-17 01:28:42 +00:00
Spoon
b8a8fb0de6 plugin(hook): add task tool execution hooks and command context tracking (#5642) 2025-12-16 19:28:09 -06:00
Aiden Cline
a6a8f41fd3 ci: tweak triage 2025-12-16 19:27:44 -06:00
Matt Silverlock
c137babea3 github: add configurable mentions input (#5655) 2025-12-16 19:14:50 -06:00
Adam
db2abc1b2c tui: increase session width to accommodate longer code blocks and improve readability 2025-12-16 17:31:26 -06:00
David Hill
a0f9f8dabb fix: load more button 2025-12-16 23:23:18 +00:00
Aiden Cline
8a185aa678 ci: fix missing pkg issue 2025-12-16 16:31:46 -06:00
Dax Raad
29aaf4f000 ci: fix release draft configuration to prevent automatic draft flag 2025-12-16 17:17:06 -05:00
GitHub Action
fc940dfcfb chore: format code 2025-12-16 22:07:10 +00:00
Adam
2f2ea98937 fix(share): content wasn't centered 2025-12-16 16:06:28 -06:00
opencode
ef0fa2007b release: v1.0.164 2025-12-16 21:47:41 +00:00
Adam
f07d4b933c fix(desktop): prompt history nav 2025-12-16 15:42:35 -06:00
Aiden Cline
5f57cee8e4 fix: user invoked subtasks causing tool_use or missing thinking signa… (#5650) 2025-12-16 15:42:21 -06:00
Adam
1755a3fe07 fix(desktop): auto-scroll 2025-12-16 15:32:14 -06:00
Adam
99680baf83 fix(desktop): focus prompt input after dialog close 2025-12-16 15:25:00 -06:00
Adam
9aa5460a0e fix(desktop): prompt history navigation 2025-12-16 15:10:44 -06:00
Adam
b4014e5baa fix: auto-scroll 2025-12-16 15:10:43 -06:00
Adam
96e4dcb521 fix: working logic 2025-12-16 15:10:43 -06:00
Adam
7e682a95c4 fix: prompt input multi line input 2025-12-16 15:10:43 -06:00
Adam
5eeba76bc5 fix: defensive audio init 2025-12-16 15:10:43 -06:00
Eric Guo
a2c91ebc32 feat(desktop): Loading more session number per project by button (#5616)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-16 14:50:33 -06:00
matvey
1aee8b49e1 feat: add experimental oxfmt formatter (#5620) 2025-12-16 14:43:14 -06:00
Aiden Cline
984f17ddd7 ci: include desktop & tauri in release notes 2025-12-16 14:37:33 -06:00
Aiden Cline
d556143e3b ci: fix branch name 2025-12-16 14:35:42 -06:00
Aiden Cline
7e3ad770ac fix: git branch filewatcher, add flag to completely disable watcher 2025-12-16 14:31:09 -06:00
Aiden Cline
87524de265 ci: fix triage 2025-12-16 14:15:50 -06:00
Aiden Cline
ee10d9b898 ci: auto tag github action once a change is shipped for it 2025-12-16 14:13:51 -06:00
Dax Raad
bbd36e8441 core: update plugin dependency and config loading for .opencode directory support 2025-12-16 15:06:50 -05:00
Dax Raad
4e2d1acf7d core: fix Tauri desktop app SSE connection timeout
- Add heartbeat events to /global/event and /event SSE endpoints
- Send server.heartbeat event every 30s to prevent WKWebView 60s timeout
- Fixes desktop app disconnecting from global events after 1 minute
2025-12-16 14:45:03 -05:00
Dax Raad
40d63cd1e3 fix 2025-12-16 14:25:12 -05:00
Dax Raad
77b2331428 ignore: update opencode plugin dependency 2025-12-16 14:21:19 -05:00
Dax Raad
2b7e2edee5 core: ensure desktop app loads user shell environment variables
Changes shell spawn flags from -l to -il so that ~/.zshrc and
~/.bashrc are sourced when starting the desktop app on macOS
and Linux. This fixes missing PATH and other environment
variables that users expect to be available.
2025-12-16 14:21:19 -05:00
Adam
28aba35ff9 feat(desktop): show retries 2025-12-16 13:19:32 -06:00
Adam
89219a77f7 fix: layout badness 2025-12-16 12:53:12 -06:00
Adam
20e3a74bad fix: defensive audio init 2025-12-16 12:53:12 -06:00
Adam
ff690350b1 feat(desktop): show write tool output 2025-12-16 12:53:11 -06:00
Adam
ebefb26e8f chore: cleanup 2025-12-16 12:53:11 -06:00
Dax Raad
0b1ee9ddd9 Merge remote-tracking branch 'origin/dev' into dev 2025-12-16 13:52:50 -05:00
Dax Raad
79599f351e chore: update opencode plugin dependencies and fix tauri sidecar path 2025-12-16 13:52:40 -05:00
Github Action
8c9f6b1d3e Update Nix flake.lock and hashes 2025-12-16 18:38:59 +00:00
Dax Raad
83bcb9e95b tui: fix autocomplete file loading and update dependencies 2025-12-16 13:37:22 -05:00
David Hill
96b9ff8d0e fix: remove the selected state from button when select deselected 2025-12-16 17:41:56 +00:00
David Hill
0af2254856 wip: add active state to open select 2025-12-16 17:35:04 +00:00
Fran Zekan
c2944024a8 fix: enable shell alias expansion in ! command (#5621) 2025-12-16 11:32:31 -06:00
GitHub Action
5be4bda90f chore: format code 2025-12-16 17:30:08 +00:00
shekohex
b78e2db013 docs: fix typo in Google Antigravity github link (#5625) 2025-12-16 11:29:31 -06:00
jinzhongjia
3f4d1121a4 docs: Add new project entry for opencode.nvim frontend (#5626) 2025-12-16 11:29:06 -06:00
Connor Adams
def910021d docs: add homebrew command for opencode-desktop (#5631)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-16 11:28:40 -06:00
Aiden Cline
3ac42e9632 fix: github install cmd if repo has . in it 2025-12-16 11:19:18 -06:00
David Hill
9c26bb7c6c fix: breadcrumb dropdown position left aligned 2025-12-16 17:16:51 +00:00
David Hill
53f20f7612 Revert "wip: make the default container wider"
This reverts commit 1f18f389c0.
2025-12-16 17:16:51 +00:00
Tommy D. Rossi
11b3927dc2 fix: use system prompt field from prompt input (#5633)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-16 10:52:22 -06:00
David Hill
a190eda2c8 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-16 16:36:15 +00:00
David Hill
1f18f389c0 wip: make the default container wider 2025-12-16 16:35:57 +00:00
GitHub Action
84e56ee614 chore: format code 2025-12-16 16:10:36 +00:00
Aiden Cline
59329a414d ci: tweak triage 2025-12-16 10:09:51 -06:00
Brendan Allan
452c991f58 Keep release a draft until all builds are finished (#5632)
Co-authored-by: opencode <opencode@sst.dev>
Co-authored-by: GitHub Action <action@github.com>
2025-12-16 23:34:44 +08:00
Simon D'Morias
be8116e2ea fix: preserve argument boundaries in run command (#4979) 2025-12-16 06:21:51 -06:00
David Hill
f0ed1e38c9 Revert "fix: strip parentheses from file paths generated by llm"
This reverts commit 6c1a1a77b7.
2025-12-16 12:12:01 +00:00
GitHub Action
ac0f1dbbdd ignore: update download stats 2025-12-16 2025-12-16 12:04:54 +00:00
GitHub Action
275a352e81 chore: format code 2025-12-16 11:51:08 +00:00
David Hill
9f3bc0e352 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-16 11:50:25 +00:00
David Hill
6c1a1a77b7 fix: strip parentheses from file paths generated by llm 2025-12-16 11:50:23 +00:00
David Hill
2e21c62320 fix: font size updates 2025-12-16 11:48:52 +00:00
David Hill
19c6fec4d1 wip: font-size updates 2025-12-16 11:12:08 +00:00
Brendan Allan
4779d99a13 tauri: explicitly kill sidecar before updater relaunch 2025-12-16 19:01:37 +08:00
David Hill
05e0759878 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-16 10:54:51 +00:00
David Hill
2330ec6dc3 fix: font size updates 2025-12-16 10:54:50 +00:00
GitHub Action
75e5130cf8 chore: format code 2025-12-16 10:33:49 +00:00
Brendan Allan
87efd27459 tauri: macos-only app menu 2025-12-16 18:33:04 +08:00
Aiden Cline
62f080b0e4 fix: small bug w/ install script 2025-12-16 00:20:05 -06:00
Aiden Cline
ae3990a557 chore: centralize dep to catalog & fix typos 2025-12-15 23:07:55 -06:00
Aiden Cline
d7b5b431d6 ci: Update issue assignment and labeling guidelines
Clarified assignment responsibilities and labeling for issues related to OpenCode tools.
2025-12-15 22:11:30 -06:00
Dax Raad
e2fbd098d2 tui: fix dialog select items taking up 2 lines when truncated
Prevents text wrapping in dialog select options by removing wrapMode,
ensuring truncated text stays on single line and maintains proper timestamp visibility
2025-12-15 22:57:52 -05:00
Luke Parker
ef78fd8bae fix: debounce LSP diagnostics to get complete results (#5600) 2025-12-15 21:26:59 -06:00
DS
72ebaeb8f7 fix: rejoin system prompt if experimental plugin hook triggers to preserve caching (#5550)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-15 20:00:26 -06:00
Lucas Duailibe
0dc62d5dad make install script use tmp dir (#5601) 2025-12-15 19:58:07 -06:00
Aiden Cline
d118782a10 ci: cheaper model 2025-12-15 19:24:30 -06:00
Aiden Cline
ff05647350 ci: ignore 2025-12-15 19:18:39 -06:00
GitHub Action
0e1c711c4e chore: format code 2025-12-16 01:16:20 +00:00
Aiden Cline
bfb254dac6 ci: auto triage issues 2025-12-15 19:15:40 -06:00
opencode
92fe927785 release: v1.0.162 2025-12-16 00:40:27 +00:00
GitHub Action
2e25fe9d5d chore: format code 2025-12-16 00:36:01 +00:00
Dax Raad
38c5f23f4a tui: update dialog context and server to use new single dialog system 2025-12-15 19:35:19 -05:00
Dax Raad
112c58abf5 tui: refactor dialog system to use single active dialog instead of stack 2025-12-15 19:35:18 -05:00
opencode
0dce5173cc release: v1.0.161 2025-12-16 00:17:15 +00:00
Adam
2c70c0b00f fix: undefined events 2025-12-15 18:13:11 -06:00
opencode-agent[bot]
34024c2504 docs: models --refresh flag in cli.mdx (#5596)
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-12-15 18:04:47 -06:00
Luke Parker
27e826eba6 fix(win32): Normalise LSP paths on windows (fixes lua) (#5597) 2025-12-15 18:01:03 -06:00
Aiden Cline
89a4f1c1ae tweak: add .catch for extractZip calls 2025-12-15 17:41:28 -06:00
GitHub Action
c0c61b25ff chore: format code 2025-12-15 23:30:06 +00:00
Luke Parker
0d1c6e0ca9 fix(win32): Missing LSP can now unzip on windows (#5594) 2025-12-15 17:29:30 -06:00
opencode
002db3abf4 release: v1.0.160 2025-12-15 23:26:00 +00:00
Dax Raad
416a919c6d tui: fix dialog replacement to prevent nested dialogs from showing simultaneously 2025-12-15 18:21:54 -05:00
Dax Raad
dbbcf0b8d0 tui: fix model selection dialog to properly replace current dialog instead of creating nested dialogs 2025-12-15 18:14:33 -05:00
Luke Parker
efac8cebb3 fix(win32): correct ElixirLS extension typo (#5590) 2025-12-15 16:47:27 -06:00
GitHub Action
4f2baf1a72 chore: format code 2025-12-15 22:40:18 +00:00
Luke Parker
48b2bde6e5 fix(win32): use path.delimiter for PATH separator in LSP server lookups (#5589) 2025-12-15 16:39:42 -06:00
opencode
88314148e6 release: v1.0.159 2025-12-15 22:19:08 +00:00
Dax Raad
56452d886d fix dialog root complexity 2025-12-15 17:13:20 -05:00
Luke Parker
f3e64cfb19 fix(windows): opencode github install (#5587) 2025-12-15 16:12:54 -06:00
Ariane Emory
8fcc80bc20 fix: restore ability to bind keys for model_cycle_favorite model_cycle_favorite_reverse (resolves #5198) (#5202) 2025-12-15 16:03:50 -06:00
opencode-agent[bot]
0beccc406e docs: enabled_providers docs section (#5586)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-15 16:01:35 -06:00
Adam
b82ea693db fix: multiline user input 2025-12-15 15:22:39 -06:00
Adam
4fd9a19fbb fix: keybinds for agent and model selection 2025-12-15 15:19:19 -06:00
Adam
e16487b804 fix: landing page CLS hero jump down 2025-12-15 15:10:48 -06:00
Adam
5388192aac fix: session nav on homepage 2025-12-15 15:10:17 -06:00
Adam
8010448ba1 fix: default steps expanded unless done 2025-12-15 15:03:00 -06:00
Adam
66f3e69867 fix: landing page CLS hero jump down 2025-12-15 14:59:24 -06:00
Aiden Cline
ca599ab8fc tweak: add model flag support for agent create command 2025-12-15 14:55:59 -06:00
Jay V
c3b3b133b0 docs: make project names clickable links in ecosystem documentation 2025-12-15 15:44:46 -05:00
Adam
300ec0e0af fix: missing event type (global) 2025-12-15 14:43:48 -06:00
Ariane Emory
6632987827 fix: record shell mode in history (resolves #5454) (#5551) 2025-12-15 14:42:17 -06:00
GitHub Action
e555e893c4 chore: format code 2025-12-15 20:35:39 +00:00
Aiden Cline
81134cf61e add ability to set topK 2025-12-15 14:34:56 -06:00
opencode
37e4c1e619 release: v1.0.158 2025-12-15 20:28:44 +00:00
Adam
02b5e7d72c fix: modal search 2025-12-15 14:25:19 -06:00
justfortheloveof
7abc2a947e tweak: prioritize fuzzysort results that start with user input (#5571) 2025-12-15 14:22:37 -06:00
Adam
337a7e9646 fix: allow for non-vcs projects in desktop 2025-12-15 14:16:08 -06:00
GitHub Action
62cc532ecc chore: format code 2025-12-15 20:09:08 +00:00
Dax Raad
d5a506d4ae core: fix server response handling to prevent connection timeouts 2025-12-15 15:07:20 -05:00
opencode
9c5f94bd66 release: v1.0.157 2025-12-15 19:46:23 +00:00
Dax Raad
83390314d6 ci: fix tauri updater version mismatch by checking out the release tag 2025-12-15 14:42:34 -05:00
Dax Raad
8b08e9cda5 ci: add app bundle target to fix macOS updater by generating .app.tar.gz files 2025-12-15 14:41:38 -05:00
GitHub Action
b1b1df824c chore: format code 2025-12-15 19:33:56 +00:00
Dax Raad
7d1733c752 core: fix message caching for Anthropic models to improve response consistency 2025-12-15 14:33:14 -05:00
opencode
cf05e6e02b release: v1.0.156 2025-12-15 19:28:02 +00:00
Adam
7e49d0fb15 fix: connect provider on homepage 2025-12-15 13:24:30 -06:00
Adam
c4f63824df fix: terminal in desktop 2025-12-15 13:09:13 -06:00
Adam
4236744fb5 fix: image attachments in desktop 2025-12-15 12:01:11 -06:00
Github Action
284c045795 Update Nix flake.lock and hashes 2025-12-15 16:57:28 +00:00
Dax Raad
2c53abd70c docs: update header navigation to include desktop download 2025-12-15 11:56:53 -05:00
Adam
b7a9cbfc68 fix: share page 2025-12-15 10:56:07 -06:00
Dax Raad
46a35dfc1b docs: restore desktop beta banner to homepage 2025-12-15 11:54:09 -05:00
GitHub Action
b7597c12dd chore: format code 2025-12-15 16:52:45 +00:00
Nalin Singh
6830590183 feat: add F# language server support (#5549) 2025-12-15 10:52:16 -06:00
opencode
b9b4349039 release: v1.0.155 2025-12-15 16:44:08 +00:00
Dax Raad
4107918909 20min 2025-12-15 11:31:38 -05:00
Adam
6347ee9988 chore: update stats 2025-12-15 10:31:11 -06:00
GitHub Action
9daa4e04ea chore: format code 2025-12-15 16:22:49 +00:00
Adam
ed96ae9d45 chore: cleanup 2025-12-15 10:22:07 -06:00
Adam
8ce0966987 wip(desktop): progress 2025-12-15 10:22:06 -06:00
Adam
8cb26b6066 wip(desktop): progress 2025-12-15 10:22:06 -06:00
Adam
5cf6a1343c wip(desktop): progress 2025-12-15 10:22:04 -06:00
Adam
44d6c5780d wip(desktop): progress 2025-12-15 10:20:20 -06:00
Adam
5eaa8e1bf4 chore: cleanup 2025-12-15 10:20:20 -06:00
Adam
df2713a6c2 chore: cleanup 2025-12-15 10:20:19 -06:00
Adam
ff6864a7ca feat(desktop): custom commands 2025-12-15 10:20:19 -06:00
Adam
5e37a902ce wip(desktop): progress 2025-12-15 10:20:19 -06:00
Adam
df2ebfac7d wip(desktop): progress 2025-12-15 10:20:19 -06:00
Adam
5fbcb203f5 wip(desktop): progress 2025-12-15 10:20:19 -06:00
Adam
34db739442 wip(desktop): progress 2025-12-15 10:20:18 -06:00
Adam
ae8c4154aa wip(desktop): progress 2025-12-15 10:20:18 -06:00
Adam
315836c0b7 wip(desktop): progress 2025-12-15 10:20:18 -06:00
Adam
c0d009d5f3 wip(desktop): progress 2025-12-15 10:20:18 -06:00
Adam
c36f3b9dbe wip(desktop): progress 2025-12-15 10:20:17 -06:00
Adam
d31824320e Revert "wip(desktop): session turn state consolidation"
This reverts commit 453f862616dc4d3ac90680581cde279e118b0da1.
2025-12-15 10:20:17 -06:00
Adam
88c0675148 wip(desktop): progress 2025-12-15 10:20:17 -06:00
Adam
82c4755fb0 wip(desktop): progress 2025-12-15 10:20:17 -06:00
Adam
40572eeba4 wip(desktop): progress 2025-12-15 10:20:17 -06:00
Adam
d81d63045a wip(desktop): session turn state consolidation 2025-12-15 10:20:16 -06:00
Adam
ece3bfd93d wip(desktop): progress 2025-12-15 10:20:16 -06:00
Adam
acd91bddf7 wip(desktop): progress 2025-12-15 10:20:16 -06:00
Adam
3a14ca044c wip(desktop): progress 2025-12-15 10:20:16 -06:00
Adam
d66d806700 wip(desktop): progress 2025-12-15 10:20:16 -06:00
Adam
e9b95b2e91 wip(desktop): progress 2025-12-15 10:20:15 -06:00
opencode
56dde2cc83 release: v1.0.154 2025-12-15 16:01:15 +00:00
Dax Raad
d2ce368a3f ci: update publish workflow concurrency to include version inputs and upgrade ubuntu runner to 24.04 2025-12-15 10:14:20 -05:00
GitHub Action
f492122d59 chore: format code 2025-12-15 14:59:05 +00:00
Dax Raad
b0f77da56c core: reorganize agent configuration to separate primary agents (build, plan) from subagents 2025-12-15 09:58:23 -05:00
Dax Raad
274b86b19b ci: fix AppImage build hanging by using portable appimage format
- Add appimage target back to tauri.conf.json
- Force reinstall tauri-cli from feat/truly-portable-appimage branch
- Add 10 minute timeout to prevent indefinite hangs
- Add logging to verify correct tauri-cli version is installed

This fixes the issue where AppImage builds would hang at 'Running input plugin: gtk' by using the new portable appimage format that bypasses linuxdeploy entirely.
2025-12-15 09:47:19 -05:00
René
2ca118db59 docs: Fix Wakatime repository link in ecosystem.mdx (#5552)
Co-authored-by: Github Action <action@github.com>
2025-12-15 08:32:06 -06:00
David Hill
a0c0e2b5c3 fix: add tooltip to close review tab 2025-12-15 14:22:57 +00:00
David Hill
d43fbec12d fix: prompt input using border shadow 2025-12-15 14:14:10 +00:00
David Hill
bb426112ed fix: replace agents dropdown with shadow border 2025-12-15 14:09:47 +00:00
David Hill
d2217bb825 fix: fix width and padding on agent select
- conditionally hide the role=presentation element because it was adding extra gap before the first agent
2025-12-15 14:05:24 +00:00
David Hill
ac495bd351 fix: hide prompt input send tooltip when the send button is disabled 2025-12-15 13:47:50 +00:00
David Hill
b913eb7acc fix: avatar and icon size in sidebar 2025-12-15 13:21:59 +00:00
David Hill
ea65a91b2e fix: remove blue border from prompt input 2025-12-15 13:11:09 +00:00
GitHub Action
ed6d749104 ignore: update download stats 2025-12-15 2025-12-15 12:05:05 +00:00
René
9eefcd1b41 Provider fix, anthropic Errorhandling if empty image file is read (#5521) 2025-12-14 23:56:47 -06:00
Nalin Singh
7c1124199e fix: input lip visibility for transparent themes (#5544) 2025-12-14 23:10:33 -06:00
Spoon
5cf126d489 fix(edit): add per-file lock to prevent read-before-write race (#4388) 2025-12-14 23:01:50 -06:00
Aiden Cline
509f7d9617 ignore: fix debug var in last commit 2025-12-14 22:59:30 -06:00
opencode-agent[bot]
ae1bf92c81 Add dismiss button to Getting Started box (#5543)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-14 22:58:26 -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
Aiden Cline
9555d348de ci: switch model 2025-12-14 22:41:54 -06:00
Brendan Allan
220c564047 tauri: use correct sidecar name 2025-12-15 12:40:49 +08:00
Brendan Allan
cf5c0129ac tauri: rename sidecar to opencode-cli 2025-12-15 12:40:14 +08:00
Aiden Cline
543dbe71d2 ci: smart oc 2025-12-14 22:36:46 -06:00
Ravi Kumar
54569b5552 fix(session): fix unshare command not clearing share state (#5523) 2025-12-14 22:05:06 -06:00
GitHub Action
6a09861806 chore: format code 2025-12-15 03:42:56 +00:00
Adam
79a4c65313 fix: test 2025-12-14 21:42:17 -06:00
Adam
654534ac71 fix: update sdk 2025-12-14 21:41:20 -06:00
Adam
ba16bfdf3d wip(desktop): progress 2025-12-14 21:38:59 -06:00
Adam
ad5614bbb9 wip(desktop): progress 2025-12-14 21:38:59 -06:00
Adam
dda579c8ad wip(desktop): progress 2025-12-14 21:38:59 -06:00
Adam
4246cdb069 wip(desktop): progress 2025-12-14 21:38:58 -06:00
Adam
7ade6d386d wip(desktop): progress 2025-12-14 21:38:58 -06:00
Adam
2613f44961 wip(desktop): progress 2025-12-14 21:38:58 -06:00
Adam
62ffeb3987 fix(desktop): auto scroll 2025-12-14 21:38:58 -06:00
Adam
4a8e8f537c wip(desktop): progress 2025-12-14 21:38:58 -06:00
Adam
a68bee7878 fix(desktop): layout fixes 2025-12-14 21:38:57 -06:00
Mark Jaquith
ed33d82535 feat(cli): auto-submit prompt when using --prompt flag (#4510) 2025-12-14 21:06:04 -06:00
Dax Raad
2d63c22d1a fix share link 2025-12-14 22:05:53 -05:00
Dax Raad
e22af25076 ci: fix test failures in CI by pre-populating models cache
Tests were failing in CI because the models.json cache file doesn't exist
and the data() macro fallback only works at build time, not runtime.
The preload now pre-fetches models.json and disables the background
refresh to prevent race conditions during test execution.
2025-12-14 21:23:45 -05:00
Dax Raad
622caae9c9 fix desktop updater 2025-12-14 21:12:38 -05:00
Dax
fed4776451 LLM cleanup (#5462)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-14 21:11:30 -05:00
Ravi Kumar
fdf560c343 fix(tui): --continue selects wrong session (#5513) 2025-12-14 19:50:54 -06:00
GitHub Action
fc3ffb2bf9 chore: format code 2025-12-14 23:14:05 +00:00
Martijn Baay
7368342bab feat: add experimental.continue_loop_on_deny config option (#4729)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-14 17:13:32 -06:00
Dax Raad
c8fc910533 ignore: simplify download page to use GitHub latest redirect URLs 2025-12-14 17:10:59 -05:00
GitHub Action
0f9ef84d55 chore: format code 2025-12-14 22:05:28 +00:00
Dax Raad
74b5c285cf disable app image 2025-12-14 17:04:46 -05:00
opencode
a34e67b518 release: v1.0.153 2025-12-14 19:04:01 +00:00
Aiden Cline
0c7f0cfa2e tweak: fallback to provider default for temperature 2025-12-14 11:57:12 -06:00
GitHub Action
10ee6d345b chore: format code 2025-12-14 17:48:34 +00:00
Nalin Singh
48ec68730f fix: ensure input borders are drawn in transparent themes (#5524) 2025-12-14 11:48:02 -06:00
GitHub Action
70e4efe429 chore: format code 2025-12-14 17:46:46 +00:00
Sellers Crisp
92948ed8a4 feat: add server_error, rate_limit, and no_kv_space retry logic to accommodate Foundry API issues (#5527)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-14 11:46:14 -06:00
shekohex
6d412d8872 docs: add opencode-pty and opencode-google-antigravity-auth plugins to the echosystem (#5530) 2025-12-14 11:38:53 -06:00
Lawrence Sarpong
e6a0a005d6 Add Gleam LSP and formatter (#5514) 2025-12-14 10:51:08 -06:00
Aymvn
90d44751e7 docs: Fix Wakatime link in ecosystem documentation (#5528) 2025-12-14 10:49:35 -06:00
GitHub Action
4d062ba1b2 ignore: update download stats 2025-12-14 2025-12-14 12:04:18 +00:00
Aiden Cline
f8bca50f00 rm unnecessary code 2025-12-13 23:45:15 -06:00
Aiden Cline
3d2ef28fa8 add topK function to transform, add temp defaults for glm and minimax 2025-12-13 23:27:11 -06:00
YeonGyu-Kim
210b3e905b fix(ui): guard Node reference for SSR compatibility in isTriggerTitle (#5509) 2025-12-13 22:28:14 -06:00
Brendan Allan
96975ef8d6 tauri: change mainBinaryName to just OpenCode 2025-12-14 12:08:53 +08:00
Brendan Allan
b8b998be56 tauri: bring back appimage 2025-12-14 12:00:14 +08:00
Sachnun
d8ac35f6e5 fix(tui): open parent session instead of subagent on continue flag (#5503) 2025-12-13 21:09:42 -06:00
Zhou Rui
ed1eacfce0 docs: Add opencode-websearch-cited to plugin list (#5501) 2025-12-13 20:28:39 -06:00
Adam
629f475f63 fix: sort models 2025-12-13 20:25:24 -06:00
Adam
43a7c1dd8c fix: use opencode icon 2025-12-13 20:25:24 -06:00
Adam
e288ce0fca chore: cleanup 2025-12-13 20:25:24 -06:00
Adam
67b3fcb31a chore: cleanup 2025-12-13 20:25:24 -06:00
Tommy D. Rossi
aedb5550a8 fix: limit LSP diagnostics to prevent context window waste (#5480)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-13 19:56:26 -06:00
Aiden Cline
1638ffde69 docs: networking 2025-12-13 18:20:44 -06:00
Aiden Cline
d4cfbd8219 chore: reduce duplication of field in transform 2025-12-13 18:07:22 -06:00
Adam
c7bac83212 chore: cleanup 2025-12-13 16:17:32 -06:00
Adam
fc9789d7a7 fix(desktop): archive button 2025-12-13 16:14:31 -06:00
Adam
a8957d8d16 fix(desktop): auto scroll 2025-12-13 15:56:12 -06:00
Adam
0660433921 feat(desktop): show richer status when thinking 2025-12-13 15:47:50 -06:00
Adam
1a6f4f1c0d fix: css scroll jitter 2025-12-13 15:36:28 -06:00
Adam
974a24ba02 fix: don't rotate placeholders in session 2025-12-13 15:25:56 -06:00
Adam
5ebe29de1e fix: don't open shell by default 2025-12-13 15:17:22 -06:00
Github Action
6bdf8b1fe1 Update Nix flake.lock and hashes 2025-12-13 21:13:53 +00:00
Adam
5bcc93851c chore: cleanup 2025-12-13 15:12:41 -06:00
Adam
d0789632b4 fix(desktop): terminal light mode 2025-12-13 15:12:32 -06:00
Adam
a6e297baad feat(desktop): message history 2025-12-13 14:57:24 -06:00
Adam
307af10c8b fix: session turn scroll 2025-12-13 14:57:23 -06:00
Felipe Oduardo Sierra
f254cf76d9 add ARM64 Docker image support (#5483) 2025-12-13 13:01:59 -06:00
Github Action
b4ffaa21ec Update Nix flake.lock and hashes 2025-12-13 19:01:20 +00:00
Aiden Cline
7bf6f264e4 bump bun version & set flags this time 2025-12-13 13:00:03 -06:00
GitHub Action
7434fbba8e chore: format code 2025-12-13 17:34:07 +00:00
Jan-Niklas W.
b7581e01ea docs: fix title for JetBrains ACP config file (#5479) 2025-12-13 11:33:31 -06:00
YeonGyu-Kim
b46d4789fc docs: add oh-my-opencode to plugins list (#5481) 2025-12-13 11:33:10 -06:00
GitHub Action
199bd8a9a2 chore: format code 2025-12-13 17:30:48 +00:00
rari404
decf2452c4 feat: add dockerfile language server (#5252)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-13 11:30:15 -06:00
GitHub Action
d8663a44c2 ignore: update download stats 2025-12-13 2025-12-13 12:04:19 +00:00
rari404
8917a4c609 feat: add texlab language server and latexindent formatter (#5251) 2025-12-12 23:50:09 -06:00
GitHub Action
5d7a52f8b8 chore: format code 2025-12-13 02:09:41 +00:00
Jan-Niklas W.
b7b827c5bd docs: JetBrains IDEs to ACP config docs page (#5465) 2025-12-12 20:09:08 -06:00
Matt Silverlock
613e082358 github: support GITHUB_TOKEN + skip OIDC (#5459) 2025-12-12 19:55:46 -06:00
Charles Cooper
b6856bd593 fix: add --session flag to attach command (#5460)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-12 19:45:28 -06:00
David Hill
7cb5a77ba6 fix: mute the project path in the sidebar that proceeds the final directory 2025-12-12 23:45:39 +00:00
David Hill
cd9898a565 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-12 23:25:11 +00:00
Dax Raad
a4ffa869cc fix 2025-12-12 18:15:31 -05:00
David Hill
dbc84ff4c3 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-12 22:50:50 +00:00
David Hill
c11ea3fd92 fix: mute the whole prompt area when leader key is active 2025-12-12 22:50:48 +00:00
GitHub Action
3c3a0f8afb chore: format code 2025-12-12 22:48:43 +00:00
Aiden Cline
b93614cb81 docs: add env vars sections 2025-12-12 16:47:50 -06:00
opencode
b84d513bd7 release: v1.0.152 2025-12-12 22:29:21 +00:00
Adam
0554d03162 Revert "fix: archive button"
This reverts commit bc3286de46.
2025-12-12 16:16:52 -06:00
Aiden Cline
15caecdb45 shell tweaks, better handling for windows (#5455)
Co-authored-by: GitHub Action <action@github.com>
2025-12-12 16:11:07 -06:00
Adam
91ab966921 fix: max height on bash tool 2025-12-12 16:10:13 -06:00
Adam
bc3286de46 fix: archive button 2025-12-12 16:03:07 -06:00
Dax Raad
af45444496 desktop: fix build on Linux and Windows by making macOS title bar styling conditional 2025-12-12 16:47:48 -05:00
Sebastian Herrlinger
43202f2820 only exit app when prompt is empty, otherwise fallthrough, fix #5457 2025-12-12 22:45:28 +01:00
GitHub Action
ce37e11bfe chore: format code 2025-12-12 21:44:09 +00:00
Dan Brown
6e9833acce Shell: No -l in fallback, for max compatibility (#5452) 2025-12-12 15:43:35 -06:00
opencode
379c4ecab3 release: v1.0.151 2025-12-12 21:34:32 +00:00
Github Action
f1db4b60c4 Update Nix flake.lock and hashes 2025-12-12 21:28:16 +00:00
Adam
9846b26be7 fix: desktop layout 2025-12-12 15:26:53 -06:00
Adam
d6ba6af6f3 fix: desktop layout 2025-12-12 15:24:43 -06:00
Adam
d463ade028 fix: desktop layout 2025-12-12 15:24:43 -06:00
Adam
6c3495a75a fix: desktop layout 2025-12-12 15:24:43 -06:00
Adam
a16edb4ea0 fix: desktop layout 2025-12-12 15:24:43 -06:00
Adam
9efe09564b fix: desktop layout 2025-12-12 15:24:42 -06:00
Adam
ccdd77032a fix: desktop layout 2025-12-12 15:24:42 -06:00
Adam
41e234c6d0 fix: desktop layout 2025-12-12 15:24:42 -06:00
Adam
3e03646e42 fix: desktop layout 2025-12-12 15:24:42 -06:00
Adam
f7acc34327 fix: desktop layout 2025-12-12 15:24:41 -06:00
Adam
bf420e7df6 chore: cleanup 2025-12-12 15:24:41 -06:00
Adam
78484f545c chore: cleanup 2025-12-12 15:24:41 -06:00
Adam
ad008d2151 wip: desktop timeline changes 2025-12-12 15:24:41 -06:00
Dax Raad
651a10d6db only gen summary if diffs 2025-12-12 16:24:26 -05:00
Aiden Cline
f9674793af tweak: 5.1 -> 5. in transform 2025-12-12 15:17:11 -06:00
GitHub Action
f3a33d41f1 chore: format code 2025-12-12 20:26:02 +00:00
David Hill
642eec3dfd Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-12 20:25:21 +00:00
Dax Raad
73513612d4 reuse existing server query 2025-12-12 15:23:38 -05:00
David Hill
9b77246246 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-12 20:23:06 +00:00
David Hill
cf3bc1e0a6 fix: increase font-size-small to 13px 2025-12-12 20:22:51 +00:00
David Hill
4550ad049e fix: make syntax colors have more contrast 2025-12-12 20:22:08 +00:00
Dax Raad
d51c6ca39f sync 2025-12-12 15:21:29 -05:00
Dax Raad
47c6a2430c sync 2025-12-12 15:18:07 -05:00
Aiden Cline
909013320b tweak: 5.1 -> 5. reasoning effort match 2025-12-12 13:21:57 -06:00
Frank
770a4d87db Zen: add gpt5.2 2025-12-12 13:48:54 -05:00
Luke Parker
2e417c4d8c fix: osascript for clipboard typo (#5430) 2025-12-12 11:37:43 -06:00
Adam
2da527aaa6 fix: desktop layout 2025-12-12 11:11:17 -06:00
Jeremy Osih
0303eb0cc1 Change tooltip text from 'Open file' to 'New Terminal' (#5435) 2025-12-12 10:57:52 -06:00
Adam
3f4a792c8a fix: tweak missing colors 2025-12-12 10:56:30 -06:00
Adam
9629f7464b chore: cleanup 2025-12-12 10:45:34 -06:00
xu0o0
9017d10303 acp: fix internal error on /compact (#5424) 2025-12-12 10:43:18 -06:00
Brendan Allan
59d4041aa4 tauri: add basic custom titlebar (#5438) 2025-12-12 09:37:17 -06:00
Adam
feb8c4f3c6 feat(desktop): archive sessions 2025-12-12 07:07:54 -06:00
Adam
3f5cd2c4a8 fix(desktop): audio stuff 2025-12-12 06:21:31 -06:00
Adam
a160eb76df fix(desktop): homedir aware path on home 2025-12-12 06:21:31 -06:00
GitHub Action
e4b2028f91 ignore: update download stats 2025-12-12 2025-12-12 12:04:34 +00:00
Github Action
ffc48e115b Update Nix flake.lock and hashes 2025-12-12 11:16:22 +00:00
Adam
04b4dacee3 feat(desktop): basic alerting 2025-12-12 05:14:51 -06:00
GitHub Action
c0e30f48c6 chore: format code 2025-12-12 09:44:46 +00:00
David Hill
99158e736b Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-12 09:44:06 +00:00
David Hill
4c02d515a1 wip: desktop sidebar icon updates 2025-12-12 09:44:04 +00:00
David Hill
b803a9732d fix: make the logo on the home screen non-selectable 2025-12-12 09:43:41 +00:00
Brendan Allan
f9d5e18790 tauri: create window with full screen size 2025-12-12 17:04:00 +08:00
Github Action
147111c9c6 Update Nix flake.lock and hashes 2025-12-12 09:00:19 +00:00
GitHub Action
9a70eb538b chore: format code 2025-12-12 08:59:18 +00:00
Brendan Allan
0b1731142e tauri: initialise store and window-state plugins 2025-12-12 16:58:37 +08:00
Viktor Forsman
7ec48dfd15 fix: debug lsp diagnostics cmd for certain lsps (#5420) 2025-12-11 23:20:38 -06:00
Frank
57120e69ed Zen: sync 2025-12-11 23:41:04 -05:00
Rhys Sullivan
11efda3f5c [feat]: show indicator for in progress chats in the sessions list (#5417) 2025-12-11 21:57:03 -05:00
Sachnun
a5cb4e41f5 fix(tui): restore input on timeline revert and show newest first (#5366) 2025-12-11 20:07:31 -06:00
GitHub Action
88b2382b97 chore: format code 2025-12-12 02:06:49 +00:00
Sachnun
237c0253c2 fix(server): make time field optional in session update validator (#5372) 2025-12-11 20:06:15 -06:00
xu0o0
a9f27371cf acp: replay conversation history in session/load (#5385) 2025-12-11 20:02:06 -06:00
opencode-agent[bot]
9c126c5b64 Removed cache mention from webfetch prompt. (#5412)
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-12-11 19:53:39 -06:00
Zeno Jiricek
e241aa21b9 docs: Add opencode-md-table-formatter and plugin template (#5405) 2025-12-11 17:02:49 -06:00
Koichi Nakayamada
1fd005838c fix(tui): ensure fatal error UI is readable in light mode (#5387) 2025-12-11 16:39:27 -06:00
Koichi Nakayamada
61ba844234 fix: add fg color to some TUI text elements for light mode visibility (#5378) 2025-12-11 16:29:34 -06:00
Adán
ffec52a17c fix: Windows LSP URIs using backslashes (Biome initialization failure) (#5317) 2025-12-11 16:28:39 -06:00
Aiden Cline
342595e0f7 tweak: setting chat_template_args in transform 2025-12-11 16:22:10 -06:00
Aiden Cline
b41051b4ee tweak(tui): better error msg rendering 2025-12-11 16:22:10 -06:00
Dax Raad
6f8746ab94 console: fix download route async handling 2025-12-11 16:55:23 -05:00
Dax Raad
9d4ed5b04a console: fix download links to use dynamic GitHub release version 2025-12-11 16:49:15 -05:00
Adam
e149b7c1e2 fix: avatar colors 2025-12-11 15:39:41 -06:00
GitHub Action
55957b2ac7 chore: format code 2025-12-11 21:34:17 +00:00
Jay V
14291bff71 docs: lander copy 2025-12-11 16:26:42 -05:00
Adam
a0472c0312 fix: free model logic 2025-12-11 15:24:32 -06:00
Dax Raad
0400024d02 core: fix missing Flag import in session prompt 2025-12-11 16:18:04 -05:00
Dax Raad
d4dc142cc2 core: add client identification to user agent and request headers for better tracking 2025-12-11 16:18:04 -05:00
Adam
bfdb236581 fix: toast colors 2025-12-11 15:16:44 -06:00
Aiden Cline
4e92f54415 tweak: bash tool, try to prevent the cd spam 2025-12-11 14:58:46 -06:00
Adam
f8dc740c61 fix: remove settings button 2025-12-11 14:55:41 -06:00
Adam
dea5111a5a fix: message nav popover placement 2025-12-11 14:52:06 -06:00
Aiden Cline
4f5abe387d tweak: bash tool deny msg 2025-12-11 14:46:58 -06:00
Adam
7d55aeee0a fix: no loading state in message nav 2025-12-11 14:46:32 -06:00
Adam
b34f434332 fix: message order ascending 2025-12-11 14:46:32 -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
Sachnun
0efdc3a8a0 feat: add caching for opencode binary in GitHub Actions (#5384) 2025-12-11 14:14:37 -06:00
GitHub Action
fc9dfd054a chore: format code 2025-12-11 20:14:20 +00:00
Dax Raad
013bf079cc ignore: added debug logging for share data loading performance 2025-12-11 15:13:36 -05:00
opencode
5ffcde9dba release: v1.0.150 2025-12-11 20:09:20 +00:00
Dax Raad
e0f885ffc8 ci 2025-12-11 14:57:54 -05:00
Aiden Cline
5b21334fdd fix 2025-12-11 13:55:08 -06:00
Shantur Rathore
755a79cd8e fix: Writing to Bun.stderr causes CPU pinning to 100%. (#5396) 2025-12-11 13:47:59 -06:00
Adam
16b7370d8c wip(desktop): progress 2025-12-11 13:42:47 -06:00
Adam
634fd62b25 wip(desktop): progress 2025-12-11 13:42:47 -06:00
Adam
e845eedbc3 wip(desktop): progress 2025-12-11 13:42:47 -06:00
Adam
4ae7e1b19c wip(desktop): progress 2025-12-11 13:42:46 -06:00
Adam
0ca758e135 wip(desktop): progress 2025-12-11 13:42:45 -06:00
Dax Raad
ea8508ee44 ci 2025-12-11 14:38:45 -05:00
GitHub Action
78d4f32d79 chore: format code 2025-12-11 19:35:36 +00:00
David Hill
afcd547a16 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 19:34:34 +00:00
David Hill
521fbb93cd wip: lander updates 2025-12-11 19:33:55 +00:00
Dax Raad
9d73096db0 ci: fix Ubuntu host detection in Tauri build workflow 2025-12-11 13:27:21 -05:00
GitHub Action
c11bb440e6 chore: format code 2025-12-11 18:21:10 +00:00
Sebastian Herrlinger
80e04be84f fix super modifier parsing 2025-12-11 19:20:23 +01:00
Dax Raad
639320b3e1 ci: install libglib2.0-dev on Blacksmith Linux runners to fix missing glib-2.0 system library error 2025-12-11 13:16:44 -05:00
GitHub Action
55ea20de84 chore: format code 2025-12-11 18:12:25 +00:00
Dax Raad
21cf3a7c1b ci 2025-12-11 13:11:36 -05:00
David Hill
4f855072f2 wip: avatar colors 2025-12-11 18:07:14 +00:00
David Hill
11e6a181ad fix: free cta 2025-12-11 18:07:14 +00:00
GitHub Action
4c9208fbf1 chore: format code 2025-12-11 18:05:35 +00:00
Dax Raad
3a9bbe2371 ci: use Blacksmith runners for Linux and Windows Tauri builds to improve build performance 2025-12-11 13:04:55 -05:00
opencode
6382bda7d6 release: v1.0.149 2025-12-11 18:00:30 +00:00
Dax Raad
885a142ae3 temporarily remove undo/redo keybinds 2025-12-11 12:55:08 -05:00
GitHub Action
4387602f9d chore: format code 2025-12-11 17:49:43 +00:00
opencode
71fc8b2115 release: v1.0.148 2025-12-11 17:49:42 +00:00
Dax Raad
137716e0dc ci: fix tauri release asset naming to use opencode-desktop-[platform]-[arch][ext] format 2025-12-11 12:45:48 -05:00
Dax Raad
95526fb9ed fix share image 2025-12-11 12:20:11 -05:00
GitHub Action
a5cc19068b chore: format code 2025-12-11 16:46:43 +00:00
opencode
48c7913431 release: v1.0.147 2025-12-11 16:46:43 +00:00
Dax Raad
89d9856ed2 ci: enable tauri desktop app to be published with GitHub release ID and tag name 2025-12-11 11:41:54 -05:00
Sebastian Herrlinger
c12be73bf7 align default input keybinds 2025-12-11 17:39:29 +01:00
Github Action
de6fb3126c Update Nix flake.lock and hashes 2025-12-11 16:25:22 +00:00
GitHub Action
fad5cbe6c7 chore: format code 2025-12-11 16:24:30 +00:00
Sebastian Herrlinger
e271852bc3 allow custom mappings for all textarea actions via config 2025-12-11 17:23:47 +01:00
David Hill
4e02704f17 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 16:21:32 +00:00
David Hill
b17fdc7f4e fix: inverted text colors 2025-12-11 16:21:31 +00:00
Dax Raad
df4d9236a6 fix bug causing windows builds to sometimes fail 2025-12-11 11:01:43 -05:00
GDR!
0ee626ba9f Add ripgrep to Docker image (#5379) 2025-12-11 09:47:56 -06:00
Daniel Polito
dce4585d40 Fix / Improve Github Eyes Reaction Removal (#5383) 2025-12-11 09:42:10 -06:00
David Hill
5ffc1617fe Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 14:37:05 +00:00
David Hill
93dd01947d wip: update lander video 2025-12-11 14:36:49 +00:00
Brendan Allan
5e7d908dc9 tauri: always build cli in predev 2025-12-11 22:20:22 +08:00
David Hill
eb6596cb97 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 13:10:46 +00:00
David Hill
8fcd31f353 wip: social share image 2025-12-11 13:03:08 +00:00
Adam
dfdd1c9b20 fix: load fonts the right way 2025-12-11 06:51:39 -06:00
Adam
d7b8dce6a7 fix: missing font 2025-12-11 06:49:00 -06:00
Adam
f9f78122d0 wip(desktop): progress 2025-12-11 06:48:59 -06:00
Adam
1980113ee4 wip(desktop): progress 2025-12-11 06:48:59 -06:00
Adam
85c0311d38 wip(desktop): progress 2025-12-11 06:48:59 -06:00
Adam
740aa8e541 wip(desktop): progress 2025-12-11 06:48:59 -06:00
Adam
1b331548ba wip(desktop): progress 2025-12-11 06:48:59 -06:00
Adam
3bb546c94d wip(desktop): progress 2025-12-11 06:48:58 -06:00
David Hill
8e15bcb68e Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 12:40:24 +00:00
David Hill
ca08dc87dd wip: add faq to download 2025-12-11 12:38:40 +00:00
David Hill
4287552991 wip: add more items to download 2025-12-11 12:26:47 +00:00
GitHub Action
f1af54ada1 chore: format code 2025-12-11 12:12:13 +00:00
David Hill
577cacb7db Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 12:11:36 +00:00
David Hill
8346550d26 fix: change terminal title to OpenCode 2025-12-11 12:10:04 +00:00
David Hill
a8e3caca3f wip: lander updates 2025-12-11 12:09:31 +00:00
GitHub Action
fd83578442 ignore: update download stats 2025-12-11 2025-12-11 12:04:43 +00:00
David Hill
e91d121ef8 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 10:47:24 +00:00
David Hill
1b4975ba54 wip: hero and nav updates 2025-12-11 10:47:22 +00:00
David Hill
380d2c466e wip: lander hero updates 2025-12-11 10:36:31 +00:00
Brendan Allan
53d2edc0f2 write typescript artifacts to node_modules/.ts-dist 2025-12-11 18:35:07 +08:00
David Hill
02705e460f wip: downloads 2025-12-11 10:19:41 +00:00
GitHub Action
44cd384e3c chore: format code 2025-12-11 06:33:51 +00:00
Aiden Cline
8ac5204009 ignore: Comment out plugin entry in opencode.jsonc
Comment out the plugin entry in opencode.jsonc
2025-12-11 00:33:17 -06:00
opencode
ddd5464081 release: v1.0.146 2025-12-11 06:23:53 +00:00
opencode
fbad378966 release: v1.0.145 2025-12-11 06:19:42 +00:00
Dax Raad
c211b22a45 update 2025-12-11 01:15:34 -05:00
Dax Raad
5d57d0385c opencode config 2025-12-11 01:13:23 -05:00
Aiden Cline
f7e29a1acf downgrade bun 2025-12-11 00:10:58 -06:00
Aiden Cline
a8f83cdcb5 ignore: comment out item in project cfg 2025-12-11 00:09:43 -06:00
Github Action
9e0a2bc7d0 Update Nix flake.lock and hashes 2025-12-11 06:03:16 +00:00
Dax Raad
2d9c76baae enterprise: add default social card images to HTML head
- Add og:image and twitter:image meta tags to entry-server
- Provide fallback social card image for pages without specific social cards
2025-12-11 01:02:31 -05:00
Dax Raad
85c01e8694 enterprise: add social card meta tags to share pages
- Add og:image and twitter:image meta tags for better social sharing
- Generate dynamic social card URLs with session title, models, and version
- Include description meta tag for search engines
2025-12-11 01:01:32 -05:00
GitHub Action
65a6b3d585 chore: format code 2025-12-11 05:54:58 +00:00
Dax Raad
40f121c3e8 prevent indexing of share page 2025-12-11 00:54:15 -05:00
opencode
6251231e41 release: v1.0.144 2025-12-11 05:48:13 +00:00
Dax Raad
578072bb8e use new share url 2025-12-11 00:43:00 -05:00
Dax Raad
231390cb7b ci 2025-12-11 00:23:06 -05:00
Dax Raad
5955d20539 remove 2025-12-11 00:21:40 -05:00
Dax Raad
4309c078fb domain 2025-12-11 00:11:40 -05:00
Dax Raad
d14462f7a7 fix 2025-12-10 23:19:28 -05:00
Dax Raad
a02223a310 sync 2025-12-10 23:19:28 -05:00
Ayush Walekar
d93c8c7604 docs: update doc sdk.mdx (#5315) 2025-12-10 21:56:23 -06:00
Aiden Cline
7eb509db14 ci: rm bash tool from opencode ci workflow, reduce risks 2025-12-10 21:45:46 -06:00
Dax Raad
f1b8707286 ignore 2025-12-10 22:36:57 -05:00
Dax Raad
9b05217471 ignore 2025-12-10 22:34:16 -05:00
Dax Raad
d88912abf0 global bus 2025-12-10 22:28:56 -05:00
GitHub Action
28c6320cd6 chore: format code 2025-12-11 03:22:51 +00:00
Dax Raad
13a77005f1 global.dispose 2025-12-10 22:22:16 -05:00
Dax Raad
530b75a92a ignore 2025-12-10 22:22:16 -05:00
Aiden Cline
7b4f852f33 ignore: tmp transform exclusion 2025-12-10 21:18:19 -06:00
Aiden Cline
439aebb4e9 tweak: correct thinkingLevel 2025-12-10 21:13:10 -06:00
Brendan Allan
6f5f73a74a desktop: exclude ts-dist from tsconfig sources 2025-12-11 09:51:35 +08:00
Brendan Allan
bd1f5f884e tauri: update icons 2025-12-11 09:49:00 +08:00
Koichi Nakayamada
499ad4f84b fix: light mode visibility for filepath in /undo diff files (#5352) 2025-12-10 19:38:14 -06:00
Jinhyeok Lee
01fd0d8209 docs(bash): clarify description parameter is required (#5353) 2025-12-10 19:37:38 -06:00
Seb Duerr
df55ad89ab Add Cerebras integration header with opencode identifier (#5354) 2025-12-10 19:36:58 -06:00
David Hill
a5a3060208 wip: lander updates 2025-12-11 00:56:05 +00:00
David Hill
a468044c9f Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-11 00:46:07 +00:00
David Hill
f0274fd29f wip: lander updates 2025-12-11 00:46:02 +00:00
Dax Raad
fadeed1fa4 desktop: enable zoom hotkeys in Tauri app 2025-12-10 19:27:05 -05:00
David Hill
e9d3e240c2 wip: lander updates 2025-12-11 00:18:22 +00:00
Dax Raad
13611176b0 fix deploy 2025-12-10 19:11:49 -05:00
Jay V
92fa66d76f core: reposition OpenCode as open source multi-platform coding agent
docs: update main intro page to reflect open source positioning and multi-platform availability
2025-12-10 19:05:33 -05:00
David Hill
fba0aad2f8 wip: lander updates 2025-12-10 23:57:11 +00:00
Jay V
1a1874d8b3 docs: desktop 2025-12-10 18:43:19 -05:00
Adam
56540f8312 wip(desktop): progress 2025-12-10 17:31:13 -06:00
Shantur Rathore
89d51ad596 compaction: improve compaction prompt (#5348) 2025-12-10 17:21:38 -06:00
Adam
15b8c14542 fix: tauri 2025-12-10 17:19:50 -06:00
Adam
85cfa226c3 wip(desktop): progress 2025-12-10 17:17:37 -06:00
Christian Stewart
cbb591eb7d fix: more descriptive tool or subtask execution failed error (#5337)
Signed-off-by: Christian Stewart <christian@aperture.us>
2025-12-10 17:12:49 -06:00
Aiden Cline
e36c349222 tweak: oc -> OC 2025-12-10 17:06:16 -06:00
Christian Stewart
b274371dbb feat: use |- for intermediate sub-agent steps (#5336)
Signed-off-by: Christian Stewart <christian@aperture.us>
2025-12-10 16:36:11 -06:00
Hammad Shami
72eb004057 feat: add helicone docs + helicone session tracking (#5265) 2025-12-10 16:23:52 -06:00
Yukai Huang
e46080aa8c fix(auth): add plugin lookup for custom provider in 'Other' flow (#5324) 2025-12-10 16:23:12 -06:00
Aiden Cline
7d82f1769c tweak: small fix 2025-12-10 16:01:10 -06:00
OpeOginni
7435d94f85 fix(cli): obtain directory data from server (#5320) 2025-12-10 15:55:15 -06:00
Github Action
e060f968f5 Update Nix flake.lock and hashes 2025-12-10 21:18:57 +00:00
Dax Raad
86f7cc17ae tui: pass dynamic port to frontend
Frontend now receives the server port via window.__OPENCODE__.port,
allowing it to connect when using a random free port instead of hardcoded 4096
2025-12-10 16:17:36 -05:00
Adam
58e66dd3d1 wip(desktop): progress 2025-12-10 15:17:04 -06:00
Adam
190fa4c87a wip(desktop): progress 2025-12-10 15:17:03 -06:00
Adam
91d743ef9a wip(desktop): progress 2025-12-10 15:17:03 -06:00
Adam
804ad5897f wip(desktop): progress 2025-12-10 15:17:03 -06:00
Adam
f20d6e8555 wip(desktop): progress 2025-12-10 15:17:03 -06:00
Adam
e694d4d880 wip(desktop): progress 2025-12-10 15:17:02 -06:00
Adam
ada40decd1 wip(desktop): progress 2025-12-10 15:17:02 -06:00
Adam
6866a060bc wip(desktop): progress 2025-12-10 15:17:02 -06:00
Adam
a4ec619c74 wip(desktop): progress 2025-12-10 15:17:02 -06:00
Adam
67a95c3cc8 wip(desktop): progress 2025-12-10 15:17:01 -06:00
Dax Raad
8d3eac2347 fix type 2025-12-10 16:14:32 -05:00
Dax Raad
9ad828dcd0 tui: use random free port and enable icon discovery by default
- Tauri app now automatically finds an available port instead of defaulting to 4096
- Icon discovery feature is now enabled by default in the Tauri app
- Prevents port conflicts when multiple OpenCode instances are running
2025-12-10 16:13:11 -05:00
Aiden Cline
59fb3ae606 ignore: add bash tests 2025-12-10 15:07:40 -06:00
GitHub Action
0ab3b88250 chore: format code 2025-12-10 21:01:06 +00:00
Dax Raad
a1175bddcd gen types 2025-12-10 15:59:42 -05:00
Dax Raad
936a6be5d6 stuff adam needs 2025-12-10 15:59:42 -05:00
igordertigor
03c6c3f4cb docs: document accept always behavior (#5340)
Co-authored-by: Ingo Fruend <ingo@oudyo.com>
2025-12-10 14:59:12 -06:00
Aiden Cline
6288a032fd bump bun to 1.3.4 2025-12-10 14:48:52 -06:00
Daniel Polito
31e6ed6806 Add Eyes Reaction instead of Comment Working on Github Action (#5072) 2025-12-10 13:35:55 -06:00
Aiden Cline
da56319af4 ignore: fix test 2025-12-10 13:31:45 -06:00
GitHub Action
2198f9400f chore: format code 2025-12-10 19:31:11 +00:00
Dax Raad
ffc4d53923 add models.dev family 2025-12-10 14:30:28 -05:00
Aiden Cline
18d3c054a3 more interleaved thinking fixes (#5334) 2025-12-10 13:29:26 -06:00
Aiden Cline
59c5da9b6c tweak: set gemini thinkingLevel to high by default 2025-12-10 13:09:27 -06:00
Github Action
15880195a2 Update Nix flake.lock and hashes 2025-12-10 19:04:03 +00:00
Tom Aylott
117de64f39 fix: upgrade OpenRouter sdk pkg (#5302)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-10 13:02:26 -06:00
Dax Raad
388156704a fix /provider endpoint to return loaded providers 2025-12-10 13:49:45 -05:00
GitHub Action
faf443132f chore: format code 2025-12-10 18:32:21 +00:00
Nick
36a9be040b docs: add opencode-type-inject to ecosystem plugins (#5331) 2025-12-10 12:31:44 -06:00
GitHub Action
1835d7526f chore: format code 2025-12-10 16:55:19 +00:00
Stanislas
946e4f0a61 docs: add wakatime plugin to ecosystem page (#5326)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-10 10:54:45 -06:00
Matt Silverlock
ae60f41adf themes: update orng theme (#5329) 2025-12-10 10:52:58 -06:00
GitHub Action
6b93d23642 chore: format code 2025-12-10 16:50:49 +00:00
Noè
cfa13df346 docs: Added opencode-antigravity-auth to ecosystem documentation (#5303) 2025-12-10 10:50:12 -06:00
Frank
744a7159e4 zen: sync 2025-12-10 11:44:37 -05:00
arc-source-coder
80d1c62818 tui: only show active MCP server count (#5327) 2025-12-10 10:27:59 -06:00
Connor Adams
83aa42f510 docs: configure mise to use latest version instead of pinned version (#5316) 2025-12-10 10:11:48 -06:00
Aiden Cline
183a1a181c ci: stop zed sync temporarily 2025-12-10 09:57:34 -06:00
Github Action
bc7e7c2c4d Update Nix flake.lock and hashes 2025-12-10 14:04:52 +00:00
GitHub Action
7b5bd89570 chore: format code 2025-12-10 14:04:08 +00:00
Sebastian Herrlinger
ba1c6122b9 bump opentui to v0.1.60, fixing doubled key events on some older terminal emulators and add_buffer leaks for prompt input 2025-12-10 15:03:14 +01:00
Sebastian Herrlinger
baed581a7c remove input_forward_delete special handling 2025-12-10 14:55:56 +01:00
GitHub Action
4a23052778 chore: format code 2025-12-10 13:53:21 +00:00
opencode
ee4190aa41 release: v1.0.143 2025-12-10 13:53:21 +00:00
Dax Raad
de8460cb99 docs: improve bash and grep tool documentation with clearer usage guidelines 2025-12-10 08:48:41 -05:00
opencode
f7b2beaaf1 release: v1.0.142 2025-12-10 13:25:55 +00:00
GitHub Action
9b0933187e ignore: update download stats 2025-12-10 2025-12-10 12:04:47 +00:00
Adam
862141e8b2 fix: exit aliases 2025-12-10 02:49:54 -06:00
Aiden Cline
070ced0b3f fix: revert hook try/catch that surpressed errors 2025-12-10 00:14:24 -06:00
GitHub Action
cc3b699823 chore: format code 2025-12-10 06:02:31 +00:00
spoj
301f1a191b fix: add Windows support for shell mode (! command) (#5311) 2025-12-10 00:01:56 -06:00
Adam
d149c25aab fix: types 2025-12-09 21:44:34 -06:00
Adam
18d24b8f5f wip(desktop): progress 2025-12-09 21:39:13 -06:00
Adam
cf34981e8f wip(desktop): progress 2025-12-09 21:39:13 -06:00
Adam
e2ebe560ea feat: provider icon component 2025-12-09 21:39:12 -06:00
GitHub Action
6db822fd92 chore: format code 2025-12-10 03:32:26 +00:00
Brendan Allan
661122bab8 tauri: don't ask to restart separately in updater 2025-12-10 11:31:50 +08:00
Brendan Allan
4a96836d11 tauri: update macos icon 2025-12-10 11:28:40 +08:00
Brendan Allan
e072f9605c tauri: comment out restart server dialog 2025-12-10 11:18:17 +08:00
Brendan Allan
9986031481 fix: use project references for desktop typecheck 2025-12-10 11:15:12 +08:00
Dax Raad
3d95848607 ci 2025-12-09 22:14:18 -05:00
GitHub Action
221c9028af chore: format code 2025-12-10 03:10:18 +00:00
Timor
b2057791aa feat: add CLI arguments to agent create command for scripting (#5157) 2025-12-09 21:09:45 -06:00
Dax Raad
c1ee6d6c41 ci 2025-12-10 02:57:39 +00:00
opencode
a3fbbece9a release: v1.0.141 2025-12-10 02:57:38 +00:00
Dax Raad
e72c974c4c ci 2025-12-09 21:49:38 -05:00
Dax Raad
a762da7cab ci 2025-12-09 21:49:05 -05:00
Dax Raad
fa6c060324 ci 2025-12-09 21:44:13 -05:00
Dax Raad
8e33ac052b ci: publish with multiple tags instead of using dist-tag
npm dist-tag add command is broken, so publish package multiple times
with different tags directly instead
2025-12-09 21:39:05 -05:00
Dax Raad
0759696ec0 core: enable project discovery for experimental builds 2025-12-09 21:23:55 -05:00
Hosenur Rahaman
59dce63471 docs: Add portal project to ecosystem documentation (#5300)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-09 20:23:14 -06:00
Dax Raad
1ae28090e3 ci 2025-12-09 21:16:36 -05:00
Dax Raad
0decdf6a55 ci 2025-12-09 21:16:23 -05:00
Dax Raad
09b402a274 ci 2025-12-09 21:16:00 -05:00
Dax Raad
150baf3e96 ci 2025-12-09 21:10:58 -05:00
Dax Raad
78c51371af sync 2025-12-09 21:06:57 -05:00
Dax Raad
6dbcacf3ea ci 2025-12-09 21:04:06 -05:00
Dax Raad
4ecebc2c83 ci 2025-12-09 21:03:19 -05:00
Dax Raad
38a79fa449 ci 2025-12-09 21:02:04 -05:00
Dax Raad
bafad6b8a8 ci 2025-12-09 21:01:48 -05:00
Dax Raad
5682dddd45 ci 2025-12-09 21:01:39 -05:00
Dax Raad
a9aacdb94a ci 2025-12-09 20:59:31 -05:00
Dax Raad
e7e32c946b ci 2025-12-09 20:58:01 -05:00
Dax Raad
fc9bc26d86 ci 2025-12-09 20:56:13 -05:00
Dax Raad
ee00b4e0ce ci 2025-12-09 20:54:56 -05:00
Dax Raad
f82156f0b1 ci 2025-12-09 20:51:54 -05:00
Dax Raad
2ed6298584 ci 2025-12-09 20:51:25 -05:00
Dax Raad
52ef8dea3e ci 2025-12-09 20:50:46 -05:00
Adam
ebe6015db0 fix: re-enable tauri typecheck 2025-12-09 19:34:07 -06:00
Dax Raad
56526114e4 ci 2025-12-09 20:26:46 -05:00
Dax Raad
bb1c225027 ci 2025-12-09 20:24:31 -05:00
Dax Raad
e5af0dde08 ci 2025-12-09 20:22:00 -05:00
Dax Raad
3cf17bc24f ci 2025-12-09 20:20:47 -05:00
Dax Raad
4aa1b8de0e ci 2025-12-09 20:19:43 -05:00
Dax Raad
73e9534d08 ci 2025-12-09 20:17:07 -05:00
Dax Raad
cb188f907f ci 2025-12-09 19:53:50 -05:00
Dax Raad
63d9656ad8 ci 2025-12-09 19:46:59 -05:00
Dax Raad
3512d02e9e ci 2025-12-09 19:46:38 -05:00
Dax Raad
1efdceaf10 ci: combine sdk and format workflows into single generate workflow 2025-12-09 19:41:23 -05:00
GitHub Action
632a0fe009 chore: regen sdk 2025-12-10 00:33:05 +00:00
Dax Raad
6fb32cebec ci 2025-12-09 19:32:30 -05:00
GitHub Action
8b8b17d755 chore: format code 2025-12-10 00:28:05 +00:00
GitHub Action
2c27afaaf5 chore: regen sdk 2025-12-10 00:27:29 +00:00
Dax Raad
4bdc7c1426 ci fix 2025-12-09 19:26:54 -05:00
Github Action
3c1e6c2c8f Update Nix flake.lock and hashes 2025-12-09 23:56:13 +00:00
Aiden Cline
b8f5809f95 ignore: rm chalk 2025-12-09 17:54:53 -06:00
Aiden Cline
552ee81455 tweak: add OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS 2025-12-09 17:28:34 -06:00
David Hill
9fdbe193cd fix: add spacer before queued badge 2025-12-09 22:56:44 +00:00
Aiden Cline
df64612d54 better interleaved thinking support (#5298) 2025-12-09 16:32:12 -06:00
Adam
0aa3e6c270 wip(desktop): progress 2025-12-09 16:23:05 -06:00
Adam
44c17c1435 wip(desktop): progress 2025-12-09 16:23:05 -06:00
Dax Raad
132e772c26 core: fix project icon update handling to preserve existing icon properties 2025-12-09 16:55:26 -05:00
Adam
62cbed57cc wip(desktop): progress 2025-12-09 15:55:08 -06:00
Adam
ebab7e176e wip(desktop): progress 2025-12-09 15:53:08 -06:00
Adam
9c93853e22 wip(desktop): progress 2025-12-09 15:46:23 -06:00
Aiden Cline
8a9c7a4ef3 add OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT 2025-12-09 15:44:56 -06:00
Adam
2dad56c9a2 wip(desktop): progress 2025-12-09 15:39:44 -06:00
Adam
41d78c1ecc wip(desktop): progress 2025-12-09 15:32:36 -06:00
ry2009
16c4b02b69 feat: add Biome LSP support (#5290) 2025-12-09 15:31:13 -06:00
Adam
35c04d9283 wip(desktop): progress 2025-12-09 15:24:11 -06:00
Adam
1fbd7a7f9a wip(desktop): progress 2025-12-09 15:21:47 -06:00
Adam
d7563d1694 wip(desktop): progress 2025-12-09 15:21:47 -06:00
Adam
b9fa7d9163 wip(desktop): progress 2025-12-09 15:21:47 -06:00
Adam
f736751ab2 wip(desktop): progress 2025-12-09 15:21:45 -06:00
Aiden Cline
dbcc779f0b ci: fix sdk workflow 2025-12-09 15:08:30 -06:00
Nick
c33a90320c fix: resolve 'latest' to actual version when caching plugins (#5292) 2025-12-09 15:07:59 -06:00
Dax Raad
802b862aae format on write 2025-12-09 16:06:57 -05:00
GitHub Action
b0cd171c1b chore: format code 2025-12-09 21:05:09 +00:00
GitHub Action
13755f4680 chore: regen sdk 2025-12-09 21:04:37 +00:00
Dax Raad
b242659cc3 fix types 2025-12-09 16:03:58 -05:00
Dax Raad
5f6b2fdc6f fix tests 2025-12-09 16:03:33 -05:00
GitHub Action
e34f18991e chore: format code 2025-12-09 20:53:06 +00:00
GitHub Action
209b0a06f7 chore: regen sdk 2025-12-09 20:52:31 +00:00
Dax Raad
a2e460bc4b discover logic 2025-12-09 15:51:55 -05:00
GitHub Action
fc9081afe4 chore: format code 2025-12-09 20:49:25 +00:00
GitHub Action
1a3f7c3d84 chore: regen sdk 2025-12-09 20:48:49 +00:00
Dax Raad
06aa1f49b8 sync 2025-12-09 15:48:22 -05:00
GitHub Action
dfd67cd922 chore: format code 2025-12-09 20:44:09 +00:00
GitHub Action
70f7287ca1 chore: regen sdk 2025-12-09 20:43:35 +00:00
Dax Raad
f1955b4d05 core: fix project event emission to include updated worktree data 2025-12-09 15:41:38 -05:00
Dax Raad
c5e5627cbd test fixes 2025-12-09 15:41:38 -05:00
GitHub Action
93378526b9 chore: format code 2025-12-09 20:26:02 +00:00
GitHub Action
abf176a335 chore: regen sdk 2025-12-09 20:25:21 +00:00
Aiden Cline
84a0868e66 fix: read when file is svg 2025-12-09 14:24:30 -06:00
GitHub Action
75a9c42789 chore: format code 2025-12-09 20:20:03 +00:00
GitHub Action
204fa54625 chore: regen sdk 2025-12-09 20:19:27 +00:00
Dax Raad
365584048f core: fix project creation to include updated timestamp 2025-12-09 15:18:55 -05:00
Dax Raad
edffcc32cf core: make project updated timestamp optional to support legacy project data 2025-12-09 15:18:55 -05:00
GitHub Action
238f441bcb chore: format code 2025-12-09 20:17:37 +00:00
GitHub Action
0571a8302c chore: regen sdk 2025-12-09 20:16:59 +00:00
Aiden Cline
8c07382382 ci: fix sdk gen 2025-12-09 14:16:22 -06:00
GitHub Action
fa32fbd187 chore: format code 2025-12-09 20:12:07 +00:00
GitHub Action
0fd2ecd0ba chore: regen sdk 2025-12-09 20:11:32 +00:00
Dax Raad
7439a40b00 core: fix project icon update to preserve existing icon properties 2025-12-09 15:11:00 -05:00
GitHub Action
2ad99713f3 chore: format code 2025-12-09 20:07:32 +00:00
GitHub Action
19ec970701 chore: regen sdk 2025-12-09 20:06:57 +00:00
Dax Raad
b48caec218 core: add automatic project icon discovery from favicon/logo files 2025-12-09 15:06:24 -05:00
GitHub Action
380c34af53 chore: format code 2025-12-09 19:54:54 +00:00
GitHub Action
553d9013eb chore: regen sdk 2025-12-09 19:54:19 +00:00
Dax Raad
8bff3cdae8 fix ci 2025-12-09 14:53:47 -05:00
Dax Raad
0b40c3d37d rework project loading 2025-12-09 14:41:14 -05:00
Dax Raad
1e3bdcc71c rename bus 2025-12-09 14:32:09 -05:00
GitHub Action
de577e17da chore: format code 2025-12-09 19:31:07 +00:00
GitHub Action
8a9e258ad7 chore: regen sdk 2025-12-09 19:30:32 +00:00
Adam
9a34965432 feat: add color to project 2025-12-09 13:29:59 -06:00
Adam
c944d19c3b wip(desktop): progress 2025-12-09 13:24:37 -06:00
Dax Raad
fb1b6c5e6b add project.name/icon 2025-12-09 13:57:18 -05:00
GitHub Action
ad0c4c5d89 chore: format code 2025-12-09 18:37:14 +00:00
GitHub Action
a54b663a39 chore: regen sdk 2025-12-09 18:36:38 +00:00
Adam
ae4993f39a wip(desktop): progress 2025-12-09 12:36:06 -06:00
GitHub Action
aa638cec48 chore: format code 2025-12-09 18:10:31 +00:00
GitHub Action
4db4a90559 chore: regen sdk 2025-12-09 18:07:43 +00:00
Aiden Cline
e23a81097c core: add test to prevent MCP headers regression when OAuth is enabled
Custom headers configured for remote MCP servers were being silently
dropped when OAuth was enabled (the default). This test ensures headers
are always sent to MCP servers regardless of OAuth configuration.
2025-12-09 12:06:40 -06:00
opencode
76f4803d8d release: v1.0.138 2025-12-09 18:05:21 +00:00
GitHub Action
22e4649318 chore: format code 2025-12-09 17:53:53 +00:00
GitHub Action
0ac70ff261 chore: regen sdk 2025-12-09 17:53:14 +00:00
Adam
1bc1e56da3 wip(desktop): progress 2025-12-09 11:52:43 -06:00
GitHub Action
0d0c20e673 chore: format code 2025-12-09 17:45:35 +00:00
Jay
a964824b22 docs: Modify documentation for SDK ecosystem references
Updated link text to refer to community-built projects.
2025-12-09 12:44:33 -05:00
GitHub Action
2cf0d578fe chore: regen sdk 2025-12-09 17:43:58 +00:00
Jay
13e8fb382f docs: Update community plugins reference in documentation 2025-12-09 12:43:29 -05:00
GitHub Action
4090bc9dea chore: format code 2025-12-09 17:39:25 +00:00
Aiden Cline
cec1caf99e ci: sdk stuff 2025-12-09 11:38:22 -06:00
GitHub Action
c74da97d52 chore: regen sdk 2025-12-09 17:38:01 +00:00
Jay
1f2497ce69 docs: Add submission note for OpenCode projects
Added a note about submitting projects to the list.
2025-12-09 12:37:34 -05:00
GitHub Action
986f14cb15 chore: format code 2025-12-09 17:37:32 +00:00
GitHub Action
34f639d510 chore: regen sdk 2025-12-09 17:34:45 +00:00
Aiden Cline
defe51c825 docs: fix name 2025-12-09 11:34:15 -06:00
GitHub Action
5a16acef8c chore: format code 2025-12-09 17:26:28 +00:00
Aiden Cline
2ce249dbc0 docs: OpenCode ecosystem (#5287)
Co-authored-by: GitHub Action <action@github.com>
2025-12-09 11:25:28 -06:00
GitHub Action
7ba6b18945 chore: format code 2025-12-09 17:10:13 +00:00
GitHub Action
b8c0b393bf chore: regen sdk 2025-12-09 17:09:35 +00:00
Adam
5442adb517 wip(desktop): progress 2025-12-09 11:09:00 -06:00
Adam
6b2ac20abc wip(desktop): progress 2025-12-09 11:09:00 -06:00
GitHub Action
3efc95b157 chore: format code 2025-12-09 16:53:58 +00:00
GitHub Action
cd9db8a81d chore: regen sdk 2025-12-09 16:53:24 +00:00
Dax Raad
036f5d4eef core: add project update timestamps to track when projects were last modified
Projects now track when they were last updated, making it easier for users
to see recent activity and identify stale projects in their workspace.
2025-12-09 11:52:53 -05:00
GitHub Action
c4401290db chore: format code 2025-12-09 15:53:48 +00:00
GitHub Action
4a6deb6420 chore: regen sdk 2025-12-09 15:53:12 +00:00
André Cruz
87a03e1e30 fix(mcp): send custom headers regardless of OAuth settings (#5273)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-09 09:52:39 -06:00
GitHub Action
01dc9d7ec6 chore: format code 2025-12-09 15:47:54 +00:00
GitHub Action
e78e0f9841 chore: regen sdk 2025-12-09 15:47:19 +00:00
Ravi Kumar
8326640670 feat(telemetry): Add userId and sessionId metadata to experimental_telemetry (#5279) 2025-12-09 09:46:48 -06:00
GitHub Action
d079af4be2 chore: format code 2025-12-09 12:16:05 +00:00
GitHub Action
82c9584382 chore: regen sdk 2025-12-09 12:15:30 +00:00
Adam
d3b6de855b chore: cleanup 2025-12-09 06:14:58 -06:00
Adam
5ad000fd99 chore: cleanup 2025-12-09 06:14:22 -06:00
Adam
fe196da430 fix(tui): order 2025-12-09 06:13:36 -06:00
Adam
20662e2101 wip(desktop): progress 2025-12-09 06:12:09 -06:00
Adam
0a357be160 wip(desktop): progress 2025-12-09 06:12:09 -06:00
Adam
d29205e677 fix: diff scroll gutter 2025-12-09 06:12:09 -06:00
GitHub Action
9d0630f094 ignore: update download stats 2025-12-09 2025-12-09 12:04:56 +00:00
Github Action
b6844565e8 Update Nix flake.lock and hashes 2025-12-09 11:15:34 +00:00
GitHub Action
17d1b24def chore: format code 2025-12-09 11:15:02 +00:00
GitHub Action
3d279edf44 chore: regen sdk 2025-12-09 11:14:23 +00:00
Brendan Allan
0a47a3cea0 fix: use ts project references for desktop and tauri 2025-12-09 19:13:51 +08:00
Github Action
306d57fcde Update Nix flake.lock and hashes 2025-12-09 09:17:58 +00:00
GitHub Action
ff6f1abf61 chore: format code 2025-12-09 09:17:36 +00:00
GitHub Action
331278a5be chore: regen sdk 2025-12-09 09:17:00 +00:00
Brendan Allan
78547f3c59 desktop: move updater logic to js 2025-12-09 17:16:24 +08:00
GitHub Action
d32671224f chore: format code 2025-12-09 07:26:55 +00:00
GitHub Action
9ade416ad4 chore: regen sdk 2025-12-09 07:26:16 +00:00
Aiden Cline
f8bd4ff705 core: refactor providerOptions function to accept Provider.Model for cleaner API 2025-12-09 01:25:36 -06:00
GitHub Action
2206e10d92 chore: format code 2025-12-09 06:42:56 +00:00
Aiden Cline
e282d5dc42 ci: run format workflow after sdk workflow completion 2025-12-09 00:41:40 -06:00
GitHub Action
2b4a5aede1 chore: regen sdk 2025-12-09 06:37:35 +00:00
Aiden Cline
654a2cd6a4 core: remove unused fzf dependency to address CVE
- Eliminates fzf binary dependency that was no longer used after file search overhaul
- Removes fzf from Nix package configuration and Arch Linux PKGBUILD dependencies
2025-12-09 00:36:33 -06:00
GitHub Action
2252b5ca1b chore: format code 2025-12-09 03:18:47 +00:00
terakael
c78dad8db5 tui: add permission indicator to footer (#4813)
Co-authored-by: terakael <terakael@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-08 21:18:17 -06:00
opencode
0569e8652c release: v1.0.137 2025-12-09 03:00:50 +00:00
GitHub Action
f2d5b32e52 chore: regen sdk 2025-12-09 02:17:38 +00:00
Matt Silverlock
b2f5ea7c30 themes: add new orng theme (#5267)
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-12-08 20:17:10 -06:00
GitHub Action
8eb8f1a16c chore: format code 2025-12-09 02:07:00 +00:00
Aiden Cline
ad93d50ab7 ci: ignore 2025-12-08 20:06:27 -06:00
GitHub Action
73c5c328a8 chore: regen sdk 2025-12-09 01:07:23 +00:00
Dax Raad
72a13212e2 ci 2025-12-08 20:06:36 -05:00
Github Action
78bcf35f37 Update Nix flake.lock and hashes 2025-12-09 00:52:48 +00:00
GitHub Action
3a3ee3ecfd chore: format code 2025-12-09 00:52:05 +00:00
Sebastian Herrlinger
34e045c275 bump opentui to v0.1.59, allowing shift+space insert as char again 2025-12-09 01:51:27 +01:00
GitHub Action
e187918ce0 chore: regen sdk 2025-12-08 23:46:24 +00:00
Aiden Cline
7ac17c7833 ci: ignore 2025-12-08 17:45:50 -06:00
GitHub Action
b05d5b30fb chore: format code 2025-12-08 22:44:57 +00:00
Aiden Cline
57c08b01b7 ignore: mark ripgrep as an sst/tap/opencode depends_on 2025-12-08 16:42:32 -06:00
GitHub Action
08efb9cdf6 chore: regen sdk 2025-12-08 22:16:30 +00:00
Ariane Emory
8b51da768c fix: improve sidebar working directory colour contrast with modified files (resolves #5184 (#5188) 2025-12-08 16:15:40 -06:00
Github Action
862407c674 Update Nix flake.lock and hashes 2025-12-08 22:11:38 +00:00
GitHub Action
a381aa7e0d chore: format code 2025-12-08 22:10:46 +00:00
Aiden Cline
4dcda3d53d fix: parcel watcher musl support 2025-12-08 16:08:53 -06:00
GitHub Action
479cca29a5 chore: regen sdk 2025-12-08 21:29:05 +00:00
Ravi Kumar
e38814c597 fix: apply provider filtering to /connect endpoint (#5233) 2025-12-08 15:28:32 -06:00
GitHub Action
4d42daa9a3 chore: format code 2025-12-08 21:05:09 +00:00
Ariane Emory
130345bd5d fix: sort sessions by updated time (resolves #5074) (#5080) 2025-12-08 15:04:39 -06:00
Github Action
0baee00be4 Update Nix flake.lock and hashes 2025-12-08 21:00:43 +00:00
GitHub Action
e0acd5d361 chore: regen sdk 2025-12-08 20:59:55 +00:00
Sebastian Herrlinger
1e7d78a215 bump opentui to v0.1.58, fixing diff color issues in light themes 2025-12-08 21:59:09 +01:00
GitHub Action
7a6cb85617 chore: format code 2025-12-08 20:34:25 +00:00
Shoubhit Dash
20530104ce add ocaml lsp support (#5230) 2025-12-08 14:33:45 -06:00
GitHub Action
d22754dd68 chore: regen sdk 2025-12-08 20:06:51 +00:00
Sebastian Herrlinger
db0e1ebb80 fix colors for dialog prompt (like session rename prompt in light theme) 2025-12-08 21:06:03 +01:00
Sebastian Herrlinger
e83a47debe set theme text color for no matching items in auto complete 2025-12-08 20:59:00 +01:00
GitHub Action
eed48e76de chore: format code 2025-12-08 18:06:48 +00:00
Aiden Cline
ac70c1e813 docs: lsp & formatters 2025-12-08 12:05:25 -06:00
GitHub Action
ac0bed16a2 chore: regen sdk 2025-12-08 18:02:54 +00:00
rari404
fab8ab2840 feat: add terraform-ls language server and formatter (#5243) 2025-12-08 12:02:25 -06:00
GitHub Action
09ff8eba00 chore: format code 2025-12-08 17:40:24 +00:00
rari404
9bd2ea5e5f feat: add bash-language-server LSP (#5246) 2025-12-08 11:39:49 -06:00
GitHub Action
aa525482ae chore: regen sdk 2025-12-08 17:37:58 +00:00
Shoubhit Dash
285605737d add ocamlformat support (#5229) 2025-12-08 11:37:30 -06:00
GitHub Action
4201fe6e01 chore: format code 2025-12-08 17:31:56 +00:00
Daniel Polito
203f3312ee feat: ability to toggle MCP Servers in TUI (#4509) 2025-12-08 11:31:22 -06:00
GitHub Action
0c77c46dc7 chore: regen sdk 2025-12-08 17:28:14 +00:00
Jérôme Benoit
52bb43eebd fix: SAP AI Core Vercel AI SDK v2 support (#5180)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
2025-12-08 11:27:47 -06:00
GitHub Action
e020f5355e chore: format code 2025-12-08 17:07:18 +00:00
rari404
9b86d4e595 feat: add theme support for thinking text opacity (#5240) 2025-12-08 11:06:46 -06:00
GitHub Action
f3d3b41a3f chore: regen sdk 2025-12-08 16:27:32 +00:00
Bishal Roy
a959199f09 feat: add catppuccin-macchiato theme (#5225) 2025-12-08 10:27:03 -06:00
Adam
5e3a59d5a2 feat: resize handle 2025-12-08 10:24:26 -06:00
Adam
9f23d85e20 wip(desktop): progress 2025-12-08 10:24:26 -06:00
GitHub Action
54e15b38ea chore: regen sdk 2025-12-08 15:48:52 +00:00
Adam
d66b903e7f fix: opencode web command 2025-12-08 09:48:21 -06:00
Adam
4425c66732 revert: opencode web command changes
This reverts commit c347056246.
2025-12-08 09:47:43 -06:00
GitHub Action
0dd0250285 chore: format code 2025-12-08 15:40:18 +00:00
Adam
c347056246 fix: opencode web command 2025-12-08 09:39:41 -06:00
GitHub Action
2a5255ac8f chore: regen sdk 2025-12-08 15:35:44 +00:00
Adam
d9175be989 fix: opencode web command 2025-12-08 09:35:12 -06:00
GitHub Action
cebbfcfbaa chore: format code 2025-12-08 15:19:26 +00:00
Adam
de415be4f6 fix: opencode web command 2025-12-08 09:18:46 -06:00
Adam
e8ce113b7f fix: bump localstorage 2025-12-08 09:05:26 -06:00
GitHub Action
8ca02b7664 chore: regen sdk 2025-12-08 12:48:30 +00:00
Adam
3f5bb21f16 chore: identity cleanup, vscode ext images 2025-12-08 06:47:57 -06:00
Github Action
fe114c41b5 Update Nix flake.lock and hashes 2025-12-08 12:25:44 +00:00
GitHub Action
d90fd8a5d7 chore: format code 2025-12-08 12:24:56 +00:00
Adam
9363c15b4a feat: better code and diff perf 2025-12-08 06:24:24 -06:00
GitHub Action
3325823f23 ignore: update download stats 2025-12-08 2025-12-08 12:04:36 +00:00
GitHub Action
4b4d8da1ad chore: regen sdk 2025-12-08 05:46:02 +00:00
Brendan Allan
d531dff8d3 Export DesktopInterface from desktop and add PlatformContext 2025-12-08 13:43:36 +08:00
GitHub Action
923bf36593 chore: format code 2025-12-08 04:54:08 +00:00
Justin Vogt
d6e499dd48 docs: Update "model" inheritance for agents (#4894)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-07 22:53:41 -06:00
GitHub Action
aec1497c6e chore: regen sdk 2025-12-08 04:43:13 +00:00
Aiden Cline
f5a77c8cd8 bump plugin versions 2025-12-07 22:42:35 -06:00
GitHub Action
bc524eeb44 chore: format code 2025-12-08 04:22:50 +00:00
ry2009
725f658260 fix: ensure Auth.all returns valid objs (#5128) 2025-12-07 22:22:21 -06:00
GitHub Action
af1080dd42 chore: regen sdk 2025-12-08 04:21:06 +00:00
Ariane Emory
63e54541fe fix: Sort themes in the /theme modal alphabetically (resolves #5217) (#5219)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-07 22:20:40 -06:00
GitHub Action
c3f7a88c1c chore: format code 2025-12-08 04:20:07 +00:00
opencode-agent[bot]
586a8b7b31 docs: azure content filter note (#5212)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-12-07 22:19:39 -06:00
GitHub Action
981744f802 chore: regen sdk 2025-12-08 03:54:26 +00:00
Aiden Cline
a3bb4a3c85 pdf support in read tool (#5222)
Co-authored-by: ammi1378 <ammi1378@users.noreply.github.com>
2025-12-07 21:54:00 -06:00
GitHub Action
06ba1f76dc chore: format code 2025-12-08 03:49:13 +00:00
Aiden Cline
076c8b2ca1 ci: fix fmt 2025-12-07 21:48:41 -06:00
Adam
9a90939ac4 fix: use diff context instead of prop drilling 2025-12-07 21:21:18 -06:00
GitHub Action
123a136093 chore: regen sdk 2025-12-08 02:56:09 +00:00
Dax Raad
4126fedbd4 openapi 2025-12-07 21:55:36 -05:00
Dax Raad
145d185e6f ci 2025-12-07 21:51:22 -05:00
GitHub Action
6b32667c7d chore: regen sdk 2025-12-08 02:29:26 +00:00
Aiden Cline
d8401e1937 ci: fix fmt 2025-12-07 20:28:50 -06:00
GitHub Action
55d6fcc350 chore: format code 2025-12-08 02:11:26 +00:00
Aiden Cline
9ff39503e9 tweak: additional error msg parsing case 2025-12-07 20:10:54 -06:00
GitHub Action
f96c181afd chore: regen sdk 2025-12-08 01:48:52 +00:00
Aiden Cline
f9b75a09df ignore: update description 2025-12-07 19:48:23 -06:00
GitHub Action
6111ed79b1 chore: format code 2025-12-08 01:47:31 +00:00
Ariane Emory
4cf2322b7f fix: toggle timestamps now properly hides/shows timestamps when toggled (resolves #5142) (#5145) 2025-12-07 19:47:02 -06:00
GitHub Action
2c6fcc5dc1 chore: regen sdk 2025-12-08 01:44:32 +00:00
franlol
81ee8541ab feat: add experimental.text.complete plugin hook (#4962) 2025-12-07 19:44:04 -06:00
GitHub Action
5b3550ab9f chore: format code 2025-12-08 01:13:22 +00:00
Patrick Erichsen
4fabce58d8 fix(cli): prevent help text wrapping (#5185) 2025-12-07 19:12:54 -06:00
GitHub Action
da7edb5f5c chore: regen sdk 2025-12-08 00:58:40 +00:00
Dax Raad
bf0f85e37f playing with sdk docs 2025-12-07 19:58:04 -05:00
Github Action
7b52160bff Update Nix flake.lock and hashes 2025-12-08 00:05:25 +00:00
GitHub Action
fde97ec4a7 chore: format code 2025-12-08 00:04:40 +00:00
Dax
ea7ec60f51 v2 SDK (#5216)
Co-authored-by: GitHub Action <action@github.com>
2025-12-07 19:04:14 -05:00
GitHub Action
6667856ba5 chore: format code 2025-12-07 20:53:12 +00:00
Dax Raad
13b2cf50ae remove outdated SDKs 2025-12-07 15:52:27 -05:00
Github Action
93b0abfce9 Update Nix flake.lock and hashes 2025-12-07 20:49:39 +00:00
GitHub Action
f7e4c47113 chore: regen sdk 2025-12-07 20:47:51 +00:00
André Cruz
509e43d6f8 feat(mcp): add OAuth authentication support for remote MCP servers (#5014) 2025-12-07 15:47:27 -05:00
GitHub Action
e693192e06 chore: regen sdk 2025-12-07 19:23:56 +00:00
rari404
ec27759f90 feat: add uninstall command (#5208) 2025-12-07 13:23:30 -06:00
GitHub Action
9c938eec73 chore: format code 2025-12-07 19:08:48 +00:00
secretninjaman
238b907dd8 fix: use basename for shell detection to support non-standard paths (#5205)
Co-authored-by: Ayato French <a@ayatofrench.com>
2025-12-07 13:08:26 -06:00
GitHub Action
c16d8c6db8 chore: format code 2025-12-07 19:06:37 +00:00
Aiden Cline
9856e3b798 ignore: add test for provider url case 2025-12-07 13:06:12 -06:00
GitHub Action
1d089272c8 chore: regen sdk 2025-12-07 19:01:34 +00:00
Aiden Cline
c30b1130ee fix: provider url merging logic 2025-12-07 13:01:05 -06:00
GitHub Action
40ca222d09 chore: format code 2025-12-07 18:48:45 +00:00
Dax Raad
0ecccbfd17 enable zoom hotkeys 2025-12-07 13:48:12 -05:00
GitHub Action
3f4862ced6 chore: regen sdk 2025-12-07 18:42:48 +00:00
Brendan Allan
1574e2457b Desktop macOS codesigning and notarization (#5154)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Dax Raad <d@ironbay.co>
2025-12-07 13:42:23 -05:00
GitHub Action
af33212f77 chore: format code 2025-12-07 18:26:05 +00:00
Mikheil Berishvili
4eb82e8c04 fix: autocomplete popup repositions on window resize (#5196) 2025-12-07 12:25:35 -06:00
GitHub Action
a45f0aac90 chore: regen sdk 2025-12-07 18:18:10 +00:00
Aiden Cline
eb4afdca65 ci: fix format 2025-12-07 12:17:40 -06:00
GitHub Action
9391749577 chore: format code 2025-12-07 15:33:51 +00:00
Carsten Kragelund Jørgensen
36a25660e9 fix: update zed agent server linux url to tar.gz (#5194) 2025-12-07 09:33:23 -06:00
GitHub Action
d9fe722da1 ignore: update download stats 2025-12-07 2025-12-07 12:04:11 +00:00
GitHub Action
da722e7db9 chore: regen sdk 2025-12-07 05:55:31 +00:00
Aiden Cline
75a4dcbce8 tweak: make bash give agent more awareness of cwd, bump default timeout, drop max timeout (#5140) 2025-12-06 23:55:07 -06:00
GitHub Action
3a179fcd34 chore: format code 2025-12-07 05:45:36 +00:00
Arindam Majumder
ad22fe9fe7 docs: Nebius Token Factory provider documentation (#2997) 2025-12-06 23:45:08 -06:00
GitHub Action
6d622d91be chore: regen sdk 2025-12-07 05:33:26 +00:00
Aiden Cline
aa884b003e core: prevent sessions from disappearing after git init
Previously, sessions created in a non-git directory would disappear from
the session picker after running git init and making the first commit.
This happened because the migration logic ran prematurely before a stable
project ID existed.
2025-12-06 23:32:47 -06:00
GitHub Action
e0f77940f9 chore: format code 2025-12-06 23:25:16 +00:00
Aiden Cline
3a1718f62b ci: fix review 2025-12-06 17:24:44 -06:00
GitHub Action
f7f9d3e5b9 chore: regen sdk 2025-12-06 23:23:24 +00:00
Dax Raad
68501d7799 ci 2025-12-06 18:22:55 -05:00
GitHub Action
f8a987b135 chore: format code 2025-12-06 23:22:04 +00:00
Dax Raad
dfea6780d9 sync 2025-12-06 18:21:32 -05:00
GitHub Action
2ac8dd6361 chore: regen sdk 2025-12-06 23:19:47 +00:00
Dax Raad
dd0945b9ca tui: add visual separator between username and timestamp for better readability 2025-12-06 18:19:18 -05:00
Dax Raad
1b05d5dd8e tui: prevent deprecated models from appearing in model picker 2025-12-06 18:18:45 -05:00
GitHub Action
6923cc4a6a chore: format code 2025-12-06 23:15:39 +00:00
Aiden Cline
3feb69e63c ci: fix format 2025-12-06 17:15:04 -06:00
GitHub Action
6723792fbb chore: regen sdk 2025-12-06 22:05:07 +00:00
Aiden Cline
3e36069f41 fix: reduce overhead of task tool metadata 2025-12-06 16:04:33 -06:00
GitHub Action
6a4ca92a6c chore: format code 2025-12-06 20:49:33 +00:00
Saatvik Arya
3ec34ee3dd feat(tui): add dynamic terminal window title (#5112) 2025-12-06 14:49:11 -06:00
GitHub Action
2e5c2d5e98 chore: regen sdk 2025-12-06 20:48:46 +00:00
Anchit Bajaj
4dbe17d4f1 fix: update description to lowercase for ACP command (to be consistent with other commands) (#5137) 2025-12-06 14:48:21 -06:00
GitHub Action
f18776cb49 chore: format code 2025-12-06 20:43:15 +00:00
Ariane Emory
429aa24275 fix: make timestamp toggle text dynamic in command list (resolves #5106) (#5108) 2025-12-06 14:42:46 -06:00
GitHub Action
741c9d3c63 chore: regen sdk 2025-12-06 20:30:00 +00:00
Ben Vargas
419983c0f1 feat: restore experimental flag for websearch/codesearch tools (#5132)
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-12-06 14:29:34 -06:00
GitHub Action
a59c80e076 chore: format code 2025-12-06 20:28:25 +00:00
Cody Rayment
55981205da docs: update server API reference with complete endpoint list (#5136) 2025-12-06 14:28:02 -06:00
Dak Washbrook
c1e6037bda feat: add mercury.com theme (#5141) 2025-12-06 14:27:56 -06:00
Github Action
8e816a9283 Update Nix flake.lock and hashes 2025-12-06 12:45:14 +00:00
GitHub Action
d165c6b15a chore: regen sdk 2025-12-06 12:44:22 +00:00
Adam
9111005165 fix: terminal serialization and isolation 2025-12-06 06:43:53 -06:00
GitHub Action
3ceac25fb5 ignore: update download stats 2025-12-06 2025-12-06 12:04:12 +00:00
GitHub Action
8ec771d5be chore: format code 2025-12-06 11:53:20 +00:00
Adam
659e5653bc fix: exclude dist 2025-12-06 05:52:47 -06:00
Adam
3ff6de261c chore: update tauri update pub key 2025-12-06 05:49:05 -06:00
GitHub Action
25dae77fcd chore: regen sdk 2025-12-06 01:21:17 +00:00
Dax Raad
68daadcb56 sync 2025-12-05 20:20:47 -05:00
GitHub Action
c9b1bb0285 chore: format code 2025-12-06 01:14:58 +00:00
Dax
ac5809e757 Documentation edits made through Mintlify web editor 2025-12-05 20:14:29 -05:00
Dax
0db209a636 Documentation edits made through Mintlify web editor 2025-12-05 20:14:10 -05:00
GitHub Action
6c65f4acd1 chore: regen sdk 2025-12-06 01:13:23 +00:00
Dax Raad
3d447e8b12 ci 2025-12-05 20:12:52 -05:00
Dax Raad
f8807144d4 openapi route 2025-12-05 20:11:01 -05:00
GitHub Action
ebb4c8a724 chore: format code 2025-12-06 01:09:36 +00:00
Dax Raad
893f232b2f openapi json 2025-12-05 20:07:24 -05:00
GitHub Action
a6aaf5429c chore: format code 2025-12-06 01:02:41 +00:00
Dax Raad
4ef239a086 openapi generate 2025-12-05 20:01:55 -05:00
David Hill
9362368fd3 fix: add extra line break to install page 2025-12-05 23:43:26 +00:00
Adam
b35e010e2a feat: consistent (updated) social share images 2025-12-05 15:42:19 -06:00
GitHub Action
cc35e6a019 chore: format code 2025-12-05 21:42:15 +00:00
Dax Raad
3281888160 ignore: docs test 2025-12-05 16:41:35 -05:00
GitHub Action
c6d0ae892e chore: regen sdk 2025-12-05 21:02:17 +00:00
Aiden Cline
df67ae9cbe ci: regen sdk instead of failing tests 2025-12-05 15:01:41 -06:00
GitHub Action
ebe20efb29 chore: format code 2025-12-05 20:50:13 +00:00
franlol
b03b9b9017 feat: add optional scrollbar to the session chat (#5116)
Co-authored-by: Sebastian <hasta84@gmail.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-12-05 14:49:05 -06:00
opencode
73258c6193 release: v1.0.134 2025-12-05 20:46:49 +00:00
Github Action
dfe3fb8ed3 Update Nix flake.lock and hashes 2025-12-05 20:41:00 +00:00
Brendan Allan
cd6bfb3f69 OpenCode Desktop app (#5044)
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2025-12-05 14:39:49 -06:00
Shantur Rathore
ba417d80b1 tweak: bash tool improve output metadata for agent consumption, fix small timeout issue (#5131) 2025-12-05 13:56:56 -06:00
Nathan Thomas
40eb8b93e1 feat: add max steps for supervisor and sub-agents (#4062)
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-12-05 12:26:44 -06:00
Adam
6e6bd1e171 fix(desktop): terminal cursor position 2025-12-05 12:05:30 -06:00
Adam
81ee2d2332 fix(desktop): prompting 2025-12-05 10:51:35 -06:00
Aiden Cline
85974e9acd ignore: regen sdk 2025-12-05 10:50:14 -06:00
Noam Bressler
864c098701 add experimental.open_telemetry config option to enable OTEL spans (#4978)
Co-authored-by: noamzbr <noamzbr@users.noreply.github.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-12-05 10:48:22 -06:00
Adam
cfbaf81ef8 fix(desktop): clone pty session on reconnect 2025-12-05 10:30:48 -06:00
Adam
87a791fdb9 fix(desktop): new session not selecting tab 2025-12-05 10:30:48 -06:00
Anthony Shew
ada7cca10d feat(theme): Vercel (#5119)
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-12-05 10:01:20 -06:00
Julian Visser
52db0f23a6 fix: #5064 ProviderInitError github-copilot-enterprise (#5123) 2025-12-05 09:53:32 -06:00
Dax Raad
60388f7f03 do not use required pty for local dev 2025-12-05 10:39:44 -05:00
Frank
53ed1c912b Zen: add codex max 2025-12-05 09:05:00 -05:00
GitHub Action
5f7ab83de4 ignore: update download stats 2025-12-05 2025-12-05 12:04:29 +00:00
Aiden Cline
05d2f70529 ignore: tweak 2025-12-05 01:00:47 -06:00
Aiden Cline
f950de95ba fix: ensure projects that go from having no commits to having commits have sessions migrated (#5105)
Co-authored-by: GitHub Action <action@github.com>
2025-12-05 00:49:07 -06:00
Aiden Cline
a4e5a72c36 ci: keybinds 2025-12-05 00:22:28 -06:00
ry2009
03324d4277 tui: wrap dialog option descriptions (#5083) 2025-12-05 00:19:48 -06:00
Aiden Cline
e53580cb68 ignore: cmd tweak 2025-12-05 00:11:47 -06:00
GitHub Action
332ebe36c3 chore: format code 2025-12-05 05:14:21 +00:00
Aiden Cline
5013d64b28 ignore: rm slop commnand (only for opencode repo this isnt shipping) 2025-12-04 23:13:41 -06:00
Aiden Cline
767a81f930 fix: ensure that vcs is still set to git even if no commits in repo 2025-12-04 23:02:11 -06:00
Aiden Cline
78046dac8b ci: review 2025-12-04 23:02:11 -06:00
Dax Raad
95168b8267 increase default scroll speed 2025-12-04 23:54:46 -05:00
Dax Raad
c264e9c364 fix 2025-12-04 23:48:32 -05:00
Dax Raad
856e1e2948 fix pty builds 2025-12-04 23:47:57 -05:00
Jérôme Benoit
bef4fdfc4b fix: add getModel to SAP AI Core provider for correct SDK initialization (#5086)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
2025-12-04 22:43:22 -06:00
opencode-agent[bot]
095a1ab041 docs: llama.cpp docs: limit moved under model (#5089)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-12-04 22:39:13 -06:00
Dax Raad
71e578eac9 ignore: fix provider credentials query for BYOK
Provider credentials field was being selected from ProviderTable even when the table wasn't joined (when byokProvider was undefined). Now the join is conditional - when byokProvider exists, we join and get the credentials; when it doesn't, the join condition is always false so provider remains null.
2025-12-04 22:57:39 -05:00
Frank
4380727727 zen: fix byok 2025-12-04 21:53:33 -05:00
Github Action
392d46933b Update Nix flake.lock and hashes 2025-12-05 02:33:39 +00:00
GitHub Action
2bc0b46ff4 chore: format code 2025-12-05 02:33:01 +00:00
Adam
09f522f0aa Reapply "feat(desktop): terminal pane (#5081)"
This reverts commit f9dcd97936.
2025-12-04 20:32:08 -06:00
Github Action
d82bd430f6 Update Nix flake.lock and hashes 2025-12-04 22:02:17 +00:00
opencode
49800a00bd release: v1.0.133 2025-12-04 22:02:17 +00:00
Aiden Cline
f9dcd97936 Revert "feat(desktop): terminal pane (#5081)"
This reverts commit d763c11a6d.
2025-12-04 15:57:01 -06:00
Adam
d763c11a6d feat(desktop): terminal pane (#5081)
Co-authored-by: Github Action <action@github.com>
Co-authored-by: Dax Raad <d@ironbay.co>
2025-12-04 15:37:29 -06:00
Dax Raad
b1202ac6db core: add test for custom model npm package inheritance 2025-12-04 16:30:54 -05:00
Aiden Cline
d469d7d441 tweak: bash tool description re commit stuff 2025-12-04 15:27:23 -06:00
Cason Adams
48dc520fb8 docs: add CodeCompanion.nvim integration instructions (#5079) 2025-12-04 14:49:51 -06:00
Dax Raad
668d5a76d5 core: ensure model npm package falls back to dev models config when not explicitly defined 2025-12-04 15:39:52 -05:00
Jérôme Benoit
b9c1f10016 feat: Add SAP AI Core provider support (#5023)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
2025-12-04 14:07:23 -06:00
Aiden Cline
8a0c86cbdb bump: builtin plugin versions 2025-12-04 12:37:14 -06:00
Daniel Polito
7f86fe3f61 add optional prompt Input to Github Action (#4828)
Co-authored-by: Github Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2025-12-04 12:10:56 -06:00
Aiden Cline
a32cf70d7e tui: fix /new slash command being persisted in prompt input 2025-12-04 12:01:13 -06:00
Shantur Rathore
a607f33552 tweak: bash tool messages regarding timeouts and truncation more clear for agent (#5066) 2025-12-04 11:33:00 -06:00
Aiden Cline
350a32274a fix: model not being passed correctly to tool 2025-12-04 11:15:30 -06:00
Daniel Gray
27c99b46cb Preserve prompt input when creating new session (#4993) 2025-12-04 11:12:58 -06:00
Adam
1d6e3d477b fix(tui): cursor color 2025-12-04 06:56:48 -06:00
GitHub Action
efbb973393 ignore: update download stats 2025-12-04 2025-12-04 12:04:38 +00:00
Aiden Cline
45bc7a6a9d ci: cleaner 2025-12-04 01:14:09 -06:00
Aiden Cline
088ebb967f ci: only maintainer can trigger 2025-12-04 01:07:04 -06:00
Frank
bcf740f98a zen: make session provider sticky 2025-12-03 23:33:46 -05:00
wsx99outlook
6b80fff2bb ci: use blacksmith runners in review workflow too (#5042) 2025-12-03 22:30:00 -06:00
GitHub Action
2e63fedb76 chore: format code 2025-12-04 04:29:03 +00:00
YeonGyu-Kim
5a9f4e5c60 fix: ensure checkUpgrade sets init: (#5040) 2025-12-03 22:28:35 -06:00
opencode
d0a48a09e2 release: v1.0.132 2025-12-04 04:23:39 +00:00
GitHub Action
c0a21e7025 chore: format code 2025-12-04 04:19:15 +00:00
Dax Raad
10cc15aabe fix anthropic api key error 2025-12-03 23:18:24 -05:00
opencode
adf7681100 release: v1.0.131 2025-12-04 04:11:48 +00:00
Aiden Cline
0237905b96 fix: TypeError: undefined is not an object 2025-12-03 22:03:42 -06:00
GitHub Action
e8aa79bab6 chore: format code 2025-12-04 03:42:08 +00:00
Frank
4ff5783e59 zen: fix chart loading 2025-12-03 22:41:31 -05:00
opencode
dcfeb52983 release: v1.0.130 2025-12-04 03:38:18 +00:00
Jakub Matjanowski
46790e57e9 feat: Enhance DeepSeek reasoning content handling (#4975)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-03 21:31:36 -06:00
Jack Bisceglia
4bc3fa0826 docs: remove outdated theme section as system theme is now added back (#5041) 2025-12-03 21:10:26 -06:00
Aiden Cline
88cfb979be ci: add note about iife 2025-12-03 21:08:12 -06:00
Aiden Cline
32b5db754e fix: provider id issue 2025-12-03 20:45:55 -06:00
Aiden Cline
f33f8ca109 fix: compaction type issue 2025-12-03 20:43:47 -06:00
Aiden Cline
598d63db63 fix: dax typo 2025-12-03 20:39:11 -06:00
Github Action
38bff1b372 Update Nix flake.lock and hashes 2025-12-04 02:34:26 +00:00
Aiden Cline
e8c9b21f20 bump opentui 2025-12-03 20:33:08 -06:00
Dax
6d3fc63658 core: refactor provider and model system (#5033)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: thdxr <thdxr@users.noreply.github.com>
2025-12-03 21:09:03 -05:00
Dax Raad
ee4437ff32 core: add provider test coverage for upcoming refactor
Add comprehensive test suite for Provider module to ensure safe
refactoring of provider internals. Tests cover:
- Provider loading from env vars and config
- Provider filtering (disabled_providers, enabled_providers)
- Model whitelist/blacklist
- Model aliasing and custom providers
- getModel, getProvider, closest, defaultModel functions

Also adds Env module for instance-scoped environment variable access,
enabling isolated test environments without global state pollution.
2025-12-03 18:30:42 -05:00
Frank
7a4aa68706 zen: fix chart loading
closes #5030
2025-12-03 18:12:28 -05:00
Aiden Cline
f00380d285 ci: review tweak 2025-12-03 16:16:08 -06:00
Ariane Emory
c00d4885c6 feat: add tool_details keybind w/ no default (#4976)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-03 13:38:09 -06:00
Aiden Cline
70f4722356 ci: review ready for review action 2025-12-03 13:35:49 -06:00
Aiden Cline
8898bf7ca4 ci: tweak review cmd 2025-12-03 13:34:45 -06:00
Frank
e5b13b767e zen: usage graph respect light/dark mode 2025-12-03 14:24:44 -05:00
Aiden Cline
3181c68cbb ci: make review only fire on non draft pr creation 2025-12-03 13:10:40 -06:00
Aiden Cline
c3c9003dbb ci: add pr review 2025-12-03 12:45:06 -06:00
Ariane Emory
921b98066d feat: add messages_last_user command to scroll TUI to last user message (implements #4847) (#4855)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-03 12:30:11 -06:00
Luke Parker
c5b4cc80cc fix: bunfs path on windows (#5011) 2025-12-03 11:21:13 -06:00
Spoon
0bccd1d578 feat: experimental.primary_tools, allow user to set the tools that should only be available to primary agents (#4913)
Co-authored-by: GitHub Action <action@github.com>
2025-12-03 11:19:43 -06:00
Aiden Cline
91db82c138 add retry case for grok resource exhausted 2025-12-03 11:16:27 -06:00
GitHub Action
0eb97086fc chore: format code 2025-12-03 16:47:25 +00:00
Aiden Cline
5b34636afa ignore: docs & style 2025-12-03 10:46:48 -06:00
GitHub Action
f1138b9a55 ignore: update download stats 2025-12-03 2025-12-03 12:04:36 +00:00
opencode
23ff6dbba4 release: v1.0.129 2025-12-03 11:39:04 +00:00
Aiden Cline
b457923970 core: fix GitHub Copilot Enterprise authentication failing with sdk.chat undefined error 2025-12-02 23:37:10 -06:00
Jason Cheatham
66e4a5a64e tweak: adjust light/dark theme toggle (#5007) 2025-12-02 23:03:24 -06:00
Ben Vargas
6c25e64658 fix: correct Provider type in chat.params plugin hook (#5003) 2025-12-02 22:50:21 -06:00
Jason Cheatham
f2fd0f8f00 fix: handle 0 in ANSI theme color definitions (#5009) 2025-12-02 22:42:30 -06:00
Frank
44cdde5422 zen: fix removing provider 2025-12-02 21:52:12 -05:00
Github Action
88235dc618 Update Nix flake.lock and hashes 2025-12-03 02:17:49 +00:00
Sebastian Herrlinger
4d2b671d7b actually bump opentui to v0.1.55
- fix scrollbox empty/blank last items at bottom
- fix should not insert chars with modifiers in input/textarea anymore
- do not wrap OSC4 palette sequences for tmux 3.6
2025-12-03 03:16:32 +01:00
Sebastian Herrlinger
8098031eac Revert "bump opentui to v0.1.55"
This reverts commit 80636fec43.
2025-12-03 03:14:08 +01:00
Github Action
74c882d9d0 Update Nix flake.lock and hashes 2025-12-03 02:06:35 +00:00
Sebastian Herrlinger
80636fec43 bump opentui to v0.1.55
- fix scrollbox empty/blank last items at bottom
- fix should not insert chars with modifiers in input/textarea anymore
- do not wrap OSC4 palette sequences for tmux 3.6
2025-12-03 03:03:52 +01:00
Aiden Cline
a8ad74aef3 add basic session list command 2025-12-02 19:24:05 -06:00
Aiden Cline
e2e2b7934e Make homebrew update check use homebrew registry version info 2025-12-02 17:43:33 -06:00
Frank
28c802f399 wip: zen 2025-12-02 18:36:15 -05:00
Dalton Alexandre
bcfa63aa4e fix: allow unignoring files in .ignore (#4814) 2025-12-02 17:15:12 -06:00
Jay V
d40feafb01 ignore: commands 2025-12-02 18:09:16 -05:00
Jay V
2a8473891b docs: replace deprecated opencode auth login command with /connect across all documentation
Users no longer need to exit the TUI to add providers - they can now use the /connect command directly in the terminal interface. Updated all provider setup instructions to use simplified format with /connect command instead of the deprecated opencode auth login CLI command. Added /connect to TUI commands reference and streamlined provider documentation to show clearer, more concise setup steps.
2025-12-02 18:08:39 -05:00
Aiden Cline
a4e3451d5c tweak: make message border match color of agent it was sent to 2025-12-02 16:59:31 -06:00
Aiden Cline
53a7c2885b bump default lsp server timeout 2025-12-02 16:04:08 -06:00
Adam
f354507d42 fix: session turn margins 2025-12-02 15:50:24 -06:00
Jaga Santagostino
f17e1def32 toggle to hide username in TUI (#4750)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-02 15:11:03 -06:00
GitHub Action
3183e8b7d4 chore: format code 2025-12-02 20:28:17 +00:00
Aiden Cline
9d2b9ef2d4 ci: dont forget our european designer 2025-12-02 14:27:41 -06:00
opencode-agent[bot]
733e5cd876 add OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT (#4996)
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-12-02 20:14:23 +00:00
opencode
4ee4f7bcb3 release: v1.0.128 2025-12-02 20:14:22 +00:00
GitHub Action
da7ecda9ea chore: format code 2025-12-02 19:52:47 +00:00
Frank
1f11d4fb1a zen: data dumper 2025-12-02 14:51:27 -05:00
Adam
b308503ab5 chore: remove comment (redeploy) 2025-12-02 13:49:48 -06:00
Adam
3b10de4a28 fix: vite config 2025-12-02 13:08:59 -06:00
U Cirello
6ce1de476a fix(run): allow messages to start with dash (-) (#4904) 2025-12-02 12:52:05 -06:00
Aiden Cline
d9b0848a61 tweak: hide [REDACTED] chunks 2025-12-02 12:29:20 -06:00
Adam
46dd3b8166 chore: update landing page stats 2025-12-02 11:59:37 -06:00
Adam
eca07be072 chore: update landing page stats 2025-12-02 11:52:53 -06:00
GitHub Action
165d57b88e chore: format code 2025-12-02 17:07:27 +00:00
David Hill
28c44f7e5a Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-02 17:06:54 +00:00
David Hill
39d5bdff4b fix: add docs button 2025-12-02 17:06:37 +00:00
GitHub Action
b9f8480b2f chore: format code 2025-12-02 17:02:39 +00:00
David Hill
58b30d678a Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-12-02 17:00:45 +00:00
David Hill
408cdaf5e0 fix: website hero copy 2025-12-02 17:00:40 +00:00
GitHub Action
cae23cde09 chore: format code 2025-12-02 16:45:56 +00:00
Dalton Alexandre
702fb2562c fix: handle ANSI color indexes in theme resolution (#4842) 2025-12-02 10:45:22 -06:00
opencode
785d0b60b6 release: v1.0.127 2025-12-02 16:05:59 +00:00
Adam
67ab9dc4d0 fix: share page ssr 2025-12-02 07:08:25 -06:00
Github Action
77494cb7df Update Nix flake.lock and hashes 2025-12-02 12:52:28 +00:00
GitHub Action
08f8856d6c chore: format code 2025-12-02 12:51:37 +00:00
Adam
79a4c1544d fix: type error 2025-12-02 06:51:05 -06:00
Adam
c0a35141e6 feat: better code and diff rendering performance 2025-12-02 06:50:21 -06:00
GitHub Action
221bb64aeb ignore: update download stats 2025-12-02 2025-12-02 12:04:35 +00:00
David Hill
2555dba188 fix: update the install copy 2025-12-02 11:37:41 +00:00
Aiden Cline
6355ed6ae7 feat: add overridable review slash command (#4973) 2025-12-02 00:18:58 -06:00
Ariane Emory
1864e8c863 feat: toggle tool details visibility (resolves #4824) (#4882)
Co-authored-by: GitHub Action <action@github.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-12-01 19:38:44 -06:00
Adam
61d0d66dae fix: install orange 2025-12-01 19:21:55 -06:00
Aiden Cline
86522f1b3e fix: tui crash when no authed providers and default provider disabled (#4964) 2025-12-01 18:35:40 -06:00
Frank
dc32705bc9 zen: remove unnecessary transactions 2025-12-01 18:33:32 -05:00
Stephen Collings
1eaf5c31d3 fix(auth): Respect disabled/enabled providers config in auth login (#4940)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-01 17:01:10 -06:00
Aiden Cline
677b19e22e fix: add .quiet 2025-12-01 16:59:32 -06:00
opencode-agent[bot]
8e248ae045 fix: respect npm registry (#4958)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-01 16:58:39 -06:00
Adam
0acefd5c08 fix: safari icons 2025-12-01 16:27:12 -06:00
Aiden Cline
0331931f56 fix: sanitize more invalid schema cases for gemini models 2025-12-01 16:19:10 -06:00
Dax Raad
01e2c9cc21 core: fix share compaction reprocessing same events by making storage list boundaries exclusive 2025-12-01 16:58:59 -05:00
Dax Raad
4acb645f04 core: add debug logging to troubleshoot share compaction loading 2025-12-01 16:46:57 -05:00
Github Action
ef664039ac Update Nix flake.lock and hashes 2025-12-01 21:38:38 +00:00
Dax Raad
993422c6af core: prevent share tests from cleaning up storage used by other tests 2025-12-01 16:37:54 -05:00
Dax Raad
c950d59047 fix types 2025-12-01 16:36:56 -05:00
GitHub Action
cc726e0200 chore: format code 2025-12-01 21:35:51 +00:00
Dax Raad
3d99dc78db core: reduce latency when loading shared sessions through event compaction 2025-12-01 16:35:07 -05:00
Dax Raad
95c3a8b805 limit grep line length to 2000 2025-12-01 16:35:07 -05:00
Aiden Cline
f1bb5870ce fix: copilot responses bug w/ gpt 5 mini 2025-12-01 14:36:49 -06:00
GitHub Action
540407e193 chore: format code 2025-12-01 19:03:13 +00:00
Aiden Cline
027d43b5ea fix case where opencode wasn't retrying 2025-12-01 13:02:33 -06:00
opencode
729a6eda23 release: v1.0.126 2025-12-01 19:00:00 +00:00
blacksmith-sh[bot]
cbbd21e2e5 .github/workflows: Migrate workflows to Blacksmith runners (#4941)
Co-authored-by: blacksmith-sh[bot] <157653362+blacksmith-sh[bot]@users.noreply.github.com>
2025-12-01 09:43:33 -05:00
GitHub Action
e7d45ca617 chore: format code 2025-12-01 14:43:23 +00:00
Dax Raad
0ddfdb55d3 log fetch time 2025-12-01 09:35:08 -05:00
GitHub Action
fc439455a7 chore: format code 2025-12-01 14:23:36 +00:00
opencode
c0fc02769b release: v1.0.125 2025-12-01 14:23:35 +00:00
Dax Raad
068ac68496 docs: add rebase instructions to commit command 2025-12-01 09:14:54 -05:00
Dax Raad
7da6a22df2 core: close SSE stream when instance is disposed 2025-12-01 09:14:00 -05:00
Sebastian Herrlinger
e37aeb6e6a no conceal for write tool output 2025-12-01 15:12:47 +01:00
GitHub Action
eeb0d2b8e0 chore: format code 2025-12-01 13:27:29 +00:00
adamelmore
bf8c866bf7 chore: otf fonts 2025-12-01 07:20:53 -06:00
GitHub Action
75354b0002 ignore: update download stats 2025-12-01 2025-12-01 12:08:56 +00:00
opencode
4eb4d97d51 release: v1.0.124 2025-12-01 09:20:29 +00:00
Aiden Cline
b1b82977ec tweak: better err msgs 2025-12-01 01:33:32 -06:00
Aiden Cline
f6262460ff fix: drop absolute flag to resolve issues when using older git versions 2025-12-01 00:23:19 -06:00
GitHub Action
560a610384 chore: format code 2025-12-01 02:53:41 +00:00
Aiden Cline
0308b2ff98 bump anthropic plugin to fix header issue 2025-11-30 20:52:50 -06:00
opencode
5b92d49be7 release: v1.0.123 2025-12-01 01:07:50 +00:00
Github Action
0386d0ae09 Update Nix flake.lock and hashes 2025-12-01 01:00:23 +00:00
Sebastian Herrlinger
28bec57e1d bump opentui to v0.1.54, removing the cc flicker feature, fixing diffs and input event handling 2025-12-01 01:57:55 +01:00
Shantur Rathore
aaa31f02af tweak: compaction prompt (#4838)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-30 14:31:57 -06:00
Justin Vogt
ff609a52c1 docs: explore subagent (#4893) 2025-11-30 14:04:27 -06:00
GitHub Action
1e30793f0a ignore: update download stats 2025-11-30 2025-11-30 12:04:23 +00:00
Adam
5268eb479d feat(share): split diffs on wide screens 2025-11-30 05:29:07 -06:00
Aiden Cline
a4eba2e6e9 tweak: plan prompt 2025-11-30 01:03:35 -06:00
Aiden Cline
0f30115205 chore: cleanup 2025-11-30 00:32:43 -06:00
opencode-agent[bot]
ae500ea01d Added "Open docs" command to palette (#4915)
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-11-29 23:49:45 -06:00
Justin Vogt
087479d459 docs: Move tip to correct tool (#4891) 2025-11-29 22:03:20 -06:00
Aiden Cline
6e2379a28c get codex working in copilot (#4914)
Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-29 21:47:29 -06:00
opencode
262fa184fd release: v1.0.122 2025-11-30 00:35:34 +00:00
Github Action
9a7e1c154d Update Nix flake.lock and hashes 2025-11-29 23:56:14 +00:00
Sebastian Herrlinger
5bf9193dfa bump opentui to v0.1.53, fixing an event listener leak in the line number renderable (perf) 2025-11-30 00:52:32 +01:00
Sebastian Herrlinger
180fb3f39d tweak spinner to be bg independent 2025-11-30 00:50:30 +01:00
GitHub Action
7e6b7314f4 chore: format code 2025-11-29 21:41:00 +00:00
Dax Raad
a262508fb8 core: clarify general agent can execute multiple parallel tasks 2025-11-29 16:40:15 -05:00
Dax Raad
80ff24b65a ci: allow snapshot builds from any branch starting with snapshot- prefix 2025-11-29 21:30:38 +00:00
opencode
012aa67e42 release: v1.0.121 2025-11-29 21:30:38 +00:00
Github Action
0a1f12a583 Update Nix flake.lock and hashes 2025-11-29 21:20:24 +00:00
Sebastian Herrlinger
f17dc812d0 upgrade opentui to v0.1.52, fixing #4906 - key repeat handling 2025-11-29 22:18:08 +01:00
kavin
1854d85ccc fix(tui): add missing fg color to permission keybind hints (#4899)
Co-authored-by: Github Action <action@github.com>
2025-11-29 14:22:20 -06:00
Adam
2c4d1fb8b4 chore: cleanup duplicate markup 2025-11-29 06:18:51 -06:00
GitHub Action
d8fa7cf65d ignore: update download stats 2025-11-29 2025-11-29 12:04:12 +00:00
Dorian Karter
7d8d360138 fix: minor ui bug for transparent backgrounds (#4886) 2025-11-28 23:58:44 -06:00
Dax Raad
d80880350d core: improve explore agent description to clarify tool availability 2025-11-28 21:47:45 -05:00
GitHub Action
b693ed0dbd chore: format code 2025-11-29 02:44:40 +00:00
Dax Raad
83f961a7c2 Merge remote-tracking branch 'origin/dev' into dev 2025-11-28 21:44:02 -05:00
Dax Raad
a093917db1 core: update generated types to include explore agent configuration 2025-11-28 21:43:56 -05:00
opencode
52716db649 release: v1.0.120 2025-11-29 02:34:23 +00:00
Dax Raad
9ca4b464ea tui: improve task display in session view to show tool names and completion status 2025-11-28 21:19:15 -05:00
Dax Raad
204a31b6bb Merge remote-tracking branch 'origin/dev' into dev 2025-11-28 21:13:13 -05:00
Dax Raad
813d287a09 core: add explore agent for fast codebase navigation and improve task UI display 2025-11-28 21:13:07 -05:00
Adam
4dd9f33eba fix: diffs double rendering when CSR'd 2025-11-28 20:08:50 -06:00
Adam
5953378a12 fix: theme-color value 2025-11-28 19:57:01 -06:00
Github Action
b419eed295 Update Nix flake.lock and hashes 2025-11-29 01:55:02 +00:00
Sebastian Herrlinger
52deb7f352 opentui diffs 2025-11-29 02:52:17 +01:00
Dax Raad
a4f3aecbaa ignore 2025-11-28 20:29:58 -05:00
GitHub Action
49ff6a852a chore: format code 2025-11-28 22:43:33 +00:00
Justin Vogt
7f537d2e98 docs: Add tip to tools about subagents re todos (#4875) 2025-11-28 15:49:24 -06:00
Aiden Cline
753443b16f ci: add community contributors to the changelog 2025-11-28 15:44:21 -06:00
Ariane Emory
33c63be980 feat: persist thinking blocks display to KV and indicate its current display state in the command_list (resolves #4582) (#4810)
Co-authored-by: GitHub Action <action@github.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>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-28 15:01:05 -06:00
Aiden Cline
b6efca42b4 ci: use haiku 2025-11-28 14:41:32 -06:00
Github Action
fa6eadc39a Update Nix flake.lock and hashes 2025-11-28 20:32:46 +00:00
Aiden Cline
8789acefa6 bump openrouter & google ai sdk packages 2025-11-28 14:30:22 -06:00
Aiden Cline
0e280017e6 Revert "fix: title gen when first msg(s) are shell invocations (#4874)"
This reverts commit 17e8322c29.
2025-11-28 12:18:02 -06:00
Aiden Cline
17e8322c29 fix: title gen when first msg(s) are shell invocations (#4874)
Co-authored-by: GitHub Action <action@github.com>
2025-11-28 11:55:22 -06:00
Sergio Garcia
96eda740cd docs: formatter: false and lsp: false (#4833)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2025-11-28 11:22:48 -06:00
jaov
fa84612357 tweak: gemini retry message to not be explicitly about gemini 3 (#4864)
Co-authored-by: jesuso <j.ochoa@norteconecta.net>
2025-11-28 11:14:53 -06:00
Dax Raad
cf1f63eda3 ci stuff 2025-11-28 10:59:52 -05:00
Dax Raad
9704f5ce89 add otui-diffs 2025-11-28 10:59:07 -05:00
GitHub Action
0eaec2af82 ignore: update download stats 2025-11-28 2025-11-28 12:04:42 +00:00
Adam
398d35dc97 fix: theme-color value 2025-11-28 05:48:07 -06:00
Adam
5efeaae093 fix: desktop and share layouts 2025-11-28 05:35:35 -06:00
Adam
cb2dd34a5e fix: unified diff as default 2025-11-28 05:35:35 -06:00
Christoph
7112a706b8 core: add built-in Dart LSP server and formatter (#4841) 2025-11-28 00:33:45 -06:00
Github Action
025a47d01f Update Nix flake.lock and hashes 2025-11-28 06:27:49 +00:00
DS
13f89fdb8f fix: filter empty messages in toModelMessage (#4811) 2025-11-28 00:26:48 -06:00
Aiden Cline
cc78d50ef6 bump anthropic package 2025-11-28 00:25:16 -06:00
Adam
a8985b1849 fix(desktop): layout 2025-11-27 20:15:49 -06:00
Adam
6a1552f65c fix: unwrap solid store part 2025-11-27 20:15:49 -06:00
Dax Raad
776091cc23 ci: add bun version check to pre-push hook to ensure version consistency 2025-11-27 15:50:23 -05:00
Dax Raad
f385524f48 fix lock 2025-11-27 15:48:16 -05:00
Dax Raad
350982e636 tui: simplify model dialog ordering logic to reduce complexity 2025-11-27 14:38:51 -05:00
Dax Raad
5854455815 tui: improve provider dialog text clarity for better user guidance 2025-11-27 14:09:53 -05:00
Dax Raad
9ecaf618db tui: fix provider sorting to prioritize recommended options 2025-11-27 13:54:42 -05:00
Dax Raad
95b667d21e tui: remove cancel keybind hint from prompt dialog to simplify UI 2025-11-27 13:48:34 -05:00
Dax Raad
a0b689c140 tui: hide favorite keybind in model dialog when disconnected to prevent errors 2025-11-27 13:42:36 -05:00
GitHub Action
ea52ed41be chore: format code 2025-11-27 17:15:41 +00:00
Jay V
5a50d54fda ignore: lock 2025-11-27 12:14:50 -05:00
Jay V
35d118b0c4 ignore: add reply-to support for enterprise form emails 2025-11-27 12:12:44 -05:00
Albert O'Shea
ea7c213f5d nix: fix workflow failing on PRs (#4820)
Co-authored-by: Github Action <action@github.com>
2025-11-27 10:05:51 -06:00
Frank
70dd6dd394 doc: slashing kimi k2 thinking price 2025-11-27 09:58:57 -05:00
GitHub Action
049510afbd ignore: update download stats 2025-11-27 2025-11-27 12:04:30 +00:00
Adam
c120447fd0 fix: desktop layout and scroll gutters 2025-11-27 05:41:50 -06:00
Adam
feb1f36126 fix: session turn margins 2025-11-27 05:25:39 -06:00
GitHub Action
d6ef47bb2d chore: format code 2025-11-27 11:06:46 +00:00
Adam
50fd416d49 fix: simpler sanitize 2025-11-27 05:05:55 -06:00
opencode
aef6904247 release: v1.0.119 2025-11-27 03:15:40 +00:00
Dax Raad
0bf40faf95 core: prevent codesearch and websearch tools when webfetch permission is denied 2025-11-26 22:08:50 -05:00
GitHub Action
c90987c4b0 chore: format code 2025-11-27 03:08:33 +00:00
Dax Raad
0e08655407 core: prevent external diff tools from interfering with snapshot generation 2025-11-26 22:07:51 -05:00
opencode
427887db9c release: v1.0.118 2025-11-27 02:43:07 +00:00
Dax Raad
a718622498 tui: prevent footer from shrinking when terminal is resized 2025-11-26 21:35:56 -05:00
Github Action
4e83107d79 Update Nix flake.lock and hashes 2025-11-27 01:33:35 +00:00
GitHub Action
04b6e72820 chore: format code 2025-11-27 01:32:04 +00:00
Dax Raad
501a2539c7 revert ts lsp to monorepo root 2025-11-26 20:31:26 -05:00
opencode
6a9856d480 release: v1.0.117 2025-11-27 01:29:00 +00:00
Dax Raad
2c8d42d997 roll back vtsls 2025-11-26 20:18:40 -05:00
Dax Raad
9c237f0bfb temporarily restrict codesearch and websearch to opencode zen users. need to figure out how to opt out for enterprise users who do not want this 2025-11-26 20:13:20 -05:00
Dax
63bfe76720 tui design refinement (#4809) 2025-11-26 20:11:39 -05:00
Aiden Cline
99d7ff47c4 enable parcel file watcher, expand parcel ignore patterns, replace fs watcher for git branches with parcel (#4805) 2025-11-26 17:33:43 -06:00
Aiden Cline
3ff0eb3065 Revert "fix: disable virtual extmarks for file/agent mentions (#4731)"
This reverts commit 673dbeee09.
2025-11-26 14:55:39 -06:00
GitHub Action
4d2b265dc4 chore: format code 2025-11-26 19:10:51 +00:00
rosmur
1854245bd3 docs: add llama.cpp provider for local LLM inference (#4769)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-26 13:10:15 -06:00
Aiden Cline
4d07034930 fix: svg paste bug 2025-11-26 12:38:48 -06:00
Dax Raad
98031173b6 lil branch refactor 2025-11-26 12:34:48 -05:00
GitHub Action
e8e474597c chore: format code 2025-11-26 17:26:46 +00:00
Tommy D. Rossi
382758790c fix(tui): dedupe file references in prompt (#4775) 2025-11-26 11:26:05 -06:00
opencode
c33920f59d release: v1.0.115 2025-11-26 16:57:35 +00:00
Jensen
33f004d4b6 fix(tui): show bootstrap errors instead of {} to trace (#4779)
Co-authored-by: Github Action <action@github.com>
2025-11-26 10:49:55 -06:00
Yug Agarwal
8963b536ee docs: IO.NET Provider (#4762) 2025-11-26 10:44:05 -06:00
GitHub Action
51455e2a1e ignore: update download stats 2025-11-26 2025-11-26 12:04:44 +00:00
Adam
30d6a26e3e fix: useData 2025-11-26 06:03:13 -06:00
Adam
cd4fabd11b fix: scroll gutter padding 2025-11-26 05:58:30 -06:00
Github Action
9a8b8f26ac Update Nix flake.lock and hashes 2025-11-26 11:31:37 +00:00
Adam
2f73b16b57 deps: update pierre diffs 2025-11-26 05:29:31 -06:00
opencode-agent[bot]
df9952c291 Renamed vcs.changed to vcs.branch.updated (#4771)
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-11-26 01:17:59 -06:00
Dmitry Halushka
ee946d8128 fix: transform MCP tool schemas for Google/Gemini compatibility (#4538)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Github Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-26 00:58:20 -06:00
Aiden Cline
ec8f2e078e Remove keybinds from favorites feature, keep functionality 2025-11-26 00:45:33 -06:00
shuv
335f46122b Add favorites to model selector (#23) (#4343)
Co-authored-by: Github Action <action@github.com>
2025-11-26 00:41:41 -06:00
Meysam Najafi Fard
73eae191e9 fix: handle remote image URLs in paste handler (#4691)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-26 00:34:22 -06:00
Aiden Cline
14e823e938 ignore: fix type issue 2025-11-26 00:14:04 -06:00
Aiden Cline
2fbd462e6e Reapply "feat(github): add ability to react to PR Review Comments in Workflow (#4705)"
This reverts commit e1cc98d448.
2025-11-25 23:51:46 -06:00
Aiden Cline
e1cc98d448 Revert "feat(github): add ability to react to PR Review Comments in Workflow (#4705)"
This reverts commit 0ce64962d4.
2025-11-25 23:51:23 -06:00
U Cirello
0ce64962d4 feat(github): add ability to react to PR Review Comments in Workflow (#4705)
Co-authored-by: GitHub Action <action@github.com>
2025-11-25 23:45:19 -06:00
george larson
338229193f docs: add Venice.ai provider (#4748)
Co-authored-by: George Larson <georgeglarson@users.noreply.github.com>
2025-11-25 23:40:52 -06:00
Ariane Emory
57644a4be8 feat: add a diff_style option to allow disabling columnar diffs (resolve #4677) (#4756)
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: GitHub Action <action@github.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-11-25 23:34:58 -06:00
Frank
da2099137a zen: trial 2025-11-25 23:44:57 -05:00
Aiden Cline
09bc8d9ca4 show current git branch in tui (#4765)
Co-authored-by: GitHub Action <action@github.com>
2025-11-25 21:39:20 -06:00
Dax Raad
d95f724303 enable exa code/websearch 2025-11-25 22:06:26 -05:00
Frank
c413c3ed8f wip: zen 2025-11-25 22:01:34 -05:00
Adam
5f56be0ad4 fix: pierre separators 2025-11-25 20:39:20 -06:00
Adam
ef441d5cff chore: cleanup pierre stuff 2025-11-25 20:39:20 -06:00
GitHub Action
16a188c524 chore: format code 2025-11-26 02:33:36 +00:00
Dax Raad
50c40a8d99 tui: fix event subscription cleanup in SDK context 2025-11-25 21:32:56 -05:00
opencode
4114c8715c release: v1.0.114 2025-11-26 00:32:22 +00:00
GitHub Action
ced5fdbe70 chore: format code 2025-11-26 00:24:10 +00:00
Dax Raad
b16aa81e0d switch to vtsls for typescript lsp 2025-11-25 19:23:23 -05:00
Aiden Cline
b44971668c fix: global prefix handling w/ aws bedrock (#4757) 2025-11-26 00:21:59 +00:00
opencode
0ff4c284e2 release: v1.0.113 2025-11-26 00:21:59 +00:00
Dax Raad
e8db95be16 switch typescript lsp to be one per package to ensure it loads when typescript is not installed at root 2025-11-25 19:14:07 -05:00
Shantur Rathore
69c2dd53ad config: add setCacheKey in provider options (#4738)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-25 17:53:56 -06:00
Frank
14a910bd64 wip: zen 2025-11-25 18:04:25 -05:00
GitHub Action
52f97ffdc9 chore: format code 2025-11-25 22:59:55 +00:00
Frank
a1e87f6cd9 wip: zen 2025-11-25 17:58:59 -05:00
Frank
c2fc41dcd5 wip: zen 2025-11-25 17:57:24 -05:00
Frank
b62c7943e7 zen: trial 2025-11-25 17:57:24 -05:00
Tommy D. Rossi
64caeeb12d fix(tui): abort in-progress generation on undo (#4744) 2025-11-25 16:35:34 -06:00
Adam
e8ac4a1e99 fix: build error 2025-11-25 16:27:53 -06:00
Adam
19c8654195 fix: missing deps 2025-11-25 16:27:26 -06:00
Haris Gušić
00d7aed797 fix: prompt submit error with opencode -c (#4496)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-25 16:27:06 -06:00
Adam
4477132448 fix: sanitize absolute paths 2025-11-25 16:02:31 -06:00
Aiden Cline
eaeea45ace ci: change changelog model 2025-11-25 15:36:26 -06:00
Aiden Cline
e404bf33b1 update install script to handle musl & avx 2025-11-25 15:35:10 -06:00
Aiden Cline
79a7edea5e ci: update changelog prompt 2025-11-25 15:34:49 -06:00
Jaga Santagostino
2b05fe2859 docs: improve notes on mobile (#4747) 2025-11-25 15:27:28 -06:00
GitHub Action
f8996f0a90 chore: format code 2025-11-25 21:10:31 +00:00
Dax Raad
eb04cdac41 better overloaded message 2025-11-25 21:10:31 +00:00
opencode
125938c7a1 release: v1.0.112 2025-11-25 21:10:30 +00:00
opencode
ec1260d8aa release: v1.0.111 2025-11-25 20:54:40 +00:00
Dax Raad
9eabbe2e76 retry anthropic overloaded errors 2025-11-25 15:47:34 -05:00
Adam
5f35c579e2 fix: accordion styles 2025-11-25 14:46:22 -06:00
Adam
99a23bdc8f fix: css code splitting off for desktop 2025-11-25 14:33:49 -06:00
Aiden Cline
d914a08896 tweak stats command to show avg & median # of tokens per session 2025-11-25 14:14:06 -06:00
Jaga Santagostino
ceccc30cb8 docs: reduce mobile padding (#4745) 2025-11-25 14:04:55 -06:00
Youssef Achy
3366a71155 Theme selector UX (current theme indicator and easier selection) (#4623)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-25 13:53:01 -06:00
Adam
cd67804412 fix: scroll gutter 2025-11-25 13:49:46 -06:00
Aiden Cline
4a95db6013 fix: add missing compacted event 2025-11-25 13:47:10 -06:00
Adam
8bf552ae25 fix: markdown inline code style 2025-11-25 13:11:21 -06:00
Adam
ccd0c2382f fix(share): style issues 2025-11-25 12:53:43 -06:00
Adam
d74663bf53 fix(share): don't highlight words unless split 2025-11-25 12:21:39 -06:00
Aiden Cline
020ee56f25 fix: dont auto continue if compaction was manual 2025-11-25 12:11:09 -06:00
Adam
87b295bc3d fix(share): metadata and popover close delay 2025-11-25 12:09:22 -06:00
Github Action
b9b1e92788 Update Nix flake.lock and hashes 2025-11-25 17:45:45 +00:00
Dax Raad
4000705701 core(enterprise): use aws4fetch for smaller bundle size on edge runtimes 2025-11-25 12:43:36 -05:00
Tommy D. Rossi
673dbeee09 fix: disable virtual extmarks for file/agent mentions (#4731) 2025-11-25 11:37:46 -06:00
Ariane Emory
5288041782 tweak: alphabetical (mostly) opencode models output (#4725)
Co-authored-by: Dax Raad <d@ironbay.co>
2025-11-25 11:37:05 -06:00
Ariane Emory
4273fa9ccf fix: merge plugin selections (resolves #4565) (#4724)
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: GitHub Action <action@github.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-11-25 11:34:21 -06:00
Aiden Cline
01bcb9dff9 ci: setup bun 2025-11-25 11:27:29 -06:00
Github Action
101f86ad1f Update Nix flake.lock and hashes 2025-11-25 16:56:01 +00:00
GitHub Action
2575dc2db0 chore: format code 2025-11-25 16:46:00 +00:00
Adam
b4e6f128d7 fix: favicons across all web properties 2025-11-25 10:45:18 -06:00
Albert O'Shea
7d5e6718dc nix: set dontFixup = true (#4735) 2025-11-25 10:16:53 -06:00
Github Action
072aa7569c Update Nix flake.lock and hashes 2025-11-25 13:50:22 +00:00
GitHub Action
62871283e2 chore: format code 2025-11-25 13:49:03 +00:00
Adam
0f1dd24f97 fix(enterprise): custom element defs 2025-11-25 07:48:18 -06:00
Adam
995f551e80 fix(enterprise): custom element defs 2025-11-25 07:47:25 -06:00
Adam
15facd8cfd feat(share): SSR'd diffs 2025-11-25 07:40:16 -06:00
GitHub Action
57bd47a446 ignore: update download stats 2025-11-25 2025-11-25 12:05:06 +00:00
Aiden Cline
0568c943ab better scroll speed default for windows 2025-11-25 01:16:21 -06:00
Shantur Rathore
b1aaa8570e prompt_async: Allows to receive prompt and return immediately, start … (#4664)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-24 23:52:57 -06:00
Aiden Cline
3b2aa7e91d Revert "Support basic auth in opencode sdk (#4697)"
This reverts commit b9253d0b3b.
2025-11-24 23:12:00 -06:00
Aiden Cline
997aacf7f0 ci: adjust nix hash 2025-11-24 22:50:32 -06:00
Dax Raad
3183978c6b fixed suspense in enterprise 2025-11-24 23:33:47 -05:00
Frank
6a0b20456f zen: remove official support for unified endpoint 2025-11-24 23:33:23 -05:00
Frank
8841112b07 zen: add zai logo 2025-11-24 23:33:23 -05:00
Aiden Cline
16dbac6026 Revert "config: add setCacheKey in provider options (#4654)"
This reverts commit 9b6d03c497.
2025-11-24 22:30:56 -06:00
Shantur Rathore
9b6d03c497 config: add setCacheKey in provider options (#4654)
Co-authored-by: GitHub Action <action@github.com>
2025-11-24 22:20:52 -06:00
Aiden Cline
d3ea044619 ignore: comment out thingy 2025-11-24 22:15:00 -06:00
Frank
364355c8e1 zen: graduate kimi k2 thinking 2025-11-24 23:14:46 -05:00
Frank
88c4e95428 zen: sticky session 2025-11-24 23:14:46 -05:00
Dax Raad
9403f6ced5 log data 2025-11-24 23:13:28 -05:00
GitHub Action
56fe84e516 chore: format code 2025-11-25 03:59:28 +00:00
Dax Raad
69d1381ba3 core: refactor share system to separate session IDs from share IDs
- Generate shorter share IDs from session IDs for better URL structure
- Update API routes to use shareID parameter instead of sessionID
- Improve sync mechanism with better data queuing and deduplication
- Maintain backward compatibility while improving security and organization
2025-11-24 22:58:47 -05:00
Dax Raad
ccec8c4792 tui: align session panel content with consistent left padding 2025-11-25 03:08:12 +00:00
opencode
83c47e0ed7 release: v1.0.110 2025-11-25 03:08:12 +00:00
Dax Raad
6d630901b6 tui: use standard middle dot separator for better terminal compatibility 2025-11-24 22:00:44 -05:00
Adam
320622fc27 fix(tui): spacing 2025-11-24 20:44:30 -06:00
Dax Raad
fb8ef1f27b tui: prevent re-fetching already synced sessions when switching sessions 2025-11-24 21:43:11 -05:00
Adam
333948711d fix(desktop): content animations 2025-11-24 20:35:51 -06:00
Adam
001b4be0ae fix(desktop): message summaries 2025-11-24 19:56:12 -06:00
Github Action
427c62d052 Update Nix flake.lock and hashes 2025-11-25 00:03:08 +00:00
Sebastian Herrlinger
99097d418b bump opentui to v0.1.50
- fix another segfault
- fix weird tmux window/pane title
- fix selection in textarea (use shift+arrow keys)
2025-11-25 01:00:48 +01:00
Adam
75654afeaa fix(share): responsiveness 2025-11-24 17:59:37 -06:00
GitHub Action
f10d18956a chore: format code 2025-11-24 23:06:21 +00:00
Andrew Joslin
b9253d0b3b Support basic auth in opencode sdk (#4697) 2025-11-24 17:05:35 -06:00
opencode
2458e7597b release: v1.0.109 2025-11-24 22:30:42 +00:00
Aiden Cline
23a721f0a2 remove hardcoded openrouter provider 2025-11-24 16:11:12 -06:00
Frank
9bd6be5c6d zen: byok for gemini 2025-11-24 17:09:54 -05:00
Adam Hosker
dd6113c9d1 Add --refresh flag to models command (#4707) 2025-11-24 16:06:51 -06:00
Adam
d39bcd9c55 fix(desktop): layout 2025-11-24 15:57:48 -06:00
Frank
823d7da4c1 zen: display reasoning tokens 2025-11-24 16:54:54 -05:00
Frank
7fff191c57 wip: zen 2025-11-24 16:54:54 -05:00
Aiden Cline
9e44085a69 adjust bundled provider logic, fix tree shaking stuff (#4708) 2025-11-24 15:48:54 -06:00
Adam
5230b91b25 fix(console): remove extra favicon 2025-11-24 15:48:11 -06:00
GitHub Action
493b3d72e4 chore: format code 2025-11-24 21:17:40 +00:00
Adam
337590c450 fix(console): favicon issues 2025-11-24 15:10:40 -06:00
Adam
8e1c7cfe89 wip(share): enterprise favicon 2025-11-24 15:10:40 -06:00
Adam
c60cb6c329 wip(share): more styling 2025-11-24 15:10:40 -06:00
Adam
acf1dd8500 wip(share): more styling 2025-11-24 15:10:40 -06:00
Adam
3fb57044d1 wip(share): more styling 2025-11-24 15:10:39 -06:00
Frank
46a76a778a zen: add opus 4.5 2025-11-24 15:39:38 -05:00
Aiden Cline
a9a2c23736 add autoupdate: notify 2025-11-24 14:32:38 -06:00
Aiden Cline
ccde319937 ci: nix hash 2025-11-24 14:26:55 -06:00
Frank
0ed7fac5fb wip: zen 2025-11-24 15:24:44 -05:00
GitHub Action
80b9cd1292 chore: format code 2025-11-24 19:53:00 +00:00
Sebastian Herrlinger
b6c1df41fb textarea highlight cursor color 2025-11-24 20:51:07 +01:00
opencode
125af820d0 release: v1.0.108 2025-11-24 19:16:14 +00:00
GitHub Action
8167e90801 chore: format code 2025-11-24 18:40:01 +00:00
Sebastian Herrlinger
82ebf66cba non-corpo loading spinner 2025-11-24 19:39:09 +01:00
Frankie Seabrook
883ed4d424 docs: add Ollama Cloud provider setup to providers.mdx (#4693) 2025-11-24 10:51:16 -06:00
GitHub Action
e6bf1754c3 ignore: update download stats 2025-11-24 2025-11-24 12:04:34 +00:00
Carli Samuele
bcb494d5d1 TUI: fix: add null check for user.time in duration calculation (#4679) 2025-11-24 02:06:09 -06:00
Ariane Emory
75c0c0a098 tweak: display MCPs in alphabetic order in the sidebar. (#4680)
Co-authored-by: Github Action <action@github.com>
2025-11-24 02:02:04 -06:00
GitHub Action
840d2694b4 chore: format code 2025-11-24 07:51:59 +00:00
Aiden Cline
abdc7b276a fix: persist light vs dark mode 2025-11-24 01:51:13 -06:00
Aiden Cline
d4f6deb9ef tweak: modified files sidebar 2025-11-24 01:51:13 -06:00
opencode
502e85b903 release: v1.0.107 2025-11-24 07:06:41 +00:00
Aiden Cline
ac1e2bfd49 bump copilot plugin, give better error message for copilot (#4678) 2025-11-24 00:40:15 -06:00
Aiden Cline
b9b071c744 fix: fatal: undefined is not an object (evaluating 'color.buffer') 2025-11-23 23:56:15 -06:00
GitHub Action
83186b6fed chore: format code 2025-11-24 04:55:13 +00:00
Albert O'Shea
a3a239967f nix: bundle js dist with bun and patch tree-sitter wasm paths (#4644)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Github Action <action@github.com>
2025-11-23 22:54:29 -06:00
Huang Qi
b4fd4bb257 fix: add explicit fallback model and prevent direct opencode provider calls (#4653)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-23 22:51:15 -06:00
GitHub Action
eb009d5959 chore: format code 2025-11-23 20:59:37 +00:00
Frank
4a81bd0f50 wip: zen 2025-11-23 15:58:55 -05:00
Frank
bbc9142fc5 wip: zen 2025-11-23 15:21:47 -05:00
Aiden Cline
7413c2715c tweak: slight improvements to title gen 2025-11-23 14:04:39 -06:00
Dax Raad
7579c3bb15 ci: remove log 2025-11-23 15:00:29 -05:00
Dax Raad
24683058fd ci: ignore 2025-11-23 14:56:24 -05:00
Dax Raad
bf81e3108c ci: ignore 2025-11-23 14:56:24 -05:00
Dax Raad
5ade90416e ci: ignore 2025-11-23 14:44:05 -05:00
GitHub Action
8f2a8086c0 chore: format code 2025-11-23 19:37:19 +00:00
Dax Raad
38b70f7877 ci: secret 2025-11-23 14:36:36 -05:00
Dax Raad
5e112a17a5 token 2025-11-23 19:35:39 +00:00
Dax Raad
59a3e7e3cc ci: ignore 2025-11-23 19:35:39 +00:00
Github Action
2c93f065cb Update Nix flake.lock and hashes 2025-11-23 19:35:39 +00:00
opencode
488d33c1ed release: v1.0.106 2025-11-23 19:35:38 +00:00
Dax Raad
de4660ac12 ci: ignore 2025-11-23 14:28:10 -05:00
Aiden Cline
27ae341684 fix bash tool wsl 2025-11-23 12:29:15 -06:00
Github Action
25b3846694 Update Nix flake.lock and hashes 2025-11-23 17:57:34 +00:00
Dax Raad
8e2f9f6544 ci: stuff 2025-11-23 12:55:33 -05:00
Github Action
76b5870f89 Update Nix flake.lock and hashes 2025-11-23 17:45:24 +00:00
Dax Raad
604891e793 ci: stuff 2025-11-23 12:43:23 -05:00
Dax Raad
5814df7eaa sync 2025-11-23 12:43:23 -05:00
Aiden Cline
2509d03f42 tweak: fix bool 2025-11-23 11:43:09 -06:00
Github Action
a256df9823 Update Nix flake.lock and hashes 2025-11-23 17:09:33 +00:00
Dax Raad
af96ec5a30 ignore: update @solidjs/start dependency and fix console redirect handling
Updates the @solidjs/start dependency to latest version and removes deprecated getResponseHeaders usage from auth callback. Also adds error handling for workspace ID lookup to prevent redirect failures.
2025-11-23 12:07:28 -05:00
GitHub Action
55df80b80e ignore: update download stats 2025-11-23 2025-11-23 12:04:01 +00:00
Ariane Emory
7d11986a0a feature: optional selectedListItemText element in themes and luminance-based fallback to solve 4369 (#4572)
Co-authored-by: knanao <nao.7ken@gmail.com>
Co-authored-by: knanao <k@knanao.com>
2025-11-23 01:51:07 -06:00
Aiden Cline
d75d90c53e ci: fix action 2025-11-23 01:36:45 -06:00
Tyler Limbach
35fead2eca fix: make tui session text respect theme fg (#4618) (#4620) 2025-11-23 01:34:31 -06:00
Github Action
9bb2efd3ef Update Nix flake.lock and hashes 2025-11-23 07:31:17 +00:00
Aiden Cline
30ffcaa667 tweak: start bundling in some ai-sdk packages (#4649) 2025-11-23 01:29:20 -06:00
terakael
ba11455786 fix: prevent permission shortcuts when ctrl/meta pressed (#4631)
Co-authored-by: terakael <terakael@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-22 23:58:10 -06:00
Dax Raad
d69ba27f84 fix suspense 2025-11-23 00:16:06 -05:00
Dax Raad
448b72d046 fix logout 2025-11-23 00:12:58 -05:00
Dax Raad
d96d89bcb8 fix logout 2025-11-22 23:59:50 -05:00
Dax Raad
7a013d4f40 fixed 2025-11-22 23:56:37 -05:00
GitHub Action
e4597df3b9 chore: format code 2025-11-23 04:54:26 +00:00
Dax Raad
2b014fcd75 fix auth 2025-11-22 23:53:41 -05:00
Github Action
c2bf6975f8 Update Nix flake.lock and hashes 2025-11-23 00:44:43 +00:00
Sebastian Herrlinger
733e1f79ac bump opentui to v0.1.49
- fix stdin handling for suspend/resume
- fix textarea cursor movement segfault for wcdwidth (alacritty/tmux)
2025-11-23 01:42:33 +01:00
GitHub Action
2a6cbfd5fd chore: format code 2025-11-23 00:20:07 +00:00
Adam
6173b69a8b wip(share): more styling 2025-11-22 18:19:02 -06:00
opencode
fc72cfe784 release: v1.0.105 2025-11-22 22:39:18 +00:00
Dax Raad
768c81cdfd core: prevent concurrent bun package installs that could cause corruption or conflicts 2025-11-22 17:32:53 -05:00
Dax Raad
bcea8ed593 tui: fix message completion timing and duration display in session view 2025-11-22 17:28:50 -05:00
GitHub Action
f93bb1dd21 chore: format code 2025-11-22 22:27:23 +00:00
Ravi Kumar
b92e8510f9 fix: auto upgrade toast message (#4625)
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: opencode <opencode@sst.dev>
2025-11-22 16:26:46 -06:00
opencode
1b692ec7eb release: v1.0.104 2025-11-22 20:03:20 +00:00
Dax Raad
4c97e2e8bb reset cache 2025-11-22 14:56:35 -05:00
Dax Raad
b652198979 load desktop app 2025-11-22 14:40:11 -05:00
Dax Raad
31c4a1d853 docs: add Docker installation option for OpenCode 2025-11-22 14:13:04 -05:00
Goni Zahavy
6afdb5c0e5 tui: added ctrl-z terminal suspension support (#3983) 2025-11-22 12:48:23 -06:00
shuv
bdcf864678 proper fix for image attachments (#4562)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-22 12:47:57 -06:00
opencode
0dd5039668 release: v1.0.103 2025-11-22 18:21:49 +00:00
Dax Raad
a0831eade1 tui: remove bullet prefix from timestamps in session view for cleaner display 2025-11-22 13:11:08 -05:00
GitHub Action
f1dc9818b6 chore: format code 2025-11-22 18:04:34 +00:00
Dax Raad
b52b7c6ded more flickering fixes 2025-11-22 13:03:44 -05:00
Dax Raad
e03a41144a tui: keep assistant footer from crashing after compaction 2025-11-22 18:00:54 +00:00
opencode
37bb07e7a3 release: v1.0.100 2025-11-22 18:00:54 +00:00
Dax Raad
78a6325b64 improve model footer 2025-11-22 12:54:02 -05:00
GitHub Action
c96923d2c9 chore: format code 2025-11-22 17:50:32 +00:00
Valerio Di Maggio
59742fbfee Showed end time for agent loop and changed message time to show date if not current day (#4503)
Co-authored-by: GitHub Action <action@github.com>
2025-11-22 11:49:50 -06:00
Dax Raad
2938a25ec5 sync 2025-11-22 16:43:47 +00:00
opencode
d163eb3888 release: v1.0.99 2025-11-22 16:43:46 +00:00
Dax Raad
75c29d4d1c summary optimizaitons 2025-11-22 11:32:49 -05:00
Dax Raad
e103fb1f93 ci: add Node.js setup to deploy workflow for consistent runtime environment 2025-11-22 10:47:18 -05:00
Dax Raad
bd79ff87cc fix missing vite 2025-11-22 10:45:06 -05:00
Dax Raad
ac21ec2f46 upgrade bun lock version 2025-11-22 10:42:09 -05:00
Github Action
5bcf017c10 Update Nix flake.lock and hashes 2025-11-22 15:41:29 +00:00
Brendan Allan
85d99198b5 Use devinxi-ed Solid Start (#4635)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Dax Raad <d@ironbay.co>
2025-11-22 10:39:25 -05:00
GitHub Action
7f183f7404 ignore: update download stats 2025-11-22 2025-11-22 12:04:02 +00:00
opencode
85284df725 release: v1.0.98 2025-11-22 06:00:23 +00:00
Dax Raad
87054ee983 fix flickering/layout shift during work 2025-11-22 00:49:35 -05:00
GitHub Action
81245c2548 chore: format code 2025-11-22 05:15:55 +00:00
Dax Raad
6f82b321d8 tauri 2025-11-22 00:15:01 -05:00
opencode
f4593c6653 release: v1.0.97 2025-11-22 05:02:16 +00:00
Dax Raad
15902cf54d core: add missing system libraries to docker image so the agent starts successfully 2025-11-21 23:52:01 -05:00
GitHub Action
d1102c33ac chore: format code 2025-11-22 04:48:52 +00:00
Dax Raad
aabbd3383c fix dockerfile 2025-11-21 23:48:09 -05:00
opencode
afb55cb7d4 release: v1.0.95 2025-11-22 04:27:20 +00:00
Dax Raad
ade794a937 ci: ignore 2025-11-21 23:08:35 -05:00
Dax Raad
34271a82ff release: v1.0.94 2025-11-21 23:06:37 -05:00
Dax Raad
b20a31098a sync 2025-11-21 22:58:20 -05:00
Dax Raad
b5a039e5ae ci stuff 2025-11-21 22:53:58 -05:00
GitHub Action
986cc0a01c chore: format code 2025-11-22 03:31:29 +00:00
opencode
b20fd36c48 release: v1.0.92 2025-11-22 03:31:28 +00:00
Dax Raad
e4e6bf66e1 publish tar.gz for linux 2025-11-21 22:24:36 -05:00
opencode
3ae27273c6 release: v1.0.91 2025-11-22 02:19:56 +00:00
Dax Raad
eefb3c43dd fix arg parsing 2025-11-21 21:13:43 -05:00
Github Action
cc229e726e Update Nix flake.lock and hashes 2025-11-22 01:43:03 +00:00
Dax
49408c00e9 enterprise (#4617)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2025-11-21 20:41:27 -05:00
opencode
76192fbced release: v1.0.90 2025-11-22 00:16:10 +00:00
GitHub Action
a1c76c79de chore: format code 2025-11-22 00:09:32 +00:00
Dax Raad
db9e2b1aac ci: disable automatic config loading during CLI builds to prevent configuration interference 2025-11-21 19:08:51 -05:00
opencode
45c4970d68 release: v1.0.89 2025-11-22 00:00:23 +00:00
Tommy D. Rossi
1d7a9309d6 feat: lower opacity for thinking summaries (#4610) 2025-11-21 17:35:47 -06:00
Dax Raad
f5ac98251e tui: split revert memo into smaller tracked computations to prevent unnecessary re-evaluations 2025-11-21 18:27:25 -05:00
GitHub Action
78239045ba chore: format code 2025-11-21 22:42:39 +00:00
Dax Raad
d8b60875c4 tui: batch SDK events to reduce render churn and improve responsiveness
Intelligently queue events and flush them in 16ms batches. Events processed within 16ms of the last flush are batched together to reduce the number of store updates and re-renders, preventing jank when receiving rapid consecutive events. Events after a 16ms gap are processed immediately to avoid adding latency.
2025-11-21 17:42:02 -05:00
opencode
48949a6e9d release: v1.0.88 2025-11-21 22:37:46 +00:00
GitHub Action
082a330ea3 chore: format code 2025-11-21 22:30:46 +00:00
Aiden Cline
adf7df0d5c tweak: bash tool behavior w/ /bin/zsh 2025-11-21 16:30:00 -06:00
opencode
a76ad48563 release: v1.0.87 2025-11-21 21:58:10 +00:00
Dax Raad
00f991162f if finish reason is unknown, continue 2025-11-21 16:51:32 -05:00
Frank
d6cdd24fad doc: update gpt pricing 2025-11-21 15:48:54 -05:00
GitHub Action
c9473756df chore: format code 2025-11-21 20:33:42 +00:00
Ivan Starkov
b5d0c56b4c fix: make bash tool respect $SHELL (#3494)
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-11-21 14:33:04 -06:00
opencode
96a2f5268c release: v1.0.86 2025-11-21 20:32:47 +00:00
Aiden Cline
5083f9c9c2 bump bun to 1.3.3 2025-11-21 13:56:46 -06:00
Frank
e34df15ff5 update logic for local and dev providers 2025-11-21 13:31:33 -05:00
GitHub Action
26ec87803a chore: format code 2025-11-21 17:57:33 +00:00
Frank
037e8d4555 wip: zen 2025-11-21 12:50:51 -05:00
Adam
08a366c4dc feat(install): better install script visuals, custom progress bar and next steps (#4589) 2025-11-21 07:29:52 -06:00
GitHub Action
670e1523e0 ignore: update download stats 2025-11-21 2025-11-21 12:04:49 +00:00
Patrick Wolf
416f2964b5 fix: preserve agent context during compaction (#4556) 2025-11-21 02:13:10 -06:00
Ian Maurer
e018e16898 fix(cli): ensure clean exit on provider/model errors (#4223)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-21 02:01:19 -06:00
Aiden Cline
d16c8c9f0f ignore: update sdk 2025-11-21 01:25:06 -06:00
Aiden Cline
fffe20cbe5 add provider whitelist 2025-11-21 01:24:44 -06:00
Aiden Cline
f6da3c467b ignore: sync sdk 2025-11-21 01:04:02 -06:00
geril07
c0d9f21c0f feat: whitelist/blacklist config options for provider (#3416)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-21 01:01:30 -06:00
GitHub Action
a67b616139 chore: format code 2025-11-21 06:03:38 +00:00
opencode
2991547974 release: v1.0.85 2025-11-21 06:03:38 +00:00
Dax Raad
b59def2e4a hide gpt5 nano 2025-11-21 00:58:02 -05:00
opencode
d842353f39 release: v1.0.84 2025-11-21 05:55:03 +00:00
Dax Raad
d20ef569de tui: replace text shimmer with animated progress bar during model processing 2025-11-21 00:47:27 -05:00
Dax Raad
ca2b871810 tui: simplify popular providers list to show only top 6 instead of applying provider priority sorting 2025-11-21 00:32:21 -05:00
Dax
23ea8ba1ce Tui onboarding (#4569)
Co-authored-by: GitHub Action <action@github.com>
2025-11-21 00:21:06 -05:00
Zak
c417fec246 tweak: adjust invalid directory error message (#4567)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-20 22:36:07 -06:00
Aiden Cline
5413b16b57 fix: split not a function error 2025-11-20 22:33:59 -06:00
Spoon
43c021ed80 feat: add field to allow user only messages (#4554)
Co-authored-by: GitHub Action <action@github.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-11-20 19:13:42 -06:00
GitHub Action
3b005d29d7 chore: format code 2025-11-21 00:49:39 +00:00
opencode
635f70f477 release: v1.0.83 2025-11-21 00:49:39 +00:00
Aiden Cline
adbb6037ac fix: undefined err 2025-11-20 18:43:58 -06:00
opencode
598d6d00e4 release: v1.0.82 2025-11-20 22:44:37 +00:00
Aiden Cline
cf934357c9 fix: make use openrouter ai sdk package to fix interlevened thinking models 2025-11-20 16:32:44 -06:00
Jay
8063e645c7 docs: Clarify model provider recommendations in README
Updated the README to clarify model provider recommendations.
2025-11-20 17:21:19 -05:00
Aiden Cline
8ab206b443 tweak: navigate to child session if it is asking for permissions 2025-11-20 15:46:49 -06:00
Aiden Cline
ec5c96e10d Revert "Image tag fix for real this time (#4540)"
This reverts commit eb975bb89c.
2025-11-20 14:14:02 -06:00
Aiden Cline
d2a61290b9 Revert "ignore: write todo"
This reverts commit 5aa2078852.
2025-11-20 14:13:56 -06:00
Aiden Cline
10faf9e717 ignore: fix mdx 2025-11-20 14:07:25 -06:00
Aiden Cline
cba239bc8f change default child session cycle keybind to <leader>right, and <leader>left 2025-11-20 14:01:02 -06:00
jian
6f5e3ddfb3 chore: rm empty file (#4552) 2025-11-20 13:33:09 -06:00
GitHub Action
d412ba264a chore: format code 2025-11-20 19:17:06 +00:00
Aiden Cline
9780f2b792 docs: update model list 2025-11-20 13:16:27 -06:00
Aiden Cline
5aa2078852 ignore: write todo 2025-11-20 12:35:34 -06:00
shuv
eb975bb89c Image tag fix for real this time (#4540)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-20 12:34:39 -06:00
GitHub Action
9479fe3ce6 chore: format code 2025-11-20 17:35:43 +00:00
William Tan
4393cf8dbe tweak: Prefer VISUAL environment variable over EDITOR per Unix convention (#4549)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-20 11:27:16 -06:00
opencode
447a4ca8c3 release: v1.0.81 2025-11-20 17:16:31 +00:00
Aiden Cline
40ac2549ff fix: aur build 2025-11-20 11:04:09 -06:00
cc-bjojac
a9c56b813a Make the MAX_OUTPUT_LENGTH in bash.ts overridable by OPENCODE_EXPERIMENTAL_BASH_MAX_OUTPUT_LENGTH (#4497)
Co-authored-by: Björn Jacobs <bjoern.jacobs.ext@bundesanzeiger.de>
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-11-20 10:45:13 -06:00
Haris Gušić
b1b73c9deb fix: Autocomplete with existing space after trigger (#4121)
Co-authored-by: GitHub Action <action@github.com>
2025-11-20 10:37:45 -06:00
Aiden Cline
774377330b fix: lockfile 2025-11-20 10:16:34 -06:00
processtrader
e7a157ef8f fix: replace ruby-lsp with rubocop for better LSP performance (#4543) 2025-11-20 09:54:47 -06:00
Frank
3989b9fc7f wip: zen 2025-11-20 10:31:35 -05:00
GitHub Action
8bfcdf4831 chore: format code 2025-11-20 14:55:06 +00:00
Frank
3632ba3785 zen: show token breakdown 2025-11-20 09:54:22 -05:00
Albert O'Shea
b7b3824d76 nix: update flake.lock as part of the github workflow (#4535)
Co-authored-by: Github Action <action@github.com>
2025-11-20 08:43:13 -06:00
Tommy D. Rossi
b12efb2023 fix: do not print ai sdk warnings (#4541)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-20 08:42:24 -06:00
Roberto Gongora
bd91cf220c docs: typo in PHP Intelephense documentation (#4545) 2025-11-20 08:41:31 -06:00
Asmae_ELAZRAK
9eb6731c21 docs: add cortecs docs (#4547) 2025-11-20 08:34:04 -06:00
GitHub Action
11373755d9 ignore: update download stats 2025-11-20 2025-11-20 12:04:55 +00:00
Aiden Cline
00b5e9f6ca chore: rm unused code 2025-11-20 00:10:51 -06:00
Aiden Cline
6b3f424e4d tweak: let user name export file 2025-11-19 23:58:40 -06:00
Aiden Cline
e7dfeec9c4 fix: make toast wrap 2025-11-19 22:50:27 -06:00
Aiden Cline
97893bd7e6 tweak: make /export go to cwd 2025-11-19 22:45:40 -06:00
Frank
bfefdb3752 zen: add gemini icon 2025-11-19 21:14:31 -05:00
Frank
12b79c581e zen: update gemini provider name 2025-11-19 20:58:22 -05:00
Frank
ac9b4c7ebf docs: add gemini 3 pricing 2025-11-19 20:50:43 -05:00
GitHub Action
208af232ff chore: format code 2025-11-20 01:27:50 +00:00
opencode
600c6b4973 release: v1.0.80 2025-11-20 01:27:49 +00:00
Dax Raad
61007a9b94 refactor: switch to Switch/Match pattern for assistant message status rendering 2025-11-19 20:18:15 -05:00
opencode
52fe1a5ac5 release: v1.0.79 2025-11-20 01:11:20 +00:00
althafdemiandra
468927e06a chore: bump ai-sdk to v5.0.97 (#4518)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-19 18:44:33 -06:00
Aiden Cline
61562dd9f0 make aur build check if u are glibc system or a musl system (#4519) 2025-11-19 18:36:33 -06:00
Github Action
c86dd91310 Update Nix hashes 2025-11-19 23:30:37 +00:00
Sebastian Herrlinger
9c85a37811 bump opentui version to v0.1.47
- fixing cursor issues with some graphemes in textarea
- proper suspend/resume
2025-11-20 00:28:25 +01:00
Aiden Cline
51bba6e634 tweak: default to disabling fetch timeout in provider options 2025-11-19 16:20:29 -06:00
Daniel Polito
e1089bc5de Adding LSP: PHP Intelephense (#4504)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-19 16:01:18 -06:00
Aiden Cline
618c654aa0 ignore: todo fix test case 2025-11-19 15:18:21 -06:00
Iljo
4703e859bd Add YAML language server support (#4508)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-19 14:47:04 -06:00
Aiden Cline
a1dc4ebbe4 ignore: flaky test be a lil less flaky plz 2025-11-19 14:46:06 -06:00
Aiden Cline
e4e6096510 ignore: fix hanging test 2025-11-19 14:38:12 -06:00
Aiden Cline
c472734933 tweak: make getUsage function handle missing usage data 2025-11-19 14:29:19 -06:00
Aiden Cline
9d068c20bb fix: openrouter ai sdk package support 2025-11-19 14:22:51 -06:00
Aiden Cline
48e4f2f45d tweak: add bun install retries 2025-11-19 13:04:20 -06:00
Aiden Cline
bbf4574476 fix: make external_directory permission wildcarding more sane 2025-11-19 12:55:02 -06:00
Adam
8bad513140 Revert "feat(cli): better install script output"
This reverts commit 24bb293136.
2025-11-19 12:44:35 -06:00
Aiden Cline
1ff5d888c2 fix: make bash tool use external_directory perm 2025-11-19 12:31:34 -06:00
Dax Raad
5d25758400 use bash description as task title 2025-11-19 13:23:29 -05:00
Dax
16fdc90976 fix: resolve issue 4475 (#4505) 2025-11-19 13:10:09 -05:00
Aiden Cline
793542230f tweak: bash description 2025-11-19 11:31:12 -06:00
Tommy D. Rossi
9de1242d9b fix: show reasoning summaries for gemini models (#4491)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-19 11:25:18 -06:00
Aiden Cline
b3afa84058 Revert "Added subagents to agents modal, non-selectable (#4460)"
This reverts commit 90044196bf.
2025-11-19 11:00:38 -06:00
Aiden Cline
024a10bbb5 ci: auto label nix 2025-11-19 10:51:11 -06:00
Adam
bef9ac96e2 fix(web): stats 2025-11-19 10:05:39 -06:00
Adam
24bb293136 feat(cli): better install script output 2025-11-19 09:30:41 -06:00
Adam
45180104fe fix(desktop): message animation 2025-11-19 06:04:20 -06:00
Adam
edd86e3fb7 fix(desktop): text part styling 2025-11-19 06:04:20 -06:00
Adam
4a72d57534 fix(desktop): pre styling 2025-11-19 06:04:19 -06:00
Aiden Cline
0068cb305f tweak: toast 2025-11-19 00:51:07 -06:00
opencode-agent[bot]
90044196bf Added subagents to agents modal, non-selectable (#4460)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-19 00:40:47 -06:00
Shantur Rathore
963a926db2 allow task tool to have resume capabilities (#4204)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-19 00:17:26 -06:00
Frank
0d3d48bb59 zen: fix cost in graph 2025-11-18 23:43:26 -05:00
GitHub Action
66eaba4bdc chore: format code 2025-11-19 01:02:57 +00:00
Dax Raad
21b6e5404e feat: add @opencode-ai/util package with utility functions 2025-11-18 20:02:10 -05:00
GitHub Action
a0fe59ab75 chore: format code 2025-11-18 23:49:29 +00:00
Aiden Cline
81ebf56cf1 feat: add top level lsp: false and formatter: false to allow disabling all formatters or lsps at once 2025-11-18 17:48:40 -06:00
opencode
429708e3d5 release: v1.0.78 2025-11-18 23:36:35 +00:00
shuv
d50f825c6d fix: pass model info to ReadTool to enable image support check (#4473)
Co-authored-by: GitHub Action <action@github.com>
2025-11-18 17:20:03 -06:00
K Whiteside
47bfae52c0 fix: permission checks for external_directory and doom_loop (#4433)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: AerionDyseti <AerionDyseti@users.noreply.github.com>
2025-11-18 17:18:23 -06:00
Frank
52cf9e3423 wip: zen 2025-11-18 17:42:48 -05:00
GitHub Action
a9b6debfa2 chore: format code 2025-11-18 22:24:29 +00:00
Eric Juden
d6bf475749 docs: Improving Plugin Documentation - Adding Events (#4438) 2025-11-18 16:23:46 -06:00
opencode
f22580e943 release: v1.0.77 2025-11-18 22:17:39 +00:00
Dax Raad
6d98db57c7 better gemini retry errors 2025-11-18 17:11:29 -05:00
OpeOginni
59f127a250 fix: allow for theme references (#4450) 2025-11-18 14:26:42 -06:00
Adam
3068e7dcf7 fix(desktop): animating too much 2025-11-18 14:24:26 -06:00
GitHub Action
f83d62191a chore: format code 2025-11-18 20:23:29 +00:00
Longlone
3b72857124 fix: update reasoningEffort logic for gpt-5.1 models in SessionPrompt-ensureTitle (#4456)
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-11-18 14:22:44 -06:00
opencode
68cd105d9d release: v1.0.76 2025-11-18 20:12:38 +00:00
Aiden Cline
e09af2cb4b fix windows bash tool issue 2025-11-18 14:06:45 -06:00
Adam
14bd3b1d30 chore(desktop): remove logging 2025-11-18 13:52:29 -06:00
Adam
3a9c2152f7 fix(desktop): reactivity issue on route change 2025-11-18 13:45:27 -06:00
Frank
7283bfa480 zen: gemini 2025-11-18 14:28:31 -05:00
opencode-agent[bot]
37d5099728 Added opencode agent list command to show all available agents with details. (#4446)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-18 13:25:53 -06:00
GitHub Action
d45fc030b2 chore: format code 2025-11-18 18:35:26 +00:00
Adam
c7042c807f fix(desktop): only animate response once 2025-11-18 12:34:34 -06:00
opencode
202f6f1be9 release: v1.0.75 2025-11-18 18:16:14 +00:00
Dax Raad
759635eefa fix gpt compaction issue 2025-11-18 13:10:00 -05:00
Aiden Cline
a9981441ae tweak: use temperature 1 for gemini 3 pro 2025-11-18 11:49:39 -06:00
Adam
71302de4f1 fix(desktop): css typo 2025-11-18 11:40:50 -06:00
Adam
333b8e907b fix(desktop): busy state and reactivity 2025-11-18 11:35:23 -06:00
GitHub Action
13f319b64f chore: format code 2025-11-18 17:16:07 +00:00
opencode
b573eadd9e release: v1.0.74 2025-11-18 17:16:06 +00:00
Dax Raad
50bfff89c0 fix model dialog sorting 2025-11-18 12:10:19 -05:00
Adam
fc5fc2c570 wip(desktop): new layout work 2025-11-18 17:07:34 +00:00
Adam
4069999b78 wip(desktop): new layout work 2025-11-18 17:07:34 +00:00
opencode
5ba9b47b3c release: v1.0.73 2025-11-18 17:07:33 +00:00
Dax Raad
7c0cc94023 rework default model 2025-11-18 12:01:41 -05:00
GitHub Action
3ed1bd2e8e ignore: update download stats 2025-11-18 2025-11-18 12:04:35 +00:00
Aiden Cline
ce6436280a ci: ignore update nix hash job 2025-11-18 01:26:30 -06:00
Aiden Cline
e49204bd33 ignore: fix snapshot (#4444)
Co-authored-by: opencode <opencode@sst.dev>
2025-11-18 01:22:38 -06:00
Aiden Cline
856c87d05c fix: snapshot? 2025-11-18 01:02:52 -06:00
Aiden Cline
de35c3fb84 ci: ignore 2025-11-18 00:53:08 -06:00
Aiden Cline
4359719f9a ignore: format 2025-11-18 00:49:17 -06:00
Albert O'Shea
5e13527416 feat: nix support for the nix folks (#3924)
Co-authored-by: opencode <opencode@sst.dev>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2025-11-18 00:46:49 -06:00
Frank
aba94c658f wip: zen 2025-11-18 01:27:31 -05:00
opencode-agent[bot]
6e318ba567 Added width constraints to toast component for proper text wrapping. (#4441)
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-11-18 00:23:36 -06:00
GitHub Action
ddddecf88a chore: format code 2025-11-18 05:46:02 +00:00
Frank
16cb77c094 zen: add usage graph 2025-11-18 00:45:14 -05:00
Jake Nelson
a5564f730e feat: add Swift syntax highlighting support (#4434) 2025-11-17 21:53:03 -06:00
GitHub Action
a15c97bbfe chore: format code 2025-11-18 03:19:47 +00:00
Aiden Cline
a398eed8b8 Revert "Updated scroll_speed to allow any positive number" (#4437) 2025-11-17 21:19:06 -06:00
opencode-agent[bot]
a10fd8ca5c Updated scroll_speed to allow any positive number (#4436)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-17 21:18:33 -06:00
opencode
ff7513238b release: v1.0.72 2025-11-18 03:03:54 +00:00
GitHub Action
af1cd60d3e chore: format code 2025-11-18 02:53:13 +00:00
Aiden Cline
c66def2049 fix: noreply 2025-11-17 20:52:25 -06:00
opencode
008ccb4729 release: v1.0.71 2025-11-18 01:59:40 +00:00
Dax Raad
bc232045a1 respect server suggestion for default model 2025-11-17 20:53:48 -05:00
GitHub Action
16cab556df chore: format code 2025-11-18 01:27:22 +00:00
Jay V
66148df74b docs: clarify custom tools can execute scripts in any language with Python example 2025-11-17 20:26:27 -05:00
opencode
4611e08f09 release: v1.0.70 2025-11-17 23:45:49 +00:00
Sebastian Herrlinger
bf6204f577 upgrade opentui to v0.1.46
- enable bracketed paste (and more) on win
- fix word wrapping with CJK and at wrap/chunk boundaries
- old style meta+arrow
- allow <1 scroll speed for slowdown
2025-11-18 00:22:21 +01:00
Daniel Hofheinz
17cde9feb7 docs: add built-in agents reference to README (#3047)
Co-authored-by: Jay V <air@live.ca>
2025-11-17 17:19:14 -05:00
Aiden Cline
7eccbdc4ac fix /exit 2025-11-17 16:13:41 -06:00
Aiden Cline
ab072290fc Revert "fix: system theme background to use 'none' for terminal transparency (#4408)"
This reverts commit f4a4514a9f.
2025-11-17 16:03:27 -06:00
GitHub Action
ad9d83748c chore: format code 2025-11-17 21:46:10 +00:00
Aiden Cline
55b57e1aae ci: tweak 2025-11-17 15:45:23 -06:00
Aiden Cline
21b7877beb docs: tweak wording 2025-11-17 21:26:46 +00:00
opencode
de50234a1a release: v1.0.69 2025-11-17 21:26:46 +00:00
opencode-agent[bot]
d60102ba52 Added /thinking slash command to toggle thinking blocks visibility in OpenTUI. (#4424)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-17 15:16:35 -06:00
Haris Gušić
066a876f3d docs(contributing): Add "Setting up a Debugger" section (#4421)
Co-authored-by: GitHub Action <action@github.com>
2025-11-17 14:28:06 -06:00
Haris Gušić
c07a241ca8 chore: Remove obsolete 'any' type annotation (#4423) 2025-11-17 14:27:43 -06:00
Aiden Cline
0a2fffa9b5 tweak: whitelist 2025-11-17 13:18:13 -06:00
Dax Raad
bdfa213ccf deprecated session.idle event 2025-11-17 11:42:45 -05:00
Aiden Cline
7f0b2ce1ac Reapply "fix: system theme background to use 'none' for terminal transparency" (#4415)
This reverts commit a5365ce294.
2025-11-17 10:39:53 -06:00
Dax Raad
0a2d7af179 core: honor retry-after values exceeding 10 minutes instead of discarding them 2025-11-17 11:33:28 -05:00
Dax Raad
37652f48fb ignore 2025-11-17 11:32:07 -05:00
Dax Raad
8b19c6c7e4 better retry display 2025-11-17 11:31:10 -05:00
Aiden Cline
a5365ce294 Revert "fix: system theme background to use 'none' for terminal transparency" (#4415) 2025-11-17 10:24:20 -06:00
Jensen
f4a4514a9f fix: system theme background to use 'none' for terminal transparency (#4408) 2025-11-17 10:22:31 -06:00
opencode-agent[bot]
154006469c Updated help dialog to use dynamic keybind (#4414)
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-11-17 10:18:59 -06:00
Dax
a1214fff2e Refactor agent loop (#4412) 2025-11-17 10:57:18 -05:00
GitHub Action
9fd43ec616 ignore: update download stats 2025-11-17 2025-11-17 12:04:41 +00:00
Luke Parker
5731c268b6 fix: Line count on win (#4401) 2025-11-17 01:08:22 -06:00
Keath Milligan
f4d892d4e1 fix: handle Git Bash path mapping on windows (#4380) 2025-11-17 01:06:44 -06:00
Aiden Cline
10b3702938 chore: update type 2025-11-17 00:07:23 -06:00
Tyler Gannon
e96442310c chore: replace z.union with z.enum for cleaner OpenAPI generation (#4394) 2025-11-17 00:06:40 -06:00
Spoon
5c722bf8c4 fix(batch): simple UX feedback (#4396) 2025-11-17 00:02:05 -06:00
Youssef Achy
58cc5cdf2a add support for azure cognitive services provider (#4397) 2025-11-17 00:01:45 -06:00
opencode-agent[bot]
3c6dcad2af Fixed OPENCODE_CONFIG_DIR to load config files. (#4400)
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-11-16 23:48:36 -06:00
Jay
2535f9febf docs: Add clarification for projects using 'opencode' name
Added a section to clarify the affiliation of related projects.
2025-11-16 20:51:41 -05:00
Aiden Cline
25678fa504 fix: vercel gateway options 2025-11-16 18:39:31 -06:00
Sebastian Herrlinger
d7f4f3ec1f bump opentui version to 0.1.45, fixing highlighting on windows 2025-11-16 23:56:11 +01:00
Aiden Cline
16ccb39459 docs: permissions 2025-11-16 16:40:48 -06:00
Aiden Cline
f8630fb188 ignore: rm 2025-11-16 16:32:04 -06:00
Baptiste Cavallo
72e604744d fix(batch): restore per-tool UI feedback + UX improvements (#4387) 2025-11-16 16:31:41 -06:00
opencode-agent[bot]
832be6e7eb Added copy option to message context menu (#4389)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-16 15:35:05 -06:00
opencode
8ba48ed71d release: v1.0.68 2025-11-16 20:38:48 +00:00
Aiden Cline
cf266f6162 fix: promptCacheKey set unnecessarily 2025-11-16 14:32:57 -06:00
GitHub Action
1e6589526d ignore: update download stats 2025-11-16 2025-11-16 12:04:11 +00:00
Frank
f6b3ffaf64 wip: zen 2025-11-16 03:32:13 -05:00
GitHub Action
5d765d63d4 chore: format code 2025-11-16 08:30:36 +00:00
Frank
0e12dd62a3 zen: usage paging 2025-11-16 03:29:52 -05:00
opencode
2b957b5d1c release: v1.0.67 2025-11-16 07:49:52 +00:00
GitHub Action
31c7a0157c chore: format code 2025-11-16 07:44:06 +00:00
Aiden Cline
e728b94bca fix: panic when theme has 'none' 2025-11-16 01:43:23 -06:00
opencode
49040c0130 release: v1.0.66 2025-11-16 07:27:25 +00:00
Aiden Cline
0d05238ee6 fix: initial val 2025-11-16 01:14:49 -06:00
Aiden Cline
9b8a7da1e6 fix: history jsonl file corruption cases (#4364) 2025-11-16 00:50:13 -06:00
Zeno Jiricek
61fd21182c docs: mise installation command (#2938) 2025-11-15 21:44:28 -06:00
GitHub Action
487c2b5e76 chore: format code 2025-11-16 03:38:13 +00:00
xiaojie.zj
0e4703b227 add: add zenmux doc and header (#3597)
Co-authored-by: xiaojie.zj <xiaojie.zj@antgroup.com>
2025-11-15 21:37:30 -06:00
Alvin Johansson
84e0232bd5 Add Flexoki theme (#3986) 2025-11-15 21:28:13 -06:00
Luke Parker
35fbb011b2 fix: Diff view now ignores line endings changes/windows autocrlf (#4356) 2025-11-15 21:18:39 -06:00
Aiden Cline
6527a123f0 fix aur build (#4359) 2025-11-15 20:16:19 -06:00
Aiden Cline
0377cfd37c fix: omit ref for todo tool 2025-11-15 19:19:36 -06:00
Aiden Cline
edc933d816 tweak: make zod error more prompty 2025-11-15 13:19:24 -06:00
GitHub Action
0d608f6014 ignore: update download stats 2025-11-15 2025-11-15 12:04:09 +00:00
Chris Olszewski
69a45ef7d7 fix: snapshot history when running from git worktrees (#4312) 2025-11-15 01:02:00 -06:00
Baptiste Cavallo
1056b36eae experimental batch tool (#2983)
Co-authored-by: GitHub Action <action@github.com>
2025-11-15 00:54:36 -06:00
Aiden Cline
35c737ac68 tweak: only show dropdown for 3+ items (#4345) 2025-11-14 23:45:48 -06:00
Abílio Costa
725a2c2e95 docs: clarify that config files are merged, not replaced (#4342)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-14 17:49:47 -06:00
Tyler Gannon
c724d2392f fix: replace union type with enum "true"/"false" in /find/file endpoint (#4338) 2025-11-14 17:48:23 -06:00
Frank
f5230d1f02 fix: incorrect sonnet price calculation 2025-11-14 18:46:43 -05:00
GitHub Action
078111bd96 chore: format code 2025-11-14 22:44:36 +00:00
sredfern
736f8882f5 fix(provider): support local file paths for custom providers (#4323) 2025-11-14 16:43:59 -06:00
Brian Cheung
37cf365927 feat: support images in mcp tool responses (#4100)
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-11-14 15:00:52 -06:00
Aiden Cline
b939470302 fix: add azure exclusion 2025-11-14 11:54:00 -06:00
Aiden Cline
ef4b2baedc set verbosity to low for gpt-5.1 (match codex) 2025-11-14 11:52:29 -06:00
Dax Raad
64d28ea457 fix sdk types 2025-11-14 12:42:46 -05:00
Dax Raad
2520780846 fix sdk types 2025-11-14 12:42:46 -05:00
Shantur Rathore
986c60353e set promptCacheKey for openai compatible providers (#4203)
Co-authored-by: GitHub Action <action@github.com>
2025-11-14 11:41:01 -06:00
Dax Raad
5fc26c958a add global.event.subscribe() to sdk 2025-11-14 12:32:43 -05:00
Frank
c1cf9cda6a doc: add baseten provider 2025-11-14 12:19:58 -05:00
GitHub Action
10d376eab2 ignore: update download stats 2025-11-14 2025-11-14 12:04:48 +00:00
Frank
53fc8a861b zen: add gpt-5-nano model 2025-11-14 00:59:42 -05:00
Frank
1d8330331c zen: use gpt-5-nano as small model 2025-11-14 00:59:00 -05:00
Frank
7a03c7fe38 zen: add gpt5.1 to docs 2025-11-13 23:47:38 -05:00
Frank
09bd32169c zen: hide alpha models 2025-11-13 23:10:06 -05:00
Dax Raad
7ec32f834e improve read tool end-of-file detection to prevent infinite loops 2025-11-13 21:41:06 -05:00
GitHub Action
205492c7e8 chore: format code 2025-11-14 01:16:58 +00:00
Aiden Cline
4c2e888709 no mr llm, you may not read that 2025-11-13 19:16:07 -06:00
opencode
c78fd097d1 release: v1.0.65 2025-11-14 00:10:30 +00:00
Dax Raad
340966195b handle config errors gracefully 2025-11-13 18:59:09 -05:00
GitHub Action
92604b391b chore: format code 2025-11-13 22:39:53 +00:00
Aiden Cline
0c51feb9c2 fix: max tokens when using models like opus with providers other than anthropic (#4307) 2025-11-13 16:39:09 -06:00
opencode
d0b4169a6b release: v1.0.64 2025-11-13 22:12:44 +00:00
Aiden Cline
1fc6c6fb2a fix: typeerror case 2025-11-13 15:51:23 -06:00
Adam
14f9b95557 fix(desktop): default theme 2025-11-13 15:26:36 -06:00
GitHub Action
d3bf1fa1fa chore: format code 2025-11-13 20:48:10 +00:00
Adam
a8836c5615 wip(desktop): layout improvements 2025-11-13 14:47:29 -06:00
Aiden Cline
779a27693a fix: opencode run timeout 2025-11-13 14:27:33 -06:00
GitHub Action
829d86840a chore: format code 2025-11-13 19:42:31 +00:00
Valerio Di Maggio
e225294dd4 Fix: unreadable texts in light mode (#4301) 2025-11-13 13:41:56 -06:00
opencode
a673e3650d release: v1.0.63 2025-11-13 19:00:14 +00:00
Aiden Cline
ff462dfd7a fix: windows install (#4293)
Co-authored-by: GitHub Action <action@github.com>
2025-11-13 12:22:07 -06:00
Luke Parker
73443585e5 fix: resolve bun/pnpm global install failures on Windows (#4275)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-13 10:38:57 -06:00
Tommy D. Rossi
609ab069a9 Add scroll acceleration support to TUI (#4289) 2025-11-13 17:02:10 +01:00
GitHub Action
ec3579d7cb ignore: update download stats 2025-11-13 2025-11-13 12:04:32 +00:00
Aiden Cline
f80a3fea31 fixes 2025-11-12 22:05:07 -06:00
Luke Parker
43a8d1b1ae fix: Enable Windows builds and fix bun+pnpm install on Windows (#4273) 2025-11-12 21:57:44 -06:00
Aiden Cline
09fa84ccfc fix: dirty check 2025-11-12 19:03:46 -06:00
GitHub Action
b981f0a205 chore: format code 2025-11-13 00:53:22 +00:00
Aiden Cline
767038afc3 ci: update zed sync 2025-11-12 18:52:39 -06:00
opencode
a7774115c5 release: v1.0.62 2025-11-13 00:13:18 +00:00
Luke Parker
288bc88e40 fix: Tool calling on windows (#4234) 2025-11-12 17:47:39 -06:00
Aiden Cline
6d36dbf9de fix: github action dirty check (#4262) 2025-11-12 16:16:07 -06:00
OpeOginni
4ab4baf3a4 feat(sidebar): add expandable sections for sidebar (#4132)
Co-authored-by: GitHub Action <action@github.com>
2025-11-12 16:15:17 -06:00
phantomreactor
90f05eb9c2 paste images in wsl using ctrl+v (#4123)
Co-authored-by: GitHub Action <action@github.com>
2025-11-12 15:10:23 -06:00
Melih Mucuk
b63b6d04c6 Fix usage & billing for custom model aliases and cached/reasoning tokens (#4222)
Co-authored-by: Melih Mucuk <melih@monkeysteam.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-12 13:59:35 -06:00
Aiden Cline
8addaa7e08 fix: custom model name merging 2025-11-12 13:55:13 -06:00
Elias
a96bf8e62d docs: OVHcloud AI Endpoints provider (#4257) 2025-11-12 13:28:35 -06:00
Ivan
c8bda598f5 fix: correct cache cost for OpenRouter and other OpenAI-compatible providers (#4256) 2025-11-12 12:41:44 -06:00
Adam
c857cff585 fix(desktop): double listing dir 2025-11-12 12:17:54 -06:00
Aiden Cline
fd9d2db755 ci: update zed sync 2025-11-12 10:52:20 -06:00
Aiden Cline
b19fd14f80 ignore: make issue button send opencode version too 2025-11-12 10:40:48 -06:00
Sebastian Herrlinger
a0f469095c upgrade opentui to 0.1.42, fixing some CJK/grapheme issues with prompt extmarks and char corruption 2025-11-12 15:35:16 +01:00
Adam
0ccb26df94 feat(desktop): sticky diff headers 2025-11-12 07:03:39 -06:00
Adam
71fd5966ad fix(desktop): styling tweaks 2025-11-12 07:03:38 -06:00
GitHub Action
c02230de4f ignore: update download stats 2025-11-12 2025-11-12 12:05:15 +00:00
Filip
aa2e2c76c0 fix: clangd hanging fixed (#3611)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-12 00:21:55 -06:00
opencode
7c2d4ee79a release: v1.0.61 2025-11-12 03:10:55 +00:00
Dax Raad
e3a2728fa3 tui: add double-esc interrupt mechanism for long-running operations
Users can now press escape twice within 5 seconds to interrupt long-running
operations in the TUI. The first press shows a visual hint, and the second
press aborts the current session.
2025-11-11 22:04:00 -05:00
Boston Cartwright
18260b037b feat: add SourceKit LSP support (#1545)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-11 20:51:33 -06:00
Dax Raad
ad83dd3ad9 tui: fix autocomplete display to prevent long file paths from breaking layout 2025-11-12 02:36:43 +00:00
opencode
6f37315cd1 release: v1.0.60 2025-11-12 02:36:42 +00:00
Dax
d81dce6a82 fix: add support for loading custom themes from .opencode/themes directory (#4229)
Co-authored-by: GitHub Action <action@github.com>
2025-11-11 21:30:38 -05:00
opencode
0bd11e970b release: v1.0.59 2025-11-12 02:07:41 +00:00
Dax Raad
7e29e1dd23 better errors on initial tui boot 2025-11-11 21:01:45 -05:00
Rafał Krzyważnia
491a2adf8d fix: resolve @file references in slash commands with subagents (#4221) 2025-11-11 19:38:50 -06:00
Aiden Cline
c07d6487a8 fix config ordering (#4228) 2025-11-11 19:27:34 -06:00
Aiden Cline
9990e84d37 fix: ensure revert dialog moves that prompt to input box (#4227) 2025-11-11 19:08:59 -06:00
Aiden Cline
0b86adbe99 feat: agent color cfg (#4226)
Co-authored-by: 0xrin <0xrin1@protonmail.com>
Co-authored-by: GitHub Action <action@github.com>
2025-11-11 18:32:44 -06:00
Frank
834a2c09d5 wip: poc pr command 2025-11-11 18:50:28 -05:00
Frank
f13c17e654 wip: poc pr command 2025-11-11 18:50:28 -05:00
Julian LaNeve
a0611d92e4 docs: Update config references to latest Sonnet & Haiku models (#4210) 2025-11-11 16:52:45 -06:00
Aiden Cline
0b001c3e80 tweak: make todos appear list of modified files 2025-11-11 16:05:23 -06:00
Sebastian Herrlinger
53b7cb62c4 upgrade opentui to 0.1.41:
- enables modifyOtherKeys to get CSI u sequences in terminals that support it
- uses Private Mode 2026 for synced rendering to fix cursor flickering in terminals like iTerm2
- lazy highlighting for code renderables (perf)
- linear scroll acceleration by default
- align textarea default bindings more with readline
- fix vertical cursor movement in textarea
- introduce stdin buffer to handle chunked sequences
- improve capability detection (async)
- renderer emits focus/blur events when app is focused/blurred (if supported by terminal)
2025-11-11 23:00:31 +01:00
Aiden Cline
c5e096c76a fix: costs being 0 when using custom model id overrides (#4219) 2025-11-11 15:58:14 -06:00
Aiden Cline
e1fc4a756b Hide /share if disabled (#4215) 2025-11-11 14:47:39 -06:00
Aiden Cline
e5bc4cbbcf ci: update changelog script 2025-11-11 14:27:13 -06:00
GitHub Action
459d5ec19b chore: format code 2025-11-11 20:21:00 +00:00
Aiden Cline
8baa222621 ci: update script 2025-11-11 14:20:19 -06:00
Dax Raad
ce1397cc34 core: add test to verify OpenCode doesn't crash when starting in git repositories with no commit history 2025-11-11 20:17:36 +00:00
Ron Suhodrev
dc7c5ced4c tui: restore full text when editing prompts with summarized content (#4030) 2025-11-11 20:17:36 +00:00
Corwin Marsh
b8e8fe7e31 docs: Update dead Context7 mcp server link (#4207)
Co-authored-by: Corwin Marsh <corwinm@users.noreply.github.com>
2025-11-11 20:17:36 +00:00
opencode
890085758f release: v1.0.58 2025-11-11 20:17:36 +00:00
Dax Raad
85f15893bc core: prevent crash when starting in repositories without any commits yet 2025-11-11 15:11:42 -05:00
Adam
98be75b17c fix(desktop): give review pane more width 2025-11-11 13:02:59 -06:00
GitHub Action
b5cc27b8ea chore: format code 2025-11-11 18:38:23 +00:00
Frank
05937b52cc chore: format code 2025-11-11 13:37:36 -05:00
GitHub Action
62b82570e1 chore: format code 2025-11-11 17:34:09 +00:00
Dax Raad
4bf75c0b44 core: remove unused experimental flags for turn summary and no-bootstrap to simplify feature flag management 2025-11-11 12:33:26 -05:00
opencode
a8a06c4983 release: v1.0.57 2025-11-11 17:30:26 +00:00
Dax Raad
b0b7fd143b tui: show LSP diagnostics inline when viewing files so users can see type errors and compilation issues without leaving the interface 2025-11-11 12:15:40 -05:00
GitHub Action
140498eb4f chore: format code 2025-11-11 16:59:37 +00:00
Haris Gušić
ca5126e24d fix: TUI spawn: reset BUN_OPTIONS (#3606) 2025-11-11 10:58:59 -06:00
Josiah Witt
fb2b3e567c docs: update keymap.json bindings for OpenCode command (#4192) 2025-11-11 10:48:10 -06:00
Adam
c672a1963b fix(desktop): prompt clearing inconsistent 2025-11-11 09:35:08 -06:00
Adam
54bff6b120 fix(desktop): code/diff number container width 2025-11-11 09:22:35 -06:00
Adam
ab3f198fab fix(desktop): session show more hidden on new session 2025-11-11 09:11:34 -06:00
Adam
0057ef6336 fix(desktop): prompt input not clearing, attachments flaky 2025-11-11 09:01:28 -06:00
Adam
4f604b3839 fix(desktop): color grouping 2025-11-11 09:01:27 -06:00
GitHub Action
a20489584e ignore: update download stats 2025-11-11 2025-11-11 12:04:42 +00:00
Dax Raad
a6b066bd47 ci 2025-11-11 02:15:33 -05:00
Dax Raad
37fdcac05a ci 2025-11-11 02:13:26 -05:00
Dax Raad
299bf1dca8 ci 2025-11-11 01:59:10 -05:00
Dax Raad
d685aa38ef type checks 2025-11-11 01:56:01 -05:00
Dax Raad
995b23787c ci 2025-11-11 01:48:29 -05:00
Dax Raad
ed8e663e13 ignore 2025-11-11 01:41:58 -05:00
Dax Raad
38cee3b848 ci: sync 2025-11-11 01:37:10 -05:00
Dax Raad
6d116d4b54 ci: fix 2025-11-11 01:35:50 -05:00
Aiden Cline
7c4f111b34 ignore: run bun i 2025-11-11 00:34:09 -06:00
Dax Raad
f2fac29270 ci 2025-11-11 01:33:02 -05:00
Dax Raad
12892f0e12 ci: improve bun caching to invalidate when bun version changes in package.json 2025-11-11 01:31:24 -05:00
GitHub Action
9714a3558e chore: format code 2025-11-11 06:28:19 +00:00
Dax Raad
e49a1d1f39 ci: fix 2025-11-11 01:27:39 -05:00
Dax Raad
528565510d sync 2025-11-11 01:25:39 -05:00
GitHub Action
36cfda933d chore: format code 2025-11-11 06:24:58 +00:00
Dax Raad
ecf5040966 tui: update @opentui/core to v0.1.39 and fix build script for new target format 2025-11-11 01:24:17 -05:00
Frank
7d56603c26 zen: failover on error 2025-11-11 00:29:44 -05:00
Aiden Cline
02b7cc8313 keep session dot in list for current active (#4185) 2025-11-10 22:20:35 -06:00
Dax Raad
c9a52c9a85 cache project id in root git folder 2025-11-10 21:57:55 -05:00
Dax Raad
dea668b0ea tui: help users read thinking blocks and trust todo syncs 2025-11-10 20:34:04 -05:00
Aiden Cline
1bc3e92376 fix: undefined check 2025-11-10 19:21:57 -06:00
Dax Raad
3f5acc3dff add web and codesearch tools 2025-11-10 16:39:54 -05:00
Aiden Cline
0588011476 ignore: bump copilot plugin version 2025-11-10 13:40:15 -06:00
OpeOginni
bba72c82ae Fix/google vertex configs (#4169)
Co-authored-by: GitHub Action <action@github.com>
2025-11-10 13:25:03 -06:00
denesbeck
e95181a551 Refactor/redundant toast comp (#4163)
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-11-10 11:27:19 -06:00
GitHub Action
74e8c2e50f chore: format code 2025-11-10 17:19:20 +00:00
David Hill
cdabafa264 wip code theme inc light 2025-11-10 17:18:37 +00:00
denesbeck
0a92af60a0 fix: upgrade toast notification (#4159) 2025-11-10 10:28:28 -06:00
David Hill
c7808a4b01 wip code theme 2025-11-10 16:16:50 +00:00
David Hill
7f978e07ff wip code theme 2025-11-10 16:14:24 +00:00
David Hill
a4ae1bb9eb wip code theme 2025-11-10 16:00:05 +00:00
David Hill
96a39803cc wip code theme 2025-11-10 15:58:56 +00:00
GitHub Action
16f8f20b31 chore: format code 2025-11-10 14:51:24 +00:00
David Hill
06b1684ddb wip code editor update dark mode 2025-11-10 14:50:36 +00:00
David Hill
c6e830c954 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-11-10 13:44:12 +00:00
GitHub Action
fc78c28df6 ignore: update download stats 2025-11-10 2025-11-10 12:04:53 +00:00
opencode
930a1bf358 release: v1.0.55 2025-11-10 06:47:55 +00:00
GitHub Action
6cf7f18cc9 chore: format code 2025-11-10 06:41:40 +00:00
Aiden Cline
3f59570ee6 fix: add null check 2025-11-10 00:40:42 -06:00
GitHub Action
304e956b5d chore: format code 2025-11-10 06:00:38 +00:00
Wankong
538eaa42aa docs: format installation commands for madkrown code block (#4151)
Co-authored-by: GitHub Action <action@github.com>
2025-11-09 23:59:57 -06:00
opencode
67c41fd389 release: v1.0.54 2025-11-10 05:50:33 +00:00
GitHub Action
83ea19770a chore: format code 2025-11-10 05:44:26 +00:00
Dax Raad
3ace8543b2 tui: auto-scroll to bottom when switching between sessions 2025-11-10 00:43:48 -05:00
opencode
eb855e1e31 release: v1.0.53 2025-11-10 05:42:55 +00:00
Dax Raad
5e53f054c6 make reasoning parts less ugly 2025-11-10 00:37:35 -05:00
Dax Raad
5d5e184329 tui: improve session UI with better sidebar toggle and message handling 2025-11-10 00:21:31 -05:00
Dax Raad
2fbb49ac30 tui: render reasoning parts with syntax highlighting instead of plain text 2025-11-10 00:08:05 -05:00
Dax Raad
c56b407e1d tui: display 'Free' badge for zero-cost models in model selection dialog 2025-11-09 23:56:24 -05:00
lenstr
bdaa0e8b8c fix: --model flag being ignored in TUI mode (#4147) 2025-11-09 20:21:52 -06:00
Aiden Cline
4e549b1c05 fix: allow user to configure doom loop & external dir perms (#4095) 2025-11-09 20:21:38 -06:00
Aiden Cline
7be8e16c33 ci: sync zed 2025-11-09 13:54:14 -06:00
Frank
d1588f93a1 doc: add big pickle to doc 2025-11-09 14:12:54 -05:00
Aiden Cline
576696a370 ci: update description 2025-11-09 13:09:52 -06:00
Aiden Cline
2c6f9043e8 ci: fix 2025-11-09 13:06:32 -06:00
Aiden Cline
9f771ef0ae ci: fix 2025-11-09 13:05:51 -06:00
Aiden Cline
356715f67d ci: fix regex 2025-11-09 13:03:10 -06:00
Aiden Cline
540421267a fix 2025-11-09 12:56:17 -06:00
Aiden Cline
e253398936 ci: ignore 2025-11-09 12:54:59 -06:00
Aiden Cline
ee87e1f139 ci: ignore 2025-11-09 12:54:22 -06:00
Aiden Cline
8887616457 ci: sync zed 2025-11-09 12:47:36 -06:00
Aiden Cline
905c034885 ci: zed sync 2025-11-09 12:00:08 -06:00
Aiden Cline
92f7c4943f ci: zed sync 2025-11-09 11:59:00 -06:00
Aiden Cline
10bde356b1 chore: rm comment 2025-11-09 11:50:02 -06:00
Aiden Cline
f7cc46cd9f set cap for max time to wait between retries (#4135)
Co-authored-by: GitHub Action <action@github.com>
2025-11-09 11:46:58 -06: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
GitHub Action
c0702ed8bd ignore: update download stats 2025-11-09 2025-11-09 12:04:16 +00:00
opencode
b927b9dca6 release: v1.0.51 2025-11-09 06:46:42 +00:00
Dax Raad
4b7231be68 fix race condition 2025-11-09 01:41:49 -05:00
GitHub Action
70a6fe96ea chore: format code 2025-11-09 06:01:58 +00:00
Aiden Cline
6e5971dff2 ci: update sync zed 2025-11-09 00:01:13 -06:00
opencode
d48d6b3577 release: v1.0.50 2025-11-09 05:53:26 +00:00
Aiden Cline
4b1668c3ef Revert "tui: display 'Free' badge for zero-cost models in model selection dialog"
This reverts commit ce9b758d0a.
2025-11-08 23:48:18 -06:00
Mathias Beugnon
d85eb1b880 feat: add input context to chat.params and chat.message (#4085) 2025-11-08 23:29:27 -06:00
Ivan Starkov
9637d70407 fix: UI Freezes for a few minutes if repo has binary files (#4109) 2025-11-08 23:28:09 -06:00
Aiden Cline
cfbbdc2e14 ci: add job to sync zed extension 2025-11-08 23:23:43 -06:00
GitHub Action
feb65201f6 chore: format code 2025-11-09 01:58:05 +00:00
opencode
f1f07a56d8 release: v1.0.49 2025-11-09 01:58:04 +00:00
Dax Raad
0fe313bd87 tui: fix continue session navigation to wait for sync completion before redirecting
Previously, the continue session navigation would immediately try to redirect
to the most recent session before the sync data was fully loaded, causing
navigation to fail. Now it waits for sync status to be complete before
attempting the redirect, ensuring the session data is available.
2025-11-08 20:53:18 -05:00
opencode
1fd676528d release: v1.0.48 2025-11-09 01:44:10 +00:00
GitHub Action
0a2801444b chore: format code 2025-11-09 01:38:01 +00:00
Dax Raad
c9adbc7c21 tui: add logging when creating project instances to help users debug startup issues 2025-11-08 20:37:08 -05:00
opencode
ba8de38435 release: v1.0.47 2025-11-09 01:34:24 +00:00
Dax Raad
8166612467 tui: fix continue session navigation to use most recent session instead of oldest session 2025-11-08 20:28:23 -05:00
Dax Raad
4d20e1c3c6 Merge remote-tracking branch 'origin/dev' into dev 2025-11-08 20:21:02 -05:00
Dax Raad
4bb7ea9127 improve startup speed 2025-11-08 20:18:36 -05:00
GitHub Action
969af4d541 chore: format code 2025-11-08 22:32:25 +00:00
Christopher Sacca
271b679058 fix(lsp): handle optional requests to avoid MethodNotFound (-32601) with MATLAB Language Server (#4007) 2025-11-08 16:31:39 -06:00
GitHub Action
83b16cb18e chore: format code 2025-11-08 22:27:51 +00:00
Kamaal Farah
431ffc94f5 fix(theme): filter out null values from theme palette (#4083)
Signed-off-by: Kamaal Farah <kamaal.f1@gmail.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-11-08 16:27:07 -06:00
opencode
47b4cc6d53 release: v1.0.46 2025-11-08 21:48:37 +00:00
Dax Raad
ce9b758d0a tui: display 'Free' badge for zero-cost models in model selection dialog 2025-11-08 16:20:30 -05:00
Frank
f8a1a0b26f zen: fix billing button 2025-11-08 10:33:56 -05:00
GitHub Action
6ecaf83f76 chore: format code 2025-11-08 15:20:53 +00:00
Frank
30b1ae5d4b zen: rate limit 2025-11-08 10:18:21 -05:00
GitHub Action
9cd465f9c0 ignore: update download stats 2025-11-08 2025-11-08 12:04:10 +00:00
opencode
1747979568 release: v1.0.45 2025-11-08 02:25:51 +00:00
Dax Raad
062023fa06 chore(prompt): refine polaris instructions for practical behavior 2025-11-07 21:18:49 -05:00
Dax Raad
954a796b8a core: route polaris-alpha models to polaris system prompt 2025-11-07 21:07:59 -05:00
GitHub Action
34ff87d504 chore: format code 2025-11-08 01:59:02 +00:00
Dax Raad
16357e8041 chore: standardize prettier printWidth to 120 2025-11-07 20:58:17 -05:00
Dax Raad
dabb1aa719 fix(prompt): prevent title generation refusal responses 2025-11-07 20:50:15 -05:00
Aiden Cline
7af3380455 chore: adjust cfg code 2025-11-07 19:18:57 -06:00
GitHub Action
dcaa90808e chore: format code 2025-11-08 00:59:52 +00:00
Jay V
01705fd467 ignore: docs: fix type errors in sitemap generation script 2025-11-07 19:55:25 -05:00
Jay V
006f3bdeb6 ignore: docs: add sitemap.xml to gitignore 2025-11-07 19:51:47 -05:00
Jay V
1d43b4e6d7 ignore: docs: add automated sitemap generation for main app and docs routes 2025-11-07 19:51:46 -05:00
Aiden Cline
8cef7940fe allow reading of opencode.json(c) from .opencode/ 2025-11-07 17:35:08 -06:00
Sebastian Herrlinger
b2dd9fdfdf upgrade to opentui 0.1.39 supporting shift/ctrl+return/esc custom csi in ghostty 2025-11-08 00:17:07 +01:00
Aiden Cline
b82a52cb85 ignore: update log 2025-11-07 15:56:37 -06:00
Aiden Cline
7294d86778 ignore: symlink zed extension license 2025-11-07 15:41:01 -06:00
Aiden Cline
3bb3f4f2c9 ignore: fix 2025-11-07 15:32:19 -06:00
GitHub Action
d31f97343c chore: format code 2025-11-07 21:28:26 +00:00
Jay V
536d10e5ab ignore: lander add canonical urls and h1 tags to all landing pages 2025-11-07 16:27:35 -05:00
Jay V
9885c716f3 ignore: lander use h1 tags for main headings on landing and zen pages 2025-11-07 16:27:34 -05:00
opencode
39461fbbce release: v1.0.44 2025-11-07 21:24:15 +00:00
Dax Raad
1a2b3701f2 tui: show more sessions in list and fix sync timing to prevent race conditions 2025-11-07 16:19:44 -05:00
Aiden Cline
0a395d8783 ignore: update version 2025-11-07 15:18:44 -06:00
Aiden Cline
79bb22a573 ci: auto update zed extension 2025-11-07 15:17:26 -06:00
GitHub Action
4271df96d2 chore: format code 2025-11-07 21:09:47 +00:00
Aiden Cline
aa07be09e1 ignore: update zed extension 2025-11-07 15:08:50 -06:00
opencode
5d6bdca6d0 release: v1.0.43 2025-11-07 21:04:26 +00:00
Dax Raad
58bbe9e689 ci: add optional version parameter to publish workflow
Allows overriding the version when publishing releases instead of only using semantic bumping. This gives maintainers more control over release versioning for special cases or hotfixes.
2025-11-07 15:58:51 -05:00
Sebastian Herrlinger
b5a035ceab upgrade to opentui to fix disappearing content (again) and sticky scroll 2025-11-07 21:38:40 +01:00
Aiden Cline
b3c6d0b08a fix formatters 2025-11-07 14:10:20 -06:00
Aiden Cline
090d27df11 chore: rm debug logs 2025-11-07 14:00:18 -06:00
Adam
b374a6cac9 fix(desktop): stop icon size 2025-11-07 13:58:52 -06:00
Aiden Cline
73cd8a334c rework acp to compensate for changes in Zed IDE (#4050) 2025-11-07 13:57:12 -06:00
Adam
b46c3f2a26 fix(desktop): prompt input issues (wip) 2025-11-07 13:54:53 -06:00
Adam
45fabec091 fix(desktop): prompt input on non-chat tabs 2025-11-07 13:54:53 -06:00
Dax Raad
a96365fd81 Add command bar action to rename sessions 2025-11-07 14:51:44 -05:00
GitHub Action
5f7e1e099b chore: format code 2025-11-07 19:47:53 +00:00
Dax Raad
d462e380f4 fix: update references after moving message functions to MessageV2 namespace 2025-11-07 14:47:05 -05:00
Adam
c5a558f3da chore(desktop): remove dead code 2025-11-07 13:34:41 -06:00
Adam
7f51b181d4 chore(desktop): cleanup shiki theme stuff 2025-11-07 13:30:07 -06:00
Adam
7adbc3ad44 fix(desktop): code tab padding 2025-11-07 13:14:57 -06:00
Adam
89922a8598 fix(desktop): prompt input missing on new session 2025-11-07 12:56:07 -06:00
Adam
3a1d1a6284 feat(desktop): custom syntax colors 2025-11-07 12:48:17 -06:00
Dax Raad
4463d319c9 fix scroll when no session exists 2025-11-07 13:22:03 -05:00
GitHub Action
c6eea0343d chore: format code 2025-11-07 18:11:40 +00:00
opencode
e317e7e481 release: v1.0.41 2025-11-07 18:11:39 +00:00
Dax Raad
287855336d allow not specifying a limit on messages endpoint 2025-11-07 13:05:19 -05:00
opencode
d55f4f3322 release: v1.0.40 2025-11-07 17:37:31 +00:00
Dax Raad
b708d0ecec disable scrollbar temporarily because of text wrap issues 2025-11-07 12:31:28 -05:00
Jinhyeok Lee
afb831c93c vscode: Add VS Code Insiders support (#4019) 2025-11-07 10:31:16 -06:00
Adam
14397651b5 ignore: test file 2025-11-07 09:05:09 -06:00
Adam
e5804f64f9 fix(desktop): layout quirks 2025-11-07 06:26:26 -06:00
GitHub Action
ce7b73170f ignore: update download stats 2025-11-07 2025-11-07 12:04:25 +00:00
Dax Raad
9554abb56e message storage performance improvements 2025-11-07 01:11:47 -05:00
Charles David Mupende
d0f5c825bd feat: implement network IP retrieval for remote access in web command (#3945) 2025-11-06 19:37:23 -06:00
opencode-agent[bot]
9f603e39a6 Fixed ACP to respect user's default model config. (#4006)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-06 19:07:27 -06:00
GitHub Action
da51c9dfac chore: format code 2025-11-07 01:06:38 +00:00
Nicolai van der Smagt
9e04ff013c fix: resolve Mistral API compatibility issues (#2440)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-06 20:05:59 -05:00
opencode
6bfccace0c release: v1.0.39 2025-11-07 01:04:05 +00:00
Dax Raad
b25d4f9dfb fix issue with input randomly breaking 2025-11-06 19:48:10 -05:00
GitHub Action
d1962ca5a7 chore: format code 2025-11-07 00:14:59 +00:00
Dax Raad
25f31f3096 codex tweaks 2025-11-06 19:14:01 -05:00
opencode
11a6f0886e release: v1.0.37 2025-11-06 23:14:32 +00:00
Dax
3ba7e243d0 system theme (#4010) 2025-11-06 18:00:09 -05:00
Nicolai van der Smagt
a2ab019317 fix: resolve Mistral API compatibility issues (#2440)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-06 16:53:02 -06:00
Jay V
21957406ff docs: add Deep Infra provider documentation 2025-11-06 17:08:55 -05:00
Adam
61c4747fbe fix(desktop): diff highlight rendering 2025-11-06 15:58:45 -06:00
Adam
957c43aa09 fix(desktop): review tab padding 2025-11-06 15:34:47 -06:00
Adam
96c57418f3 feat(desktop): review flow 2025-11-06 15:13:06 -06:00
Shanjai Raj
b8c51e307f Fix: Auto-scroll to bottom when selecting session from list (#3988)
Co-authored-by: shanjairaj7 <shanjairaj7@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-06 14:29:39 -06:00
Frank
6791233ca0 Add desktop-feedback 2025-11-06 14:29:11 -05:00
GitHub Action
cd6072ec58 chore: format code 2025-11-06 18:59:34 +00:00
Jay V
017e42bbcd docs: align web package favicon with console design for consistency 2025-11-06 13:58:52 -05:00
opencode
2d20582802 release: v1.0.36 2025-11-06 18:55:54 +00:00
GitHub Action
2bcc00dbf0 chore: format code 2025-11-06 18:21:59 +00:00
Dax Raad
e45e94634f only display last 100 messages in TUI 2025-11-06 13:21:15 -05:00
Aiden Cline
de1278414f fix: opencode run not parsing model string 2025-11-06 12:09:13 -06:00
Dax Raad
3c2803fd9a flaky test 2025-11-06 13:05:53 -05:00
GitHub Action
90c2b26733 chore: format code 2025-11-06 18:03:50 +00:00
Dax Raad
1ea3a8eb9b big format 2025-11-06 13:03:12 -05:00
Aiden Cline
8729edc5e0 update import command to accept share links 2025-11-06 11:55:57 -06:00
Aiden Cline
d8bcf1f5f3 ci: update auto label 2025-11-06 11:46:42 -06:00
Dax Raad
67f3c934fe fix tests 2025-11-06 11:42:46 -05:00
Aiden Cline
065f656fb0 chore: rm hanging test 2025-11-06 10:39:32 -06:00
Dax Raad
f636d937c4 fix undo command breaking other commands 2025-11-06 11:25:37 -05:00
Adam
492bf51a0d fix(desktop): sidebar collapsed width 2025-11-06 09:56:46 -06:00
Adam
81ab127f63 fix(desktop): demo type error 2025-11-06 09:49:39 -06:00
Adam
6ba7c54bab feat(desktop): collapsible sidebar 2025-11-06 09:48:51 -06:00
Adam
146bae82cb fix(desktop): button styles 2025-11-06 09:48:50 -06:00
Adam
ab345cf0da feat(desktop): better tooltips 2025-11-06 09:48:50 -06:00
GitHub Action
a1836527ce ignore: update download stats 2025-11-06 2025-11-06 12:04:56 +00:00
opencode-agent[bot]
49e4cfb286 Added big dot (●) indicator for current session in modal (#3980)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-06 01:09:59 -06:00
Frank
e52bfab79d Update sst 2025-11-06 05:42:25 +00:00
opencode
cc6d5c8ddd release: v1.0.35 2025-11-06 05:42:24 +00:00
Dax Raad
afe8508949 fix homebrew upgrade 2025-11-06 00:37:44 -05:00
opencode
7c098c8849 release: v1.0.34 2025-11-06 02:35:17 +00:00
Dax Raad
11d6005b77 tui: reduce scrollbar visual prominence for less distracting interface 2025-11-05 21:30:40 -05:00
Dax Raad
2cc072b3dc enable scrollbar 2025-11-05 21:27:23 -05:00
opencode
86247b8ea9 release: v1.0.33 2025-11-06 02:18:41 +00:00
Dax Raad
0a5a02043c tui: move debug shortcuts to command palette for better discoverability 2025-11-05 21:13:35 -05:00
Sebastian Herrlinger
6e553f7e20 upgrade to opentui v0.1.36 2025-11-06 01:43:35 +00:00
opencode
bb6acc0ec6 release: v1.0.32 2025-11-06 01:43:35 +00:00
Dax Raad
5a84b9f467 temporarily use strip-ansi package till bun bug is fixed 2025-11-05 20:38:37 -05:00
opencode
c7031dfd77 release: v1.0.31 2025-11-06 01:35:40 +00:00
Dax Raad
e136a40771 ignore tmp type rrror 2025-11-05 20:31:13 -05:00
Dax Raad
ef25650ced regen bunlock 2025-11-05 20:30:40 -05:00
Dax Raad
6555a33eff type errors 2025-11-05 20:14:31 -05:00
Dax Raad
247ce44776 fix log 2025-11-05 20:01:57 -05:00
Dax Raad
4e7bfaab8b fix log 2025-11-05 20:00:09 -05:00
Sebastian Herrlinger
8b26a1f9bd upgrade to opentui 0.1.35, mitigating disappearing content and crashes 2025-11-06 01:38:58 +01:00
Dax Raad
2a9b6a85de core: ensure export command output can be piped without UI interference 2025-11-05 18:36:06 -05:00
opencode
c9ae89a38b release: v1.0.30 2025-11-05 23:32:22 +00:00
Dax Raad
e316050bf5 temporarily remove bun strip ansi due to bug 2025-11-05 18:27:19 -05:00
Dax Raad
306f45f04a add opencode import command to restore sessions from JSON exports 2025-11-05 18:05:01 -05:00
Adam
e006e3355c feat(desktop): incrementally load sessions in side nav 2025-11-05 16:32:08 -06:00
opencode
d7e31f76c4 release: v1.0.29 2025-11-05 22:14:46 +00:00
Aiden Cline
d425723249 ask instead of throwing tool error if file is outside cwd 2025-11-05 16:09:47 -06:00
Adam
c59ec71918 fix(desktop): max height on message diffs, session stats 2025-11-05 16:00:20 -06:00
Dax Raad
05ae99a09b fix sidebar modified files 2025-11-05 16:49:17 -05:00
opencode
6e22b45905 release: v1.0.28 2025-11-05 21:08:58 +00:00
Aiden Cline
c664f92829 acp: update auth method 2025-11-05 15:01:14 -06:00
Aiden Cline
f95333aaa4 acp: default to big pickle 2025-11-05 14:59:02 -06:00
opencode
ef0b5e3dcb release: v1.0.27 2025-11-05 20:44:40 +00:00
Dax Raad
b7262b8527 performance improvements 2025-11-05 15:33:23 -05:00
Dax Raad
1f44c7f750 include file count in summary 2025-11-05 14:23:10 -05:00
Dax Raad
7dba570195 ci: fix aur package 2025-11-05 14:22:25 -05:00
Haris Gušić
3d04ba26a3 fix(autocomplete): Prioritize exact matches (#3760) 2025-11-05 12:25:05 -06:00
Adam
3660e2c481 fix(desktop): local dev url 2025-11-05 12:09:30 -06:00
opencode
06ca45189b release: v1.0.26 2025-11-05 18:08:19 +00:00
Adam
674febcf60 fix(desktop): type issue 2025-11-05 11:59:10 -06:00
Adam
582d9a9622 fix(desktop): type issue 2025-11-05 11:56:32 -06:00
Adam
d525fbf829 feat(desktop): session router, interrupt agent, visual cleanup 2025-11-05 11:55:35 -06:00
OpeOginni
69a499f807 fix(tui): restructure Sidebar component to be scrollable (#3946) 2025-11-05 11:33:30 -06:00
Dax Raad
37e564139f tui: lower paste summary threshold to trigger on shorter content 2025-11-05 12:32:23 -05:00
monke-yo
ee8b81269b feat: add --attach flag to opencode run (#3889) 2025-11-05 11:31:01 -06:00
Filip
53998a2fed chore: remove unused patch tool from registry (to avoid accidental inclusions of it) (#3938) 2025-11-05 11:26:28 -06:00
Aiden Cline
af7b9e77d1 fix: eu-west-2 aws bedrock issue 2025-11-05 10:14:08 -06:00
Aiden Cline
77c65b18b5 tweak: normalize escape keybind 2025-11-05 10:13:04 -06:00
Matthew Fitzpatrick
c9dfe6d964 docs: include "limit" example (#3925)
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-11-05 09:47:11 -06:00
Aiden Cline
03f7f18260 ci: adjust auto label 2025-11-05 09:36:38 -06:00
GitHub Action
2db76fc6dd ignore: update download stats 2025-11-05 2025-11-05 12:04:41 +00:00
opencode
7269c2316d release: v1.0.25 2025-11-05 07:00:07 +00:00
Aiden Cline
1e0596bc46 ACP: update package, fix slash command bug (#3906) 2025-11-05 00:50:48 -06:00
Aiden Cline
3ebec2435a allow @ agents to work even if not first thing in prompt 2025-11-04 23:37:09 -06:00
Christian Stewart
b90c0b5fac feat(tui): add /export and /copy commands (#3883)
Signed-off-by: Christian Stewart <christian@aperture.us>
2025-11-04 23:02:45 -06:00
Err
3b1ab444fd feat: add Clojure syntax highlighting support (#3912)
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-11-04 22:47:05 -06:00
Dax Raad
234db24f1f tui: fix command validation to prevent invalid commands from being executed 2025-11-04 20:46:01 -05:00
Kyle F Butts
04546c0873 Add support for R formatter in formatters (#3918)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-04 18:18:33 -06:00
opencode
f51bd91af4 release: v1.0.24 2025-11-05 00:12:19 +00:00
Dax Raad
ebca25462e tui: fix session abort when autocomplete is visible 2025-11-04 18:45:39 -05:00
Aiden Cline
01b9148c04 fix: image reading error, also add error toast for event bus 2025-11-04 17:30:58 -06:00
Frank
d3e080894c wip: zen 2025-11-04 17:54:08 -05:00
Jay V
ee9aa24a55 ignore: update meta description to use proper OpenCode capitalization 2025-11-04 17:27:22 -05:00
Frank
16e2bded5b wip: zen 2025-11-04 17:24:20 -05:00
Frank
9fb49ab87b wip: zen 2025-11-04 17:24:20 -05:00
Frank
8d6a03cc89 zen: custom reload amount 2025-11-04 17:24:20 -05:00
Dax Raad
71b04ffa99 add command bar option to interrupt session 2025-11-04 17:11:07 -05:00
Aiden Cline
678ca757c9 fix: permissions not responding to esc 2025-11-04 16:08:31 -06:00
Jared A. Scheel
272349b8da Add support for uv format in formatters (#3916) 2025-11-04 15:40:29 -06:00
David Hill
7088bfabd7 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-11-04 21:36:46 +00: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
opencode
ba8bc1b8b4 release: v1.0.23 2025-11-04 19:38:18 +00:00
Timo Clasen
8a9a474df6 feat(TUI): add autocomplete readline style keybinds (#3717)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-04 13:28:03 -06:00
Aiden Cline
52e2b40610 fix: stop showing auto complete if user types a space 2025-11-04 13:22:18 -06:00
Dax Raad
ee1ff8cc07 tui: add ability to interrupt running sessions from command palette 2025-11-04 14:07:22 -05:00
opencode
434c0ff0d7 release: v1.0.22 2025-11-04 18:41:38 +00:00
Dax Raad
7a7060ef15 fix session performance issue from large diffs 2025-11-04 13:35:44 -05:00
opencode
f9af9fc221 release: v1.0.21 2025-11-04 17:47:34 +00:00
Sebastian Herrlinger
1bf1b93404 Revert "upgrade opentui to address disappearing content issues #3776, #3697"
This reverts commit 90fc3ddb02.
2025-11-04 18:38:44 +01:00
Dax Raad
bc6f4aed2b local web 2025-11-04 12:33:14 -05:00
David Hill
dbdbfb8543 Update button.css 2025-11-04 17:31:56 +00:00
David Hill
521803aaa3 Update theme.css 2025-11-04 17:31:51 +00:00
Aiden Cline
2af3f19397 respect: disable_paste_summary 2025-11-04 11:29:12 -06:00
Aiden Cline
9275665868 fix: /undo command 2025-11-04 10:59:34 -06:00
Christian Stewart
09bb819064 fix(tui): worker path resolution in dev mode (#3778)
Signed-off-by: Christian Stewart <christian@cjs.zip>
Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com>
2025-11-04 17:38:11 +01:00
Err
6f0028644e fix: support scoped npm plugins (#3785)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-04 09:15:01 -06:00
Pranshu Raj
aec44abcf6 [FIX]: Refocus prompt after session delete (#3882) 2025-11-04 08:57:59 -06:00
frankdierolf
b41e573886 fix: correct history_next keybinding description (#3891) 2025-11-04 08:52:49 -06:00
arc-source-coder
737ddab300 tui: make /mcp an alias for /status (#3894) 2025-11-04 08:52:28 -06:00
Sebastian Herrlinger
90fc3ddb02 upgrade opentui to address disappearing content issues #3776, #3697 2025-11-04 14:57:15 +01:00
Adam
15d7eebb92 fix: lander specs 2025-11-04 06:15:12 -06:00
GitHub Action
33301c94df ignore: update download stats 2025-11-04 2025-11-04 12:05:02 +00:00
Aiden Cline
d341d26e37 update brew handling 2025-11-04 00:52:26 -06:00
opencode
d49b1b25d1 release: v1.0.20 2025-11-04 05:56:24 +00:00
Dax Raad
25eb100210 tui: fix tool permission lookup to use correct session ID 2025-11-04 00:50:12 -05:00
Dax Raad
9886353715 fix: persist -m model when switching agents
Add initial model from command line to fallback chain so it persists
when switching agents with tab, matching behavior of config model.

Resolves #3863
2025-11-03 23:51:52 -05:00
Aiden Cline
f501501791 fix: piping 2025-11-03 22:36:10 -06:00
Dax Raad
c103052f93 fix: handle parsePatch errors in TUI to prevent crashes
Wrap parsePatch calls in try-catch blocks to gracefully handle malformed
diffs that can occur when undoing after tool_use/tool_result errors or
cancelled prompts. Prevents TUI from crashing with 'Added line count did not
match for hunk' error.

Fixes #3700
2025-11-03 23:36:04 -05:00
Greg Pstrucha
68039d4c71 Fix file tagging in multi line inputs (#3865) 2025-11-03 23:22:38 -05:00
Aiden Cline
d3566d3b1a ignore: delete unused code 2025-11-04 04:01:22 +00:00
Stephen Collings
b275e18d28 fix: Provide OPENCODE & AGENT env vars (#3843)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-04 04:01:22 +00:00
Dax Raad
af9a1797b5 tui: use keybind helper for history navigation to respect custom keybindings 2025-11-04 04:01:22 +00:00
opencode
29b3e40ddb release: v1.0.19 2025-11-04 04:01:22 +00:00
Dax Raad
c49f5939a2 tui: fix model selection for models with nested paths
Users can now select models with multiple slashes like 'openrouter/google/gemini-2.5-pro'
in the TUI. Previously the TUI would only parse the first two parts of the model
path, showing 'Invalid model openrouter/google' for nested models.
2025-11-03 19:52:43 -05:00
kaanmertkoc
63862b1609 feat: implement stats command (#3832) 2025-11-03 18:41:30 -06:00
Mikhail Wahib
1cf1e88b52 fix: print the modified keybind for command_list (#3859) 2025-11-03 18:29:23 -06:00
Jay V
d06afd87e5 ignore: lander 2025-11-03 18:17:32 -05:00
Frank
9fb6e81007 wip: zen 2025-11-03 17:30:18 -05:00
Adi Yeroslav
3ac82227f1 fix: update logo (#3833) 2025-11-03 16:18:38 -06:00
Aiden Cline
c1f9249c84 ci: auto label web 2025-11-03 16:17:53 -06:00
Dax Raad
9bb66946db fix: correct dirs parameter type in file search 2025-11-03 17:10:31 -05:00
Dax Raad
adcdbbddc7 tui: remove duplicate copy message command entry 2025-11-03 17:10:20 -05:00
Dax Raad
662435c5bb ci: stuff 2025-11-03 22:01:30 +00:00
opencode
36c1a05eaa release: v1.0.18 2025-11-03 22:01:30 +00:00
Dax Raad
5708e3bf1e ci: tweak 2025-11-03 16:56:41 -05:00
Dax Raad
0da1ed3fc8 tui: add copy last assistant message to session menu 2025-11-03 16:47:18 -05:00
Adam
d5179c8b63 wip: desktop work 2025-11-03 15:42:39 -06:00
Adam
bd0a4f7bbe wip: desktop work 2025-11-03 15:42:10 -06:00
Adam
3d43214075 wip: desktop work 2025-11-03 15:42:10 -06:00
Dax Raad
178a14ce3e fix dirs query param 2025-11-03 16:35:55 -05:00
Timo Clasen
8e1010dc3f feat(TUI): don't show /share hint if sharing is disabled (#3835) 2025-11-03 15:30:55 -06:00
Adi Yeroslav
9c82f1f5e9 fix: session rename functionality (#3840) 2025-11-03 15:26:30 -06:00
Dmytro Tiapukhin
e5a651eef7 fix: better mcp sanitization (#3842)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-03 15:19:49 -06:00
Dax Raad
d26605aa56 tui: add support for Ctrl+_ key combination in keybind parser 2025-11-03 16:16:09 -05:00
opencode
5cc0d337b1 release: v1.0.17 2025-11-03 21:14:52 +00:00
Dax Raad
902763b47d web command 2025-11-03 16:10:23 -05:00
Aiden Cline
55d07a139c fix: mcp error (#3847) 2025-11-03 15:04:53 -06:00
Frank
05232ead93 zen: wip 2025-11-03 15:44:06 -05:00
Tyler Gannon
7652a96064 fix: wait for stdout to flush in generate command (#3821) 2025-11-03 14:05:48 -06:00
Frank
901aae09f7 zen: filter out alpha models 2025-11-03 15:04:59 -05:00
opencode
f95799f17c release: v1.0.16 2025-11-03 17:08:32 +00:00
Dax Raad
99a6c5e44d regen sdk 2025-11-03 11:55:19 -05:00
Dax Raad
07bb75f086 core: add optional dirs parameter to file search API
Allow users to exclude directories from file search results by setting dirs=false parameter in /find/file endpoint
2025-11-03 11:53:41 -05:00
Frank
66eb846e6f zen: wip 2025-11-03 11:30:53 -05:00
Adam
34f11c699e wip: desktop work 2025-11-03 08:29:13 -06:00
Adam
7a32fec008 wip: desktop work 2025-11-03 08:29:13 -06:00
James Alexander
37a6b5177e Add unit tests for util functions: iife, lazy, timeout (#3791) 2025-11-03 09:24:45 -05:00
Haris Gušić
573ffe186b fix(tui): Show correct keybind in session delete confirmation message (#3805) 2025-11-03 09:22:05 -05:00
Alex Knight
0f7ff3fcb1 Log share link immediately after session creation (#3811) 2025-11-03 09:21:43 -05:00
frankdierolf
2c3aa330b9 fix: correct clipboard image encoding and binary handling (#3817) 2025-11-03 09:21:13 -05:00
Pranshu Raj
47b2fb79dc docs: add session_child_cycle and session_child_cycle_reverse keybinds (#3807) 2025-11-03 09:20:35 -05:00
Sebastian Herrlinger
6deaf54bb3 use new opentui getTextRange method and Bun.stringWidth instead of value.length to mitigate issues like #3734 2025-11-03 15:15:55 +01:00
GitHub Action
d549cd3213 ignore: update download stats 2025-11-03 2025-11-03 12:04:38 +00:00
Ivan Starkov
93e52f7ecf feat: Enhance task display with [subagent type] (#3772) 2025-11-03 01:09:31 -06:00
Aiden Cline
88f12b0822 core: prevent TypeError when error handling encounters non-object errors
When API errors like token limit exceeded errors are passed as strings to error checking methods, the 'in' operator would throw a TypeError. This fix adds a type guard to check that the input is an object before attempting to access its properties, allowing proper error classification even when encountering unexpected error formats from providers.
2025-11-02 23:38:56 -06:00
Zeldris
54af7f9e18 docs: use brew official formula (#3733) 2025-11-02 21:00:23 -06:00
Dax Raad
be685e95a3 docs 2025-11-03 01:57:36 +00:00
Dax Raad
dc2ab75fca ci: eventualy consistency 2025-11-03 01:57:36 +00:00
opencode
f1324e886f release: v1.0.15 2025-11-03 01:57:36 +00:00
opencode
c47fde2ca4 release: v1.0.14 2025-11-03 00:12:08 +00:00
Dax Raad
f42e1c6375 tui: fix focus management and dialog interactions 2025-11-02 19:07:22 -05:00
Dax Raad
f68374ad22 DELETE GO BUBBLETEA CRAP HOORAY 2025-11-02 18:43:33 -05:00
opencode
5e86c9b791 release: v1.0.13 2025-11-02 23:31:25 +00:00
Dax Raad
94658c31c5 add back child session cycle 2025-11-02 18:26:38 -05:00
Dax Raad
9fd672a1cb undo 2025-11-02 16:31:32 -05:00
Dax Raad
10523c4372 move dialog select keybind to input 2025-11-02 15:47:04 -05:00
Dax Raad
d1cd7d0344 ci: centralize Bun version to package.json to ensure consistent builds across CI and local development 2025-11-02 15:42:15 -05:00
Dax Raad
06ac1be226 upgrade to bun 1.3.1 2025-11-02 14:00:50 -05:00
Dax Raad
05489bc843 tui: fix file path handling when pasting images with spaces in filename
- Fixes issue where files with spaces in their names couldn't be pasted as images
- Prevents default paste behavior to avoid conflicts with image insertion
- Improves error handling for file reading operations
2025-11-02 13:45:44 -05:00
Dax Raad
3f02eecf22 tui: add /timeline command to quickly navigate to specific messages in session history 2025-11-02 18:27:42 +00:00
opencode
f5ca78ed7b release: v1.0.12 2025-11-02 18:27:42 +00:00
Dax Raad
894cbaa51e fix duplicate plugin subscriptions 2025-11-02 13:22:58 -05:00
John Eismeier
8b70b89fde fix: typos (#3757)
Signed-off-by: John E <jeis4wpi@outlook.com>
2025-11-02 09:56:40 -06:00
Aditya Mathur
f9dbc586dc chore: update hono-openapi to version 1.1.1 (#3738) 2025-11-02 09:21:55 -06:00
GitHub Action
ffeef63ca1 ignore: update download stats 2025-11-02 2025-11-02 12:04:05 +00:00
kcrommett
4da58294d9 add nightowl theme back after opentui release (#3732) 2025-11-02 04:29:14 -05:00
opencode
fa2e88f49b release: v1.0.11 2025-11-02 08:18:59 +00:00
Dax Raad
28e765ef0a fix dialog 2025-11-02 02:53:55 -05:00
Dax Raad
bfbcb5f200 tui: prevent default Enter key behavior when selecting dialog options to avoid conflicts 2025-11-02 01:19:30 -05:00
Aiden Cline
89492b3002 ci: fix regex 2025-11-01 20:23:10 -05:00
opencode-agent[bot]
2663415d47 github action: truncate PR titles to 256 chars to avoid GH api errors (#3727)
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-11-01 20:09:35 -05:00
Aiden Cline
51be67cc14 ci: stop auto assigning 2025-11-01 19:57:09 -05:00
Sebastian Herrlinger
92a1943771 upgrade to opentui 0.1.32, activates kitty keyboard 2025-11-02 01:45:38 +01:00
opencode
1e15fc273a release: v1.0.10 2025-11-01 18:06:28 +00:00
Dax
104a895a71 Light mode (#3709) 2025-11-01 13:54:01 -04:00
Dax Raad
f98e730405 docs update 2025-11-01 13:23:03 -04:00
Dax Raad
b12bef05d3 docs: update keybinds documentation with current defaults and remove deprecated bindings 2025-11-01 12:32:22 -04:00
opencode
2f1d001cc5 release: v1.0.9 2025-11-01 16:22:49 +00:00
Dax Raad
65d0b3ed6d sync 2025-11-01 12:14:15 -04:00
Haris Gušić
22a34d7958 feat: tui: Port /exit command and all command aliases (#3665) 2025-11-01 12:13:10 -04:00
Aiden Cline
cb4401ec92 ignore: update contributing md 2025-11-01 11:08:07 -05:00
opencode
febf467b03 release: v1.0.8 2025-11-01 15:58:23 +00:00
Dax Raad
d55a2fd56c tui: change delete keybind to ctrl+d in session list dialog 2025-11-01 11:53:46 -04:00
Dax Raad
40f577e5e7 fix modified files being empty 2025-11-01 11:48:47 -04:00
Dax Raad
9e49870118 remember sidebar position 2025-11-01 11:40:33 -04:00
Daniel van Strien
fe38e3ab02 docs: add Hugging Face Inference Providers documentation (#3505)
Co-authored-by: célina <hanouticelina@gmail.com>
2025-11-01 10:33:17 -05:00
Haris Gušić
0170577743 feat: tui: Add --prompt option (#3668) 2025-11-01 11:18:31 -04:00
Giuseppe Rota
7de6ea5922 fix: fix typo in commit message guidelines (#3702) 2025-11-01 10:14:53 -05:00
Yuku Kotani
2fe7d13e69 Add formatter status display to TUI status dialog (#3701) 2025-11-01 11:14:39 -04:00
Dax Raad
1bc3c98ae7 ensure wl-copy is available 2025-11-01 11:10:39 -04:00
Haris Gušić
55787f2caa fix: tui: Handle Clipboard.copy errors properly (#3685) 2025-11-01 15:34:21 +01:00
Haris Gušić
7df61a74a0 fix: tui: add toast for /share url copy (#3686) 2025-11-01 08:06:56 -05:00
GitHub Action
4f23110880 ignore: update download stats 2025-11-01 2025-11-01 12:04:18 +00:00
Aiden Cline
041353f4ff make /init a default slash command on server side (#3677) 2025-11-01 01:14:09 -05:00
Haris Gušić
c72f8b17c6 fix: tui: Fix /editor command (#3663) 2025-11-01 00:16:06 +00:00
opencode
eb304f4115 release: v1.0.7 2025-11-01 00:16:05 +00:00
Dax Raad
5565f14ef5 tab to accept autocomplete 2025-10-31 20:10:01 -04:00
Dax Raad
10a4455c6f tui: fix prompt text aggregation to exclude synthetic content 2025-10-31 20:01:27 -04:00
Dax Raad
5ded6d6ad7 docs: sync 2025-10-31 23:58:57 +00:00
opencode
849a38c30c release: v1.0.6 2025-10-31 23:58:57 +00:00
Dax Raad
68050ab802 tui: prevent clipboard operations from throwing errors on process exit 2025-10-31 19:54:15 -04:00
opencode
91d01fd4cc release: v1.0.5 2025-10-31 23:51:36 +00:00
Dax Raad
9beb0f8512 tui: improve keyboard navigation and MCP server status display 2025-10-31 19:47:08 -04:00
Dax Raad
d4cb47eadc tui: add keyboard shortcuts to cycle through recently used models
Users can now press F2 to cycle forward and Shift+F2 to cycle backward through their recently used models, making it faster to switch between commonly used AI models without opening the model selection dialog.
2025-10-31 19:42:41 -04:00
Dax Raad
261ff416a9 sync 2025-10-31 23:05:11 +00:00
opencode
d0a70cb217 release: v1.0.4 2025-10-31 23:05:10 +00:00
Aiden Cline
20fc56d020 Revert "opentui: fix: Make worker.ts path independent from cwd (#3600)"
This reverts commit d473d4ffc8.
2025-10-31 17:57:56 -05:00
opencode
a57ae3ec93 release: v1.0.3 2025-10-31 22:52:57 +00:00
Dax Raad
30f9fa12d9 tui: add session rename functionality with /rename command
- Add /rename command to autocomplete when a session is active
- Add rename dialog component for changing session names
- Add rename option to session list dialog with 'r' keybind
- Add session rename command to command registry
2025-10-31 18:44:33 -04:00
Haris Gušić
d473d4ffc8 opentui: fix: Make worker.ts path independent from cwd (#3600) 2025-10-31 17:37:31 -05:00
Haris Gušić
af50596529 fix: grep failing when pattern started with a dash 2025-10-31 17:20:22 -05:00
Dax Raad
3823d8d50e tui: simplify theme selection API by renaming setSelectedTheme to set 2025-10-31 18:11:36 -04:00
Dax Raad
7a926b32ce respect theme in config 2025-10-31 18:04:38 -04:00
Haris Gušić
a5ede68241 fix: Remove conflicting "-h" aliases in TUI spawn and thread commands (#3651) 2025-10-31 16:59:59 -05:00
Aiden Cline
60dc38050d fix: unsupported option 2025-10-31 16:53:08 -05:00
Dax Raad
31d0caee38 tui: add /editor command to autocomplete for opening external editor 2025-10-31 17:47:08 -04:00
Dax Raad
2a7ab45605 add /theme 2025-10-31 17:44:41 -04:00
Aiden Cline
019054dd1e Revert "fix: ensure flags & docs match (#3638)"
This reverts commit a018a15f32.
2025-10-31 16:43:29 -05:00
opencode-agent[bot]
a018a15f32 fix: ensure flags & docs match (#3638)
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-31 16:33:46 -05:00
Nathan Thomas
e630d680dd feat: allow ctrl+d to exit the app (#3636) 2025-10-31 16:27:41 -05:00
Haris Gušić
9e392f25a6 feat: Improve error boundary add button to easily create issue in github (#3639) 2025-10-31 16:20:32 -05:00
Aiden Cline
2cc4e6ad7c ci: change model 2025-10-31 16:06:22 -05:00
Adam
70d8d1ab1e wip: desktop work 2025-10-31 15:57:21 -05:00
Adam
342aa27e03 wip: desktop work 2025-10-31 15:37:50 -05:00
Adam
e1aed0cd01 wip: desktop work 2025-10-31 15:37:50 -05:00
opencode
c8ea2c5ce0 release: v1.0.2 2025-10-31 20:33:50 +00:00
Dax Raad
5e8309a353 tui: update hello command with test content 2025-10-31 16:21:30 -04:00
Dax Raad
aae0ce9921 tui: improve autocomplete component styling and update test command 2025-10-31 16:21:30 -04:00
Dax Raad
81b94d84dc ignore 2025-10-31 20:17:40 +00:00
opencode
ceab70f8d9 release: v1.0.1 2025-10-31 20:17:39 +00:00
Dax Raad
afe8cecc2b tui: add persistent key-value storage for user preferences
- Add KVProvider context for storing user preferences like theme and warnings
- Update theme context to use KV storage instead of sync config
- Move openrouter warning to persistent KV storage
- Refactor theme selection to persist user choice across sessions
2025-10-31 16:13:02 -04:00
Aiden Cline
4a292bf977 ci: auto assign 2025-10-31 14:58:18 -05:00
Aiden Cline
e249b41513 ci: autolabel action 2025-10-31 14:55:33 -05:00
Dax Raad
9021dd60a1 tui: add /session command to list available sessions 2025-10-31 15:41:36 -04:00
opencode
b9a39b816c release: v1.0.0 2025-10-31 19:28:07 +00:00
Dax Raad
1eeba770b1 docs: add v1.0 upgrade guide with UX changes documentation 2025-10-31 15:15:52 -04:00
Frank
6cff306be1 wip: zen 2025-10-31 15:09:48 -04:00
Dax
96bdeb3c7b OpenTUI is here (#2685) 2025-10-31 15:07:36 -04:00
opencode
81c617770d release: v0.15.31 2025-10-31 18:56:26 +00:00
Frank
021334509e sync 2025-10-31 14:43:51 -04:00
Frank
4bde3f7b15 zen: billing page layout 2025-10-31 14:43:51 -04:00
Haris Gušić
4355027408 fix: Missing @opencode-ai/plugin causes crash (#3615) 2025-10-31 13:41:04 -05:00
David Hill
b022cf0ed6 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-31 17:02:53 +00:00
David Hill
a529b0324d wip: Tweaking select styles
This ghost style is placeholder for now until we style this properly with an icon and all the states.
2025-10-31 17:02:44 +00:00
David Hill
16f5e16395 wip: Tweaking button styles 2025-10-31 17:02:12 +00:00
Adam
76e080b2cb wip: desktop work 2025-10-31 12:00:44 -05:00
Adam
ffc889b99e wip: desktop work 2025-10-31 12:00:44 -05:00
Steven Martin
36b48a44ac tweak - normalise unix-like identifiers to support git bash for windows (#2100)
Co-authored-by: Steven Martin <smartin@clearcom.com>
2025-10-31 11:41:44 -05:00
David Hill
5379abe330 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-31 16:03:36 +00:00
David Hill
a5bcb76bbf Added border as shadow and updated button 2025-10-31 16:03:33 +00:00
Aiden Cline
b628c580c2 update types 2025-10-31 10:49:52 -05:00
Aiden Cline
46d675b980 tweak: filter out deprecated models 2025-10-31 10:48:51 -05:00
Adam
a8bf1ad40f wip: desktop work 2025-10-31 10:08:24 -05:00
Adam
0ac943de90 wip: desktop work 2025-10-31 09:45:57 -05:00
Adam
485135cf5c wip: desktop work 2025-10-31 07:30:02 -05:00
Adam
543eee78a6 wip: desktop work 2025-10-31 07:24:47 -05:00
GitHub Action
dafb63cfb3 ignore: update download stats 2025-10-31 2025-10-31 12:04:46 +00:00
opencode
504a599473 release: v0.15.30 2025-10-31 06:12:16 +00:00
Dax Raad
750b9f80a5 sync 2025-10-31 02:00:11 -04:00
Aiden Cline
dfdd009750 fix: bash permission case 2025-10-31 00:52:46 -05:00
Haris Gušić
c1ada302f9 fix: Opencode hangs after exit (#3481)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-30 23:57:58 -05:00
Filip
51e4c9fc4c add optional headers field to model config (#3546) 2025-10-30 23:35:26 -05:00
Jay V
43e272e6c4 ignore: refactor header context menu to use CSS styling and router navigation 2025-10-30 20:24:29 -04:00
David Hill
2f9f189f39 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-30 22:53:00 +00:00
David Hill
f3c70f4ea8 Asset updates 2025-10-30 22:52:56 +00:00
David Hill
5d4441cd2b Fix download zip 2025-10-30 22:41:32 +00:00
David Hill
bf5f34ace7 Brand Assets Zip 2025-10-30 22:38:12 +00:00
David Hill
9589657d21 Configure png and svg downloads 2025-10-30 22:25:07 +00:00
David Hill
37baed99c1 Brand page 2025-10-30 22:13:48 +00:00
Ritoban Dutta
a3ba740de4 fix: resolve hanging permission prompts in headless mode (#3522)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-30 15:37:41 -05:00
Adam
dc96664578 chore: sanitize tool parts locally 2025-10-30 14:57:38 -05:00
Jay V
4dafc532a8 ignore: update project stats to reflect current growth 2025-10-30 15:47:41 -04:00
Adam
984fe4b769 wip: desktop work 2025-10-30 14:46:38 -05:00
Adam
48f50cf55e wip: desktop work 2025-10-30 14:41:15 -05:00
Frank
ba13f8da08 wip: fix 2025-10-30 15:15:46 -04:00
Frank
1a8b494055 wip: zen 2025-10-30 15:10:29 -04:00
Frank
4f02d7d424 zen: allow byok requests w/o a balance 2025-10-30 15:10:29 -04:00
Adam
4cebd69bf0 wip: desktop work 2025-10-30 13:54:52 -05:00
Adam
dc6e54503c wip: desktop work 2025-10-30 13:49:29 -05:00
David Hill
f18847d739 Adding links to legal 2025-10-30 17:37:30 +00:00
Adam
2a0b67d84f fix: lander space 2025-10-30 12:32:25 -05:00
Adam
89eac737a5 wip: desktop work 2025-10-30 12:30:45 -05:00
Brandon
c68607fb2b feat: Adds session id to Agent context metadata (#3559)
Co-authored-by: Brandon Wisnicki <bwisnicki@palantir.com>
2025-10-30 12:15:21 -05:00
Adam
e944ff0286 wip: desktop work 2025-10-30 12:13:02 -05:00
Adam
ee7612a31c wip: desktop work 2025-10-30 12:02:51 -05:00
Adam
582ed7c363 wip: desktop work 2025-10-30 12:02:50 -05:00
Adam
dce287a42d wip: desktop work 2025-10-30 12:02:50 -05:00
Adam
19974daa67 wip: desktop work 2025-10-30 12:02:50 -05:00
Adam
dcf865a889 wip: desktop work 2025-10-30 12:02:50 -05:00
Adam
3b20935959 wip: desktop work 2025-10-30 12:02:50 -05:00
Adam
30f4c2cf4c wip: desktop work 2025-10-30 12:02:49 -05:00
Aiden Cline
3541fdcb20 tweak: adjust deno lsp (#3581) 2025-10-30 11:59:54 -05:00
David Hill
15de97c10f Change position 2025-10-30 16:55:23 +00:00
Jay V
ee3fd3f7be ignore:lander 2025-10-30 12:40:07 -04:00
Haris Gušić
dc87659791 tweak: move zod validation for tools to ensure it always runs (#3565) 2025-10-30 11:31:44 -05:00
Andrew Pashynnyk
149f5eaa2e fix: preserve metadata from MCP tool results in tool.execute.after hook (#3573) 2025-10-30 11:10:42 -05:00
Aiden Cline
42e0b47a7d fix: better frontmatter errors 2025-10-30 10:56:40 -05:00
oribi
2d5df3ad76 fix: agent model selection priority issue (#3572) 2025-10-30 09:32:39 -05:00
David Hill
f202fa0d89 Theme aware svgs to be copied 2025-10-30 13:01:48 +00:00
David Hill
0abffdb8f8 Icon size update 2025-10-30 12:46:34 +00:00
David Hill
e533d48b51 New assets 2025-10-30 12:36:41 +00:00
David Hill
439372704d Close content menu with escape 2025-10-30 12:19:26 +00:00
David Hill
d7277fd305 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-30 12:16:15 +00:00
GitHub Action
5ae73637d3 ignore: update download stats 2025-10-30 2025-10-30 12:04:36 +00:00
David Hill
bf0cbf2bfa Adding polish 2025-10-30 11:37:00 +00:00
opencode
4b3a841dd9 release: v0.15.29 2025-10-30 06:49:34 +00:00
Aiden Cline
aca32eaa1c fix: tui not showing some errors 2025-10-30 01:41:28 -05:00
Matt Gillard
3ae75d7031 add optional timeout field to mcp config to allow users to use responding servers (#3558)
Co-authored-by: Matt Gillard <matt-github@gillard.biz>
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-30 01:25:24 -05:00
Khang Ha (Kelvin)
4b5e447961 Fix "bufio.Scanner token too long" error by replacing Scanner with Reader in SSE (#3531) 2025-10-30 01:04:06 -05:00
Aiden Cline
7a2b8eae76 tweak: catch err 2025-10-30 00:29:30 -05:00
ElecTwix
d983b9485d fix: add doom loop detection (#3445)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-30 00:13:18 -05:00
GitHub Action
14836de276 ignore: update download stats 2025-10-30 2025-10-30 02:28:13 +00:00
David Hill
e265efec09 Add right click menu to logo 2025-10-30 00:40:24 +00:00
David Hill
5ae00ba567 Brand page 2025-10-30 00:22:49 +00:00
Jay V
a0f032c9b9 ignore: fix email formatting to ensure proper line breaks between message and signature 2025-10-29 19:19:28 -04:00
Jay V
e6132fc6a4 docs: enterprise 2025-10-29 19:07:43 -04:00
Frank
950b608c4d zen: show browser default time 2025-10-29 17:14:28 -04:00
Adam
3210df7428 wip: desktop work 2025-10-29 16:04:34 -05:00
Adam
cdeb82e9ca wip: desktop work 2025-10-29 16:04:34 -05:00
rienkim
a9cae7b335 feat: add positional argument support to slash commands (#3456)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-29 14:54:24 -05:00
Frank
972c0893dd zen: fix unified endpoint for codex 2025-10-29 15:06:37 -04:00
opencode
e5d89ca567 release: v0.15.28 2025-10-29 19:00:56 +00:00
Aiden Cline
4ae70d4b0d fix: parcel watcher issue (#3544) 2025-10-29 13:52:38 -05:00
opencode
935cd7481b release: v0.15.27 2025-10-29 18:41:24 +00:00
Dax Raad
5553efea5e only generate user message summary if no diffs 2025-10-29 14:28:43 -04:00
Adam
0ff73ed8a6 wip: desktop work 2025-10-29 16:59:45 +00:00
opencode
5e792d7ac5 release: v0.15.26 2025-10-29 16:59:45 +00:00
David Hill
4a77e94e3c Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-29 16:16:56 +00:00
David Hill
4c563ea405 Enron update 2025-10-29 16:16:48 +00:00
Aiden Cline
5875257462 ignore: add label 2025-10-29 11:08:46 -05:00
David Hill
9701891e94 testimonial and other polish 2025-10-29 16:02:25 +00:00
opencode
a2ab37c1b6 release: v0.15.25 2025-10-29 16:01:53 +00:00
Dax Raad
4d6e2d8efc autoupgrade latest major only 2025-10-29 11:53:25 -04:00
Aiden Cline
4407d5d96f fix: ensure tool inputs are zod validated 2025-10-29 10:46:57 -05:00
Adam
244945c0e7 fix: desktop error 2025-10-29 10:43:34 -05:00
opencode
c652b2b4e8 release: v0.15.24 2025-10-29 15:38:55 +00:00
David Hill
aabeeb1431 Adding polish 2025-10-29 15:34:45 +00:00
David Hill
0fbedc5e19 Fix form submission 2025-10-29 15:34:39 +00:00
Dax Raad
12782fff14 remove log 2025-10-29 11:27:51 -04:00
Dax Raad
ca463a2346 session diff only include modified files 2025-10-29 11:26:21 -04:00
Aiden Cline
7265cdf817 ignore: rm 2025-10-29 10:19:02 -05:00
David Hill
7baa751351 First pass at adding an enterprise page 2025-10-29 15:16:17 +00:00
Adam
5b86fa9109 wip: desktop work 2025-10-29 07:32:01 -05:00
Adam
aa7e008fe1 wip: desktop work 2025-10-29 07:32:00 -05:00
GitHub Action
792664071c ignore: update download stats 2025-10-29 2025-10-29 12:04:57 +00:00
Aiden Cline
a0541ba57a zen: fix models endpoint to be openai compatible 2025-10-28 22:48:57 -05:00
Aiden Cline
4994bf1b46 ignore: rename type 2025-10-28 22:39:57 -05:00
Tyler Gannon
1e24514d61 add OpenAPI annotations to tui.ts control endpoints (#3519) 2025-10-28 22:39:22 -05:00
opencode
4b1c6300a0 release: v0.15.23 2025-10-29 01:35:27 +00:00
Dax Raad
db3fb9d316 ci: stuff 2025-10-28 21:28:44 -04:00
Dax Raad
cd79676b42 sync 2025-10-28 20:35:18 -04:00
Dax Raad
09e7e0ab70 tag majors 2025-10-28 20:28:30 -04:00
Kevin King
0e60f66604 ignore: python sdk (#2779)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-28 18:32:45 -05:00
Aiden Cline
fc8db6cdf9 fix: ensure timeout param passed to bash tool is positive 2025-10-28 17:32:39 -05:00
kcrommett
5cc37c4ea0 mcp: fix status() to not overwrite connected with failed (#3514) 2025-10-28 16:16:03 -05:00
Adam
46ad456718 wip: desktop work 2025-10-28 15:39:41 -05:00
Haris Gušić
832ffd2303 fix: Use process.stdout.write instead of console.log (#3508) 2025-10-28 15:38:08 -05:00
GitHub Action
b261430880 chore: format code 2025-10-28 20:29:47 +00:00
Adam
545f345848 wip: desktop work 2025-10-28 15:29:16 -05:00
Adam
77ae0b527e wip: desktop work 2025-10-28 15:29:16 -05:00
Adam
c1278109c9 wip: desktop work 2025-10-28 15:29:16 -05:00
Adam
a7a88d01ef wip: desktop work 2025-10-28 15:29:16 -05:00
Adam
4e0ab6b634 wip: desktop work 2025-10-28 15:29:16 -05:00
Adam
d36485b7af wip: desktop work 2025-10-28 15:29:15 -05:00
Adam
1da24f6adb wip: desktop work 2025-10-28 15:29:15 -05:00
Frank
e29dd27632 zen: provider affinity 2025-10-28 15:55:03 -04:00
Aiden Cline
37380e1f94 add --title flag to opencode run (#3507) 2025-10-28 13:32:36 -05:00
Dax Raad
1309ca7a81 ignore 2025-10-28 14:13:47 -04:00
Dax Raad
c1515316f5 core: fix additions and deletions counting in edit tool filediff 2025-10-28 14:08:10 -04:00
Danilo Favato
b66e7b6fce tweak: add experimental chatMaxRetries to config (#2116)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-28 12:09:41 -05:00
oribi
eb398f1951 add OPENCODE_CONFIG_DIR to allow loading a custom config directory (#3504)
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-28 11:50:09 -05:00
Aiden Cline
643c22d21f add catch for mcp tool execution 2025-10-28 10:23:04 -05:00
Aiden Cline
74acd08ead add catch for mcp tool execution 2025-10-28 10:23:03 -05:00
opencode
49ea5aa2ad release: v0.15.20 2025-10-28 15:12:37 +00:00
Aiden Cline
ee1af0fe80 fix: blank version issue 2025-10-28 10:03:53 -05:00
GitHub Action
dfebf40471 ignore: update download stats 2025-10-28 2025-10-28 12:04:31 +00:00
opencode
6af6a1295f release: v0.15.19 2025-10-28 08:12:32 +00:00
Dax Raad
22821744ef feat: add OPENCODE_FAKE_VCS flag for VCS testing and update todo tracking instructions 2025-10-28 02:54:29 -04:00
Aiden Cline
872c9467b2 chore: rm unused import 2025-10-28 00:43:29 -05:00
Dax Raad
d8249f32a8 do not set temperature for claude models 2025-10-28 01:14:25 -04:00
Aiden Cline
982954cc1b feat (acp): mcp server support, file diffs, some default slash commands (/init, /compact), show todos properly (#3490)
The mcp server support does not mean acp didn't allow u to use mcp servers previously, it means that now you can connect new servers via ACP instead of relying on the opencode defined ones
2025-10-28 00:08:30 -05:00
Frank
4caa458232 acp: fix type error 2025-10-27 21:40:08 -04:00
Frank
6fe8e3973c zen: support 1M claude context 2025-10-27 21:36:10 -04:00
Frank
7816901713 wip: zen doc 2025-10-27 21:25:56 -04:00
Frank
71abca9571 wip: zen 2025-10-27 19:26:28 -04:00
kcrommett
7216a8c86d fix: editor paste functionality for text attachments (#3489) 2025-10-27 17:51:33 -05:00
Jay V
e3e16e58c5 docs: edit 2025-10-27 18:16:48 -04:00
Dax Raad
a2951a2702 Remove typecheck script from desktop package 2025-10-27 18:03:32 -04:00
Jay V
55453dc606 Add missing dependencies for desktop package 2025-10-27 17:49:31 -04:00
Jay V
198d7f7e5f Merge branch 'doc-acp' into dev 2025-10-27 17:49:24 -04:00
Jay V
e3e9fd7aa8 docs: edit 2025-10-27 17:48:17 -04:00
Aiden Cline
3c56dbcf58 chore: rm comment 2025-10-27 16:15:13 -05:00
Aiden Cline
ee07ed2dc4 chore: delete unused file 2025-10-27 15:44:12 -05:00
Adam
485e4520e7 wip: desktop work 2025-10-27 15:37:07 -05:00
Adam
fc115ea367 wip: desktop work 2025-10-27 15:37:07 -05:00
Adam
d03b79e61e wip: desktop work 2025-10-27 15:37:06 -05:00
Adam
0acae8211a wip: desktop work 2025-10-27 15:37:06 -05:00
Aiden Cline
0af4505756 fix: litellm error tool= param must be specified 2025-10-27 14:03:42 -05:00
Aurelien Ribon
a606e1d2ec fix: dont set reasoning effort to medium for gpt-5-pro (#3474) 2025-10-27 10:50:57 -05:00
Aiden Cline
0e65700183 update sdk 2025-10-27 10:47:04 -05:00
Aiden Cline
e6301ca5d5 tweak: rename event 2025-10-27 10:42:47 -05:00
Bernat Pericàs
b562863fcc feat: add session.started event that triggers when a new session is created (#3413) 2025-10-27 07:18:23 -05:00
GitHub Action
db85f01eff ignore: update download stats 2025-10-27 2025-10-27 12:04:50 +00:00
Aiden Cline
1a6fd018f6 Revert "fix: Explicitly exit CLI to prevent hanging subprocesses (#3083)"
This reverts commit a9624c0fff.
2025-10-27 01:30:13 -05:00
Aiden Cline
fdb5bae3c6 docs: acp 2025-10-27 00:56:00 -05:00
Haris Gušić
a9624c0fff fix: Explicitly exit CLI to prevent hanging subprocesses (#3083)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-27 00:03:10 -05:00
Aiden Cline
316d4c9197 wip 2025-10-26 23:49:56 -05:00
Denys Rybalka
5e886c35d5 chore: use stable URLs in PKGBUILD (#3448) 2025-10-26 19:50:45 -05:00
Aiden Cline
5162268f9d docs: update agent frontmatter permission example 2025-10-26 15:04:48 -05: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
Dan McGuirk
3241f6b8bb docs: fix typos (#3454) 2025-10-26 14:37:25 -05:00
GitHub Action
2c792f17e6 ignore: update download stats 2025-10-26 2025-10-26 12:04:22 +00:00
Joscha Götzer
7d0c6860cd fix: make build script work cross-platform (#3430)
Co-authored-by: JosXa <info@josxa.dev>
2025-10-26 01:40:17 -05:00
Aiden Cline
c70e393c81 Remove claude-haiku-4.5 from default priority for GitHub Copilot session title generation 2025-10-26 01:21:34 -05:00
opencode
20963c4186 release: v0.15.18 2025-10-26 03:49:21 +00:00
Aiden Cline
0a778a2789 make title gen more reliable 2025-10-25 22:14:29 -05:00
Aiden Cline
42c1e61bf4 fix: $ invocation not .quiet() (#3449) 2025-10-25 16:27:09 -05:00
Dax Raad
795b845782 update anthropic prompt 2025-10-25 17:26:27 -04:00
Mohammad Alhashemi
2e434a459a feat: add noReply parameter (#3433)
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-25 14:56:54 -05:00
Paulo Edgar Castro
ae62bc8b1f fix: timeout param that allows user to disable provider timeout (#3443) 2025-10-25 12:08:27 -05:00
GitHub Action
187a5fe301 ignore: update download stats 2025-10-25 2025-10-25 12:04:18 +00:00
opencode
fc2afdc92f release: v0.15.17 2025-10-25 06:45:23 +00:00
Aiden Cline
fe5e7cfd1b ignore: rm change 2025-10-25 01:35:43 -05:00
Aiden Cline
98d51dde6a acp: slash commands, agents, permissions, @ references, code cleanup (#3403)
Co-authored-by: yetone <yetoneful@gmail.com>
2025-10-25 01:32:46 -05:00
Aiden Cline
5fec5ff424 fix: bedrock reasoning 2025-10-24 17:35:08 -05:00
Adam
fea6a357bc wip: desktop work 2025-10-24 16:04:44 -05:00
Adam
6b82153263 wip: desktop work 2025-10-24 15:51:31 -05:00
Adam
fa8e714d69 wip: desktop work 2025-10-24 15:43:47 -05:00
Adam
90515bc8c3 wip: desktop work 2025-10-24 15:02:31 -05:00
Adam
e34042e17a wip: accordion css not going to keep me down 2025-10-24 15:01:28 -05:00
Dax Raad
6ff0ce8bc5 ignore: improve session timeline debugging and message display functionality 2025-10-24 15:45:37 -04:00
Aiden Cline
e88b659545 make plan agent whitelist more conservative (#3424) 2025-10-24 14:40:36 -05:00
Dax Raad
74048ece2d ignore: fix new session message loading with retry logic to handle server processing delays 2025-10-24 15:35:53 -04:00
Dax Raad
6646f7264a ignore: highlight active session in sidebar to improve visual feedback 2025-10-24 15:27:20 -04:00
Dax Raad
18e549a474 ignore: fix session activation after creation to ensure proper state management 2025-10-24 15:24:17 -04:00
Adam
82249754e7 fix: pierre dep 2025-10-24 13:51:24 -05:00
Aiden Cline
5a0228897b ignore: reword 2025-10-24 13:46:47 -05:00
Adam
e2920c06a3 wip: desktop work 2025-10-24 13:01:22 -05:00
Dax Raad
4da3aa2eb2 add missing dep 2025-10-24 13:43:33 -04:00
Adam
efe7f01f41 wip: desktop work 2025-10-24 12:38:00 -05:00
Adam
9ae3d74adc wip: desktop work 2025-10-24 12:32:02 -05:00
Adam
477b6c584d wip: desktop work 2025-10-24 12:16:33 -05:00
Adam
86447b5764 wip: desktop work 2025-10-24 12:16:33 -05:00
Adam
fe8f6d7a3e wip: desktop work 2025-10-24 12:16:33 -05:00
Adam
59b5f53509 wip: desktop work 2025-10-24 12:16:32 -05:00
Adam
3eb2db98ed wip: desktop work 2025-10-24 12:16:32 -05:00
Adam
35dec0649d wip: desktop work 2025-10-24 12:16:32 -05:00
Adam
78a7f79143 wip: ui package demo page 2025-10-24 12:16:32 -05:00
Aiden Cline
707ed72381 adjust edit tool multiple matches error wording (#3418) 2025-10-24 12:14:49 -05:00
Dax Raad
21880e199d mroe summary tweaks 2025-10-24 12:37:23 -04:00
Dax Raad
736a85d427 track finish reason 2025-10-24 12:23:24 -04:00
Dax Raad
fb40dc6b20 generate user message title and body 2025-10-24 11:50:42 -04:00
Hieu Nguyen
483fcdaddb feat: support lua lsp (#3402) 2025-10-24 10:37:11 -05:00
Andrew Pashynnyk
883b71ac36 fix: respect local config for autoupdate settings (#3408)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-24 09:50:09 -05:00
Dax Raad
3e574c71cb potentially fix fetch failed timeout errors 2025-10-24 09:46:28 -04:00
Dax Raad
4cab66da6c test cleanup 2025-10-24 09:29:38 -04:00
Dax Raad
7003efd2da fix summary 2025-10-24 09:24:58 -04:00
Dax Raad
06fe87b361 fix failing migration 2025-10-24 09:20:15 -04:00
GitHub Action
944fda45e6 ignore: update download stats 2025-10-24 2025-10-24 12:05:02 +00:00
opencode
343471b98d release: v0.15.16 2025-10-24 04:52:27 +00:00
Dax Raad
56528493dc codex does not have reasoning effort set 2025-10-24 00:29:34 -04:00
opencode
e66156c86e release: v0.15.15 2025-10-24 03:51:17 +00:00
Dax Raad
8b9b8ca15b update codex prompt 2025-10-23 23:36:32 -04:00
Haris Gušić
50cc641288 fix: Opencode fails with ENOENT posix_spawn '/usr/bin/rg' (#3396) 2025-10-23 18:05:01 -05:00
Bernat Pericàs
4c90bf3e07 refactor: whitelist some safe bash tools in Plan agent (#3288)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-23 17:11:08 -05:00
Aiden Cline
4216c1c2a9 adjust changelog generation 2025-10-23 16:16:11 -05:00
Dax Raad
4bd7646ccb regen sdk 2025-10-23 16:33:00 -04:00
Dax Raad
cee7106054 session summaries in data 2025-10-23 16:28:20 -04:00
Dax Raad
f4dfae0bb0 ignore: diff stuff 2025-10-23 16:04:58 -04:00
Aiden Cline
9b5fe10df6 add flag wildcard parsing support for bash tool (#3390) 2025-10-23 13:35:09 -05:00
Aiden Cline
b5f336c0ea test: rm flaky test 2025-10-23 12:52:08 -05:00
Aiden Cline
913c3ae799 tweak: split out title before newline 2025-10-23 12:44:43 -05:00
Thierry Delafontaine
a68111ca77 fix: move zod-to-json-schema to dependencies (#3387) 2025-10-23 12:16:03 -05:00
Aiden Cline
5f8a3a574e docs: fix numbers 2025-10-23 11:53:21 -05:00
Aiden Cline
d69e8e5528 docs: tweak google vertex 2025-10-23 11:49:53 -05:00
Yuku Kotani
e5df43f9b7 docs: Add Google Vertex AI provider documentation (#3349) 2025-10-23 11:44:06 -05:00
Andrew Pashynnyk
3c7b229d8b fix: allow tool.execute.after hook to modify MCP tool output (#3381) 2025-10-23 10:38:55 -05:00
Mani Sundararajan
9ab4414aef docs: rm winget as a recommended installation method under windows (#3382)
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-23 09:25:42 -05:00
GitHub Action
c2cf6fb904 ignore: update download stats 2025-10-23 2025-10-23 12:04:55 +00:00
opencode
5e69bdbef4 release: v0.15.14 2025-10-23 05:55:28 +00:00
Yesh Yendamuri
f81e28c673 feat: add model management to ACP sessions (#3358) 2025-10-23 00:43:28 -05:00
Aiden Cline
61899d4fa7 regen sdk 2025-10-22 23:00:03 -05:00
Aiden Cline
7c7ebb0a9d feat: retry parts (#3369) 2025-10-22 18:31:36 -05:00
Dax Raad
9def7cff2d summary tweaks 2025-10-22 19:03:08 -04:00
geril07
c2ef930d2a add option to allow agent switches to not change model (#3356) 2025-10-22 17:51:46 -05:00
Adam
3c3d2f5a6e wip: desktop work 2025-10-22 17:51:16 -05:00
Dax Raad
f435049d36 sync 2025-10-22 18:49:57 -04:00
Dax Raad
1f80de2fa6 core: add experimental turn summarization to compact conversation history 2025-10-22 18:33:46 -04:00
Adam
f194a784b0 wip: desktop work 2025-10-22 17:33:08 -05:00
Adam
89b703c387 wip: desktop work 2025-10-22 17:31:49 -05:00
Aiden Cline
eff12cb484 vscode: eslint fix 2025-10-22 17:17:47 -05:00
Aiden Cline
593e89b4f4 vscode: fix script 2025-10-22 17:11:51 -05:00
Aiden Cline
4d3f703715 vscode: adjust tsconfig 2025-10-22 16:43:06 -05:00
Aiden Cline
123dcc10cc ignore: cleanup bun.lock w/ bun i 2025-10-22 15:34:41 -05:00
Dax Raad
28d8af48a0 add parent id to assistant messages 2025-10-22 15:01:13 -04:00
Kyle Galbraith
10ff6e9830 docs: fix typo in SDK documentation (#3355) 2025-10-22 11:43:28 -05:00
theVinchi
a7b43d82ab add Amazon Nova models to us-* prefix requirement list (#3357) 2025-10-22 11:41:38 -05:00
Aiden Cline
9005fd31ed tweak 2025-10-22 11:29:10 -05:00
Aiden Cline
d2bded23c3 tweak 2025-10-22 11:28:06 -05:00
Aiden Cline
c0cbc37f85 tweak: model priority 2025-10-22 11:12:32 -05:00
Aiden Cline
9df61055e2 change default title model 2025-10-22 10:41:08 -05:00
GitHub Action
074136b1e8 ignore: update download stats 2025-10-22 2025-10-22 12:04:58 +00:00
Affaan Mustafa
8db5951287 feat: Improve editor detection with auto-discovery and better error messages (#3155)
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-21 20:49:42 -05:00
Haris Gušić
97c7e941eb fix: opencode run shouldn't print to stderr (#3341) 2025-10-21 19:53:09 -05:00
Aiden Cline
354f5c3281 ignore: fix acp test (#3339) 2025-10-21 15:27:59 -05:00
opencode
833706cda4 release: v0.15.13 2025-10-21 20:24:20 +00:00
Aiden Cline
2a951cea38 ignore: reword 2025-10-21 14:43:34 -05:00
Dax Raad
d9a8d2032a fix sourcemapping so errors show proper stack trace 2025-10-21 15:32:24 -04:00
Dax Raad
d7cdabe8b7 refactor acp args 2025-10-21 15:24:09 -04:00
Aiden Cline
e7c74d13cc ignore: reword contributing.md 2025-10-21 14:12:33 -05:00
opencode
6ac5a447c2 release: v0.15.12 2025-10-21 17:31:56 +00:00
Aiden Cline
cb4670e6de ignore: add label 2025-10-21 11:12:52 -05:00
Aiden Cline
ca0f3902b7 fix: provider option transforms (#3331) 2025-10-21 11:08:21 -05:00
Dax Raad
e9996342a7 core: provide line-level statistics in file diffs to help users understand the scale of changes 2025-10-21 11:54:41 -04:00
opencode
a84826061d release: v0.15.11 2025-10-21 15:04:22 +00:00
Dax Raad
7a20f77ebf core: improve error handling with console output for debugging 2025-10-21 10:55:10 -04:00
Giuseppe Rota
731122bf99 fix(acp): use newer acp package (#3317) 2025-10-21 09:35:09 -05:00
GitHub Action
f9036734eb ignore: update download stats 2025-10-21 2025-10-21 12:06:20 +00:00
kcrommett
a99bd3aa2c tweak: adjust file api to encode images (#3292) 2025-10-21 00:52:39 -05:00
zWing
96efede846 fix: openai options when using @ai-sdk/azure (#3315) 2025-10-20 23:30:13 -05:00
Cheol Kang
2f66055d25 feat: add -f/--file flag to opencode run command (#3295)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-20 23:25:54 -05:00
opencode
6995dab1dc release: v0.15.10 2025-10-20 22:21:03 +00:00
Dax Raad
a0a09f421c core: add session diff API to show file changes between snapshots 2025-10-20 17:59:26 -04:00
Joe Schmitt
f3f21194ae feat: Add ACP (Agent Client Protocol) support (#2947)
Co-authored-by: opencode-bot <devnull@opencode.local>
Co-authored-by: Dax Raad <d@ironbay.co>
Co-authored-by: GitHub Action <action@github.com>
2025-10-20 16:55:22 -05:00
opencode
835fa9fb81 release: v0.15.9 2025-10-20 21:16:57 +00:00
Aiden Cline
96ae6d51aa ignore: link labels 2025-10-20 16:02:23 -05:00
Frank
075ef0fa34 wip: share 2025-10-20 16:17:51 -04:00
Aiden Cline
89b72e4442 fix: bash tool permission merges (#3302) 2025-10-20 15:15:14 -05:00
Frank
7a7b3c6315 wip: zen 2025-10-20 13:22:43 -04:00
Rui Ferrão
3d48c14d29 docs: clarify the effects of the subtask command option with primary … (#3299) 2025-10-20 12:16:09 -05:00
GitHub Action
bfa79ed44b ignore: update download stats 2025-10-20 2025-10-20 12:04:59 +00:00
Hieu Nguyen
4d8268c818 feat: support astro lsp (#3242) 2025-10-19 22:49:06 -05:00
Squibid
95d413bec6 theme: add mellow theme (#3198) 2025-10-19 22:34:04 -05:00
Joscha Götzer
1cb5a70382 feat(theme): Add Night Owl theme (#3269) 2025-10-19 22:30:04 -05:00
Walter
6adc16ca8a fix(tui): Allow modals to handle ESC key before force closing (#3279) 2025-10-19 22:16:54 -05:00
Zeldris
10ebe9ae09 docs: add scoop & winget to readme (#3215) 2025-10-19 21:50:51 -05:00
Aiden Cline
43a07c6aca hide invalid option 2025-10-19 20:51:33 -05:00
Aiden Cline
5d3a88f34f fix: snapshot undo bug (#3290) 2025-10-19 18:42:34 -05:00
Ivan Uhalin
e47edfffe4 docs: fix Grep by Vercel link in documentation (#3280) 2025-10-19 11:51:57 -05:00
GitHub Action
141097fc73 ignore: update download stats 2025-10-19 2025-10-19 12:04:24 +00:00
Aiden Cline
c8898463a7 ignore: adjust template 2025-10-18 23:45:01 -05:00
Aiden Cline
1c7bd6365e replace all $ARGUMENTS (#3276) 2025-10-18 23:37:17 -05:00
Aiden Cline
290d15a80f ignore: add version to bug template 2025-10-18 14:56:06 -05:00
Aiden Cline
233a018fe5 docs: contributing.md (#3248)
Co-authored-by: Jay <air@live.ca>
2025-10-18 14:10:14 -05:00
opencode
d69beec087 release: v0.15.8 2025-10-18 18:36:52 +00:00
Aiden Cline
1f869bccc1 make compact interruptable (#3251) 2025-10-18 11:49:29 -05:00
GitHub Action
8da8c9e78c ignore: update download stats 2025-10-18 2025-10-18 12:04:14 +00:00
Adam
335d833655 wip: desktop work 2025-10-17 15:22:11 -05:00
Haris Gušić
1dba01e057 Improve typo directory error (#3247) 2025-10-17 14:34:37 -05:00
Jay V
a3de43f3de ignore: clarify that workspaces are free for teams during beta 2025-10-17 15:19:19 -04:00
Jay V
22ad4f5365 ignore: help users discover that teams feature is free during beta 2025-10-17 14:33:21 -04:00
Jay V
5bfbec60b5 docs: clarify team collaboration features and pricing 2025-10-17 13:58:10 -04:00
Adam
cc18b58ff9 wip: desktop work 2025-10-17 12:07:58 -05:00
Adam
887a819f24 wip: desktop work 2025-10-17 12:06:36 -05:00
mgrachten
fe8b3a2515 set 755 permissions (#3237) 2025-10-17 10:42:42 -05:00
GitHub Action
86079353ef ignore: update download stats 2025-10-17 2025-10-17 12:04:43 +00:00
Frank
b7c8690414 wip: zen 2025-10-17 02:23:45 -04:00
Frank
c25b9bf65a wip: zen 2025-10-17 01:15:25 -04:00
Matt Gillard
ddb2e6957c added AU inference for bedrock haiku 4.5 (#3206)
Co-authored-by: Matt Gillard <matt-github@gillard.biz>
2025-10-16 23:48:41 -05:00
Frank
a590b32a10 wip: zen 2025-10-17 00:26:00 -04:00
Frank
5f7bba11fd wip: zen 2025-10-16 23:43:49 -04:00
Frank
4663ea5faa wip: zen 2025-10-16 23:19:25 -04:00
Frank
dd581e8577 wip: zen 2025-10-17 03:17:07 +00:00
opencode
bad01d76de release: v0.15.7 2025-10-17 03:17:07 +00:00
Aiden Cline
d69366b00c Revert "try to avoid persisting empty thinking/text blocks"
This reverts commit d8a15e7bc9.
2025-10-16 22:04:55 -05:00
Frank
1947580b08 wip: zen 2025-10-16 22:28:34 -04:00
Frank
ca9b13e8a2 wip: zen 2025-10-16 22:28:09 -04:00
Hieu Nguyen
92d9a0ec61 feat: deno lsp (#3210)
Co-authored-by: hiunguynx <hieu.nm1@teko.vn>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2025-10-16 18:08:36 -05:00
opencode
2be9ed2590 release: v0.15.6 2025-10-16 23:02:59 +00:00
Aiden Cline
25861f6d0d sync 2025-10-16 17:49:02 -05:00
Aiden Cline
b24f4e3d2c fix: timeout option (#3229) 2025-10-16 17:47:41 -05:00
Frank
729ad1cb75 wip: zen 2025-10-16 17:50:32 -04:00
Haris Gušić
fb4105a46c docs: fix Ctrl+K styling in documentation (#3021) 2025-10-16 15:30:28 -05:00
Frank
7abc3e9794 ci: fix 2025-10-16 16:04:25 -04:00
Frank
88fef05923 wip: zen 2025-10-16 15:58:51 -04:00
GitHub Action
8552f3555e chore: format code 2025-10-16 19:55:30 +00:00
Adam
47d9e01765 wip: css/ui and desktop work 2025-10-16 14:53:44 -05:00
Aiden Cline
fc18fc8a08 fix: bash hangs & orphans (#3225) 2025-10-16 14:39:36 -05:00
Dax Raad
7474788778 ci: fix 2025-10-16 15:36:12 -04:00
GitHub Action
26d0d20e4d chore: format code 2025-10-16 19:08:21 +00:00
Adam
20229f147b wip: css/ui and desktop work 2025-10-16 14:07:37 -05:00
Aiden Cline
149cb6a9ec fix: connection closed 2025-10-16 14:00:07 -05:00
Frank
7ec5e49e19 zen: support stripe link 2025-10-16 14:59:46 -04:00
Aiden Cline
1c1380d3c8 adjust action 2025-10-16 13:15:27 -05:00
Adam
10680f0cf0 wip: css/ui work 2025-10-16 18:06:59 +00:00
opencode
2517b22552 release: v0.15.5 2025-10-16 18:06:59 +00:00
Aiden Cline
64617c113a ignore: tweak permissions 2025-10-16 12:48:39 -05:00
Aiden Cline
860c6338fc fix: github action (#3223) 2025-10-16 12:33:33 -05:00
Aiden Cline
4a7551e87b ci: fix changelog generation 2025-10-16 11:29:58 -05:00
Moisès Macià
285cc4b9fd docs: fix misspelled word (#3211) 2025-10-16 10:04:11 -05:00
Dax Raad
d8a15e7bc9 try to avoid persisting empty thinking/text blocks 2025-10-16 10:54:10 -04:00
opencode
542b9fa342 release: v0.15.4 2025-10-16 14:53:32 +00:00
GitHub Action
9159afb54b ignore: update download stats 2025-10-16 2025-10-16 12:04:48 +00:00
seridescent
536934548a fix: use ai-sdk openai chat language model instead of completion language model (#3204) 2025-10-16 00:59:49 -05:00
Aiden Cline
1c59530115 Revert "fix: Text content blocks must contain non-whitespace text" (#3200) 2025-10-15 20:02:17 -05:00
Dax Raad
ab8471a7ff core: filter out alpha status models from provider list 2025-10-15 20:12:37 -04:00
Dax Raad
4c674b075b ci: stuff 2025-10-15 19:59:46 -04:00
Dax Raad
ba8a4c5e9f snapshot publish everything 2025-10-15 19:53:14 -04:00
Dax Raad
790fe72f39 sync 2025-10-15 19:48:57 -04:00
Aiden Cline
2d2d4641cb ignore: update readme 2025-10-15 16:06:11 -05:00
Aiden Cline
d3caa55c10 Revert "fix: spawns hanging (#3192)"
This reverts commit 278ffb9a4e.
2025-10-15 15:20:14 -05:00
Fabian Kukuck
ca534a36e5 feat: make compact feature use streaming API (#3079)
Co-authored-by: fku <fabian.kukuck@ipt.ch>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-15 13:44:16 -05:00
Aiden Cline
278ffb9a4e fix: spawns hanging (#3192) 2025-10-15 13:01:54 -05:00
Aiden Cline
b2ff4be4c6 fix: Text content blocks must contain non-whitespace text (#3194) 2025-10-15 13:00:26 -05:00
Frank
2267ce2511 zen: support haiku 4.5 2025-10-15 13:53:00 -04:00
Matt Gillard
e29d1d339c updated bedrock provider for the new Australian sonnet 4.5 cross region inference (#3050)
Co-authored-by: Matt Gillard <matt-github@gillard.biz>
2025-10-15 11:09:22 -05:00
Haris Gušić
92bc78a2d3 Improve http error codes (#3186) 2025-10-15 10:53:09 -05:00
GitHub Action
1ba5535460 ignore: update download stats 2025-10-15 2025-10-15 12:04:51 +00:00
Frank
7fa9a73bf0 wip: zen 2025-10-15 02:55:01 -04:00
Aiden Cline
b3fcc9a81d tweak: consolidate session lock logic (#3185) 2025-10-15 01:12:51 -05:00
Frank
e8751d976e wip: zen 2025-10-15 01:07:57 -04:00
Frank
43c9702aa7 wip: zen 2025-10-15 00:02:38 -04:00
Frank
ae609be710 wip: zen 2025-10-14 23:45:06 -04:00
Frank
86ee36f562 wip: zen 2025-10-14 23:38:21 -04:00
Frank
0657f09139 wip: zen 2025-10-14 23:04:41 -04:00
Frank
182949dee4 wip: zen 2025-10-14 23:03:13 -04:00
Dax Raad
83655a3b09 ci: run typecheck before tests to catch type errors early 2025-10-14 18:36:03 -04:00
Dax Raad
62e5f4b154 try tsgo 2025-10-14 18:30:32 -04:00
Jay V
ea926f0e1a ignore: prompt 2025-10-14 17:45:10 -04:00
Jay V
6191232d5f web: colocate copy button styles with components that use them 2025-10-14 17:41:17 -04:00
Frank
95f4ce86d6 ci: fix 2025-10-14 17:22:29 -04:00
Frank
5999aefde3 wip: zen 2025-10-14 17:18:39 -04:00
Frank
babe3a0f40 wip: zen 2025-10-14 17:13:21 -04:00
Frank
29b95dee53 wip: zen 2025-10-14 17:06:49 -04:00
Frank
ef9a1e911e wip: zen 2025-10-14 17:06:49 -04:00
Jay V
7eddaa806d docs: improve MCP server configuration guidance with examples and caveats 2025-10-14 16:43:59 -04:00
Dax Raad
d07e79e6ad ci: channels 2025-10-14 15:09:18 -04:00
Dax Raad
f17a7cde8d sync 2025-10-14 14:57:34 -04:00
GitHub Action
6d446c2a03 chore: format code 2025-10-14 18:56:54 +00:00
Dax Raad
61f6091de1 ci: test 2025-10-14 14:56:21 -04:00
Dax Raad
289783f627 ci: version stuff 2025-10-14 14:52:05 -04:00
Dax Raad
4c464cf4c0 ci: fix 2025-10-14 18:44:22 +00:00
opencode
83be5b0171 release: v0.15.3 2025-10-14 18:44:21 +00:00
Dax Raad
0c022ef39d ci: stuff 2025-10-14 14:35:04 -04:00
Aiden Cline
717b544633 fix: false positive package manager detection in upgrade (#3181) 2025-10-14 13:18:40 -05:00
Frank
c1a420717a ci: fix 2025-10-14 13:58:54 -04:00
Frank
42c2ffd842 wip: zen 2025-10-14 13:52:30 -04:00
GitHub Action
5192c51843 chore: format code 2025-10-14 17:08:18 +00:00
Adam
96d7ccea48 wip: css/ui work 2025-10-14 12:07:45 -05:00
Adam
49e859cfd6 wip: css/ui work 2025-10-14 12:06:18 -05:00
Adam
6c57a69af4 wip: desktop work 2025-10-14 12:06:17 -05:00
Netanel Draiman
4d019430e2 feat(cli): add session option to attach command (#3167) 2025-10-14 11:04:32 -05:00
Adam
37e6c8342f wip: css and ui packages 2025-10-14 07:16:24 -05:00
Adam
c04e892991 wip: desktop work 2025-10-14 07:15:08 -05:00
Adam
bb82d43094 wip: desktop work 2025-10-14 07:15:08 -05:00
GitHub Action
2893b6e3a5 ignore: update download stats 2025-10-14 2025-10-14 12:04:50 +00:00
Dax
54c3361be7 feat: use realtime events for live tool call updates in Slack (#3163) 2025-10-14 03:13:48 -04:00
Dax Raad
c50cf21f18 fix: update tsconfig for Slack package 2025-10-14 02:55:21 -04:00
Dax Raad
cb73e2d9e1 fix: export trimDiff function from edit tool 2025-10-14 02:55:02 -04:00
Dax Raad
48057c2c21 fix: resolve TypeScript errors in SDK and Slack package 2025-10-14 02:54:37 -04:00
Dax Raad
1923ddab6e feat: add Slack integration package with Bolt framework 2025-10-14 02:53:55 -04:00
Dax Raad
b8249cde4b core: improve dependency management and error handling for more reliable builds 2025-10-14 01:33:25 -04:00
Dax Raad
19b3f3d7ce core: standardize dependency versions for better reliability
Ensures consistent versions across packages by using workspace catalog for
tailwindcss and tsconfig dependencies, reducing potential conflicts and
installation issues.
2025-10-14 01:27:17 -04:00
Dax Raad
e5e05d390d core: reduce dependency conflicts by standardizing package versions through catalog
This eliminates duplicate package versions that were causing build issues and
inconsistent behavior across the monorepo. Dependencies now resolve to single
versions through the workspace catalog, making installs faster and more reliable.
2025-10-14 01:23:54 -04:00
opencode
38ad6707cf release: v0.15.2 2025-10-14 04:56:00 +00:00
Alberto Fanton
7ef246f98f fix: disable GPG signing in snapshot tests (#3102) 2025-10-13 23:40:41 -05:00
Aiden Cline
b91582d68a fix: config dir overrides (#3160) 2025-10-13 23:25:53 -05:00
Aiden Cline
682d30bd12 fix: custom model (#3156) 2025-10-13 19:58:19 -05:00
pancake
4d68ee5d2c fix: clang formatter name (#3042)
Co-authored-by: pancake <pancake@nopcode.org>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-10-13 19:55:18 -05:00
Haris Gušić
dbe9fd00b7 fix: make shell more robust (#3051) 2025-10-13 17:37:35 -05:00
maple
cd13a8524e docs: typo in custom-tools.mdx (#3152) 2025-10-13 17:19:20 -05:00
Aiden Cline
59765e0157 fix: typecheck (#3149) 2025-10-13 14:51:12 -05:00
AB
d0519be0d0 fix: add useCompletionUrls option to fix certain azure setups (#2528)
Co-authored-by: andreas.blass <andreas.blass@outlook.com>
Co-authored-by: GitHub Action <action@github.com>
2025-10-13 14:16:21 -05:00
Tommy D. Rossi
066e4f064d tweak: include stack trace in server error responses (#3134) 2025-10-13 14:10:35 -05:00
opencode
f81c469f17 release: v0.15.1 2025-10-13 18:14:52 +00:00
Dax Raad
a398013ecb fix: disable workspace symbol lookup to prevent LSP performance issues 2025-10-13 14:05:54 -04:00
Aiden Cline
53d9717d90 fix: pass options to compact (#3136) 2025-10-13 10:42:39 -05:00
Aiden Cline
5885b691b9 docs: update recommended models list (#3121) 2025-10-12 21:35:31 -05:00
Aiden Cline
fd70b9b057 fix: adjust list tool prompt to handle cwd better (#3115) 2025-10-12 16:48:03 -05:00
Ravshan Samandarov
de13ccb757 docs: Update README.md (#3100) 2025-10-12 16:23:25 -04:00
Jay
7e1abb7bbf docs: Fix formatting of num_ctx in providers.mdx 2025-10-12 16:01:32 -04:00
Aiden Cline
83afcb9c42 docs: ollama num_ctx (#3111) 2025-10-12 10:40:51 -05:00
GitHub Action
afb406c5ff ignore: update download stats 2025-10-12 2025-10-12 12:04:09 +00:00
OpeOginni
36cf9b9922 fix: add timeout to fetch models.dev refresh request (#3059) 2025-10-12 00:20:22 -05:00
opencode
0d21164255 release: v0.15.0 2025-10-12 05:12:15 +00:00
Dax Raad
3ad6f84adb ci: centralize bun setup to reduce duplication and improve caching 2025-10-12 00:46:37 -04:00
Dax Raad
24a5b16af8 ci: tweak 2025-10-12 00:40:59 -04:00
Tommy D. Rossi
b4171aa8e8 fix: rg hanging forever when run in bash, waiting for stdin (#3103)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-10-11 23:24:48 -05:00
Dax Raad
d7a79733ea ci: re-enable aur 2025-10-12 00:22:16 -04:00
Frank
34e5b9bdb0 wip: zen 2025-10-11 16:17:39 -04:00
Frank
d32ec9bd52 ci: fix 2025-10-11 15:08:45 -04:00
Frank
89fcfcc50b wip: zen 2025-10-11 15:07:06 -04:00
Frank
9a6fd6a5ee wip: zen 2025-10-11 14:48:34 -04:00
Frank
f144a0384d ci: fix 2025-10-11 14:41:52 -04:00
Frank
a67920a25e wip: zen 2025-10-11 14:38:53 -04:00
Frank
67f894e5d0 Bump sst to latest 2025-10-11 14:38:45 -04:00
Frank
fc1eda5c77 wip: zen 2025-10-11 10:51:17 -04:00
Frank
371fddc820 wip: zen 2025-10-11 09:29:26 -04:00
Frank
8e89c38480 wip: zen 2025-10-11 08:27:32 -04:00
Frank
b732b4caeb wip: zen 2025-10-11 08:27:32 -04:00
Frank
1940d1cf87 wip: zen 2025-10-11 08:27:32 -04:00
GitHub Action
1f0ed24402 ignore: update download stats 2025-10-11 2025-10-11 12:04:02 +00:00
Frank
133da0f448 wip: zen refactor selector 2025-10-11 07:54:57 -04:00
Frank
f93e1e5c92 wip: zen fix drop down style 2025-10-11 07:15:19 -04:00
Frank
ae4af54c7d wip: zen fix template 2025-10-11 06:33:47 -04:00
Dax Raad
9d30bc692c ci: fixes 2025-10-11 00:24:35 -04:00
Dax Raad
44b63dc259 ci: stuff 2025-10-11 00:06:46 -04:00
Dax Raad
de2b4f6538 ci: fix 2025-10-10 23:43:32 -04:00
Frank
b6b82aa847 wip: zen 2025-10-10 21:26:16 -04:00
Frank
2d35b78333 Merge branch 'console-workspaces' into dev 2025-10-10 21:24:05 -04:00
Frank
c7dfbbeed0 wip: zen 2025-10-10 21:21:55 -04:00
Frank
b946fd21b1 wip: zen 2025-10-10 20:32:28 -04:00
Frank
daa0ca40f2 wip: zen 2025-10-10 20:30:13 -04:00
Frank
5b27130d60 wip: zen 2025-10-10 20:16:44 -04:00
Frank
ee1eb35269 wip: zen 2025-10-10 20:02:17 -04:00
Frank
4dda7cc6a4 wip: zen 2025-10-10 19:56:40 -04:00
Frank
cc590364e9 wip: zen 2025-10-10 19:49:59 -04:00
Frank
f14cd4a3db wip: zen 2025-10-10 19:39:01 -04:00
Dax Raad
07645e0705 ci: fixes 2025-10-10 18:17:10 -04:00
Dax Raad
f053862018 ci: fix 2025-10-10 18:11:19 -04:00
Dax Raad
69127aeaa0 ci: stuff 2025-10-10 18:04:08 -04:00
Dax Raad
847455383d ci: stuff 2025-10-10 17:56:33 -04:00
Dax Raad
9da95cb805 upgrade to bun 1.3.0 2025-10-10 17:53:32 -04:00
Frank
48008f91ac wip: zen 2025-10-10 16:42:27 -04:00
Frank
d8b3aa9382 wip: zen 2025-10-10 16:34:07 -04:00
Frank
ea9b5b8d76 wip: zen 2025-10-10 16:04:06 -04:00
Frank
4227b89ebc wip: zen 2025-10-10 14:54:49 -04:00
Frank
ee846235f2 wip: zen 2025-10-10 14:19:06 -04:00
Frank
9463ce8006 wip: zen 2025-10-10 14:11:48 -04:00
Frank
756fb61691 wip: zen 2025-10-10 13:52:54 -04:00
Frank
94d0a3d888 wip: zen style members 2025-10-10 13:48:56 -04:00
Frank
d83af721a6 wip: zen style api keys 2025-10-10 13:45:06 -04:00
Frank
0bc00bef32 wip: zen 2025-10-10 13:26:39 -04:00
Frank
98c13a965b wip: zen 2025-10-10 13:21:51 -04:00
Frank
310065bd0a wip: zen 2025-10-10 12:46:42 -04:00
Rustafarian Dev
34ec6cc978 fix: perl6 file extension (#3066) 2025-10-10 11:28:49 -05:00
Frank
5a90e5f9e2 wip: zen 2025-10-10 12:22:36 -04:00
Frank
5ee3063aab wip: sync 2025-10-10 12:16:57 -04:00
Frank
920373d252 wip: zen settings 2025-10-10 12:04:02 -04:00
Frank
c9155c117a wip: zen 2025-10-10 09:03:49 -04:00
GitHub Action
28d617d867 ignore: update download stats 2025-10-10 2025-10-10 12:04:18 +00:00
Frank
593d0737b5 wip: zen style byok 2025-10-10 03:15:55 -04:00
Frank
64409182ec wip: zen style byok 2025-10-10 02:53:05 -04:00
Frank
8d4607ebd5 wip: zen style byok 2025-10-10 02:37:50 -04:00
Frank
250393978b wip: style byok 2025-10-10 02:34:06 -04:00
Frank
fec70ae9c9 wip: zen 2025-10-10 01:36:15 -04:00
Frank
ad7b4b1fcd wip: zen style nav bar 2025-10-10 00:56:16 -04:00
Frank
03d5089436 wip: zen style model 2025-10-10 00:02:04 -04:00
Dax Raad
9b52d33889 core: improve directory validation error messages to help users fix invalid directory names 2025-10-09 22:40:23 -04:00
Frank
bc0e00cbb7 wip: zen style header 2025-10-09 22:38:42 -04:00
Dax Raad
096710a8cc ensure @opencode-ai/plugin is available in .opencode folder 2025-10-09 21:18:49 -04:00
opencode
50bb201187 release: v0.14.7 2025-10-10 01:02:37 +00:00
Dax Raad
f211fc45a3 drop excess dependency in opencode sdk 2025-10-09 20:55:25 -04:00
Dax Raad
d91781c639 core: use platform-specific watcher backends for better file system monitoring 2025-10-09 18:29:18 -04:00
Dax Raad
f3b71007d2 core: replace chokidar with @parcel/watcher for better performance and cross-platform support 2025-10-09 18:21:38 -04:00
Frank
60dd987efd wip: zen 2025-10-09 17:18:55 -04:00
Dax Raad
0a96d254e8 ignore: add common build and framework directories to ignore list 2025-10-09 16:35:56 -04:00
Frank
51e9979457 wip: zen nav bar 2025-10-09 16:01:52 -04:00
Dax Raad
dfc7ac4cf0 ignore: improve file ignore performance and cross-platform support
- Replace glob patterns with Set lookup for common folders to speed up matching
- Use path.sep for cross-platform compatibility on Windows/Unix systems
- Add comprehensive test coverage for nested and non-nested folder matching
- Simplify implementation by removing unnecessary caching complexity
2025-10-09 15:54:01 -04:00
Adam
c2950d26f0 feat: experimental skip bootstrap 2025-10-09 14:51:11 -05:00
Aiden Cline
47dfebf277 docs: fix bugged example (#3068) 2025-10-09 12:21:44 -05:00
Jay V
f3b5021936 docs: adding tools doc 2025-10-09 13:19:51 -04:00
Jay V
7be9a84b72 docs: document ripgrep .ignore file override in tools 2025-10-09 13:19:51 -04:00
Jay V
78321a95e8 docs: adding spellcheck command 2025-10-09 13:19:51 -04:00
Aiden Cline
225adc46ba feat: allow read tool to handle images (#3052) 2025-10-09 09:05:11 -05:00
GitHub Action
eb4b5721cd ignore: update download stats 2025-10-09 2025-10-09 12:04:27 +00:00
Dax Raad
979c9ea569 lsp: fix root detection to use instance directory instead of worktree 2025-10-09 04:30:30 -04:00
Dax Raad
c0bd29155d lsp: simplify language server root detection to use lock files
Improves project boundary detection by focusing on package manager lock files instead of config files, providing more reliable workspace identification across different project types.
2025-10-09 04:22:38 -04:00
Haris Gušić
c5b5795636 fix: process.stdout.write instead of console.log for export cmd (#3049) 2025-10-09 00:46:19 -05:00
Frank
3ed4f1078f wip: zen 2025-10-08 22:33:20 -04:00
Frank
5b1fd7e539 wip: zen 2025-10-08 18:59:41 -04:00
Frank
d18b6673e6 wip: zen 2025-10-08 17:03:42 -04:00
Frank
c93c0d402d wip: zen 2025-10-08 15:20:50 -04:00
Frank
b168bfe40d wip: zen 2025-10-08 13:31:15 -04:00
Jay V
1d621260ff docs: fix permission docs 2025-10-08 12:13:42 -04:00
GitHub Action
a63fa64dec ignore: update download stats 2025-10-08 2025-10-08 12:04:31 +00:00
Adam
3c282c3c37 fix(tui): suggestions gap on home page 2025-10-08 06:56:18 -05:00
Dax Raad
2046f2e8e7 add free workspace 2025-10-08 02:27:01 -04:00
Frank
af684c80d4 wip: zen 2025-10-08 01:14:39 -04:00
Frank
99b72eb1ea wip: zen 2025-10-08 00:03:36 -04:00
opencode
22a6849ff8 release: v0.14.6 2025-10-07 19:59:08 +00:00
Dax Raad
dca3a5d80d fix issue with blank new version popup 2025-10-07 15:51:59 -04:00
Frank
508067ba5d wip: zen 2025-10-07 13:37:38 -04:00
Aiden Cline
b6c9df970a docs: troubleshooting ProviderModelNotFoundError (#3016) 2025-10-07 11:50:37 -05:00
Sai
1f725cc3ed docs: add agent specific permission example (#3009) 2025-10-07 10:08:52 -05:00
Frank
6c99b833e4 wip: zen 2025-10-07 09:17:08 -04:00
GitHub Action
cd3780b7f5 ignore: update download stats 2025-10-07 2025-10-07 12:04:53 +00:00
Dax Raad
a440e09cfe core: improve MCP reliability and add status monitoring
- Added 5-second timeout to MCP client verification to prevent hanging connections
- New GET /mcp endpoint to monitor server connection status
- Automatically removes unresponsive MCP clients during initialization
2025-10-07 04:04:19 -04:00
opencode
27c211ef86 release: v0.14.5 2025-10-07 06:21:31 +00:00
Aiden Cline
cd528ae78f fix: mcp error (#3006) 2025-10-07 00:45:46 -05:00
Aiden Cline
06c42093c8 tweak: grep tool to handle single file better (#3004) 2025-10-06 23:24:00 -05:00
Frank
0534bc0c09 wip: zen 2025-10-06 23:57:55 -04:00
Frank
4f33594b99 wip: zen 2025-10-06 23:57:54 -04:00
opencode
e3f9e7785e release: v0.14.4 2025-10-07 03:32:10 +00:00
Dax Raad
a20fc2dfdf ignore: 2025-10-06 23:25:01 -04:00
Dax Raad
2bf0e42367 core: restore bash command security validation to prevent accidental directory traversal
The permission validation that prevents commands from accessing paths outside the project directory was accidentally disabled, which could allow commands like 'cd ../' to escape the workspace. This restores the security check that keeps your commands safely contained within your project boundaries.
2025-10-06 23:24:18 -04:00
Dax Raad
10998d62b9 core: improve session API reliability with proper input validation 2025-10-06 19:37:44 -04:00
Dax Raad
aee240150b Update todo tool to use centralized Todo module 2025-10-06 18:54:05 -04:00
Dax Raad
cdd6e98af9 Add missing files and fix type aliases for opentui features 2025-10-06 18:53:35 -04:00
Dax Raad
6417edf998 Add todo list and session forking API endpoints 2025-10-06 18:51:57 -04:00
Dax Raad
9a0735de76 Add session forking functionality and simplify remove logic 2025-10-06 18:50:56 -04:00
Frank
a470859f6f wip: zen 2025-10-06 17:23:10 -04:00
Frank
f47c7c5a07 wip: zen 2025-10-06 17:17:02 -04:00
Frank
c2f57ea74d wip: zen 2025-10-06 17:13:19 -04:00
Frank
9e8fd16e6e wip: zen 2025-10-06 17:13:19 -04:00
Jay V
1b17d8070b docs: update footer 2025-10-06 17:05:45 -04:00
Jay V
1db028dc05 docs: fix styles and zen doc, closes #2912 2025-10-06 17:00:10 -04:00
Jay V
b351b75156 docs: share page css 2025-10-06 16:13:21 -04:00
GitHub Action
2faa28e162 ignore: update download stats 2025-10-06 2025-10-06 12:04:17 +00:00
Aiden Cline
bdf77701cf fix: add timeout message if command times out (#2986) 2025-10-05 23:55:01 -05:00
Mani Sundararajan
889c276558 fix: file references & grep tool for windows (#2980) 2025-10-05 14:32:07 -05:00
GitHub Action
9c6192b00d ignore: update download stats 2025-10-05 2025-10-05 12:03:55 +00:00
opencode
d2a4a0375f release: v0.14.3 2025-10-05 11:22:57 +00:00
Dax Raad
aced8c95f2 ci: publish 2025-10-05 07:14:52 -04:00
Dax Raad
1bb664869c ci: disable aur 2025-10-05 07:12:33 -04:00
Dax Raad
116a006ce6 sdk: simplify getting started with single createOpencode function
Makes it easier for developers to get started by providing a single function that creates both server and client, removing the need to manually coordinate separate server and client creation
2025-10-05 07:01:32 -04:00
Dax Raad
f3c2d1b6c2 sdk: simplify getting started with single createOpencode function
Makes it easier for developers to get started by providing a single function that creates both server and client, removing the need to manually coordinate separate server and client creation
2025-10-05 07:00:29 -04:00
Aiden Cline
71a7e8ef36 fix: max output tokens when using large thinking budget (#2976) 2025-10-04 23:38:41 -05:00
Dax Raad
5f7ae6477b sync 2025-10-04 21:33:47 -04:00
Aiden Cline
f41a54b4b0 fix: allow LSP filename matching when extension is missing (#2975) 2025-10-04 20:30:53 -05:00
iwauo
080fce9601 docs: java-lsp support (#2958) 2025-10-04 11:28:09 -05:00
GitHub Action
b2222cc278 ignore: update download stats 2025-10-04 2025-10-04 12:03:53 +00:00
Frank
82509e8604 wip: zen 2025-10-04 01:12:32 -04:00
Yuku Kotani
e7b6ffb314 feat: Vertex AI support; add google-vertex and google-vertex-anthropic providers (#2347) 2025-10-04 01:10:38 -04:00
Aiden Cline
395c41b748 add command to debug config (#2962) 2025-10-03 23:07:58 -05:00
Frank
a11a608760 wip: zen 2025-10-03 23:48:34 -04:00
Dax Raad
477586835a ci: try regional hostname again 2025-10-03 19:05:32 -04:00
Rovshan Muradov
085f4adbc3 docs: Update models.mdx (#2916) 2025-10-03 17:06:20 -04:00
Frank
9671872059 wip: zen 2025-10-03 16:32:53 -04:00
Jay V
6378e6c06f docs: rename opencode to OpenCode 2025-10-03 13:46:56 -04:00
Frank
4159db4549 wip: zen 2025-10-03 12:54:52 -04:00
Adam
79764c8c4c fix: github stats 2025-10-03 09:34:17 -05:00
Adam
006cb5b36d fix: user-agent 2025-10-03 09:30:51 -05:00
Adam
8ce7d58e6d chore: user-agent header 2025-10-03 09:27:12 -05:00
Adam
b622e924b6 chore: logging errors 2025-10-03 09:19:54 -05:00
Adam
8e80b8f2fa chore: logging errors 2025-10-03 09:10:33 -05:00
Adam
3fa280d218 chore: app -> desktop 2025-10-03 09:04:28 -05:00
Frank
1d58b55482 wip: zen 2025-10-03 08:25:51 -04:00
GitHub Action
aae387f7dc ignore: update download stats 2025-10-03 2025-10-03 12:04:07 +00:00
Frank
60e21642a5 wip: zen 2025-10-03 07:36:16 -04:00
Frank
600b512c9c wip: zen 2025-10-03 07:36:16 -04:00
Frank
3be1f9b67e wip: zen 2025-10-03 07:36:16 -04:00
Dax Raad
ad0f137e35 ci: stuff 2025-10-03 10:53:10 +00:00
opencode
253105bcf5 release: v0.14.1 2025-10-03 10:53:10 +00:00
Dax Raad
bd0ba5ab88 turn on codex medium reasoning again 2025-10-03 06:46:07 -04:00
David Hill
ea993976b0 Firefox email input fix 2025-10-02 23:50:51 +01:00
Jay
4c11ccd334 docs: update theme (#2929)
Co-authored-by: David Hill <iamdavidhill@gmail.com>
2025-10-02 23:20:30 +01:00
David Hill
d766ca23e8 Update index.css 2025-10-02 23:19:53 +01:00
Jay
fe4589d335 ignore: Workspace updates (#2930)
Co-authored-by: David Hill <iamdavidhill@gmail.com>
2025-10-02 23:18:57 +01:00
Frank
6036a1d611 wip: zen 2025-10-02 18:16:29 -04:00
Frank
a8341e2b8b wip: zen 2025-10-02 17:55:54 -04:00
Frank
73115efab1 wip: zen 2025-10-02 16:09:42 -04:00
Frank
a45fa7a93c wip: zen 2025-10-02 13:58:40 -04:00
Jay
ae15c91455 docs: README 2025-10-02 12:33:32 -04:00
Jay V
52f16c496b docs: update README 2025-10-02 12:31:58 -04:00
David Hill
24d9f45506 Copy tweaks 2025-10-02 17:02:33 +01:00
David Hill
2404d70a33 Border top only on safari fix 2025-10-02 16:55:48 +01:00
David Hill
26f1cc87ca Update favicon.svg 2025-10-02 16:55:29 +01:00
Aiden Cline
860e47edea fix: run cmd json format when running command (#2926) 2025-10-02 10:37:42 -05:00
David Hill
e2378f2237 Style fixes 2025-10-02 16:35:23 +01:00
David Hill
9e197a5b67 Update dock.png 2025-10-02 16:24:14 +01:00
David Hill
5f4041c58f Update dock.png 2025-10-02 16:14:52 +01:00
David Hill
d56e81f02b Email input color fix 2025-10-02 16:11:55 +01:00
David Hill
6022d12ea2 Update dock.png 2025-10-02 15:50:56 +01:00
David Hill
f7ef1c286f Testimonial tweaks 2025-10-02 15:37:36 +01:00
David Hill
b35c6b9fff Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-02 15:37:13 +01:00
David Hill
30ec02e82d faq icon fix 2025-10-02 15:37:10 +01:00
Frank
bc9522d5d8 ignore: fix 2025-10-02 10:10:07 -04:00
David Hill
b6e80e72f6 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-02 15:03:59 +01:00
David Hill
2ded2aa2d9 Body background fix 2025-10-02 15:03:56 +01:00
David Hill
30dc0cbe58 Mobile nav icon fix 2025-10-02 15:02:57 +01:00
David Hill
2bd0c9c6d2 Mobile nav icon fix 2025-10-02 15:02:44 +01:00
David Hill
f9229889a1 Mobile nav fix 2025-10-02 15:01:22 +01:00
Adam
eb4f55bdf6 fix: broken links 2025-10-02 09:00:33 -05:00
David Hill
9ee4e2e3d4 Update posters for videos 2025-10-02 14:55:38 +01:00
David Hill
decb6ff2d3 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-10-02 14:54:16 +01:00
David Hill
b9de71dbfa Testimonial tweak 2025-10-02 14:53:54 +01:00
Adam
124e355a3c chore: add email signup back 2025-10-02 08:46:25 -05:00
David Hill
095fe68786 Update faq.tsx 2025-10-02 14:42:49 +01:00
David Hill
afc67caa48 Faq icon color fix 2025-10-02 14:41:57 +01:00
Adam
189b7f1172 fix: testimonial link 2025-10-02 08:34:22 -05:00
Adam
cc955098cd wip: desktop work 2025-10-02 08:34:01 -05:00
GitHub Action
8699e896e6 ignore: update download stats 2025-10-02 2025-10-02 12:04:06 +00:00
opencode
ca4cb85dcd release: v0.14.0 2025-10-02 05:33:58 +00:00
Dax Raad
88474e0653 ci: fix 2025-10-02 01:25:27 -04:00
Dax Raad
5667a7ed16 ci: publsih 2025-10-02 01:24:33 -04:00
Dax Raad
2ae3231ff9 ci: test 2025-10-02 01:19:53 -04:00
Dax Raad
d92fc25e26 ci: install opencode 2025-10-02 01:19:53 -04:00
Dax Raad
c8c0373f1d ci: fix 2025-10-02 05:18:01 +00:00
opencode
bccee29d2f release: v0.13.9 2025-10-02 05:18:01 +00:00
Dax Raad
ad307f7f89 ci: sync 2025-10-02 01:09:58 -04:00
Dax Raad
eac11c0753 ci: stuff 2025-10-02 01:08:29 -04:00
Aiden Cline
0e804c302c docs: fix install fmt (#2914) 2025-10-01 23:32:39 -05:00
Aiden Cline
fb88cb0aa3 docs: fix more links (#2913) 2025-10-01 23:22:17 -05:00
Sandip Wane
8fc6a25142 chore: rm empty try-catch block (#2769)
Co-authored-by: Sandip Wane <sandip.wane@cloudhedge.io>
2025-10-01 23:21:57 -05:00
Dax Raad
5079ba7ce5 core: fix file search limit handling and ensure File module initialization 2025-10-02 00:18:18 -04:00
opencode
19cb211b62 release: v0.13.8 2025-10-02 04:16:48 +00:00
Dax Raad
b2440e92e7 core: improve file search reliability and performance 2025-10-02 00:09:02 -04:00
Aiden Cline
125624489b docs: fix (#2910) 2025-10-01 22:20:35 -05:00
Jay V
991f85c907 docs: hide email signup 2025-10-01 20:16:02 -04:00
Jay V
c00fbbdcae docs: testimonials 2025-10-01 19:57:17 -04:00
Dax Raad
d4e9c60af7 wip: lander 2025-10-01 19:54:58 -04:00
Jay V
0691815c0a docs: fix link 2025-10-01 19:52:31 -04:00
Dax Raad
985fd4d9a8 wip: lander 2025-10-01 19:49:00 -04:00
Dax Raad
87fa8dc70c ignore: fix 2025-10-01 19:40:56 -04:00
Dax
a782e3dac2 Zen lander (#2907)
Co-authored-by: David Hill <iamdavidhill@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
Co-authored-by: Jay V <air@live.ca>
2025-10-01 19:38:15 -04:00
Frank
70da3a9399 wip: zen 2025-10-01 19:34:37 -04:00
Frank
1024537b47 doc: update zen pricing 2025-10-01 17:48:12 -04:00
GitHub Action
2a4f21a694 ignore: update download stats 2025-10-01 2025-10-01 12:04:26 +00:00
Dax Raad
5f61945090 core: remove redundant patch integration test
The integration test was duplicating coverage already provided by the comprehensive
patch namespace tests. Users benefit from faster test runs without losing any
coverage of patch functionality. The remaining tests provide complete validation
of patch parsing, application, and tool integration.
2025-10-01 06:49:19 -04:00
Dax Raad
41ce56494b core: make patch tool more reliable and consistent with other editing tools
The patch tool now works seamlessly alongside other file editing tools with improved
error handling and a more intuitive permission system. Users will experience:

- More reliable patch application with better error messages
- Consistent permission prompts that match other editing tools
- Smoother integration when applying complex multi-file changes
- Better feedback on what changes are being made before applying patches

This refactoring leverages the robust patch parsing engine while making the tool
feel native to the opencode workflow, reducing friction when making bulk changes
to your codebase.
2025-10-01 06:45:43 -04:00
opencode
172aeaaf14 release: v0.13.7 2025-10-01 09:13:16 +00:00
Dax Raad
bd69c5aca8 codex should not have reasoning effort 2025-10-01 05:06:37 -04:00
Dax Raad
6a7eeb39c3 core: prevent file deletion when reverting changes to existing files 2025-10-01 05:06:37 -04:00
opencode
35a608cd53 release: v0.13.6 2025-10-01 07:44:18 +00:00
Dax Raad
6e19200fca overhaul file search and support @ mentioning directories 2025-10-01 03:37:01 -04:00
Aiden Cline
fe45a76c55 fix: adjust model dialog to handle same model id but different names (#2881) 2025-09-30 11:43:57 -05:00
GitHub Action
bdac22cb07 ignore: update download stats 2025-09-30 2025-09-30 12:04:27 +00:00
Dax Raad
5a507023a6 update anthropic system prompts 2025-09-30 04:41:36 -04:00
Aiden Cline
c398485213 fix: tui stuck saying generating... even when it is done (#2872) 2025-09-29 23:55:47 -05:00
Aiden Cline
bc9ff7e99f fix: worktree cmd (#2870) 2025-09-29 22:21:54 -05:00
Frank
7447460b5a wip: zen 2025-09-29 14:17:53 -04:00
opencode
5345c828ca release: v0.13.5 2025-09-29 14:12:58 +00:00
Aiden Cline
edeaab321a fix: bash regex (#2858) 2025-09-29 08:51:46 -05:00
GitHub Action
478ead6a05 ignore: update download stats 2025-09-29 2025-09-29 12:04:29 +00:00
Giuseppe Rota
468201190e docs: document model id behavior (#2856) 2025-09-29 06:52:26 -05:00
opencode
cc0d460904 release: v0.13.4 2025-09-29 05:53:07 +00:00
Dax Raad
f8ab0de0ad ci: fix homebrew 2025-09-29 01:40:27 -04:00
Dax Raad
322363f11b release: v0.13.2 2025-09-29 01:38:53 -04:00
Dax Raad
acd33c2fc5 ci: publish 2025-09-29 01:24:35 -04:00
Dax Raad
b6fba03a7d ci: fix 2025-09-29 01:22:39 -04:00
Dax Raad
fbced21b8e ci: fix 2025-09-29 01:06:12 -04:00
Aiden Cline
e7cb5d8345 ignore: go mod tidy (#2851) 2025-09-28 23:05:56 -05:00
Frank
918739057d wip: zen 2025-09-28 19:55:40 -04:00
Frank
e3a7096e44 wip: zen 2025-09-28 19:55:40 -04:00
Dax Raad
c148f10bbd core: improve webfetch tool content negotiation and format handling 2025-09-28 17:57:50 -04:00
Frank
06495ea964 wip: zen 2025-09-28 12:49:28 -04:00
GitHub Action
b64cecb079 ignore: update download stats 2025-09-28 2025-09-28 12:03:57 +00:00
Frank
e10bb58cb3 wip: zen 2025-09-27 21:53:50 -04:00
Aiden Cline
89167ae387 respect model id in opencode.json (#2833) 2025-09-27 17:09:21 -05:00
Aurélien Tollard
4b429029df Fix: Set OPENCODE_CALLER env in a more portable way for vscode extension (#2230) 2025-09-27 10:36:24 -04:00
Frank
c7e5d29109 wip: zen 2025-09-27 10:19:58 -04:00
Frank
a564267b29 wip: zen 2025-09-27 10:05:19 -04:00
GitHub Action
594bdb43c2 ignore: update download stats 2025-09-27 2025-09-27 12:04:01 +00:00
Dax Raad
ea66c02633 ci: tweaks 2025-09-27 04:12:55 -04:00
Dax Raad
925ce6503e sync 2025-09-27 04:10:56 -04:00
Arjun Singh
8a28d34fe9 Include step-start and step-finish for cost tracking (#2810) 2025-09-27 03:45:36 -04:00
Dax Raad
8bea479df9 ci: wtf 2025-09-27 03:20:08 -04:00
Dax Raad
468d919a92 ci: fix 2025-09-27 03:19:34 -04:00
Dax Raad
7e5527379d core: configure turbo to avoid building opencode for web tests 2025-09-27 03:19:29 -04:00
Dax Raad
fcbc78180b ci: fix 2025-09-27 03:18:12 -04:00
Dax Raad
bab1ca54e4 ci: test 2025-09-27 03:17:22 -04:00
Dax Raad
d644e0b8a7 core: fix config test by removing model field expectation 2025-09-27 03:10:01 -04:00
Dax Raad
e54ec45002 ci: fix git identity in test workflow 2025-09-27 03:07:37 -04:00
Dax Raad
4b94d98f89 ci: improve test coverage 2025-09-27 03:04:42 -04:00
Dax Raad
d0043a4a78 sync 2025-09-27 02:53:20 -04:00
Dax Raad
26ebf85b0e ci: format 2025-09-27 02:22:03 -04:00
Dax Raad
53481f9790 wip: bun test improvements 2025-09-27 02:17:08 -04:00
Dax Raad
eadc2a8535 ci: give up 2025-09-27 01:51:54 -04:00
Dax Raad
00a5ec5bd2 ci: add regional hostname 2025-09-27 01:28:11 -04:00
Dax Raad
0b6b9062d9 fix zen cookie 2025-09-27 01:12:25 -04:00
opencode
c450549d0f release: v0.12.1 2025-09-26 21:18:45 +00:00
Frank
1ba0155943 zen: accept tax id 2025-09-26 17:10:45 -04:00
Timo Clasen
3d332a06b5 fix(tool): follow symlinks when looking for tools (#2809) 2025-09-26 16:01:08 -05:00
opencode
f709e0b48b release: v0.12.0 2025-09-26 20:55:00 +00:00
Frank
57e1bffbd5 zen: model management helper 2025-09-26 15:18:24 -04:00
sonsulee
f321661b4c docs: add TUI configuration options and examples (#2212)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Jay <air@live.ca>
2025-09-26 13:09:46 -04:00
Yihui Khuu
7ecdc1b5d8 fix: config loading not considering symlinks (#2800) 2025-09-26 09:46:49 -05:00
GitHub Action
39917a35ce ignore: update download stats 2025-09-26 2025-09-26 12:04:26 +00:00
Dax Raad
bfe3f03e03 ci: fix deploy 2025-09-26 11:57:49 +00:00
opencode
d01af65dbc release: v0.11.8 2025-09-26 11:57:49 +00:00
Dax Raad
80305813f5 disable aggressive config validation 2025-09-26 07:51:53 -04:00
opencode
061877e275 release: v0.11.7 2025-09-26 11:19:15 +00:00
Adam
05e6c3d8a0 fix(tui): cursor position 2025-09-26 06:13:23 -05:00
Dax Raad
093fbca711 core: add themes to allowed config directories 2025-09-26 06:40:41 -04:00
opencode
81deea855f release: v0.11.6 2025-09-26 09:52:23 +00:00
Dax Raad
5c67bebf86 tui: fix cursor position offset in home screen 2025-09-26 05:46:16 -04:00
opencode
9cc1f2884f release: v0.11.5 2025-09-26 09:40:16 +00:00
Dax Raad
f2b547cc45 fix erroring on custom tool folder 2025-09-26 05:33:38 -04:00
Dax Raad
70310a37b3 validate config directory 2025-09-26 03:23:25 -04:00
Dax Raad
eb7f4e20df core: add config update endpoint and functionality 2025-09-26 02:37:19 -04:00
Dax Raad
ea21bfd3c6 ci: ignore 2025-09-26 02:01:19 -04:00
Dax Raad
22d5be9bf8 ci: setup husky pre-push hook to run typecheck 2025-09-26 02:01:19 -04:00
opencode
1c878c662b release: v0.11.4 2025-09-26 05:56:03 +00:00
Dax Raad
55d154d4ac tui: fix opencode logo spacing in home view 2025-09-26 01:40:32 -04:00
Dax Raad
f5c7a94abe turn reasoning summaries back on by default for zen 2025-09-26 01:37:44 -04:00
Dax Raad
7ec3900208 core: enable reasoning.encrypted_content and reasoningSummary for opencode provider\ntui: adjust editorY position calculation 2025-09-26 01:27:53 -04:00
Aiden Cline
5d95846df1 fix: openai reasoning issue (#2780) 2025-09-26 01:23:30 -04:00
Aiden Cline
d47feb9969 tweak: include usage by default for openai compatible providers (#2788) 2025-09-25 21:06:58 -05:00
David Hill
8f135d13e3 Update opencode logo 2025-09-25 23:22:50 +01:00
Frank
f9ab4102f6 zen: track tps 2025-09-25 17:56:41 -04:00
Frank
f9117bcc7f zen: check balance on enable billing 2025-09-25 17:47:50 -04:00
Frank
6e712f9faf zen: fix parsing cache write tokens 2025-09-25 17:02:23 -04:00
Adam
b207ed2b7b wip: better desktop file status state and timeline 2025-09-25 14:41:31 -05:00
Adam
945de4eddc wip: watch select .git files in watcher 2025-09-25 14:41:31 -05:00
GitHub Action
cd655177d9 ignore: update download stats 2025-09-25 2025-09-25 12:04:27 +00:00
Frank
8f90497fc4 zen: billing 2025-09-24 21:26:04 -04:00
GitHub Action
9659efca46 chore: format code 2025-09-24 23:10:17 +00:00
Frank
d0377a95cf zen: billing 2025-09-24 19:09:28 -04:00
Adam
3b20bf6d4f fix(app): changes view 2025-09-24 15:49:40 -05:00
Adam
c3e52580b0 feat(app): changes view 2025-09-24 15:46:33 -05:00
Adam
2badfcdcf4 fix: select dialog hover 2025-09-24 15:08:58 -05:00
Adam
f589fc2327 feat: fuzzy file open 2025-09-24 12:40:54 -05:00
Filip
d3b6545e7c feat(app): added command palette (#2630)
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2025-09-24 11:05:15 -05:00
GitHub Action
3f911b22b0 ignore: update download stats 2025-09-24 2025-09-24 12:04:37 +00:00
opencode
5199141369 release: v0.11.3 2025-09-24 03:43:46 +00:00
Dax Raad
d86d3e7ea1 update copilot auth 2025-09-23 23:36:27 -04:00
GitHub Action
fe8d29cb2b chore: format code 2025-09-23 21:59:09 +00:00
Frank
edd6198999 zen: refund 2025-09-23 17:58:27 -04:00
GitHub Action
c3b2c27997 chore: format code 2025-09-23 21:37:20 +00:00
Jay V
679aeb29f0 docs: add codex to zen 2025-09-23 17:36:40 -04:00
Jay V
190413580f docs: edit 2025-09-23 17:34:52 -04:00
Jay V
8c9fbc7717 docs: edits 2025-09-23 17:34:52 -04:00
Jay V
9d3fdda674 docs: edit 2025-09-23 17:34:52 -04:00
Siddhant Choudhary
449994f120 feat: output-format flag to stream json output (#2471)
Co-authored-by: Siddhant Choudhary <sid@treaps.com>
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-23 16:19:32 -05:00
opencode
d772fff776 release: v0.11.2 2025-09-23 21:03:59 +00:00
Dax Raad
71b43fd02e fix codex errors 2025-09-23 16:56:40 -04:00
Dax Raad
f40b91ab7a fix: remove file existence check from LSP debug and format storage code 2025-09-23 16:49:57 -04:00
Alain Schlesser
6404bd006d ignore: more reliable install script, handle non prettified json responses (#2745)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-23 14:58:04 -05:00
Frank
75157e515c wip: remove 2025-09-23 14:21:39 -04:00
Frank
5a96ee8e1b zen: update logged endpoints 2025-09-23 14:21:39 -04:00
Adam
ee6ceb4c64 fix: open text files 2025-09-23 12:43:24 -05:00
David Hill
9d53628e19 Merge branch 'dev' of https://github.com/sst/opencode into dev 2025-09-23 18:36:27 +01:00
David Hill
869b476145 ignore: Copy update 2025-09-23 18:35:42 +01:00
David Hill
223d487787 ignore: Footer update 2025-09-23 18:30:06 +01:00
Adam
5ead6d7dd5 fix: exclude generated css file 2025-09-23 12:08:49 -05:00
GitHub Action
a98454217f chore: format code 2025-09-23 17:05:32 +00:00
Adam
cbb75d8577 fix: theme css format 2025-09-23 12:04:50 -05:00
GitHub Action
4ab992a9a9 chore: format code 2025-09-23 16:41:57 +00:00
Adam
80b0a93d64 wip: desktop file updates 2025-09-23 11:41:15 -05:00
Grégoire Paris
e749d48534 docs: fix grammar mistake in lsp docs(#2744) 2025-09-23 08:12:46 -05:00
GitHub Action
d7e873f807 ignore: update download stats 2025-09-23 2025-09-23 12:04:24 +00:00
Aiden Cline
c23510346b ignore: lsp debug file check (#2743) 2025-09-22 22:16:03 -05:00
Aiden Cline
f9c5df05a1 docs: github copilot model enable note (#2741) 2025-09-22 21:29:16 -05:00
Aiden Cline
02b4d1e2fc fix: lsp extension undefined handle (#2739) 2025-09-22 21:14:55 -05:00
Joseph Hanson
0b36eb8760 docs: fix permissions link (#2738) 2025-09-22 20:28:54 -05:00
Adam Hosker
36bec9948c docs: Add editor setup tip (#2638) 2025-09-22 16:01:27 -04:00
GitHub Action
2db73c39df chore: format code 2025-09-22 19:59:29 +00:00
Jay V
6107666d04 docs: edit tools doc 2025-09-22 15:58:48 -04:00
Aiden Cline
cc2bd7141f fix: enforce extensions requirement for custom lsp servers (#2734) 2025-09-22 11:45:47 -05:00
GitHub Action
ee442975df ignore: update download stats 2025-09-22 2025-09-22 12:04:25 +00:00
Dax Raad
9b1a508657 ci: bump 2025-09-22 01:47:28 -04:00
Dax Raad
288c977596 ci: snapshot builds 2025-09-22 01:45:23 -04:00
iwauo
6b799b304c feat: add Java LSP server support (#2547)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-21 23:55:15 -05:00
Aiden Cline
92c126d875 fix: lsp spawn logic (#2723) 2025-09-21 11:25:47 -05:00
GitHub Action
7123fbeb47 ignore: update download stats 2025-09-21 2025-09-21 12:04:06 +00:00
opencode
84bb692193 release: v0.11.1 2025-09-21 08:51:11 +00:00
Dax Raad
079095d7a9 core: filter models without keys in opencode provider 2025-09-21 04:43:32 -04:00
opencode
28e1d67ea4 release: v0.11.0 2025-09-21 08:04:21 +00:00
GitHub Action
c1940d1d2c chore: format code 2025-09-21 04:23:40 +00:00
Frank
869f629c14 wip: zen 2025-09-21 00:23:05 -04:00
Frank
a55943e469 wip: zen 2025-09-21 00:06:50 -04:00
Aiden Cline
84d95a0d2a ignore: lsp log (#2715) 2025-09-20 23:02:06 -05:00
opencode
7dfed8ca35 release: v0.10.4 2025-09-20 23:00:32 +00:00
Dax Raad
38ea0fc051 turn back on compaction summaries 2025-09-20 18:52:30 -04:00
Osinachi Okpara
9223b6ed8f Enhance theme documentation with links (#2707)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-20 11:25:12 -05:00
GitHub Action
f8528c52d9 ignore: update download stats 2025-09-20 2025-09-20 12:04:03 +00:00
Aiden Cline
d63ce40af2 fix: no payment method (#2706) 2025-09-20 04:15:44 -04:00
Jay V
5acdd70587 docs: zen 2025-09-19 20:13:57 -04:00
opencode
b04df6c0d2 release: v0.10.3 2025-09-19 21:22:00 +00:00
GitHub Action
f1cbdf441c chore: format code 2025-09-19 18:18:56 +00:00
Frank
9420d80b73 zen: data share 2025-09-19 14:16:53 -04:00
Aiden Cline
c21161b75e docs: fix bad docs (#2691) 2025-09-19 12:40:40 -05:00
GitHub Action
aaff066457 chore: format code 2025-09-19 17:29:44 +00:00
Jay V
c7fbf9de44 ignore: zen 2025-09-19 13:29:04 -04:00
Adam
d88c17dad0 wip: desktop progress 2025-09-19 10:53:49 -05:00
opencode
f57c3f7cf6 release: v0.10.2 2025-09-19 15:18:11 +00:00
Adam
2460108223 fix: remove grok msg 2025-09-19 09:59:47 -05:00
Adam
84e8eea52e wip: desktop cleanup 2025-09-19 09:55:46 -05:00
Adam
9efc2eaf2e wip: desktop cleanup 2025-09-19 09:42:39 -05:00
Adam
37e2644452 wip: desktop visual tweaks 2025-09-19 09:38:10 -05:00
neriousy
22a78cf13f chore: opencode favicon 2025-09-19 09:33:28 -05:00
GitHub Action
2e9806b320 chore: format code 2025-09-19 14:32:55 +00:00
Adam
ba839d4446 chore: normalize theme hex 2025-09-19 09:32:19 -05:00
GitHub Action
2bec21d81d chore: format code 2025-09-19 12:19:13 +00:00
Adam
e5271f3d1a wip: desktop work 2025-09-19 07:18:39 -05:00
Adam
1edb23c2c7 wip: desktop work 2025-09-19 07:18:39 -05:00
Adam
b1e6b9c7c9 wip: desktop work 2025-09-19 07:18:39 -05:00
Adam
20cb5a7c56 wip: desktop starting state 2025-09-19 07:18:38 -05:00
GitHub Action
b1d44482bc ignore: update download stats 2025-09-19 2025-09-19 12:04:16 +00:00
GitHub Action
e11102c9df chore: format code 2025-09-19 10:14:30 +00:00
Dax Raad
7be9dc8e49 ignore: fix 2025-09-19 06:13:45 -04:00
Dax Raad
824e035815 ci: stuff 2025-09-19 06:10:27 -04:00
GitHub Action
d652b94a14 chore: format code 2025-09-19 09:29:24 +00:00
Dax Raad
ebef2ea2d0 ci: stuff 2025-09-19 05:28:46 -04:00
GitHub Action
b5b8a0555d chore: format code 2025-09-19 09:12:20 +00:00
Dax Raad
ae6154e1c3 ignore: rework bootstrap so server lazy starts it 2025-09-19 05:11:29 -04:00
opencode
0e19ca21ed release: v0.10.1 2025-09-19 05:15:32 +00:00
Dax Raad
baaff81a06 fix task tool ui disappearing once done 2025-09-19 01:09:52 -04:00
Aiden Cline
ffa5689885 docs: subtask config option (#2682) 2025-09-18 17:52:23 -05:00
Aiden Cline
0e409842e8 docs: rm incorrect lsp mention (#2677) 2025-09-18 16:08:50 -05:00
opencode
5a7a725787 release: v0.10.0 2025-09-18 20:51:03 +00:00
GitHub Action
f277512938 chore: format code 2025-09-18 14:59:48 +00:00
Frank
4ceabdffa0 wip: zen 2025-09-18 10:59:01 -04:00
GitHub Action
c87480cf93 ignore: update download stats 2025-09-18 2025-09-18 12:04:18 +00:00
Timo Clasen
0df6fc1226 fix(config): keybinds should not be required in config schema (#2669) 2025-09-18 06:30:44 -05:00
GitHub Action
32ba2e02aa chore: format code 2025-09-18 09:43:35 +00:00
Dax Raad
1ffc8be2b6 rework custom tools 2025-09-18 05:42:59 -04:00
Dax Raad
5f2945ae71 docs: add custom tools section to plugins documentation 2025-09-18 04:29:08 -04:00
Dax
65baf76df6 Plugin tool updates (#2670) 2025-09-18 04:26:57 -04:00
Dax
3b6c0ec0b3 support custom tools (#2668) 2025-09-18 03:58:21 -04:00
Frank
e9d902d844 wip: zen 2025-09-18 01:36:54 -04:00
GitHub Action
e8b4f593a6 chore: format code 2025-09-18 05:33:32 +00:00
Frank
fc4f281408 wip: zen 2025-09-18 01:32:40 -04:00
GitHub Action
f8c4f713a5 chore: format code 2025-09-18 03:39:57 +00:00
Jason Quense
63c8874d2d fix: type exports in package.json for SDK package (#2654) 2025-09-17 23:39:26 -04:00
Julián Díaz
71076d5c68 fix: add synthetic user prompt after session compaction (#2659)
Co-authored-by: Julián Díaz <git@jdiaz.io>
2025-09-17 23:27:37 -04:00
Frank
0319043b49 Support GLM coding plan 2025-09-17 16:54:00 -04:00
Frank
e0334d5569 wip: zen 2025-09-17 16:03:47 -04:00
Aiden Cline
ff6a93f355 fix: only keep aborted messages if they have sufficient parts (#2651) 2025-09-17 14:24:53 -05:00
opencode
733b21e22b release: v0.9.11 2025-09-17 16:29:48 +00:00
Aiden Cline
3c3d6b65c2 Revert "fix: type 'reasoning' was provided without its required follo… (#2648) 2025-09-17 11:17:26 -05:00
opencode
9ca48d3a39 release: v0.9.10 2025-09-17 14:54:25 +00:00
Timo Clasen
16f9edc1a0 fix(TUI): display correct branch name in git worktree (#2626) 2025-09-17 09:46:18 -05:00
Aiden Cline
8c2aec43b8 fix: type 'reasoning' was provided without its required following item (#2633) 2025-09-17 09:45:13 -05:00
Aiden Cline
2564801bde tweak: adjust title gen when using models like gpt-5-nano on non open… (#2646) 2025-09-17 08:39:34 -05:00
GitHub Action
7c99a03493 ignore: update download stats 2025-09-17 2025-09-17 12:04:20 +00:00
opencode
0e0460f6c0 release: v0.9.9 2025-09-17 07:40:40 +00:00
Dax Raad
8acd537d1d ci: turborepo typecheck 2025-09-17 03:33:54 -04:00
Dax Raad
40c206c2f9 add opencode attach command to connect to a remote opencode server 2025-09-17 03:30:25 -04:00
Dax Raad
259c722208 only prune messages from more than 2 turns ago 2025-09-17 03:30:09 -04:00
opencode
e618cbc447 release: v0.9.8 2025-09-17 07:14:33 +00:00
Dax Raad
abd99aeb7d ignore: fix event type gen 2025-09-17 01:17:56 -04:00
opencode
ad5fc76b11 release: v0.9.7 2025-09-17 05:09:08 +00:00
Dax Raad
ff1f4d6bf9 disable reading .env file automatically 2025-09-17 01:02:23 -04:00
GitHub Action
170ea9c32b chore: format code 2025-09-16 23:53:59 +00:00
Jay V
65ced67432 ignore: zen 2025-09-16 19:53:18 -04:00
Jay V
9f46068c57 ignore: mobile styles zen 2025-09-16 19:39:36 -04:00
Jay V
479cf2fa4f ignore: zen 2025-09-16 19:39:36 -04:00
Frank
39c54f367f wip: zen 2025-09-16 18:13:05 -04:00
Frank
8c71107a93 wip: zen 2025-09-16 17:49:39 -04:00
GitHub Action
ef10097329 chore: format code 2025-09-16 21:17:56 +00:00
Jay V
36ee4b5ede ignore: zen 2025-09-16 17:17:17 -04:00
Jay V
ae84d5a734 ignore: zen 2025-09-16 17:17:17 -04:00
GitHub Action
cd53770734 chore: format code 2025-09-16 20:17:16 +00:00
Jay V
4b1eca73eb ignore: zen 2025-09-16 16:16:30 -04:00
opencode
fffcf69cd4 release: v0.9.6 2025-09-16 17:56:45 +00:00
Dax Raad
d4c01f858b disable thinking for opencode zen and gpt-5 temporarily 2025-09-16 13:49:37 -04:00
GitHub Action
8e17570c53 chore: format code 2025-09-16 17:35:32 +00:00
Jay V
7f9d08b556 docs: zen 2025-09-16 13:26:49 -04:00
Frank
32a045f60b wip: zen 2025-09-16 09:01:13 -04:00
Aiden Cline
91adc3cd41 docs: remove dup section (#2629) 2025-09-16 07:30:29 -05:00
GitHub Action
2bb9b4212f ignore: update download stats 2025-09-16 2025-09-16 12:04:17 +00:00
opencode
3472a50928 release: v0.9.5 2025-09-16 08:58:35 +00:00
Dax Raad
3aeac02bf1 enable session pruning and allow disabling with OPENCODE_DISABLE_PRUNE 2025-09-16 04:53:17 -04:00
opencode
52fcdcc37b release: v0.9.4 2025-09-16 08:35:55 +00:00
Dax Raad
78d6b3a963 fix crash when todo content is empty fixes #2622 2025-09-16 04:28:35 -04:00
Mani Sundararajan
15df2710fa fix(windows): force npm cmd shim generation and update install docs (#2558)
Co-authored-by: Dax <mail@thdxr.com>
Co-authored-by: GitHub Action <action@github.com>
2025-09-16 03:40:19 -04:00
opencode
02e492f6eb release: v0.9.3 2025-09-16 07:16:25 +00:00
Dax Raad
2d5bd26a59 feat: enhance provider model mapping and reasoning capabilities
- Add npm package tracking to provider model mapping
- Implement special handling for opencode provider with reasoning
- Update provider options mapping to use npm package names
2025-09-16 03:10:17 -04:00
opencode
8f58fef5ad release: v0.9.2 2025-09-16 04:29:00 +00:00
Dax
14cb2d2af6 feat: improve file watcher with chokidar and better ignore patterns (#2621)
Co-authored-by: GitHub Action <action@github.com>
2025-09-16 00:17:10 -04:00
Stephen Murray
52fb571739 fix: restore chat.message plugin hook (#2619) 2025-09-15 21:44:07 -05:00
GitHub Action
51c647ca89 chore: format code 2025-09-16 01:06:51 +00:00
Jay V
52fa7840c2 docs: zen 2025-09-15 21:05:47 -04:00
Frank
2c61b39088 wip: zen 2025-09-15 19:37:55 -04:00
Frank
6c02d4ce66 wip: zen 2025-09-15 19:26:46 -04:00
GitHub Action
11154ba697 chore: format code 2025-09-15 23:19:50 +00:00
Jay V
f8ca524bf7 ignore: zen 2025-09-15 19:19:10 -04:00
GitHub Action
56222fff3c chore: format code 2025-09-15 23:03:41 +00:00
Jay V
74f9fcea88 ignore: zen 2025-09-15 19:02:51 -04:00
Frank
bc213e1a61 wip: zen 2025-09-15 18:47:04 -04:00
Frank
d795a38fc7 wip: zen 2025-09-15 18:44:21 -04:00
opencode
96698ea070 release: v0.9.1 2025-09-15 22:31:44 +00:00
Dax Raad
6fff10b670 docs: zen 2025-09-15 18:21:03 -04:00
Frank
194aea8e54 wip: zen 2025-09-15 18:14:07 -04:00
Frank
b6d2046b0e wip: zen 2025-09-15 17:37:07 -04:00
Frank
910ea84360 wip: zen 2025-09-15 17:07:48 -04:00
Frank
bc2e4e23c9 wip: zen 2025-09-15 15:53:17 -04:00
GitHub Action
f5e75606e3 chore: format code 2025-09-15 19:39:00 +00:00
Jay V
0707890359 docs: zen 2025-09-15 15:38:23 -04:00
Frank
6dbba8e326 wip: zen 2025-09-15 15:21:06 -04:00
GitHub Action
413c9d9ad1 chore: format code 2025-09-15 18:50:30 +00:00
Frank
5e6dd312eb wip: zen 2025-09-15 14:48:02 -04:00
Frank
7218a662ab wip: zen 2025-09-15 14:48:02 -04:00
GitHub Action
d947df3069 ignore: update download stats 2025-09-15 2025-09-15 12:04:17 +00:00
GitHub Action
5bb1f5f0a0 chore: format code 2025-09-15 07:54:04 +00:00
Dax Raad
d38594d34a ci: sync 2025-09-15 03:53:27 -04:00
Dax Raad
925284c6c1 ci: sync 2025-09-15 03:53:21 -04:00
GitHub Action
e716271466 chore: format code 2025-09-15 07:31:02 +00:00
Dax Raad
df046e5e04 ci: typecheck 2025-09-15 03:30:26 -04:00
Dax Raad
e0bfbcb663 ci: format 2025-09-15 03:28:53 -04:00
GitHub Action
c1c6aca31e chore: format code 2025-09-15 07:28:34 +00:00
Dax
725104572e feat: add desktop/web app package (#2606)
Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
2025-09-15 03:28:08 -04:00
opencode
4954edf8ae release: v0.9.0 2025-09-15 07:18:49 +00:00
Dax
c1b4e1f19d Upgrade to Zod v4 (#2605)
Co-authored-by: GitHub Action <action@github.com>
2025-09-15 03:12:07 -04:00
Aiden Cline
89d820b1c4 fix: visual token bug (#2603) 2025-09-14 21:23:52 -05:00
Aiden Cline
e3e459fc50 fix: reasoning metadata persistence (#2602) 2025-09-14 16:28:06 -05:00
Tommy D. Rossi
4bf0541bd6 log bash output when using opencode run (#2595) 2025-09-14 09:03:40 -05:00
Aiden Cline
c81624aef7 tweak: make bash permissions key off of command pattern (#2592) 2025-09-14 09:01:57 -05:00
Kenn Costales
df61aa801b fix: fix wrong tool references LS and Agent (#2466) 2025-09-14 08:53:50 -05:00
GitHub Action
6af0c2ec21 ignore: update download stats 2025-09-14 2025-09-14 12:03:54 +00:00
Dax Raad
ce9d2ee04f ci: script 2025-09-14 02:07:58 -04:00
opencode
4b30705c42 release: v0.8.0 2025-09-14 06:07:43 +00:00
Mani Sundararajan
1f8d396b76 fix(dev): build tui with correct file ext for windows (#2590) 2025-09-14 01:59:25 -04:00
Aiden Cline
3752bb9717 fix: token counting visual bug (#2587) 2025-09-13 19:46:24 -05:00
Aiden Cline
16d66c209d respect subagent in command, add subtask flag (#2569) 2025-09-13 12:47:18 -05:00
Aiden Cline
6506e48c54 tweak: keep aborted msgs in context (#2583) 2025-09-13 12:25:30 -05:00
GitHub Action
f0e8b7c29b ignore: update download stats 2025-09-13 2025-09-13 12:03:56 +00:00
Dax Raad
a00b49d65b disable autocompact if context is 0 2025-09-13 05:59:18 -04:00
Dax Raad
b1589be4ba add disable OPENCODE_DISABLE_AUTOCOMPACT 2025-09-13 05:55:04 -04:00
Dax Raad
eb24d2f847 ignore: fix 2025-09-13 05:53:03 -04:00
Dax
9bb25a9260 Session management and prompt handling improvements (#2577)
Co-authored-by: GitHub Action <action@github.com>
2025-09-13 05:46:14 -04:00
opencode
535230dce4 release: v0.7.9 2025-09-13 05:29:37 +00:00
Dax Raad
555fb53505 nudge llm to continue properly after compaction 2025-09-13 01:23:54 -04:00
Tommy D. Rossi
b1e0a23351 fix: ShellError: exit code 1 errors (#2568)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-13 00:06:07 -05:00
Nicholas Hamilton
2b69bcccdf docs: typo in web agents.mdx (#2574) 2025-09-12 23:26:52 -05:00
Trillium Smith
e03f27381f docs: add tip block for finding available models (#2501)
Co-authored-by: GitHub Action <action@github.com>
2025-09-12 21:22:54 -04:00
Aiden Cline
aebd50da7e fix: make permission always behavior match expectation (#2573) 2025-09-12 18:59:38 -05:00
Stephen Murray
c02f58c2af fix: await cleanupRevert() to prevent dupe msgs after undo (#2572) 2025-09-12 18:42:39 -05:00
Dax Raad
c8f4d54f7f wip: zen 2025-09-12 14:53:00 -04:00
GitHub Action
4983d255dd chore: format code 2025-09-12 18:46:43 +00:00
Dax Raad
f2b4891ff0 wip: zen 2025-09-12 14:46:08 -04:00
GitHub Action
efcb5abbf7 chore: format code 2025-09-12 18:33:14 +00:00
Jay V
d37e58719e ignore: zen 2025-09-12 14:32:43 -04:00
Frank
c6c153de95 wip: zen 2025-09-12 14:22:42 -04:00
opencode
417e8f619c release: v0.7.8 2025-09-12 18:09:55 +00:00
Dax Raad
f2094b7bb3 temporarily disable midstream compaction 2025-09-12 14:00:54 -04:00
Dax Raad
176dc51b2e ci: exclude production branch from format workflow 2025-09-12 13:41:38 -04:00
opencode
f7d9a031e6 release: v0.7.7 2025-09-12 17:28:35 +00:00
Dax Raad
3e2478ebf9 undo session pruning 2025-09-12 13:20:13 -04:00
GitHub Action
1f4e8b4954 chore: format code 2025-09-12 16:19:09 +00:00
Frank
9a346a00fb wip: zen 2025-09-12 12:18:32 -04:00
Frank
0a13820927 Merge branch 'production' into dev 2025-09-12 12:04:27 -04:00
GitHub Action
c5fa3ee9f8 chore: format code 2025-09-12 15:57:50 +00:00
Frank
c294a18155 wip: zen 2025-09-12 11:57:14 -04:00
Frank
c3dc6d6df6 wip: zen 2025-09-12 11:57:14 -04:00
GitHub Action
ef3425a177 ignore: update download stats 2025-09-12 2025-09-12 12:04:14 +00:00
Dax Raad
0290b4aaf0 ignore: internal 2025-09-12 10:45:44 +00:00
opencode
4ceee53480 release: v0.7.6 2025-09-12 10:45:44 +00:00
Dax Raad
469dc9095f add microcompact 2025-09-12 06:38:47 -04:00
opencode
661d50f95f release: v0.7.5 2025-09-12 10:25:57 +00:00
opencode
3978a8e636 release: v0.7.4 2025-09-12 10:08:33 +00:00
Dax Raad
983e3b2ee3 fix compaction issues 2025-09-12 06:01:11 -04:00
GitHub Action
1bd198eb34 chore: format code 2025-09-11 22:34:21 +00:00
GitHub Action
3c502861a7 chore: format code 2025-09-11 22:30:52 +00:00
Frank
a52b352b24 wip: zen 2025-09-11 18:30:13 -04:00
Dax Raad
79c73267cf wip: zen 2025-09-11 18:20:37 -04:00
opencode
54f7fb5019 release: v0.7.3 2025-09-11 21:38:17 +00:00
Frank
dd97d784b6 Merge branch 'production' into dev 2025-09-11 17:28:51 -04:00
GitHub Action
91832bd5d7 chore: format code 2025-09-11 21:22:56 +00:00
Frank
3abca8fd4b wip: zen 2025-09-11 17:22:05 -04:00
Dax Raad
f5b3992479 properly support model level npm definition 2025-09-11 16:22:44 -04:00
Chris Covington
53f1f16122 feat: Add an experimental option to disable paste summaries (#2552)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-11 14:21:08 -05:00
Aiden Cline
4614e4983e fix: command being passed as arg when no args present (#2553) 2025-09-11 13:03:12 -05:00
opencode
84f0c63fa1 release: v0.7.2 2025-09-11 17:02:59 +00:00
Dax Raad
3e9b451fb4 reduce LSP verbosity 2025-09-11 12:54:12 -04:00
Dax Raad
4ccf683527 remove block anchor edit 2025-09-11 12:53:10 -04:00
GitHub Action
b236ca9047 ignore: update download stats 2025-09-11 2025-09-11 12:04:26 +00:00
Dax Raad
aa9ebe5d7c ignore: compacting 2025-09-11 02:31:28 -04:00
Dax Raad
4c94753eda compaction improvements 2025-09-11 02:22:51 -04:00
GitHub Action
c3a55c35bb chore: format code 2025-09-11 05:33:59 +00:00
Frank
d5275010d5 wip: zen 2025-09-11 01:33:23 -04:00
Frank
dedfa563c2 wip: zen 2025-09-11 01:32:06 -04:00
GitHub Action
37b6a55eb1 chore: format code 2025-09-11 04:00:17 +00:00
GitHub Action
7aa57accf5 chore: format code 2025-09-11 03:59:39 +00:00
Jay V
c2fa28c1be ignore: zen 2025-09-10 17:59:03 -10:00
Jay V
30aae66320 docs: lander 2025-09-10 16:42:32 -10:00
Jay V
7b95190df3 docs: add twitter 2025-09-10 11:47:41 -10:00
Frank
fa3e7bb9b0 wip: zen 2025-09-10 17:39:28 -04:00
Emmanuel LOUISY-GABRIEL
5b56848c3d Update providers.mdx because of small typo (#2539) 2025-09-10 15:49:25 -05:00
Aiden Cline
780e532094 resolve nested commands (#2537) 2025-09-10 14:05:26 -05:00
Aiden Cline
29310957c8 fix: handle @dir in command (#2533) 2025-09-10 13:27:44 -05:00
opencode
2b0577c725 release: v0.7.1 2025-09-10 15:40:31 +00:00
Dax Raad
bcd656ffae fix issue with flags being parsed incorrectly 2025-09-10 11:34:39 -04:00
GitHub Action
0e0c5a9b68 ignore: update download stats 2025-09-10 2025-09-10 12:04:18 +00:00
opencode
d36fcc4f8e release: v0.7.0 2025-09-10 08:42:45 +00:00
Dax Raad
ea82b60d7d ci: stuff 2025-09-10 04:35:49 -04:00
Dax Raad
ea0285a96c ci: stuff 2025-09-10 04:27:23 -04:00
Dax Raad
6960408ca2 ci: bump version 2025-09-10 04:23:57 -04:00
GitHub Action
fa36195492 chore: format code 2025-09-10 07:40:01 +00:00
Dax Raad
a6265ea3d2 upgrade to latest bun 2025-09-10 03:36:42 -04:00
Dax Raad
bb3f02b8bb wip: ignore 2025-09-10 03:13:42 -04:00
Aiden Cline
bdc0f7c86d tweak: wrap build-switch w/ system-reminder (#2525) 2025-09-09 23:57:13 -05:00
GitHub Action
c8ca036834 chore: format code 2025-09-10 03:49:07 +00:00
Dax Raad
8c7fee7840 ci: fix 2025-09-09 23:48:35 -04:00
Dax Raad
e53fb7f8ed ci: format 2025-09-09 23:47:47 -04:00
Dax Raad
b05cbc9101 ci: format 2025-09-09 23:44:04 -04:00
Dax Raad
38e8c42cf0 ci: format 2025-09-09 23:44:04 -04:00
opencode
58fe884327 release: v0.6.10 2025-09-10 03:32:47 +00:00
Dax Raad
e69d10b6c9 repair tool calls when casing is wrong 2025-09-09 23:25:27 -04:00
opencode
10aee9755c release: v0.6.9 2025-09-09 21:17:41 +00:00
Frank
63384bc214 wip: zen 2025-09-09 16:40:12 -04:00
Frank
2508e06c58 wip: zen 2025-09-09 16:32:56 -04:00
Frank
6487d0607b wip: zen 2025-09-09 16:15:35 -04:00
Frank
a3513244f1 wip: zen 2025-09-09 15:47:28 -04:00
madflow
32b47fcc1e feat: svelte lsp (#2508) 2025-09-09 13:59:58 -05:00
Aiden Cline
fde03d3c93 fix: exit code being non zero when using run cmd (#2523) 2025-09-09 12:00:55 -05:00
GitHub Action
9045f13acc ignore: update download stats 2025-09-09 2025-09-09 12:04:32 +00:00
Frank
74f0edc7a8 wip: zen 2025-09-09 05:42:15 -04:00
opencode
dcabafcdce release: v0.6.8 2025-09-09 07:40:23 +00:00
Frank
02e8242c3b Remove debug logging 2025-09-09 03:35:09 -04:00
opencode
57e26bd2fe release: v0.6.7 2025-09-09 07:23:01 +00:00
Frank
0f263bfefe Hide experimental models 2025-09-09 03:16:44 -04:00
Frank
34a33dfc16 wip: zen 2025-09-09 02:44:36 -04:00
Aiden Cline
162a789fa2 remove edit tool from plan agent (#2505) 2025-09-08 22:00:14 -05:00
Frank
198a753b62 Merge branch 'production' into dev 2025-09-08 16:37:38 -04:00
Zack Jackson
ab3c22b77a feat: add dynamic tool registration for plugins and external services (#2420) 2025-09-08 16:25:04 -04:00
opencode
f0f6e9cad7 release: v0.6.6 2025-09-08 20:20:35 +00:00
Mani Sundararajan
bbaae459c6 feat: make npm package install work on windows (#2419) 2025-09-08 16:14:18 -04:00
Frank
eb3c820fb8 wip: zen 2025-09-08 15:57:29 -04:00
Frank
3468808fc6 wip: zen 2025-09-08 15:51:01 -04:00
Frank
cd42503e2c Zen: telemetry 2025-09-08 15:46:59 -04:00
Aiden Cline
1cea8b9e77 tweak: reenable todowrite & todoread for qwen models (#2499) 2025-09-08 13:21:16 -05:00
Douglas Dennis
d8fd7b155f fix: aws bedrock add check for govcloud (#2495) 2025-09-08 11:54:06 -05:00
GitHub Action
248a644fb0 ignore: update download stats 2025-09-08 2025-09-08 12:04:58 +00:00
Aiden Cline
c8ff81bae4 fix: silent error if bad flag was passed (#2486) 2025-09-07 23:14:38 -05:00
Aiden Cline
74469a0d3d fix: shell invocations are dropped if last interaction was revert (#2485) 2025-09-07 21:45:13 -05:00
Aiden Cline
4d481dea7e fix: dont paste collapse if in bash mode (#2482) 2025-09-07 20:24:49 -05:00
opencode
7df32eac2a release: v0.6.5 2025-09-07 19:44:44 +00:00
Ytzhak
4654fb88de fix: max output tokens when setting budget thinking tokens (#2056)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-07 13:15:53 -05:00
GitHub Action
e915a3720e ignore: update download stats 2025-09-07 2025-09-07 12:03:51 +00:00
Aiden Cline
93c2f5060e fix: title gen w/ gpt-5-nano (#2473) 2025-09-06 22:50:16 -05:00
Aiden Cline
564143071e fix: title not generated if first msg is shell invocation (#2451) 2025-09-06 09:47:42 -05:00
GitHub Action
3cdfc529a0 ignore: update download stats 2025-09-06 2025-09-06 12:03:41 +00:00
Aiden Cline
bffe547417 fix: command model selection (#2448) 2025-09-05 20:54:39 -05:00
Aiden Cline
dc99005e65 fix: default to last used model (#2443) 2025-09-05 17:25:25 -05:00
Adam
8ffedbe157 fix: file read response 2025-09-05 15:58:56 -05:00
spoons-and-mirrors
900fe5ca04 tweak(edit): separate edit tool error message with clearer guidance to avoid llm doom editing loop (#2051) 2025-09-05 12:36:13 -04:00
GitHub Action
66a5d58221 ignore: update download stats 2025-09-05 2025-09-05 12:04:16 +00:00
Jay V
48328bec6e docs: fix lander 2025-09-04 17:44:32 -10:00
Michał Olender
8426a0d595 Update index.tsx (#2423) 2025-09-04 17:44:26 -10:00
Aiden Cline
9186c3feae fix: webfetch prompt mistake (#2424) 2025-09-04 13:35:25 -05:00
Adam
f171250033 fix: better file/content return 2025-09-04 12:39:49 -05:00
GitHub Action
d440ba32ab ignore: update download stats 2025-09-04 2025-09-04 12:04:06 +00:00
Adam
f7ab6beaf3 fix: worktree file/content never includes patch 2025-09-04 06:10:07 -05:00
Jay V
85ac243752 ignore: 404 2025-09-04 01:39:54 -07:00
Jay V
03522471a1 docs: fix 2025-09-04 01:03:23 -07:00
Jay V
42b440be0c docs: handle base path 2025-09-04 00:53:45 -07:00
Jay V
133ae42c55 ignore: zen 2025-09-04 00:17:06 -07:00
Zack Jackson
e001af2709 feat: add createOpencodeTui() function to SDK for programmatic TUI launching (#2410) 2025-09-04 02:49:44 -04:00
Aiden Cline
a97612287f fix: file fuzzy search (#2409) 2025-09-03 23:20:16 -05:00
Jay V
d13467d869 ignore: mobile styles 2025-09-03 19:33:01 -07:00
Jay V
368bd97952 ignore: lander 2025-09-03 19:05:49 -07:00
Jay V
d0104278fa docs: lander 2025-09-03 18:30:04 -07:00
Jay V
222244719b ignore: cloud 2025-09-03 17:21:46 -07:00
Jay V
21008d733f docs: link 2025-09-03 17:12:51 -07:00
Jay V
2808e95ac7 ignore: zen 2025-09-03 15:53:31 -07:00
Frank
70e0d71ac2 wip console 2025-09-03 15:57:41 -04:00
Frank
93f507d330 wip console 2025-09-03 15:35:46 -04:00
Dax Raad
7119ace940 wip: cloud 2025-09-03 14:57:02 -04:00
Dax Raad
4e24e04aec ignore: opencode auth stuff 2025-09-03 14:43:50 -04:00
Dax Raad
469a83a55b wip: email 2025-09-03 14:32:05 -04:00
Dax Raad
e8f54b9b38 wip: fix logout 2025-09-03 14:24:37 -04:00
Frank
01b18456a3 wip console 2025-09-03 14:09:39 -04:00
Frank
1acd5445b5 wip console 2025-09-03 14:07:57 -04:00
Dax Raad
ff89305ebe wip: logout 2025-09-03 14:07:23 -04:00
Dax Raad
605f78944d wip: css 2025-09-03 14:05:10 -04:00
Dax Raad
9f7e14dc7e wip: css hack 2025-09-03 13:58:08 -04:00
Dax Raad
cb7f3cf2f1 wip: cloud 2025-09-03 13:58:08 -04:00
Dax Raad
4406096974 wip: cloud 2025-09-03 13:58:08 -04:00
Frank
fefaad6226 wip cloud smart 2025-09-03 13:52:01 -04:00
Frank
3f9b569575 script package 2025-09-03 13:43:32 -04:00
Dax Raad
1e4f5710aa wip: cloud 2025-09-03 13:17:32 -04:00
Dax Raad
48a79b1173 wip: make less shit 2025-09-03 13:10:57 -04:00
Dax Raad
59e550271d wip: cloud 2025-09-03 12:32:03 -04:00
Frank
afebe920b2 wip console 2025-09-03 11:50:18 -04:00
Frank
6921702605 wip console 2025-09-03 11:40:59 -04:00
Frank
9c6783e88e wip console 2025-09-03 11:31:16 -04:00
Frank
f1a60a0a93 wip: generate config.json 2025-09-03 11:24:13 -04:00
Jay V
4b9cae82e6 ignore: zen 2025-09-03 11:16:49 -04:00
Jay V
fdf08ecfab ignore: zen 2025-09-03 11:10:07 -04:00
Jay V
22f5c26eec docs: edits 2025-09-03 11:05:43 -04:00
opencode
b6de122ddc release: v0.6.4 2025-09-03 13:31:11 +00:00
Frank
0f8cb69bff wip console 2025-09-03 09:24:23 -04:00
GitHub Action
fca2bddc3b ignore: update download stats 2025-09-03 2025-09-03 12:04:06 +00:00
Frank
f65e20b8ce wip console 2025-09-03 06:53:30 -04:00
Frank
93f2805bc2 wip: console 2025-09-03 06:37:40 -04:00
Frank
9ad4dc9296 wip: console 2025-09-03 06:27:53 -04:00
Frank
23af974bd3 wip: console 2025-09-03 06:22:44 -04:00
Frank
36ea46ee67 wip: console 2025-09-03 06:15:08 -04:00
Frank
4d2cc9d858 wip: console 2025-09-03 06:12:17 -04:00
Dax Raad
610ffbdd61 wip: console 2025-09-03 01:33:49 -04:00
Brendan Allan
854f9227a2 Patch Start to preload route css in SSR (#2389) 2025-09-03 01:28:34 -04:00
Dax Raad
8d368fdfd2 wip: zen 2025-09-02 23:56:10 -04:00
Dax Raad
1c31c2dd97 wip: zen 2025-09-02 23:30:48 -04:00
Frank
c1d754bec9 wip cloud 2025-09-02 23:28:54 -04:00
Dax Raad
c67b721787 docs: remove remaining directory query param mentions from SDK docs 2025-09-02 22:25:32 -04:00
Dax Raad
11e41e7564 docs: remove directory query param mentions from SDK docs 2025-09-02 22:25:32 -04:00
Dax Raad
afd42bf46d docs: fix SDK usage to use path/query/body, correct return types, and update examples 2025-09-02 22:25:32 -04:00
Aiden Cline
f740663ded fix: more durable @ references for commands (#2386) 2025-09-02 21:24:56 -05:00
Jay V
751b81af34 docs: zen 2025-09-02 21:29:03 -04:00
Jay V
b725bcd2cd ignore: adding public files 2025-09-02 21:25:09 -04:00
Frank
c278e16e4e generate api key 2025-09-02 20:38:36 -04:00
Frank
4e629c5b64 wip: cloud 2025-09-02 20:01:13 -04:00
Dax Raad
4624f0a260 ci: ignore 2025-09-02 19:32:21 -04:00
Dax Raad
2e16d685eb wip: zen 2025-09-02 18:00:48 -04:00
Jay V
e544cccc70 ignore: zen 2025-09-02 17:30:51 -04:00
Jay V
c141b88087 ignore: zen 2025-09-02 17:28:35 -04:00
Jay V
023c4532c1 ignore: cloud lander 2025-09-02 17:28:35 -04:00
Dax Raad
042802848d wip: zen 2025-09-02 16:38:50 -04:00
Dax Raad
a8aa44bd3f docs: simplify config example to show only model 2025-09-02 16:38:50 -04:00
Dax Raad
db2a3a171e docs: clarify config behavior and remove theme example 2025-09-02 16:38:50 -04:00
Dax Raad
38a4bee1be docs: add config example to SDK server creation 2025-09-02 16:38:50 -04:00
Dax Raad
8952b3d246 support OPENCODE_CONFIG_CONTENT 2025-09-02 16:38:50 -04:00
Aiden Cline
d6350a7fa6 tweak: update ls tool to use rg (#2367) 2025-09-02 10:40:20 -05:00
Yuta URANO
ae83138832 docs: update log level configuration in troubleshooting guide (#2374) 2025-09-02 10:31:04 -05:00
OpeOginni
3ee4280dfa fix: local subdirectory subagents not being picked up (#2376) 2025-09-02 09:46:00 -05:00
GitHub Action
26fbf9e647 ignore: update download stats 2025-09-02 2025-09-02 12:04:59 +00:00
Adam
97a41062c9 fix: file.list relative to root 2025-09-02 06:20:08 -05:00
Dax Raad
4a76224268 wip: typechecking 2025-09-02 03:18:30 -04:00
Dax Raad
810c9cff1d wip: cloud 2025-09-02 03:18:30 -04:00
Adam Spiers
47d4c87bdd make @file references in custom slash commands more robust (#2203)
Co-authored-by: Adam Spiers <opencode@adamspiers.org>
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-09-01 21:14:27 -05:00
opencode
a9875c5531 release: v0.6.3 2025-09-02 01:52:01 +00:00
Dax Raad
4c261ab1db switch gpt-5 to default to codex prompt + high reasoning 2025-09-01 21:46:03 -04:00
opencode
2fc8263032 release: v0.6.2 2025-09-02 01:03:43 +00:00
Aiden Cline
a431b8922c fix: ensure opencode still works if no commits present (#2363) 2025-09-01 20:57:14 -04:00
Aiden Cline
0a01d20850 fix: ensure enabled lsps are all logged (#2364) 2025-09-01 17:43:31 -05:00
opencode
7b62c10553 release: v0.6.1 2025-09-01 22:07:53 +00:00
Dax Raad
61c7196bd9 catch migration failures 2025-09-01 18:00:40 -04:00
opencode
365fdd9ff8 release: v0.6.0 2025-09-01 21:43:13 +00:00
Dax Raad
f6bc9238df docs: sdk 2025-09-01 17:35:52 -04:00
Aiden Cline
26f75d4e68 fix: tui attachment bound (#2361) 2025-09-01 16:33:36 -05:00
Jay V
8ba8d3c7e3 docs: update email 2025-09-01 17:30:32 -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
Aiden Cline
e2df3eb44d add --command to opencode run (#2348) 2025-09-01 14:19:18 -05:00
Dax Raad
38f9ce05f6 wip: cloud 2025-09-01 11:53:43 -04:00
Dax Raad
a6e09363b8 wip: cloud 2025-09-01 11:47:58 -04:00
GitHub Action
49629bb58e ignore: update download stats 2025-09-01 2025-09-01 12:04:32 +00:00
Dax Raad
2bb5b9b13a wip: cloud 2025-09-01 04:03:07 -04:00
Dax Raad
41338d1bf9 wip: cloud 2025-09-01 03:55:48 -04:00
Dax Raad
41ee9c94c7 wip: cloud 2025-09-01 03:53:49 -04:00
Dax Raad
9c16db0f36 wip: cloud 2025-09-01 03:51:45 -04:00
Dax Raad
721869353b wip: sync 2025-09-01 03:15:38 -04:00
Dax Raad
6d22ade771 wip: cloud 2025-09-01 03:13:05 -04:00
Dax Raad
fbcceeb781 wip: cloud 2025-09-01 03:10:40 -04:00
Dax Raad
95775d68b7 wip: cloud 2025-09-01 03:04:49 -04:00
Dax Raad
cf11669618 wip: cloud 2025-09-01 03:04:07 -04:00
Dax Raad
65dc19e85a wip: cloud 2025-09-01 02:57:47 -04:00
Dax Raad
cfcfceca6d wip: cloud 2025-09-01 02:55:10 -04:00
Dax Raad
9f8899a9f9 wip: cloud 2025-09-01 02:28:21 -04:00
Dax Raad
449a063fe2 wip: cloud 2025-09-01 02:21:36 -04:00
Régis Blanc
37530359ee fix: ensure gopls lsp id matches docs (#2344) 2025-08-31 21:52:08 -05:00
Aiden Cline
65f0bea146 ignore: better error logging (#2346) 2025-08-31 17:11:04 -05:00
Beshoy Girgis
e4cc05a975 feat: Allow provider timeout override (#1982) 2025-08-31 14:06:02 -04:00
Aiden Cline
029612d8d5 fix: ensure shell cmds can be properly aborted (#2339) 2025-08-31 12:48:30 -05:00
Aiden Cline
e9826e8a22 fix: adjust title generation prompt to prevent direct response instead of title gen (#2338) 2025-08-31 11:01:19 -05:00
GitHub Action
ad5f209dc8 ignore: update download stats 2025-08-31 2025-08-31 12:04:06 +00:00
Andre van Tonder
fcfeac57c5 fix: resolve virtual envs for python LSP (#2155)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-08-30 23:53:03 -05:00
Aiden Cline
2946898934 fix: ensure command uses currently selected model (#2336) 2025-08-30 15:41:06 -05:00
Aiden Cline
b4d95545e0 add support for lsp workspace/didChangeConfiguration (#2334) 2025-08-30 14:49:13 -05:00
Jay V
d3bbaa141c ignore: cloud 2025-08-30 15:28:35 -04:00
Jay V
8714f23509 ignore: cloud styles 2025-08-30 15:27:46 -04:00
Dax Raad
c676f12306 wip: cloud 2025-08-30 15:20:51 -04:00
Aiden Cline
dac821229e fix: resolve [pasted lines] when passing paste as arguments for command (#2333) 2025-08-30 10:56:00 -05:00
Aiden Cline
3625766ad4 tweak: ensure run command doesn't send request if no prompt present (#2332) 2025-08-30 10:39:28 -05:00
Roderik van der Veer
924e84b0de fix: change command selection to prefer exact matches over fuzzy sear… (#2314) 2025-08-30 09:44:27 -05:00
GitHub Action
70db3cffb0 ignore: update download stats 2025-08-30 2025-08-30 12:03:53 +00:00
Anton
0c30a6f303 Use a single rust LSP server instance for entire cargo workspace (#2292) 2025-08-30 06:00:39 +00:00
opencode
0c7a887dbc release: v0.5.29 2025-08-30 06:00:39 +00:00
Dax Raad
48e01cfee7 ignore: sync 2025-08-30 01:36:25 -04:00
Dax Raad
b54aa65f5f ignore: fix stuff 2025-08-30 01:19:03 -04:00
Dax Raad
52b3eddeee ignore: fix dev remote 2025-08-30 01:06:48 -04:00
Dax Raad
f821b55514 ignore: cloud resource 2025-08-30 00:58:22 -04:00
Frank
37f284f9a9 wip: cloud 2025-08-29 23:32:17 -04:00
Frank
0178eab29b wip cloud 2025-08-29 23:02:27 -04:00
Aiden Cline
a3f4a030b4 fix: mcp tool not triggering hooks (#2320) 2025-08-29 21:51:06 -05:00
Jay V
9a330b4f0f ignore: cloud keys section 2025-08-29 20:04:57 -04:00
Dax Raad
25e53e090b ignore: create key for new workspace 2025-08-29 19:56:29 -04:00
Frank
46927ee9a5 wip: cloud 2025-08-29 19:45:17 -04:00
Frank
c3a25eff78 wip: cloud 2025-08-29 19:34:58 -04:00
Jay V
b40c02e258 ignore: cloud balance section 2025-08-29 19:20:18 -04:00
Jay V
058163333d ignore: cloud payment history 2025-08-29 19:20:18 -04:00
Jay V
28c341ad32 ignore: cloud usage history 2025-08-29 19:20:18 -04:00
Jay V
a05e677412 ignore: cloud progress 2025-08-29 19:20:18 -04:00
Parbez
918dd58a15 Fix code block formatting in sdk.mdx (#2312) 2025-08-29 14:29:18 -05:00
Jay V
9c02c4cfe8 ignore: cloud 2025-08-29 12:48:01 -04:00
Frank
fd355c15db Update sst 2025-08-29 12:26:03 -04:00
Aiden Cline
12eb1391b9 fix: lsp debug cmd log (#2310) 2025-08-29 11:11:26 -05:00
Dax Raad
4496cd4b64 ignore: cloud solid fixes 2025-08-29 11:58:17 -04:00
Aiden Cline
7f5e5fccc8 ignore: add error log for title gen failures (#2309) 2025-08-29 10:53:58 -05:00
Aiden Cline
1a5b456bb6 fix: add additional encouragement for title gen (#2298) 2025-08-29 09:47:08 -05:00
GitHub Action
b55231c106 ignore: update download stats 2025-08-29 2025-08-29 12:04:20 +00:00
Aiden Cline
d7a9f343c5 tui: show actual error if command fails (#2296) 2025-08-28 18:42:55 -05:00
Adam
5ecd7fdd0c chore: remove unused dep 2025-08-28 18:16:38 -05:00
Adam
1aaf8f11cf chore: update gitignore 2025-08-28 18:16:05 -05:00
Netanel Draiman
7fab12da28 fix: replace isomorphic-git status with direct git diff for worktree support (#1706)
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2025-08-28 18:15:26 -05:00
Aiden Cline
6daf0fdb2b allow slash commands to resolve ~/ references (#2295) 2025-08-28 17:31:03 -05:00
Jay V
f2f4d87cc0 ignore: cloud styles 2025-08-28 18:13:51 -04:00
Frank
8a0e773add wip cloud 2025-08-28 17:52:20 -04:00
Jay V
9b27d61fe8 ignore: cloud 2025-08-28 17:37:48 -04:00
Dax Raad
7d1eb010c1 ignore: cloud 2025-08-28 17:35:54 -04:00
Dax Raad
3fa02623c3 ignore: cloud 2025-08-28 17:33:52 -04:00
Jay V
403f9b2f1b ignore: cloud 2025-08-28 17:17:00 -04:00
Jay V
4d81f90dde ignore: cloud 2025-08-28 17:10:41 -04:00
Jay V
36ec9dddb2 ignore: cloud 2025-08-28 17:06:37 -04:00
Frank
5a0e7698e1 wip cloud 2025-08-28 17:05:51 -04:00
Frank
c6ef92634d wip cloud 2025-08-28 16:44:55 -04:00
Jay V
f97fdceb01 ignore: cloud 2025-08-28 16:29:21 -04:00
Jay V
3f225e3248 ignore: cloud 2025-08-28 16:21:09 -04:00
Jay V
151ff05381 ignore: cloud styles 2025-08-28 16:21:09 -04:00
Adam
e37e878e72 feat: home dir in app info 2025-08-28 14:34:20 -05:00
Jay V
3de1ce467f ignore: cloud 2025-08-28 14:18:37 -04:00
Jay V
eff50c0aab ignore: cloud 2025-08-28 14:12:31 -04:00
Dax Raad
02e014b0a0 ignore: cloud 2025-08-28 14:09:51 -04:00
Jakub Kopecký
a928a35c96 fix: mcp client name (#2289) 2025-08-28 12:48:29 -05:00
Ethan Shea
555202f3b1 Vercel AI Gateway key deeplinks into the dashboard (#2287) 2025-08-28 11:06:45 -05:00
Aiden Cline
37cf262094 fix: tui not showing err toasts (#2290) 2025-08-28 10:55:47 -05:00
Adam
aa9ab0a304 feat: include ignored files 2025-08-28 10:49:45 -05:00
GitHub Action
4331d77b9e ignore: update download stats 2025-08-28 2025-08-28 12:04:29 +00:00
Dax Raad
cf79262dc4 ignore: cloud 2025-08-27 21:49:39 -04:00
Dax Raad
43e8047ad6 ignore: cloud 2025-08-27 21:49:04 -04:00
Dax Raad
63c7c921ed ignore: cloud 2025-08-27 21:47:45 -04:00
Jay V
bce1398b73 ignore: cloud 2025-08-27 19:36:44 -04:00
Aiden Cline
87cf08a9e7 docs: add copy button to user messages too (#2285) 2025-08-27 18:14:27 -05:00
Aiden Cline
ad8ea82611 add synthetic user message before bash execution (when using !) (#2283) 2025-08-27 17:41:24 -05:00
Jay V
d984dbd876 ignore: cloud 2025-08-27 17:53:15 -04:00
Aiden Cline
2d794ed03d fix: ensure / commands dont try to resolve @ references from cmd outputs (#2282) 2025-08-27 15:59:33 -05:00
Adam
8749c0c707 feat: file list api 2025-08-27 15:28:03 -05:00
Jay V
3359417378 ignore: cloud 2025-08-27 16:02:32 -04:00
Aiden Cline
8381760b27 docs: fix client.event.subscribe example (#2280) 2025-08-27 11:42:09 -05:00
Dax Raad
0fbd7c84fd sdk update 2025-08-27 12:18:09 -04:00
Aiden Cline
5c17ee52c5 docs: document anthropic thinking budgets (#2243) 2025-08-27 09:41:51 -05:00
GitHub Action
3606775b79 ignore: update download stats 2025-08-27 2025-08-27 12:04:25 +00:00
spoons-and-mirrors
6233251fc0 fix: shimmer cpu cost (#2084) 2025-08-27 06:18:26 -05:00
Jay V
587b8ae7ee docs: edit 2025-08-26 17:30:43 -04:00
Stibbs
877855d1ee docs: mcp access mgmt instructions (#2087) 2025-08-26 17:27:44 -04:00
opencode
eebca580e3 release: v0.5.28 2025-08-26 20:23:34 +00:00
Frank
e73a7c23d0 Revert "fix(tui): too early"
This reverts commit 564418f1ff.
2025-08-26 16:13:16 -04:00
Jay V
11de2e59f3 docs: edit commands 2025-08-26 16:10:53 -04:00
Jay V
f4b69df7a3 docs: updating config schema 2025-08-26 16:10:53 -04:00
Jay V
83b9b67c4c docs: adding new provider 2025-08-26 16:10:53 -04:00
Aiden Cline
d9de78cfe8 fix: bash tool description (#2260) 2025-08-26 13:42:01 -05:00
GitHub Action
ef6bff6386 ignore: update download stats 2025-08-26 2025-08-26 12:04:26 +00:00
Aiden Cline
cb03655aac fix: eslint ENOTEMPTY (#2252) 2025-08-25 23:11:38 -05:00
Timo Clasen
012a292948 fix: model flag in non interactive mode (#2249) 2025-08-25 15:06:54 -05:00
Frank
d2e2eae4b8 Add opencode workflow 2025-08-26 01:46:16 +08:00
Frank
fd84e8d405 Add opencode workflow 2025-08-26 01:40:52 +08:00
opencode
567a1964c0 release: v0.5.27 2025-08-25 17:10:18 +00:00
adamdotdevin
564418f1ff fix(tui): too early 2025-08-25 12:04:49 -05:00
opencode
d7c4faec58 release: v0.5.26 2025-08-25 16:54:15 +00:00
adamdotdevin
34982b5d18 fix(tui): wording 2025-08-25 16:38:25 +00:00
opencode
5b5bd146ea release: v0.5.25 2025-08-25 16:38:24 +00:00
adamdotdevin
836c2060c7 fix(tui): sort custom commands lower 2025-08-25 11:32:15 -05:00
adamdotdevin
6357136ca5 fix(tui): sort custom commands lower 2025-08-25 11:29:56 -05:00
adamdotdevin
0a0b363587 feat(tui): grok free 2025-08-25 11:27:58 -05:00
Jay V
f5f6167146 docs: edit 2025-08-25 12:11:02 -04:00
adamdotdevin
f1684c9e15 fix(tui): fix logo color 2025-08-25 10:08:52 -05:00
adamdotdevin
f597b7287b chore: cleanup 2025-08-25 10:08:10 -05:00
GitHub Action
95fabc1407 ignore: update download stats 2025-08-25 2025-08-25 12:04:21 +00:00
Aiden Cline
315c366e11 docs: fix shell examples (#2236) 2025-08-24 23:53:39 -05:00
opencode
5d68a7c2e0 release: v0.5.24 2025-08-24 23:01:00 +00:00
Dax Raad
1b2d3bf659 ci: tweak 2025-08-24 18:55:44 -04:00
opencode
24e4f5b051 release: v0.5.23 2025-08-24 22:53:37 +00:00
Dax Raad
2992c5a6bf ci: retry clone 2025-08-24 18:48:03 -04:00
Dax Raad
ca2660ccf8 ci: ignore 2025-08-24 18:31:44 -04:00
Frank
6b4bd590ac Add opencode workflow 2025-08-25 06:16:21 +08:00
Frank
60ba42af15 Add opencode workflow 2025-08-25 06:14:47 +08:00
Frank
f22827bdfa Add opencode workflow 2025-08-25 03:39:11 +08:00
Frank
f9b5b6d129 Add opencode workflow 2025-08-25 03:38:02 +08:00
Aiden Cline
cc66e06101 fix: command model selection (#2219) 2025-08-24 12:06:48 -05:00
GitHub Action
d4c8d95ec6 ignore: update download stats 2025-08-24 2025-08-24 12:03:59 +00:00
Aiden Cline
0fd312346b docs: fix plan agent docs (#2215) 2025-08-23 14:52:02 -05:00
OpeOginni
b80046120c docs: document editor --wait flag (#2209)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-08-23 14:43:20 -05:00
Aiden Cline
07ed2a8391 docs: document out of box lsps (#2213) 2025-08-23 14:22:22 -05:00
opencode
e9f52934e9 release: v0.5.18 2025-08-23 16:27:02 +00:00
Dax Raad
732b67f8ce ci: stuff 2025-08-23 12:21:58 -04:00
Dax Raad
d47bb96784 ci: ignore 2025-08-23 12:10:08 -04:00
Johnny
6456350564 docs: fix nodejs installation commands (#2193) 2025-08-23 08:23:24 -05:00
GitHub Action
c5c0a2ca6e ignore: update download stats 2025-08-23 2025-08-23 12:03:48 +00:00
Vasiliy Kulikov
3706b2bca7 feat(lsp): option to disable lsps installing automatically (#1997)
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-08-22 22:39:19 -05:00
Aiden Cline
1f57b9a70f fix: count reasoning tokens (#2187) 2025-08-22 18:21:39 -05:00
Aiden Cline
004f53f741 ignore: update json schema for better lsp dx (#2186) 2025-08-22 17:59:18 -05:00
Jay V
cf29ec0a59 docs: edit 2025-08-22 18:36:17 -04:00
Jay V
b5e08acdf7 docs: update 2025-08-22 18:34:35 -04:00
Dax Raad
7ddeeeb4f8 ignore: typecheck 2025-08-22 18:31:51 -04:00
Dax Raad
0f1697b2ab add sse streaming to sdk 2025-08-22 18:30:25 -04:00
Lubos
6e626afdcb chore(openapi): set correct content type for server-sent events (#2045) 2025-08-22 17:51:24 -04:00
Dax Raad
0fe94c1616 docs: add file names to code block titles in commands.mdx 2025-08-22 17:23:59 -04:00
Dax Raad
a42b004c72 docs: add commands page to sidebar 2025-08-22 17:23:59 -04:00
opencode
35f57768fd release: v0.5.15 2025-08-22 21:16:23 +00:00
Aiden Cline
9a90ce84fb fix: format error log (#2184) 2025-08-22 16:09:15 -05:00
Dax
133fe41cd5 slash commands (#2157)
Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com>
2025-08-22 17:04:28 -04:00
Jay V
74c1085103 docs: edit 2025-08-22 15:14:02 -04:00
Jay V
497fc170fd docs: edit 2025-08-22 13:54:56 -04:00
Aiden Cline
3edab60560 docs: remove fake model (#2175) 2025-08-22 11:55:11 -05:00
Dax
3f2ac2b9b0 Update duplicate-issues.yml 2025-08-22 08:52:39 -04:00
GitHub Action
1577b44087 ignore: update download stats 2025-08-22 2025-08-22 12:04:13 +00:00
Thai Nguyen Hung
39f52f48f2 fix: correct typo in LSP documentation (#2164) 2025-08-22 06:43:24 -05:00
Aiden Cline
4fadbcfb90 fix: error logging (#2165) 2025-08-21 23:27:49 -05:00
Dax Raad
08c5c401ba deal with non existing cache folder 2025-08-21 22:58:39 -04:00
Aiden Cline
ba2e86c7ef tweak: adjust plan agent to ask when running bash, give it edit tooli… (#2150) 2025-08-21 18:25:31 -04:00
Dax Raad
6d056789c7 ignore: docs agent 2025-08-21 17:15:43 -04:00
Dax Raad
5d508cc9c2 docs: update SDK documentation 2025-08-21 17:15:21 -04:00
Dax Raad
d9233872b9 add createOpencodeServer to js sdk and wait for readiness. always use random port for opencode serve. add /client and /server imports for js sdk 2025-08-21 17:13:24 -04:00
Aiden Cline
aa4dba1541 fix: if lsp fails to spawn it shouldn't inject errors into edit diagnostics (#2145) 2025-08-21 12:06:32 -05:00
Dax Raad
947a3e8aff fix sdk config type 2025-08-21 13:00:16 -04:00
Dax Raad
9a3186317b allow importing sdk from @opencode-ai/sdk/server and @opencode-ai/sdk/client 2025-08-21 12:58:37 -04:00
zWing
b1e584ca1d chore: add export types in js-sdk (#1923)
Co-authored-by: zwingzheng <zwingzheng@tencent.com>
2025-08-21 11:06:27 -05:00
zWing
bca523eb63 fix(js-sdk): fix types in session.chat (#1925)
Co-authored-by: zwingzheng <zwingzheng@tencent.com>
Co-authored-by: rekram1-node <aidenpcline@gmail.com>
2025-08-21 10:44:20 -05:00
Denys Pavlov
2ff4cd2c2b fix: preserve cache dir on cleanup (#2126) 2025-08-21 15:27:25 +00:00
Dax Raad
d686269377 await config hooks 2025-08-21 15:27:25 +00:00
opencode
491abd6b5b release: v0.5.13 2025-08-21 15:27:25 +00:00
Dax Raad
4518f96e3d add plugin hook for config 2025-08-21 11:22:24 -04:00
GitHub Action
a9dcbedf99 ignore: update download stats 2025-08-21 2025-08-21 12:04:21 +00:00
Aiden Cline
9231043eb4 tweak: adjust plan -> build transition prompt (#2111) 2025-08-21 06:52:38 -05:00
Frank
04dcd87170 fix do migration 2025-08-21 18:02:32 +08:00
Frank
c31fd9ed79 fix do migration 2025-08-21 17:52:55 +08:00
Jay V
2989d92794 docs: update 2025-08-20 17:58:56 -04:00
Jay V
256d074411 docs: gitlab 2025-08-20 17:51:16 -04:00
Jay V
8b01676ec0 docs: edit 2025-08-20 17:39:37 -04:00
Lee Tickett
34c6c8494a docs: Add GitLab CLI agent integration doc (#2103) 2025-08-20 17:37:43 -04:00
Dax Raad
522bed6b7d ignore: cloud stuff 2025-08-20 17:01:18 -04:00
Vincent Bernat
dda672284c fix: ignore case when checking Qwen in model ID for todos (#2122) 2025-08-20 14:44:27 -05:00
Jay V
6018364164 docs: edit 2025-08-20 18:22:48 +00:00
opencode
bc0d438cee release: v0.5.12 2025-08-20 18:22:48 +00:00
Jay V
abef91c223 docs: edit server 2025-08-20 14:13:02 -04:00
Dax Raad
1bbf6d38e5 ci: turn back on aur 2025-08-20 12:46:17 -04:00
opencode
c9c9db1e8d release: v0.5.11 2025-08-20 16:36:05 +00:00
Dax Raad
b11fe9fbc6 ignore: remove import 2025-08-20 12:29:24 -04:00
Dax Raad
60f3d413de remove auto browser open for now 2025-08-20 12:28:00 -04:00
2732 changed files with 174359 additions and 65017 deletions

59
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Bug report
description: Report an issue that should be fixed
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Description
description: Describe the bug you encountered
placeholder: What happened?
validations:
required: true
- type: input
id: opencode-version
attributes:
label: OpenCode version
description: What version of OpenCode are you using?
validations:
required: false
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: How can we reproduce this issue?
placeholder: |
1.
2.
3.
validations:
required: false
- type: textarea
id: screenshot-or-link
attributes:
label: Screenshot and/or share link
description: Run `/share` to get a share link, or attach a screenshot
placeholder: Paste link or drag and drop screenshot here
validations:
required: false
- type: input
id: os
attributes:
label: Operating System
description: what OS are you using?
placeholder: e.g., macOS 26.0.1, Ubuntu 22.04, Windows 11
validations:
required: false
- type: input
id: terminal
attributes:
label: Terminal
description: what terminal are you using?
placeholder: e.g., iTerm2, Ghostty, Alacritty, Windows Terminal
validations:
required: false

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: 💬 Discord Community
url: https://discord.gg/opencode
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.

View File

@@ -0,0 +1,20 @@
name: 🚀 Feature Request
description: Suggest an idea, feature, or enhancement
labels: [discussion]
title: "[FEATURE]:"
body:
- type: checkboxes
id: verified
attributes:
label: Feature hasn't been suggested before.
options:
- label: I have verified this feature I'm about to request hasn't been suggested before.
required: true
- type: textarea
attributes:
label: Describe the enhancement you want to request
description: What do you want to change or add? What are the benefits of implementing this? Try to be detailed so we can understand your request better :)
validations:
required: true

11
.github/ISSUE_TEMPLATE/question.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: Question
description: Ask a question
labels: ["question"]
body:
- type: textarea
id: question
attributes:
label: Question
description: What's your question?
validations:
required: true

22
.github/actions/setup-bun/action.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
runs:
using: "composite"
steps:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version-file: package.json
- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v4
with:
path: ~/.bun
key: ${{ runner.os }}-bun-${{ hashFiles('package.json') }}-${{ hashFiles('bun.lockb', 'bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-${{ hashFiles('package.json') }}-
- name: Install dependencies
run: bun install
shell: bash

71
.github/publish-python-sdk.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
#
# This file is intentionally in the wrong dir, will move and add later....
#
# name: publish-python-sdk
# on:
# release:
# types: [published]
# workflow_dispatch:
# jobs:
# publish:
# runs-on: ubuntu-latest
# permissions:
# contents: read
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Setup Bun
# uses: oven-sh/setup-bun@v1
# with:
# bun-version: 1.2.21
# - name: Install dependencies (JS/Bun)
# run: bun install
# - name: Install uv
# shell: bash
# run: curl -LsSf https://astral.sh/uv/install.sh | sh
# - name: Generate Python SDK from OpenAPI (CLI)
# shell: bash
# run: |
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/generate.py --source cli
# - name: Sync Python dependencies
# shell: bash
# run: |
# ~/.local/bin/uv sync --dev --project packages/sdk/python
# - name: Set version from release tag
# shell: bash
# run: |
# TAG="${GITHUB_REF_NAME:-}"
# if [ -z "$TAG" ]; then
# TAG="$(git describe --tags --abbrev=0 || echo 0.0.0)"
# fi
# echo "Using version: $TAG"
# VERSION="$TAG" ~/.local/bin/uv run --project packages/sdk/python python - <<'PY'
# import os, re, pathlib
# root = pathlib.Path('packages/sdk/python')
# pt = (root / 'pyproject.toml').read_text()
# version = os.environ.get('VERSION','0.0.0').lstrip('v')
# pt = re.sub(r'(?m)^(version\s*=\s*")[^"]+("\s*)$', f"\\1{version}\\2", pt)
# (root / 'pyproject.toml').write_text(pt)
# # Also update generator config override for consistency
# cfgp = root / 'openapi-python-client.yaml'
# if cfgp.exists():
# cfg = cfgp.read_text()
# cfg = re.sub(r'(?m)^(package_version_override:\s*)\S+$', f"\\1{version}", cfg)
# cfgp.write_text(cfg)
# PY
# - name: Build and publish to PyPI
# env:
# PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
# shell: bash
# run: |
# ~/.local/bin/uv run --project packages/sdk/python python packages/sdk/python/scripts/publish.py

View File

@@ -11,17 +11,19 @@ concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
deploy:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v3
- uses: oven-sh/setup-bun@v1
with:
bun-version: 1.2.19
- uses: ./.github/actions/setup-bun
- run: bun install
- uses: actions/setup-node@v4
with:
node-version: "24"
- run: bun sst deploy --stage=${{ github.ref_name }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
PLANETSCALE_SERVICE_TOKEN_NAME: ${{ secrets.PLANETSCALE_SERVICE_TOKEN_NAME }}
PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }}
STRIPE_SECRET_KEY: ${{ github.ref_name == 'production' && secrets.STRIPE_SECRET_KEY_PROD || secrets.STRIPE_SECRET_KEY_DEV }}

View File

@@ -6,7 +6,7 @@ on:
jobs:
check-duplicates:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
issues: write
@@ -16,23 +16,25 @@ jobs:
with:
fetch-depth: 1
- uses: ./.github/actions/setup-bun
- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash
- name: Check for duplicate issues
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: |
{
"bash": {
"gh issue*": "allow",
"*": "deny"
},
"*": "deny"
},
"webfetch": "deny"
}
run: |
opencode run -m anthropic/claude-sonnet-4-20250514 "A new issue has been created: '${{ github.event.issue.title }}'
opencode run -m opencode/claude-haiku-4-5 "A new issue has been created:'
Issue number:
${{ github.event.issue.number }}
@@ -55,4 +57,7 @@ jobs:
Feel free to ignore if none of these address your specific case.'
Additionally, if the issue mentions keybinds, keyboard shortcuts, or key bindings, please add a comment mentioning the pinned keybinds issue #4997:
'For keybind-related issues, please also check our pinned keybinds documentation: #4997'
If no clear duplicates are found, do not comment."

38
.github/workflows/generate.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: generate
on:
push:
branches-ignore:
- production
pull_request:
branches-ignore:
- production
workflow_dispatch:
jobs:
generate:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
- name: Setup Bun
uses: ./.github/actions/setup-bun
- name: Generate SDK
run: |
bun ./packages/sdk/js/script/build.ts
(cd packages/opencode && bun dev generate > ../sdk/openapi.json)
bun x prettier --write packages/sdk/openapi.json
- name: Format
run: ./script/format.ts
env:
CI: true
PUSH_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }}

View File

@@ -1,53 +0,0 @@
name: Guidelines Check
on:
# Disabled - uncomment to re-enable
# pull_request_target:
# types: [opened, synchronize]
jobs:
check-guidelines:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash
- name: Check PR guidelines compliance
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: '{ "bash": { "gh*": "allow", "gh pr review*": "deny", "*": "deny" } }'
run: |
opencode run -m anthropic/claude-sonnet-4-20250514 "A new pull request has been created: '${{ github.event.pull_request.title }}'
<pr-number>
${{ github.event.pull_request.number }}
</pr-number>
<pr-description>
${{ github.event.pull_request.body }}
</pr-description>
Please check all the code changes in this pull request against the guidelines in AGENTS.md file in this repository. Diffs are important but make sure you read the entire file to get proper context. Make it clear the suggestions are merely suggestions and the human can decide what to do
Use the gh cli to create comments on the files for the violations. Try to leave the comment on the exact line number. If you have a suggested fix include it in a suggestion code block.
Command MUST be like this.
```
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/comments \
-f 'body=[summary of issue]' -f 'commit_id=${{ github.event.pull_request.head.sha }}' -f 'path=[path-to-file]' -F "line=[line]" -f 'side=RIGHT'
```
Only create comments for actual violations. If the code follows all guidelines, don't run any gh commands."

View File

@@ -2,11 +2,11 @@ name: discord
on:
release:
types: [published] # fires only when a release is published
types: [released] # fires when a draft release is published
jobs:
notify:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Send nicely-formatted embed to Discord
uses: SethCohen/github-releases-to-discord@v1

View File

@@ -3,6 +3,8 @@ name: opencode
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
opencode:
@@ -11,19 +13,22 @@ jobs:
startsWith(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, ' /opencode') ||
startsWith(github.event.comment.body, '/opencode')
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
id-token: write
contents: read
pull-requests: read
issues: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: ./.github/actions/setup-bun
- name: Run opencode
uses: sst/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
OPENCODE_PERMISSION: '{"bash": "deny"}'
with:
model: anthropic/claude-sonnet-4-20250514
model: opencode/claude-opus-4-5

View File

@@ -14,7 +14,7 @@ permissions:
jobs:
publish:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v3
with:

View File

@@ -13,22 +13,23 @@ permissions:
jobs:
publish:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.19
- uses: ./.github/actions/setup-bun
- run: git fetch --force --tags
- run: bun install -g @vscode/vsce
- name: Install extension dependencies
run: bun install
working-directory: ./sdks/vscode
- name: Publish
run: |
bun install
./script/publish
working-directory: ./sdks/vscode
env:

View File

@@ -1,27 +1,37 @@
name: publish
run-name: "${{ format('v{0}', inputs.version) }}"
run-name: "${{ format('release {0}', inputs.bump) }}"
on:
push:
branches:
- dev
- snapshot-*
workflow_dispatch:
inputs:
bump:
description: "Bump major, minor, or patch"
required: false
type: choice
options:
- major
- minor
- patch
version:
description: "Version to publish"
required: true
type: string
title:
description: "Custom title for this run"
description: "Override version (optional)"
required: false
type: string
concurrency: ${{ github.workflow }}-${{ github.ref }}
concurrency: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.version || inputs.bump }}
permissions:
id-token: write
contents: write
packages: write
jobs:
publish:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
if: github.repository == 'sst/opencode'
steps:
- uses: actions/checkout@v3
with:
@@ -29,44 +39,179 @@ jobs:
- run: git fetch --force --tags
- uses: actions/setup-go@v5
with:
go-version: ">=1.24.0"
cache: true
cache-dependency-path: go.sum
- uses: ./.github/actions/setup-bun
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.19
- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v3
with:
path: ~/.bun
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install makepkg
- name: Setup SSH for AUR
if: inputs.bump || inputs.version
run: |
sudo apt-get update
sudo apt-get install -y pacman-package-manager
- name: Setup SSH for AUR
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
git config --global user.email "opencode@sst.dev"
git config --global user.name "opencode"
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true
- name: Install dependencies
run: bun install
- name: Install OpenCode
if: inputs.bump || inputs.version
run: bun i -g opencode-ai@1.0.143
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- uses: actions/setup-node@v4
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
- name: Publish
run: |
OPENCODE_VERSION=${{ inputs.version }} ./script/publish.ts
id: publish
run: ./script/publish.ts
env:
OPENCODE_BUMP: ${{ inputs.bump }}
OPENCODE_VERSION: ${{ inputs.version }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
AUR_KEY: ${{ secrets.AUR_KEY }}
GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}
NPM_CONFIG_PROVENANCE: false
outputs:
releaseId: ${{ steps.publish.outputs.releaseId }}
tagName: ${{ steps.publish.outputs.tagName }}
publish-tauri:
needs: publish
continue-on-error: true
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
- host: macos-latest
target: aarch64-apple-darwin
- host: blacksmith-4vcpu-windows-2025
target: x86_64-pc-windows-msvc
- host: blacksmith-4vcpu-ubuntu-2404
target: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ needs.publish.outputs.tagName }}
- uses: apple-actions/import-codesign-certs@v2
if: ${{ runner.os == 'macOS' }}
with:
keychain: build
p12-file-base64: ${{ secrets.APPLE_CERTIFICATE }}
p12-password: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
- name: Verify Certificate
if: ${{ runner.os == 'macOS' }}
run: |
CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep "Developer ID Application")
CERT_ID=$(echo "$CERT_INFO" | awk -F'"' '{print $2}')
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
echo "Certificate imported."
- name: Setup Apple API Key
if: ${{ runner.os == 'macOS' }}
run: |
echo "${{ secrets.APPLE_API_KEY_PATH }}" > $RUNNER_TEMP/apple-api-key.p8
- run: git fetch --force --tags
- uses: ./.github/actions/setup-bun
- name: install dependencies (ubuntu only)
if: contains(matrix.settings.host, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.settings.target }}
- uses: Swatinem/rust-cache@v2
with:
workspaces: packages/tauri/src-tauri
shared-key: ${{ matrix.settings.target }}
- name: Prepare
run: |
cd packages/tauri
bun ./scripts/prepare.ts
env:
OPENCODE_BUMP: ${{ inputs.bump }}
OPENCODE_VERSION: ${{ inputs.version }}
OPENCODE_CHANNEL: latest
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}
AUR_KEY: ${{ secrets.AUR_KEY }}
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
RUST_TARGET: ${{ matrix.settings.target }}
GH_TOKEN: ${{ github.token }}
OPENCODE_RELEASE_TAG: ${{ needs.publish.outputs.tagName }}
# Fixes AppImage build issues, can be removed when https://github.com/tauri-apps/tauri/pull/12491 is released
- name: Install tauri-cli from portable appimage branch
if: contains(matrix.settings.host, 'ubuntu')
run: |
cargo install tauri-cli --git https://github.com/tauri-apps/tauri --branch feat/truly-portable-appimage --force
echo "Installed tauri-cli version:"
cargo tauri --version
- name: Build and upload artifacts
timeout-minutes: 20
uses: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_BUNDLER_NEW_APPIMAGE_FORMAT: true
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_PATH: ${{ runner.temp }}/apple-api-key.p8
with:
projectPath: packages/tauri
uploadWorkflowArtifacts: true
tauriScript: ${{ (contains(matrix.settings.host, 'ubuntu') && 'cargo tauri') || '' }}
args: --target ${{ matrix.settings.target }} --config src-tauri/tauri.prod.conf.json
updaterJsonPreferNsis: true
releaseId: ${{ needs.publish.outputs.releaseId }}
tagName: ${{ needs.publish.outputs.tagName }}
releaseAssetNamePattern: opencode-desktop-[platform]-[arch][ext]
releaseDraft: true
publish-release:
needs:
- publish
- publish-tauri
if: needs.publish.outputs.tagName
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ needs.publish.outputs.tagName }}
- run: gh release edit ${{ needs.publish.outputs.tagName }} --draft=false
env:
GH_TOKEN: ${{ github.token }}

View File

@@ -0,0 +1,29 @@
name: release-github-action
on:
push:
branches:
- dev
paths:
- "github/**"
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
jobs:
release:
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: git fetch --force --tags
- name: Release
run: |
git config --global user.email "opencode@sst.dev"
git config --global user.name "opencode"
./github/script/release

81
.github/workflows/review.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: Guidelines Check
on:
issue_comment:
types: [created]
jobs:
check-guidelines:
if: |
github.event.issue.pull_request &&
startsWith(github.event.comment.body, '/review') &&
contains(fromJson('["OWNER","MEMBER"]'), github.event.comment.author_association)
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
pull-requests: write
steps:
- name: Get PR number
id: pr-number
run: |
if [ "${{ github.event_name }}" = "pull_request_target" ]; then
echo "number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
else
echo "number=${{ github.event.issue.number }}" >> $GITHUB_OUTPUT
fi
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: ./.github/actions/setup-bun
- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash
- name: Get PR details
id: pr-details
run: |
gh api /repos/${{ github.repository }}/pulls/${{ steps.pr-number.outputs.number }} > pr_data.json
echo "title=$(jq -r .title pr_data.json)" >> $GITHUB_OUTPUT
echo "sha=$(jq -r .head.sha pr_data.json)" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check PR guidelines compliance
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: '{ "bash": { "gh*": "allow", "gh pr review*": "deny", "*": "deny" } }'
PR_TITLE: ${{ steps.pr-details.outputs.title }}
run: |
PR_BODY=$(jq -r .body pr_data.json)
opencode run -m anthropic/claude-opus-4-5 "A new pull request has been created: '${PR_TITLE}'
<pr-number>
${{ steps.pr-number.outputs.number }}
</pr-number>
<pr-description>
$PR_BODY
</pr-description>
Please check all the code changes in this pull request against the style guide, also look for any bugs if they exist. Diffs are important but make sure you read the entire file to get proper context. Make it clear the suggestions are merely suggestions and the human can decide what to do
When critiquing code against the style guide, be sure that the code is ACTUALLY in violation, don't complain about else statements if they already use early returns there. You may complain about excessive nesting though, regardless of else statement usage.
When critiquing code style don't be a zealot, we don't like "let" statements but sometimes they are the simpliest option, if someone does a bunch of nesting with let, they should consider using iife (see packages/opencode/src/util.iife.ts)
Use the gh cli to create comments on the files for the violations. Try to leave the comment on the exact line number. If you have a suggested fix include it in a suggestion code block.
Command MUST be like this.
\`\`\`
gh api \
--method POST \
-H \"Accept: application/vnd.github+json\" \
-H \"X-GitHub-Api-Version: 2022-11-28\" \
/repos/${{ github.repository }}/pulls/${{ steps.pr-number.outputs.number }}/comments \
-f 'body=[summary of issue]' -f 'commit_id=${{ steps.pr-details.outputs.sha }}' -f 'path=[path-to-file]' -F \"line=[line]\" -f 'side=RIGHT'
\`\`\`
Only create comments for actual violations. If the code follows all guidelines, comment on the issue using gh cli: 'lgtm' AND NOTHING ELSE!!!!."

View File

@@ -7,7 +7,7 @@ on:
jobs:
stats:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: write
@@ -16,9 +16,7 @@ jobs:
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
uses: ./.github/actions/setup-bun
- name: Run stats script
run: bun script/stats.ts

View File

@@ -0,0 +1,34 @@
name: "sync-zed-extension"
on:
workflow_dispatch:
# release:
# types: [published]
jobs:
zed:
name: Release Zed Extension
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup-bun
- name: Get version tag
id: get_tag
run: |
if [ "${{ github.event_name }}" = "release" ]; then
TAG="${{ github.event.release.tag_name }}"
else
TAG=$(git tag --list 'v[0-9]*.*' --sort=-version:refname | head -n 1)
fi
echo "tag=${TAG}" >> $GITHUB_OUTPUT
echo "Using tag: ${TAG}"
- name: Sync Zed extension
run: |
./script/sync-zed.ts ${{ steps.get_tag.outputs.tag }}
env:
GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}

30
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: test
on:
push:
branches-ignore:
- production
pull_request:
branches-ignore:
- production
workflow_dispatch:
jobs:
test:
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Bun
uses: ./.github/actions/setup-bun
- name: run
run: |
git config --global user.email "bot@opencode.ai"
git config --global user.name "opencode"
bun turbo typecheck
bun turbo test
env:
CI: true

37
.github/workflows/triage.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Issue Triage
on:
issues:
types: [opened]
jobs:
triage:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Bun
uses: ./.github/actions/setup-bun
- name: Install opencode
run: curl -fsSL https://opencode.ai/install | bash
- name: Triage issue
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_BODY: ${{ github.event.issue.body }}
run: |
opencode run --agent triage "The following issue was just opened, triage it:
Title: $ISSUE_TITLE
$ISSUE_BODY"

View File

@@ -1,4 +1,4 @@
name: Typecheck
name: typecheck
on:
pull_request:
@@ -7,18 +7,13 @@ on:
jobs:
typecheck:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.2.19
- name: Install dependencies
run: bun install
uses: ./.github/actions/setup-bun
- name: Run typecheck
run: bun typecheck

102
.github/workflows/update-nix-hashes.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: Update Nix Hashes
permissions:
contents: write
on:
workflow_dispatch:
push:
paths:
- "bun.lock"
- "package.json"
- "packages/*/package.json"
pull_request:
paths:
- "bun.lock"
- "package.json"
- "packages/*/package.json"
jobs:
update:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
runs-on: blacksmith-4vcpu-ubuntu-2404
env:
SYSTEM: x86_64-linux
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
- name: Setup Nix
uses: DeterminateSystems/nix-installer-action@v20
- name: Configure git
run: |
git config --global user.email "action@github.com"
git config --global user.name "Github Action"
- name: Update flake.lock
run: |
set -euo pipefail
echo "📦 Updating flake.lock..."
nix flake update
echo "✅ flake.lock updated successfully"
- name: Update node_modules hash
run: |
set -euo pipefail
echo "🔄 Updating node_modules hash..."
nix/scripts/update-hashes.sh
echo "✅ node_modules hash updated successfully"
- name: Commit hash changes
env:
TARGET_BRANCH: ${{ github.head_ref || github.ref_name }}
run: |
set -euo pipefail
echo "🔍 Checking for changes in tracked Nix files..."
summarize() {
local status="$1"
{
echo "### Nix Hash Update"
echo ""
echo "- ref: ${GITHUB_REF_NAME}"
echo "- status: ${status}"
} >> "$GITHUB_STEP_SUMMARY"
if [ -n "${GITHUB_SERVER_URL:-}" ] && [ -n "${GITHUB_REPOSITORY:-}" ] && [ -n "${GITHUB_RUN_ID:-}" ]; then
echo "- run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> "$GITHUB_STEP_SUMMARY"
fi
echo "" >> "$GITHUB_STEP_SUMMARY"
}
FILES=(flake.lock flake.nix nix/node-modules.nix nix/hashes.json)
STATUS="$(git status --short -- "${FILES[@]}" || true)"
if [ -z "$STATUS" ]; then
echo "✅ No changes detected. Hashes are already up to date."
summarize "no changes"
exit 0
fi
echo "📝 Changes detected:"
echo "$STATUS"
echo "🔗 Staging files..."
git add "${FILES[@]}"
echo "💾 Committing changes..."
git commit -m "Update Nix flake.lock and hashes"
echo "✅ Changes committed"
BRANCH="${TARGET_BRANCH:-${GITHUB_REF_NAME}}"
echo "🌳 Pulling latest from branch: $BRANCH"
git pull --rebase origin "$BRANCH"
echo "🚀 Pushing changes to branch: $BRANCH"
git push origin HEAD:"$BRANCH"
echo "✅ Changes pushed successfully"
summarize "committed $(git rev-parse --short HEAD)"

15
.gitignore vendored
View File

@@ -1,9 +1,22 @@
.DS_Store
node_modules
.worktrees
.sst
.env
.idea
.vscode
openapi.json
*~
playground
tmp
dist
ts-dist
.turbo
**/.serena
.serena/
/result
refs
Session.vim
opencode.json
a.out
target
.scripts

9
.husky/pre-push Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# Check if bun version matches package.json
EXPECTED_VERSION=$(grep '"packageManager"' package.json | sed 's/.*"bun@\([^"]*\)".*/\1/')
CURRENT_VERSION=$(bun --version)
if [ "$CURRENT_VERSION" != "$EXPECTED_VERSION" ]; then
echo "Error: Bun version $CURRENT_VERSION does not match expected version $EXPECTED_VERSION from package.json"
exit 1
fi
bun typecheck

View File

@@ -13,7 +13,7 @@ avoid repeating the title of the page, should be 5-10 words long
Chunks of text should not be more than 2 sentences long
Each section is spearated by a divider of 3 dashes
Each section is separated by a divider of 3 dashes
The section titles are short with only the first letter of the word capitalized
@@ -27,3 +27,5 @@ Check out the /packages/web/src/content/docs/docs/index.mdx as an example.
For JS or TS code snippets remove trailing semicolons and any trailing commas
that might not be needed.
If you are making a commit prefix the commit message with `docs:`

79
.opencode/agent/triage.md Normal file
View File

@@ -0,0 +1,79 @@
---
mode: primary
hidden: true
model: opencode/claude-haiku-4-5
tools:
"*": false
"github-triage": true
---
You are a triage agent responsible for triaging github issues.
Use your github-triage tool to triage issues.
## Labels
### windows
Use for any issue that mentions Windows (the OS). Be sure they are saying that they are on Windows.
- Use if they mention WSL too
#### perf
Performance-related issues:
- Slow performance
- High RAM usage
- High CPU usage
**Only** add if it's likely a RAM or CPU issue. **Do not** add for LLM slowness.
#### desktop
Desktop app issues:
- `opencode web` command
- The desktop app itself
**Only** add if it's specifically about the Desktop application or `opencode web` view. **Do not** add for terminal, TUI, or general opencode issues.
#### nix
**Only** add if the issue explicitly mentions nix.
#### zen
**Only** add if the issue mentions "zen" or "opencode zen". Zen is our gateway for coding models. **Do not** add for other gateways or inference providers.
If the issue doesn't have "zen" in it then don't add zen label
#### docs
Add if the issue requests better documentation or docs updates.
#### opentui
TUI issues potentially caused by our underlying TUI library:
- Keybindings not working
- Scroll speed issues (too fast/slow/laggy)
- Screen flickering
- Crashes with opentui in the log
**Do not** add for general TUI bugs.
---
When assigning to people here are the following rules:
adamdotdev:
ONLY assign adam if the issue will have the "desktop" label.
fwang:
ONLY assign fwang if the issue will have the "zen" label.
jayair:
ONLY assign jayair if the issue will have the "docs" label.
In all other cases use best judgment. Avoid assigning to kommander needlessly, when in doubt assign to rekram1-node.

View File

@@ -0,0 +1,28 @@
---
description: git commit and push
model: opencode/glm-4.6
subtask: true
---
commit and push
make sure it includes a prefix like
docs:
tui:
core:
ci:
ignore:
wip:
For anything in the packages/web use the docs: prefix.
For anything in the packages/app use the ignore: prefix.
prefer to explain WHY something was done from an end user perspective instead of
WHAT was done.
do not do generic messages like "improved agent experience" be very specific
about what user facing changes were made
if there are changes do a git pull --rebase
if there are conflicts DO NOT FIX THEM. notify me and I will fix them

View File

@@ -0,0 +1,23 @@
---
description: "find issue(s) on github"
model: opencode/claude-haiku-4-5
---
Search through existing issues in sst/opencode using the gh cli to find issues matching this query:
$ARGUMENTS
Consider:
1. Similar titles or descriptions
2. Same error messages or symptoms
3. Related functionality or components
4. Similar feature requests
Please list any matching issues with:
- Issue number and title
- Brief explanation of why it matches the query
- Link to the issue
If no clear matches are found, say so.

View File

@@ -0,0 +1,15 @@
---
description: Remove AI code slop
---
Check the diff against dev, and remove all AI generated slop introduced in this branch.
This includes:
- Extra comments that a human wouldn't add or is inconsistent with the rest of the file
- Extra defensive checks or try/catch blocks that are abnormal for that area of the codebase (especially if called by trusted / validated codepaths)
- Casts to any to get around type issues
- Any other style that is inconsistent with the file
- Unnecessary emoji usage
Report at the end with only a 1-3 sentence summary of what you changed

View File

@@ -0,0 +1,5 @@
---
description: spellcheck all markdown file changes
---
Look at all the unstaged changes to markdown (.md, .mdx) files, pull out the lines that have changed, and check for spelling and grammar errors.

4
.opencode/env.d.ts vendored Normal file
View File

@@ -0,0 +1,4 @@
declare module "*.txt" {
const content: string
export default content
}

17
.opencode/opencode.jsonc Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "https://opencode.ai/config.json",
// "plugin": ["opencode-openai-codex-auth"],
// "enterprise": {
// "url": "https://enterprise.dev.opencode.ai",
// },
"instructions": ["STYLE_GUIDE.md"],
"provider": {
"opencode": {
"options": {},
},
},
"mcp": {},
"tools": {
"github-triage": false,
},
}

View File

@@ -0,0 +1,223 @@
{
"$schema": "https://opencode.ai/theme.json",
"defs": {
"nord0": "#2E3440",
"nord1": "#3B4252",
"nord2": "#434C5E",
"nord3": "#4C566A",
"nord4": "#D8DEE9",
"nord5": "#E5E9F0",
"nord6": "#ECEFF4",
"nord7": "#8FBCBB",
"nord8": "#88C0D0",
"nord9": "#81A1C1",
"nord10": "#5E81AC",
"nord11": "#BF616A",
"nord12": "#D08770",
"nord13": "#EBCB8B",
"nord14": "#A3BE8C",
"nord15": "#B48EAD"
},
"theme": {
"primary": {
"dark": "nord8",
"light": "nord10"
},
"secondary": {
"dark": "nord9",
"light": "nord9"
},
"accent": {
"dark": "nord7",
"light": "nord7"
},
"error": {
"dark": "nord11",
"light": "nord11"
},
"warning": {
"dark": "nord12",
"light": "nord12"
},
"success": {
"dark": "nord14",
"light": "nord14"
},
"info": {
"dark": "nord8",
"light": "nord10"
},
"text": {
"dark": "nord4",
"light": "nord0"
},
"textMuted": {
"dark": "nord3",
"light": "nord1"
},
"background": {
"dark": "nord0",
"light": "nord6"
},
"backgroundPanel": {
"dark": "nord1",
"light": "nord5"
},
"backgroundElement": {
"dark": "nord1",
"light": "nord4"
},
"border": {
"dark": "nord2",
"light": "nord3"
},
"borderActive": {
"dark": "nord3",
"light": "nord2"
},
"borderSubtle": {
"dark": "nord2",
"light": "nord3"
},
"diffAdded": {
"dark": "nord14",
"light": "nord14"
},
"diffRemoved": {
"dark": "nord11",
"light": "nord11"
},
"diffContext": {
"dark": "nord3",
"light": "nord3"
},
"diffHunkHeader": {
"dark": "nord3",
"light": "nord3"
},
"diffHighlightAdded": {
"dark": "nord14",
"light": "nord14"
},
"diffHighlightRemoved": {
"dark": "nord11",
"light": "nord11"
},
"diffAddedBg": {
"dark": "#3B4252",
"light": "#E5E9F0"
},
"diffRemovedBg": {
"dark": "#3B4252",
"light": "#E5E9F0"
},
"diffContextBg": {
"dark": "nord1",
"light": "nord5"
},
"diffLineNumber": {
"dark": "nord2",
"light": "nord4"
},
"diffAddedLineNumberBg": {
"dark": "#3B4252",
"light": "#E5E9F0"
},
"diffRemovedLineNumberBg": {
"dark": "#3B4252",
"light": "#E5E9F0"
},
"markdownText": {
"dark": "nord4",
"light": "nord0"
},
"markdownHeading": {
"dark": "nord8",
"light": "nord10"
},
"markdownLink": {
"dark": "nord9",
"light": "nord9"
},
"markdownLinkText": {
"dark": "nord7",
"light": "nord7"
},
"markdownCode": {
"dark": "nord14",
"light": "nord14"
},
"markdownBlockQuote": {
"dark": "nord3",
"light": "nord3"
},
"markdownEmph": {
"dark": "nord12",
"light": "nord12"
},
"markdownStrong": {
"dark": "nord13",
"light": "nord13"
},
"markdownHorizontalRule": {
"dark": "nord3",
"light": "nord3"
},
"markdownListItem": {
"dark": "nord8",
"light": "nord10"
},
"markdownListEnumeration": {
"dark": "nord7",
"light": "nord7"
},
"markdownImage": {
"dark": "nord9",
"light": "nord9"
},
"markdownImageText": {
"dark": "nord7",
"light": "nord7"
},
"markdownCodeBlock": {
"dark": "nord4",
"light": "nord0"
},
"syntaxComment": {
"dark": "nord3",
"light": "nord3"
},
"syntaxKeyword": {
"dark": "nord9",
"light": "nord9"
},
"syntaxFunction": {
"dark": "nord8",
"light": "nord8"
},
"syntaxVariable": {
"dark": "nord7",
"light": "nord7"
},
"syntaxString": {
"dark": "nord14",
"light": "nord14"
},
"syntaxNumber": {
"dark": "nord15",
"light": "nord15"
},
"syntaxType": {
"dark": "nord7",
"light": "nord7"
},
"syntaxOperator": {
"dark": "nord9",
"light": "nord9"
},
"syntaxPunctuation": {
"dark": "nord4",
"light": "nord0"
}
}
}

View File

@@ -0,0 +1,66 @@
/// <reference path="../env.d.ts" />
import { Octokit } from "@octokit/rest"
import { tool } from "@opencode-ai/plugin"
import DESCRIPTION from "./github-triage.txt"
function getIssueNumber(): number {
const issue = parseInt(process.env.ISSUE_NUMBER ?? "", 10)
if (!issue) throw new Error("ISSUE_NUMBER env var not set")
return issue
}
export default tool({
description: DESCRIPTION,
args: {
assignee: tool.schema
.enum(["thdxr", "adamdotdevin", "rekram1-node", "fwang", "jayair", "kommander"])
.describe("The username of the assignee")
.default("rekram1-node"),
labels: tool.schema
.array(tool.schema.enum(["nix", "opentui", "perf", "desktop", "zen", "docs", "windows"]))
.describe("The labels(s) to add to the issue")
.default([]),
},
async execute(args) {
const issue = getIssueNumber()
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN })
const owner = "sst"
const repo = "opencode"
const results: string[] = []
if (args.assignee === "adamdotdevin" && !args.labels.includes("desktop")) {
throw new Error("Only desktop issues should be assigned to adamdotdevin")
}
if (args.assignee === "fwang" && !args.labels.includes("zen")) {
throw new Error("Only zen issues should be assigned to fwang")
}
if (args.assignee === "kommander" && !args.labels.includes("opentui")) {
throw new Error("Only opentui issues should be assigned to kommander")
}
await octokit.rest.issues.addAssignees({
owner,
repo,
issue_number: issue,
assignees: [args.assignee],
})
results.push(`Assigned @${args.assignee} to issue #${issue}`)
const labels: string[] = args.labels.map((label) => (label === "desktop" ? "web" : label))
if (labels.length > 0) {
await octokit.rest.issues.addLabels({
owner,
repo,
issue_number: issue,
labels,
})
results.push(`Added labels: ${args.labels.join(", ")}`)
}
return results.join("\n")
},
})

View File

@@ -0,0 +1,88 @@
Use this tool to assign and/or label a Github issue.
You can assign the following users:
- thdxr
- adamdotdevin
- fwang
- jayair
- kommander
- rekram1-node
You can use the following labels:
- nix
- opentui
- perf
- web
- zen
- docs
Always try to assign an issue, if in doubt, assign rekram1-node to it.
## Breakdown of responsibilities:
### thdxr
Dax is responsible for managing core parts of the application, for large feature requests, api changes, or things that require significant changes to the codebase assign him.
This relates to OpenCode server primarily but has overlap with just about anything
### adamdotdevin
Adam is responsible for managing the Desktop/Web app. If there is an issue relating to the desktop app or `opencode web` command. Assign him.
### fwang
Frank is responsible for managing Zen, if you see complaints about OpenCode Zen, maybe it's the dashboard, the model quality, billing issues, etc. Assign him to the issue.
### jayair
Jay is responsible for documentation. If there is an issue relating to documentation assign him.
### kommander
Sebastian is responsible for managing an OpenTUI (a library for building terminal user interfaces). OpenCode's TUI is built with OpenTUI. If there are issues about:
- random characters on screen
- keybinds not working on different terminals
- general terminal stuff
Then assign the issue to Him.
### rekram1-node
ALL BUGS SHOULD BE assigned to rekram1-node unless they have the `opentui` label.
Assign Aiden to an issue as a catch all, if you can't assign anyone else. Most of the time this will be bugs/polish things.
If no one else makes sense to assign, assign rekram1-node to it.
Always assign to aiden if the issue mentions "acp", "zed", or model performance issues
## Breakdown of Labels:
### nix
Any issue that mentions nix, or nixos should have a nix label
### opentui
Anything relating to the TUI itself should have an opentui label
### perf
Anything related to slow performance, high ram, high cpu usage, or any other performance related issue should have a perf label
### desktop
Anything related to `opencode web` command or the desktop app should have a desktop label. Never add this label for anything terminal/tui related
### zen
Anything related to OpenCode Zen, billing, or model quality from Zen should have a zen label
### docs
Anything related to the documentation should have a docs label
### windows
Use for any issue that involves the windows OS

1
.prettierignore Normal file
View File

@@ -0,0 +1 @@
sst-env.d.ts

11
.vscode/launch.example.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "bun",
"request": "attach",
"name": "opencode (attach)",
"url": "ws://localhost:6499/"
}
]
}

5
.vscode/settings.example.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"recommendations": [
"oven.bun-vscode"
]
}

View File

@@ -1,12 +1,34 @@
## IMPORTANT
## Debugging
- Try to keep things in one function unless composable or reusable
- DO NOT do unnecessary destructuring of variables
- DO NOT use `else` statements unless necessary
- DO NOT use `try`/`catch` if it can be avoided
- AVOID `try`/`catch` where possible
- AVOID `else` statements
- AVOID using `any` type
- AVOID `let` statements
- PREFER single word variable names where possible
- Use as many bun apis as possible like Bun.file()
- To test opencode in the `packages/opencode` directory you can run `bun dev`
## Tool Calling
- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE. Here is an example illustrating how to execute 3 parallel file reads in this chat environment:
json
{
"recipient_name": "multi_tool_use.parallel",
"parameters": {
"tool_uses": [
{
"recipient_name": "functions.read",
"parameters": {
"filePath": "path/to/file.tsx"
}
},
{
"recipient_name": "functions.read",
"parameters": {
"filePath": "path/to/file.ts"
}
},
{
"recipient_name": "functions.read",
"parameters": {
"filePath": "path/to/file.md"
}
}
]
}
}

102
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,102 @@
# Contributing to OpenCode
We want to make it easy for you to contribute to OpenCode. Here are the most common type of changes that get merged:
- Bug fixes
- Additional LSPs / Formatters
- Improvements to LLM performance
- Support for new providers
- Fixes for environment-specific quirks
- Missing standard behavior
- Documentation improvements
However, any UI or core product feature must go through a design review with the core team before implementation.
If you are unsure if a PR would be accepted, feel free to ask a maintainer or look for issues with any of the following labels:
- [`help wanted`](https://github.com/sst/opencode/issues?q=is%3Aissue%20state%3Aopen%20label%3Ahelp-wanted)
- [`good first issue`](https://github.com/sst/opencode/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22)
- [`bug`](https://github.com/sst/opencode/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug)
- [`perf`](https://github.com/sst/opencode/issues?q=is%3Aopen%20is%3Aissue%20label%3A%22perf%22)
> [!NOTE]
> PRs that ignore these guardrails will likely be closed.
Want to take on an issue? Leave a comment and a maintainer may assign it to you unless it is something we are already working on.
## Developing OpenCode
- Requirements: Bun 1.3+
- Install dependencies and start the dev server from the repo root:
```bash
bun install
bun dev
```
- Core pieces:
- `packages/opencode`: OpenCode core business logic & server.
- `packages/opencode/src/cli/cmd/tui/`: The TUI code, written in SolidJS with [opentui](https://github.com/sst/opentui)
- `packages/plugin`: Source for `@opencode-ai/plugin`
> [!NOTE]
> After touching `packages/opencode/src/server/server.ts`, run "./packages/sdk/js/script/build.ts" to regenerate the JS sdk.
Please try to follow the [style guide](./STYLE_GUIDE.md)
### Setting up a Debugger
Bun debugging is currently rough around the edges. We hope this guide helps you get set up and avoid some pain points.
The most reliable way to debug OpenCode is to run it manually in a terminal via `bun run --inspect=<url> dev ...` and attach
your debugger via that URL. Other methods can result in breakpoints being mapped incorrectly, at least in VSCode (YMMV).
Caveats:
- `*.tsx` files won't have their breakpoints correctly mapped. This seems due to Bun currently not supporting source maps on code transformed
via `BunPlugin`s (currently necessary due to our dependency on `@opentui/solid`). Currently, the best you can do in terms of debugging `*.tsx`
files is writing a `debugger;` statement. Debugging facilities like stepping won't work, but at least you will be informed if a specific code
is triggered.
- If you want to run the OpenCode TUI and have breakpoints triggered in the server code, you might need to run `bun dev spawn` instead of
the usual `bun dev`. This is because `bun dev` runs the server in a worker thread and breakpoints might not work there.
Other tips and tricks:
- You might want to use `--inspect-wait` or `--inspect-brk` instead of `--inspect`, depending on your workflow
- Specifying `--inspect=ws://localhost:6499/` on every invocation can be tiresome, you may want to `export BUN_OPTIONS=--inspect=ws://localhost:6499/` instead
#### VSCode Setup
If you use VSCode, you can use our example configurations [.vscode/settings.example.json](.vscode/settings.example.json) and [.vscode/launch.example.json](.vscode/launch.example.json).
Some debug methods that can be problematic:
- Debug configurations with `"request": "launch"` can have breakpoints incorrectly mapped and thus unusable
- The same problem arises when running OpenCode in the VSCode `JavaScript Debug Terminal`
With that said, you may want to try these methods, as they might work for you.
## Pull Request Expectations
- Try to keep pull requests small and focused.
- Link relevant issue(s) in the description
- Explain the issue and why your change fixes it
- Avoid having verbose LLM generated PR descriptions
- Before adding new functions or functionality, ensure that such behavior doesn't already exist elsewhere in the codebase.
### Style Preferences
These are not strictly enforced, they are just general guidelines:
- **Functions:** Keep logic within a single function unless breaking it out adds clear reuse or composition benefits.
- **Destructuring:** Do not do unnecessary destructuring of variables.
- **Control flow:** Avoid `else` statements.
- **Error handling:** Prefer `.catch(...)` instead of `try`/`catch` when possible.
- **Types:** Reach for precise types and avoid `any`.
- **Variables:** Stick to immutable patterns and avoid `let`.
- **Naming:** Choose concise single-word identifiers when they remain descriptive.
- **Runtime APIs:** Use Bun helpers such as `Bun.file()` when they fit the use case.
## Feature Requests
For net-new functionality, start with a design conversation. Open an issue describing the problem, your proposed approach (optional), and why it belongs in OpenCode. The core team will help decide whether it should move forward; please wait for that approval instead of opening a feature PR directly.

View File

@@ -1,20 +1,20 @@
<p align="center">
<a href="https://opencode.ai">
<picture>
<source srcset="packages/web/src/assets/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="packages/web/src/assets/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
<img src="packages/web/src/assets/logo-ornate-light.svg" alt="opencode logo">
<source srcset="packages/console/app/src/asset/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
<source srcset="packages/console/app/src/asset/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
<img src="packages/console/app/src/asset/logo-ornate-light.svg" alt="OpenCode logo">
</picture>
</a>
</p>
<p align="center">AI coding agent, built for the terminal.</p>
<p align="center">The open source AI coding agent.</p>
<p align="center">
<a href="https://opencode.ai/discord"><img alt="Discord" src="https://img.shields.io/discord/1391832426048651334?style=flat-square&label=discord" /></a>
<a href="https://www.npmjs.com/package/opencode-ai"><img alt="npm" src="https://img.shields.io/npm/v/opencode-ai?style=flat-square" /></a>
<a href="https://github.com/sst/opencode/actions/workflows/publish.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/sst/opencode/publish.yml?style=flat-square&branch=dev" /></a>
</p>
[![opencode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)
[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)
---
@@ -26,13 +26,33 @@ curl -fsSL https://opencode.ai/install | bash
# Package managers
npm i -g opencode-ai@latest # or bun/pnpm/yarn
brew install sst/tap/opencode # macOS and Linux
scoop bucket add extras; scoop install extras/opencode # Windows
choco install opencode # Windows
brew install opencode # macOS and Linux
paru -S opencode-bin # Arch Linux
mise use -g ubi:sst/opencode # Any OS
nix run nixpkgs#opencode # or github:sst/opencode for latest dev branch
```
> [!TIP]
> Remove versions older than 0.1.x before installing.
### Desktop App (BETA)
OpenCode is also available as a desktop application. Download directly from the [releases page](https://github.com/sst/opencode/releases) or [opencode.ai/download](https://opencode.ai/download).
| Platform | Download |
| --------------------- | ------------------------------------- |
| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` |
| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` |
| Windows | `opencode-desktop-windows-x64.exe` |
| Linux | `.deb`, `.rpm`, or AppImage |
```bash
# macOS (Homebrew)
brew install --cask opencode-desktop
```
#### Installation Directory
The install script respects the following priority order for the installation path:
@@ -48,47 +68,33 @@ OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bas
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash
```
### Agents
OpenCode includes two built-in agents you can switch between,
you can switch between these using the `Tab` key.
- **build** - Default, full access agent for development work
- **plan** - Read-only agent for analysis and code exploration
- Denies file edits by default
- Asks permission before running bash commands
- Ideal for exploring unfamiliar codebases or planning changes
Also, included is a **general** subagent for complex searches and multi-step tasks.
This is used internally and can be invoked using `@general` in messages.
Learn more about [agents](https://opencode.ai/docs/agents).
### Documentation
For more info on how to configure opencode [**head over to our docs**](https://opencode.ai/docs).
For more info on how to configure OpenCode [**head over to our docs**](https://opencode.ai/docs).
### Contributing
opencode is an opinionated tool so any fundamental feature needs to go through a
design process with the core team.
If you're interested in contributing to OpenCode, please read our [contributing docs](./CONTRIBUTING.md) before submitting a pull request.
> [!IMPORTANT]
> We do not accept PRs for core features.
### Building on OpenCode
However we still merge a ton of PRs - you can contribute:
- Bug fixes
- Improvements to LLM performance
- Support for new providers
- Fixes for env specific quirks
- Missing standard behavior
- Documentation
Take a look at the git history to see what kind of PRs we end up merging.
> [!NOTE]
> If you do not follow the above guidelines we might close your PR.
To run opencode locally you need.
- Bun
- Golang 1.24.x
And run.
```bash
$ bun install
$ bun dev
```
#### Development Notes
**API Client**: After making changes to the TypeScript API endpoints in `packages/opencode/src/server/server.ts`, you will need the opencode team to generate a new stainless sdk for the clients.
If you are working on a project that's related to OpenCode and is using "opencode" as a part of its name; for example, "opencode-dashboard" or "opencode-mobile", please add a note to your README to clarify that it is not built by the OpenCode team and is not affiliated with us in any way.
### FAQ
@@ -97,9 +103,10 @@ $ bun dev
It's very similar to Claude Code in terms of capability. Here are the key differences:
- 100% open source
- Not coupled to any provider. Although Anthropic is recommended, opencode can be used with OpenAI, Google or even local models. As models evolve the gaps between them will close and pricing will drop so being provider-agnostic is important.
- A focus on TUI. opencode is built by neovim users and the creators of [terminal.shop](https://terminal.shop); we are going to push the limits of what's possible in the terminal.
- A client/server architecture. This for example can allow opencode to run on your computer, while you can drive it remotely from a mobile app. Meaning that the TUI frontend is just one of the possible clients.
- Not coupled to any provider. Although we recommend the models we provide through [OpenCode Zen](https://opencode.ai/zen); OpenCode can be used with Claude, OpenAI, Google or even local models. As models evolve the gaps between them will close and pricing will drop so being provider-agnostic is important.
- Out of the box LSP support
- A focus on TUI. OpenCode is built by neovim users and the creators of [terminal.shop](https://terminal.shop); we are going to push the limits of what's possible in the terminal.
- A client/server architecture. This for example can allow OpenCode to run on your computer, while you can drive it remotely from a mobile app. Meaning that the TUI frontend is just one of the possible clients.
#### What's the other repo?
@@ -107,4 +114,4 @@ The other confusingly named repo has no relation to this one. You can [read the
---
**Join our community** [Discord](https://discord.gg/opencode) | [YouTube](https://www.youtube.com/c/sst-dev) | [X.com](https://x.com/SST_dev)
**Join our community** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)

228
STATS.md
View File

@@ -1,56 +1,176 @@
# Download Stats
| Date | GitHub Downloads | npm Downloads | Total |
| ---------- | ---------------- | ---------------- | ----------------- |
| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) |
| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) |
| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) |
| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) |
| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) |
| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) |
| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) |
| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) |
| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) |
| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) |
| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) |
| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) |
| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) |
| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) |
| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) |
| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) |
| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) |
| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) |
| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) |
| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) |
| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) |
| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) |
| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) |
| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) |
| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) |
| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) |
| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) |
| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) |
| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) |
| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) |
| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) |
| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) |
| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) |
| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) |
| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) |
| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) |
| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) |
| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) |
| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) |
| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) |
| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) |
| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) |
| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) |
| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) |
| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) |
| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) |
| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) |
| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) |
| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) |
| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) |
| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) |
| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) |
| Date | GitHub Downloads | npm Downloads | Total |
| ---------- | ------------------- | ------------------- | ------------------- |
| 2025-06-29 | 18,789 (+0) | 39,420 (+0) | 58,209 (+0) |
| 2025-06-30 | 20,127 (+1,338) | 41,059 (+1,639) | 61,186 (+2,977) |
| 2025-07-01 | 22,108 (+1,981) | 43,745 (+2,686) | 65,853 (+4,667) |
| 2025-07-02 | 24,814 (+2,706) | 46,168 (+2,423) | 70,982 (+5,129) |
| 2025-07-03 | 27,834 (+3,020) | 49,955 (+3,787) | 77,789 (+6,807) |
| 2025-07-04 | 30,608 (+2,774) | 54,758 (+4,803) | 85,366 (+7,577) |
| 2025-07-05 | 32,524 (+1,916) | 58,371 (+3,613) | 90,895 (+5,529) |
| 2025-07-06 | 33,766 (+1,242) | 59,694 (+1,323) | 93,460 (+2,565) |
| 2025-07-08 | 38,052 (+4,286) | 64,468 (+4,774) | 102,520 (+9,060) |
| 2025-07-09 | 40,924 (+2,872) | 67,935 (+3,467) | 108,859 (+6,339) |
| 2025-07-10 | 43,796 (+2,872) | 71,402 (+3,467) | 115,198 (+6,339) |
| 2025-07-11 | 46,982 (+3,186) | 77,462 (+6,060) | 124,444 (+9,246) |
| 2025-07-12 | 49,302 (+2,320) | 82,177 (+4,715) | 131,479 (+7,035) |
| 2025-07-13 | 50,803 (+1,501) | 86,394 (+4,217) | 137,197 (+5,718) |
| 2025-07-14 | 53,283 (+2,480) | 87,860 (+1,466) | 141,143 (+3,946) |
| 2025-07-15 | 57,590 (+4,307) | 91,036 (+3,176) | 148,626 (+7,483) |
| 2025-07-16 | 62,313 (+4,723) | 95,258 (+4,222) | 157,571 (+8,945) |
| 2025-07-17 | 66,684 (+4,371) | 100,048 (+4,790) | 166,732 (+9,161) |
| 2025-07-18 | 70,379 (+3,695) | 102,587 (+2,539) | 172,966 (+6,234) |
| 2025-07-19 | 73,497 (+3,117) | 105,904 (+3,317) | 179,401 (+6,434) |
| 2025-07-20 | 76,453 (+2,956) | 109,044 (+3,140) | 185,497 (+6,096) |
| 2025-07-21 | 80,197 (+3,744) | 113,537 (+4,493) | 193,734 (+8,237) |
| 2025-07-22 | 84,251 (+4,054) | 118,073 (+4,536) | 202,324 (+8,590) |
| 2025-07-23 | 88,589 (+4,338) | 121,436 (+3,363) | 210,025 (+7,701) |
| 2025-07-24 | 92,469 (+3,880) | 124,091 (+2,655) | 216,560 (+6,535) |
| 2025-07-25 | 96,417 (+3,948) | 126,985 (+2,894) | 223,402 (+6,842) |
| 2025-07-26 | 100,646 (+4,229) | 131,411 (+4,426) | 232,057 (+8,655) |
| 2025-07-27 | 102,644 (+1,998) | 134,736 (+3,325) | 237,380 (+5,323) |
| 2025-07-28 | 105,446 (+2,802) | 136,016 (+1,280) | 241,462 (+4,082) |
| 2025-07-29 | 108,998 (+3,552) | 137,542 (+1,526) | 246,540 (+5,078) |
| 2025-07-30 | 113,544 (+4,546) | 140,317 (+2,775) | 253,861 (+7,321) |
| 2025-07-31 | 118,339 (+4,795) | 143,344 (+3,027) | 261,683 (+7,822) |
| 2025-08-01 | 123,539 (+5,200) | 146,680 (+3,336) | 270,219 (+8,536) |
| 2025-08-02 | 127,864 (+4,325) | 149,236 (+2,556) | 277,100 (+6,881) |
| 2025-08-03 | 131,397 (+3,533) | 150,451 (+1,215) | 281,848 (+4,748) |
| 2025-08-04 | 136,266 (+4,869) | 153,260 (+2,809) | 289,526 (+7,678) |
| 2025-08-05 | 141,596 (+5,330) | 155,752 (+2,492) | 297,348 (+7,822) |
| 2025-08-06 | 147,067 (+5,471) | 158,309 (+2,557) | 305,376 (+8,028) |
| 2025-08-07 | 152,591 (+5,524) | 160,889 (+2,580) | 313,480 (+8,104) |
| 2025-08-08 | 158,187 (+5,596) | 163,448 (+2,559) | 321,635 (+8,155) |
| 2025-08-09 | 162,770 (+4,583) | 165,721 (+2,273) | 328,491 (+6,856) |
| 2025-08-10 | 165,695 (+2,925) | 167,109 (+1,388) | 332,804 (+4,313) |
| 2025-08-11 | 169,297 (+3,602) | 167,953 (+844) | 337,250 (+4,446) |
| 2025-08-12 | 176,307 (+7,010) | 171,876 (+3,923) | 348,183 (+10,933) |
| 2025-08-13 | 182,997 (+6,690) | 177,182 (+5,306) | 360,179 (+11,996) |
| 2025-08-14 | 189,063 (+6,066) | 179,741 (+2,559) | 368,804 (+8,625) |
| 2025-08-15 | 193,608 (+4,545) | 181,792 (+2,051) | 375,400 (+6,596) |
| 2025-08-16 | 198,118 (+4,510) | 184,558 (+2,766) | 382,676 (+7,276) |
| 2025-08-17 | 201,299 (+3,181) | 186,269 (+1,711) | 387,568 (+4,892) |
| 2025-08-18 | 204,559 (+3,260) | 187,399 (+1,130) | 391,958 (+4,390) |
| 2025-08-19 | 209,814 (+5,255) | 189,668 (+2,269) | 399,482 (+7,524) |
| 2025-08-20 | 214,497 (+4,683) | 191,481 (+1,813) | 405,978 (+6,496) |
| 2025-08-21 | 220,465 (+5,968) | 194,784 (+3,303) | 415,249 (+9,271) |
| 2025-08-22 | 225,899 (+5,434) | 197,204 (+2,420) | 423,103 (+7,854) |
| 2025-08-23 | 229,005 (+3,106) | 199,238 (+2,034) | 428,243 (+5,140) |
| 2025-08-24 | 232,098 (+3,093) | 201,157 (+1,919) | 433,255 (+5,012) |
| 2025-08-25 | 236,607 (+4,509) | 202,650 (+1,493) | 439,257 (+6,002) |
| 2025-08-26 | 242,783 (+6,176) | 205,242 (+2,592) | 448,025 (+8,768) |
| 2025-08-27 | 248,409 (+5,626) | 205,242 (+0) | 453,651 (+5,626) |
| 2025-08-28 | 252,796 (+4,387) | 205,242 (+0) | 458,038 (+4,387) |
| 2025-08-29 | 256,045 (+3,249) | 211,075 (+5,833) | 467,120 (+9,082) |
| 2025-08-30 | 258,863 (+2,818) | 212,397 (+1,322) | 471,260 (+4,140) |
| 2025-08-31 | 262,004 (+3,141) | 213,944 (+1,547) | 475,948 (+4,688) |
| 2025-09-01 | 265,359 (+3,355) | 215,115 (+1,171) | 480,474 (+4,526) |
| 2025-09-02 | 270,483 (+5,124) | 217,075 (+1,960) | 487,558 (+7,084) |
| 2025-09-03 | 274,793 (+4,310) | 219,755 (+2,680) | 494,548 (+6,990) |
| 2025-09-04 | 280,430 (+5,637) | 222,103 (+2,348) | 502,533 (+7,985) |
| 2025-09-05 | 283,769 (+3,339) | 223,793 (+1,690) | 507,562 (+5,029) |
| 2025-09-06 | 286,245 (+2,476) | 225,036 (+1,243) | 511,281 (+3,719) |
| 2025-09-07 | 288,623 (+2,378) | 225,866 (+830) | 514,489 (+3,208) |
| 2025-09-08 | 293,341 (+4,718) | 227,073 (+1,207) | 520,414 (+5,925) |
| 2025-09-09 | 300,036 (+6,695) | 229,788 (+2,715) | 529,824 (+9,410) |
| 2025-09-10 | 307,287 (+7,251) | 233,435 (+3,647) | 540,722 (+10,898) |
| 2025-09-11 | 314,083 (+6,796) | 237,356 (+3,921) | 551,439 (+10,717) |
| 2025-09-12 | 321,046 (+6,963) | 240,728 (+3,372) | 561,774 (+10,335) |
| 2025-09-13 | 324,894 (+3,848) | 245,539 (+4,811) | 570,433 (+8,659) |
| 2025-09-14 | 328,876 (+3,982) | 248,245 (+2,706) | 577,121 (+6,688) |
| 2025-09-15 | 334,201 (+5,325) | 250,983 (+2,738) | 585,184 (+8,063) |
| 2025-09-16 | 342,609 (+8,408) | 255,264 (+4,281) | 597,873 (+12,689) |
| 2025-09-17 | 351,117 (+8,508) | 260,970 (+5,706) | 612,087 (+14,214) |
| 2025-09-18 | 358,717 (+7,600) | 266,922 (+5,952) | 625,639 (+13,552) |
| 2025-09-19 | 365,401 (+6,684) | 271,859 (+4,937) | 637,260 (+11,621) |
| 2025-09-20 | 372,092 (+6,691) | 276,917 (+5,058) | 649,009 (+11,749) |
| 2025-09-21 | 377,079 (+4,987) | 280,261 (+3,344) | 657,340 (+8,331) |
| 2025-09-22 | 382,492 (+5,413) | 284,009 (+3,748) | 666,501 (+9,161) |
| 2025-09-23 | 387,008 (+4,516) | 289,129 (+5,120) | 676,137 (+9,636) |
| 2025-09-24 | 393,325 (+6,317) | 294,927 (+5,798) | 688,252 (+12,115) |
| 2025-09-25 | 398,879 (+5,554) | 301,663 (+6,736) | 700,542 (+12,290) |
| 2025-09-26 | 404,334 (+5,455) | 306,713 (+5,050) | 711,047 (+10,505) |
| 2025-09-27 | 411,618 (+7,284) | 317,763 (+11,050) | 729,381 (+18,334) |
| 2025-09-28 | 414,910 (+3,292) | 322,522 (+4,759) | 737,432 (+8,051) |
| 2025-09-29 | 419,919 (+5,009) | 328,033 (+5,511) | 747,952 (+10,520) |
| 2025-09-30 | 427,991 (+8,072) | 336,472 (+8,439) | 764,463 (+16,511) |
| 2025-10-01 | 433,591 (+5,600) | 341,742 (+5,270) | 775,333 (+10,870) |
| 2025-10-02 | 440,852 (+7,261) | 348,099 (+6,357) | 788,951 (+13,618) |
| 2025-10-03 | 446,829 (+5,977) | 359,937 (+11,838) | 806,766 (+17,815) |
| 2025-10-04 | 452,561 (+5,732) | 370,386 (+10,449) | 822,947 (+16,181) |
| 2025-10-05 | 455,559 (+2,998) | 374,745 (+4,359) | 830,304 (+7,357) |
| 2025-10-06 | 460,927 (+5,368) | 379,489 (+4,744) | 840,416 (+10,112) |
| 2025-10-07 | 467,336 (+6,409) | 385,438 (+5,949) | 852,774 (+12,358) |
| 2025-10-08 | 474,643 (+7,307) | 394,139 (+8,701) | 868,782 (+16,008) |
| 2025-10-09 | 479,203 (+4,560) | 400,526 (+6,387) | 879,729 (+10,947) |
| 2025-10-10 | 484,374 (+5,171) | 406,015 (+5,489) | 890,389 (+10,660) |
| 2025-10-11 | 488,427 (+4,053) | 414,699 (+8,684) | 903,126 (+12,737) |
| 2025-10-12 | 492,125 (+3,698) | 418,745 (+4,046) | 910,870 (+7,744) |
| 2025-10-14 | 505,130 (+13,005) | 429,286 (+10,541) | 934,416 (+23,546) |
| 2025-10-15 | 512,717 (+7,587) | 439,290 (+10,004) | 952,007 (+17,591) |
| 2025-10-16 | 517,719 (+5,002) | 447,137 (+7,847) | 964,856 (+12,849) |
| 2025-10-17 | 526,239 (+8,520) | 457,467 (+10,330) | 983,706 (+18,850) |
| 2025-10-18 | 531,564 (+5,325) | 465,272 (+7,805) | 996,836 (+13,130) |
| 2025-10-19 | 536,209 (+4,645) | 469,078 (+3,806) | 1,005,287 (+8,451) |
| 2025-10-20 | 541,264 (+5,055) | 472,952 (+3,874) | 1,014,216 (+8,929) |
| 2025-10-21 | 548,721 (+7,457) | 479,703 (+6,751) | 1,028,424 (+14,208) |
| 2025-10-22 | 557,949 (+9,228) | 491,395 (+11,692) | 1,049,344 (+20,920) |
| 2025-10-23 | 564,716 (+6,767) | 498,736 (+7,341) | 1,063,452 (+14,108) |
| 2025-10-24 | 572,692 (+7,976) | 506,905 (+8,169) | 1,079,597 (+16,145) |
| 2025-10-25 | 578,927 (+6,235) | 516,129 (+9,224) | 1,095,056 (+15,459) |
| 2025-10-26 | 584,409 (+5,482) | 521,179 (+5,050) | 1,105,588 (+10,532) |
| 2025-10-27 | 589,999 (+5,590) | 526,001 (+4,822) | 1,116,000 (+10,412) |
| 2025-10-28 | 595,776 (+5,777) | 532,438 (+6,437) | 1,128,214 (+12,214) |
| 2025-10-29 | 606,259 (+10,483) | 542,064 (+9,626) | 1,148,323 (+20,109) |
| 2025-10-30 | 613,746 (+7,487) | 542,064 (+0) | 1,155,810 (+7,487) |
| 2025-10-30 | 617,846 (+4,100) | 555,026 (+12,962) | 1,172,872 (+17,062) |
| 2025-10-31 | 626,612 (+8,766) | 564,579 (+9,553) | 1,191,191 (+18,319) |
| 2025-11-01 | 636,100 (+9,488) | 581,806 (+17,227) | 1,217,906 (+26,715) |
| 2025-11-02 | 644,067 (+7,967) | 590,004 (+8,198) | 1,234,071 (+16,165) |
| 2025-11-03 | 653,130 (+9,063) | 597,139 (+7,135) | 1,250,269 (+16,198) |
| 2025-11-04 | 663,912 (+10,782) | 608,056 (+10,917) | 1,271,968 (+21,699) |
| 2025-11-05 | 675,074 (+11,162) | 619,690 (+11,634) | 1,294,764 (+22,796) |
| 2025-11-06 | 686,252 (+11,178) | 630,885 (+11,195) | 1,317,137 (+22,373) |
| 2025-11-07 | 696,646 (+10,394) | 642,146 (+11,261) | 1,338,792 (+21,655) |
| 2025-11-08 | 706,035 (+9,389) | 653,489 (+11,343) | 1,359,524 (+20,732) |
| 2025-11-09 | 713,462 (+7,427) | 660,459 (+6,970) | 1,373,921 (+14,397) |
| 2025-11-10 | 722,288 (+8,826) | 668,225 (+7,766) | 1,390,513 (+16,592) |
| 2025-11-11 | 729,769 (+7,481) | 677,501 (+9,276) | 1,407,270 (+16,757) |
| 2025-11-12 | 740,180 (+10,411) | 686,454 (+8,953) | 1,426,634 (+19,364) |
| 2025-11-13 | 749,905 (+9,725) | 696,157 (+9,703) | 1,446,062 (+19,428) |
| 2025-11-14 | 759,928 (+10,023) | 705,237 (+9,080) | 1,465,165 (+19,103) |
| 2025-11-15 | 765,955 (+6,027) | 712,870 (+7,633) | 1,478,825 (+13,660) |
| 2025-11-16 | 771,069 (+5,114) | 716,596 (+3,726) | 1,487,665 (+8,840) |
| 2025-11-17 | 780,161 (+9,092) | 723,339 (+6,743) | 1,503,500 (+15,835) |
| 2025-11-18 | 791,563 (+11,402) | 732,544 (+9,205) | 1,524,107 (+20,607) |
| 2025-11-19 | 804,409 (+12,846) | 747,624 (+15,080) | 1,552,033 (+27,926) |
| 2025-11-20 | 814,620 (+10,211) | 757,907 (+10,283) | 1,572,527 (+20,494) |
| 2025-11-21 | 826,309 (+11,689) | 769,307 (+11,400) | 1,595,616 (+23,089) |
| 2025-11-22 | 837,269 (+10,960) | 780,996 (+11,689) | 1,618,265 (+22,649) |
| 2025-11-23 | 846,609 (+9,340) | 795,069 (+14,073) | 1,641,678 (+23,413) |
| 2025-11-24 | 856,733 (+10,124) | 804,033 (+8,964) | 1,660,766 (+19,088) |
| 2025-11-25 | 869,423 (+12,690) | 817,339 (+13,306) | 1,686,762 (+25,996) |
| 2025-11-26 | 881,414 (+11,991) | 832,518 (+15,179) | 1,713,932 (+27,170) |
| 2025-11-27 | 893,960 (+12,546) | 846,180 (+13,662) | 1,740,140 (+26,208) |
| 2025-11-28 | 901,741 (+7,781) | 856,482 (+10,302) | 1,758,223 (+18,083) |
| 2025-11-29 | 908,689 (+6,948) | 863,361 (+6,879) | 1,772,050 (+13,827) |
| 2025-11-30 | 916,116 (+7,427) | 870,194 (+6,833) | 1,786,310 (+14,260) |
| 2025-12-01 | 925,898 (+9,782) | 876,500 (+6,306) | 1,802,398 (+16,088) |
| 2025-12-02 | 939,250 (+13,352) | 890,919 (+14,419) | 1,830,169 (+27,771) |
| 2025-12-03 | 952,249 (+12,999) | 903,713 (+12,794) | 1,855,962 (+25,793) |
| 2025-12-04 | 965,611 (+13,362) | 916,471 (+12,758) | 1,882,082 (+26,120) |
| 2025-12-05 | 977,996 (+12,385) | 930,616 (+14,145) | 1,908,612 (+26,530) |
| 2025-12-06 | 987,884 (+9,888) | 943,773 (+13,157) | 1,931,657 (+23,045) |
| 2025-12-07 | 994,046 (+6,162) | 951,425 (+7,652) | 1,945,471 (+13,814) |
| 2025-12-08 | 1,000,898 (+6,852) | 957,149 (+5,724) | 1,958,047 (+12,576) |
| 2025-12-09 | 1,011,488 (+10,590) | 973,922 (+16,773) | 1,985,410 (+27,363) |
| 2025-12-10 | 1,025,891 (+14,403) | 991,708 (+17,786) | 2,017,599 (+32,189) |
| 2025-12-11 | 1,045,110 (+19,219) | 1,010,559 (+18,851) | 2,055,669 (+38,070) |
| 2025-12-12 | 1,061,340 (+16,230) | 1,030,838 (+20,279) | 2,092,178 (+36,509) |
| 2025-12-13 | 1,073,561 (+12,221) | 1,044,608 (+13,770) | 2,118,169 (+25,991) |
| 2025-12-14 | 1,082,042 (+8,481) | 1,052,425 (+7,817) | 2,134,467 (+16,298) |
| 2025-12-15 | 1,093,632 (+11,590) | 1,059,078 (+6,653) | 2,152,710 (+18,243) |
| 2025-12-16 | 1,120,477 (+26,845) | 1,078,022 (+18,944) | 2,198,499 (+45,789) |
| 2025-12-17 | 1,151,067 (+30,590) | 1,097,661 (+19,639) | 2,248,728 (+50,229) |
| 2025-12-18 | 1,178,658 (+27,591) | 1,113,418 (+15,757) | 2,292,076 (+43,348) |

12
STYLE_GUIDE.md Normal file
View File

@@ -0,0 +1,12 @@
## Style Guide
- Try to keep things in one function unless composable or reusable
- DO NOT do unnecessary destructuring of variables
- DO NOT use `else` statements unless necessary
- DO NOT use `try`/`catch` if it can be avoided
- AVOID `try`/`catch` where possible
- AVOID `else` statements
- AVOID using `any` type
- AVOID `let` statements
- PREFER single word variable names where possible
- Use as many bun apis as possible like Bun.file()

3984
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
[install]
exact = true
exact = true

View File

@@ -1,9 +0,0 @@
import { defineConfig } from "@solidjs/start/config"
export default defineConfig({
vite: {
server: {
allowedHosts: true,
},
},
})

View File

@@ -1,22 +0,0 @@
{
"name": "@opencode/cloud-app",
"type": "module",
"scripts": {
"dev": "vinxi dev --host 0.0.0.0",
"build": "vinxi build",
"start": "vinxi start",
"version": "0.5.10"
},
"dependencies": {
"@ibm/plex": "6.4.1",
"@openauthjs/openauth": "0.0.0-20250322224806",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.1.0",
"solid-js": "^1.9.5",
"vinxi": "^0.5.7"
},
"engines": {
"node": ">=22"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

View File

@@ -1,21 +0,0 @@
import { MetaProvider, Title } from "@solidjs/meta";
import { Router } from "@solidjs/router";
import { FileRoutes } from "@solidjs/start/router";
import { Suspense } from "solid-js";
import "@ibm/plex/css/ibm-plex.css";
import "./app.css";
export default function App() {
return (
<Router
root={props => (
<MetaProvider>
<Title>SolidStart - Basic</Title>
<Suspense>{props.children}</Suspense>
</MetaProvider>
)}
>
<FileRoutes />
</Router>
);
}

View File

@@ -1,19 +0,0 @@
<svg width="289" height="50" viewBox="0 0 289 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.5 16.5H24.5V33H8.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M48.5 16.5H64.5V33H48.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M120.5 16.5H136.5V33H120.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M160.5 16.5H176.5V33H160.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M192.5 16.5H208.5V33H192.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M232.5 16.5H248.5V33H232.5V16.5Z" fill="white" fill-opacity="0.2"/>
<path d="M264.5 0H288.5V8.5H272.5V16.5H288.5V25H272.5V33H288.5V41.5H264.5V0Z" fill="white" fill-opacity="0.95"/>
<path d="M248.5 0H224.5V41.5H248.5V33H232.5V8.5H248.5V0Z" fill="white" fill-opacity="0.95"/>
<path d="M256.5 8.5H248.5V33H256.5V8.5Z" fill="white" fill-opacity="0.95"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M184.5 0H216.5V41.5H184.5V0ZM208.5 8.5H192.5V33H208.5V8.5Z" fill="white" fill-opacity="0.95"/>
<path d="M144.5 8.5H136.5V41.5H144.5V8.5Z" fill="white" fill-opacity="0.5"/>
<path d="M136.5 0H112.5V41.5H120.5V8.5H136.5V0Z" fill="white" fill-opacity="0.5"/>
<path d="M80.5 0H104.5V8.5H88.5V16.5H104.5V25H88.5V33H104.5V41.5H80.5V0Z" fill="white" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M40.5 0H72.5V41.5H48.5V49.5H40.5V0ZM64.5 8.5H48.5V33H64.5V8.5Z" fill="white" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 0H32.5V41.5955H0.5V0ZM24.5 8.5H8.5V33H24.5V8.5Z" fill="white" fill-opacity="0.5"/>
<path d="M152.5 0H176.5V8.5H160.5V33H176.5V41.5H152.5V0Z" fill="white" fill-opacity="0.95"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 998 KiB

View File

@@ -1,24 +0,0 @@
import { JSX } from "solid-js"
export function IconCopy(props: JSX.SvgSVGAttributes<SVGSVGElement>) {
return (
<svg
{...props}
viewBox="0 0 512 512" >
<rect width="336" height="336" x="128" y="128" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" rx="57" ry="57"></rect>
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="m383.5 128l.5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24"></path>
</svg>
)
}
export function IconCheck(props: JSX.SvgSVGAttributes<SVGSVGElement>) {
return (
<svg
{...props}
viewBox="0 0 24 24" >
<path fill="currentColor" d="M9 16.17L5.53 12.7a.996.996 0 1 0-1.41 1.41l4.18 4.18c.39.39 1.02.39 1.41 0L20.29 7.71a.996.996 0 1 0-1.41-1.41z"></path>
</svg>
)
}

View File

@@ -1,28 +0,0 @@
import { useSession } from "vinxi/http"
import { createClient } from "@openauthjs/openauth/client"
export const AuthClient = createClient({
clientID: "app",
issuer: "https://auth.dev.opencode.ai",
})
export interface AuthSession {
account: Record<string, {
id: string
email: string
}>
current?: string
}
export function useAuthSession() {
"use server"
return useSession<AuthSession>({
password: "0".repeat(32),
name: "auth"
})
}
export function AuthProvider() {
}

View File

@@ -1,4 +0,0 @@
// @refresh reload
import { mount, StartClient } from "@solidjs/start/client";
mount(() => <StartClient />, document.getElementById("app")!);

View File

@@ -1 +0,0 @@
/// <reference types="@solidjs/start/env" />

View File

@@ -1,19 +0,0 @@
import { Title } from "@solidjs/meta";
import { HttpStatusCode } from "@solidjs/start";
export default function NotFound() {
return (
<main>
<Title>Not Found</Title>
<HttpStatusCode code={404} />
<h1>Page Not Found</h1>
<p>
Visit{" "}
<a href="https://start.solidjs.com" target="_blank">
start.solidjs.com
</a>{" "}
to learn how to build SolidStart apps.
</p>
</main>
);
}

View File

@@ -1,257 +0,0 @@
[data-page="home"] {
--color-bg: oklch(0.2097 0.008 274.53);
--color-border: oklch(0.46 0.02 269.88);
--color-text: #ffffff;
--color-text-secondary: oklch(0.72 0.01 270.15);
--color-text-dimmed: hsl(224, 7%, 46%);
padding: var(--space-6);
font-family: var(--font-mono);
color: var(--color-text);
a {
color: var(--color-text);
text-decoration: underline;
text-underline-offset: var(--space-0-75);
}
background: var(--color-bg);
position: fixed;
overflow-y: scroll;
inset: 0;
[data-component="content"] {
max-width: 67.5rem;
margin: 0 auto;
border: 2px solid var(--color-border);
}
[data-component="top"] {
padding: var(--space-12);
display: flex;
flex-direction: column;
align-items: start;
gap: var(--space-4);
[data-slot="logo"] {
height: 70px;
}
[data-slot="title"] {
font-size: var(--font-size-2xl);
text-transform: uppercase;
}
}
[data-component="cta"] {
height: var(--space-19);
border-top: 2px solid var(--color-border);
display: flex;
[data-slot="left"] {
display: flex;
padding: 0 var(--space-12);
text-transform: uppercase;
text-decoration: underline;
align-items: center;
justify-content: center;
text-underline-offset: var(--space-0-75);
border-right: 2px solid var(--color-border);
}
[data-slot="right"] {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-2-5);
padding: 0 var(--space-6);
}
[data-slot="command"] {
all: unset;
display: flex;
align-items: center;
cursor: pointer;
color: var(--color-text-secondary);
font-size: var(--font-size-lg);
font-family: var(--font-mono);
gap: var(--space-2);
}
[data-slot="highlight"] {
color: var(--color-text);
font-weight: 500;
}
}
[data-component="features"] {
border-top: 2px solid var(--color-border);
padding: var(--space-12);
[data-slot="list"] {
padding-left: var(--space-4);
margin: 0;
list-style: disc;
li {
margin-bottom: var(--space-4);
strong {
text-transform: uppercase;
font-weight: 600;
}
}
li:last-child {
margin-bottom: 0;
}
}
}
[data-component="install"] {
border-top: 2px solid var(--color-border);
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
@media (max-width: 40rem) {
grid-template-columns: 1fr;
grid-template-rows: auto;
}
}
[data-component="title"] {
letter-spacing: -0.03125rem;
text-transform: uppercase;
font-weight: 400;
font-size: var(--font-size-md);
flex-shrink: 0;
color: oklch(0.55 0.02 269.87);
}
[data-component="method"] {
padding: var(--space-4) var(--space-6);
display: flex;
flex-direction: column;
align-items: start;
gap: var(--space-3);
&:nth-child(2) {
border-left: 2px solid var(--color-border);
}
&:nth-child(3) {
border-top: 2px solid var(--color-border);
}
&:nth-child(4) {
border-top: 2px solid var(--color-border);
border-left: 2px solid var(--color-border);
}
[data-slot="button"] {
all: unset;
cursor: pointer;
display: flex;
align-items: center;
color: var(--color-text-secondary);
gap: var(--space-2);
strong {
color: var(--color-text);
font-weight: 500;
}
}
}
[data-component="screenshots"] {
border-top: 2px solid var(--color-border);
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0;
[data-slot="left"] {
padding: var(--space-8) var(--space-6);
display: flex;
flex-direction: column;
img {
width: 100%;
height: auto;
}
}
[data-slot="right"] {
display: grid;
grid-template-rows: 1fr 1fr;
border-left: 2px solid var(--color-border);
}
[data-slot="filler"] {
display: flex;
flex-grow: 1;
align-items: center;
justify-content: center;
}
[data-slot="cell"] {
padding: var(--space-8) var(--space-6);
display: flex;
flex-direction: column;
gap: var(--space-4);
&:nth-child(2) {
border-top: 2px solid var(--color-border);
}
img {
width: 80%;
height: auto;
}
}
}
[data-component="copy-status"] {
[data-slot="copy"] {
display: block;
width: var(--space-4);
height: var(--space-4);
color: var(--color-text-dimmed);
[data-copied] & {
display: none;
}
}
[data-slot="check"] {
display: none;
width: var(--space-4);
height: var(--space-4);
color: white;
[data-copied] & {
display: block;
}
}
}
[data-component="footer"] {
border-top: 2px solid var(--color-border);
display: grid;
grid-template-columns: 1fr 1fr 1fr;
font-size: var(--font-size-lg);
height: var(--space-20);
[data-slot="cell"] {
display: flex;
align-items: center;
justify-content: center;
border-right: 2px solid var(--color-border);
text-transform: uppercase;
&:last-child {
border-right: none;
}
}
}
}

View File

@@ -1,8 +0,0 @@
html {
color-scheme: dark;
line-height: 1;
}
body {
font-family: var(--font-sans);
}

View File

@@ -1,90 +0,0 @@
body {
--color-white: #ffffff;
--color-black: #000000;
}
[data-color-mode="dark"] {
/* OpenCode theme colors */
--color-bg: #0c0c0e;
--color-bg-surface: #161618;
--color-bg-elevated: #1c1c1f;
--color-text: #ffffff;
--color-text-muted: #a1a1a6;
--color-text-disabled: #68686f;
--color-accent: #007aff;
--color-accent-hover: #0056b3;
--color-accent-active: #004085;
--color-success: #30d158;
--color-warning: #ff9f0a;
--color-danger: #ff453a;
--color-border: #38383a;
--color-border-muted: #2c2c2e;
/* Button colors */
--color-primary: var(--color-accent);
--color-primary-hover: var(--color-accent-hover);
--color-primary-active: var(--color-accent-active);
--color-primary-text: #ffffff;
--color-danger: #ff453a;
--color-danger-hover: #d70015;
--color-danger-active: #a50011;
--color-danger-text: #ffffff;
--color-warning: #ff9f0a;
--color-warning-hover: #cc7f08;
--color-warning-active: #995f06;
--color-warning-text: #000000;
/* Surface colors */
--color-surface: var(--color-bg-surface);
--color-surface-hover: var(--color-bg-elevated);
--color-border: var(--color-border);
}
[data-color-mode="light"] {
/* OpenCode light theme colors */
--color-bg: #ffffff;
--color-bg-surface: #f5f5f7;
--color-bg-elevated: #ffffff;
--color-text: #1d1d1f;
--color-text-muted: #6e6e73;
--color-text-disabled: #86868b;
--color-accent: #007aff;
--color-accent-hover: #0056b3;
--color-accent-active: #004085;
--color-success: #30d158;
--color-warning: #ff9f0a;
--color-danger: #ff3b30;
--color-border: #d2d2d7;
--color-border-muted: #e5e5ea;
/* Button colors */
--color-primary: var(--color-accent);
--color-primary-hover: var(--color-accent-hover);
--color-primary-active: var(--color-accent-active);
--color-primary-text: #ffffff;
--color-danger: #ff3b30;
--color-danger-hover: #d70015;
--color-danger-active: #a50011;
--color-danger-text: #ffffff;
--color-warning: #ff9f0a;
--color-warning-hover: #cc7f08;
--color-warning-active: #995f06;
--color-warning-text: #000000;
/* Surface colors */
--color-surface: var(--color-bg-surface);
--color-surface-hover: var(--color-bg-elevated);
--color-border: var(--color-border);
}

View File

@@ -1,66 +0,0 @@
CREATE TABLE "billing" (
"id" varchar(30) NOT NULL,
"workspace_id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"customer_id" varchar(255),
"payment_method_id" varchar(255),
"payment_method_last4" varchar(4),
"balance" bigint NOT NULL,
"reload" boolean,
CONSTRAINT "billing_workspace_id_id_pk" PRIMARY KEY("workspace_id","id")
);
--> statement-breakpoint
CREATE TABLE "payment" (
"id" varchar(30) NOT NULL,
"workspace_id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"customer_id" varchar(255),
"payment_id" varchar(255),
"amount" bigint NOT NULL,
CONSTRAINT "payment_workspace_id_id_pk" PRIMARY KEY("workspace_id","id")
);
--> statement-breakpoint
CREATE TABLE "usage" (
"id" varchar(30) NOT NULL,
"workspace_id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"request_id" varchar(255),
"model" varchar(255) NOT NULL,
"input_tokens" integer NOT NULL,
"output_tokens" integer NOT NULL,
"reasoning_tokens" integer,
"cache_read_tokens" integer,
"cache_write_tokens" integer,
"cost" bigint NOT NULL,
CONSTRAINT "usage_workspace_id_id_pk" PRIMARY KEY("workspace_id","id")
);
--> statement-breakpoint
CREATE TABLE "user" (
"id" varchar(30) NOT NULL,
"workspace_id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"email" text NOT NULL,
"name" varchar(255) NOT NULL,
"time_seen" timestamp with time zone,
"color" integer,
CONSTRAINT "user_workspace_id_id_pk" PRIMARY KEY("workspace_id","id")
);
--> statement-breakpoint
CREATE TABLE "workspace" (
"id" varchar(30) PRIMARY KEY NOT NULL,
"slug" varchar(255),
"name" varchar(255),
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone
);
--> statement-breakpoint
ALTER TABLE "billing" ADD CONSTRAINT "billing_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "payment" ADD CONSTRAINT "payment_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "usage" ADD CONSTRAINT "usage_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user" ADD CONSTRAINT "user_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
CREATE UNIQUE INDEX "user_email" ON "user" USING btree ("workspace_id","email");--> statement-breakpoint
CREATE UNIQUE INDEX "slug" ON "workspace" USING btree ("slug");

View File

@@ -1,8 +0,0 @@
CREATE TABLE "account" (
"id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"email" varchar(255) NOT NULL
);
--> statement-breakpoint
CREATE UNIQUE INDEX "email" ON "account" USING btree ("email");

View File

@@ -1,14 +0,0 @@
CREATE TABLE "key" (
"id" varchar(30) NOT NULL,
"workspace_id" varchar(30) NOT NULL,
"time_created" timestamp with time zone DEFAULT now() NOT NULL,
"time_deleted" timestamp with time zone,
"user_id" text NOT NULL,
"name" varchar(255) NOT NULL,
"key" varchar(255) NOT NULL,
"time_used" timestamp with time zone,
CONSTRAINT "key_workspace_id_id_pk" PRIMARY KEY("workspace_id","id")
);
--> statement-breakpoint
ALTER TABLE "key" ADD CONSTRAINT "key_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
CREATE UNIQUE INDEX "global_key" ON "key" USING btree ("key");

View File

@@ -1 +0,0 @@
ALTER TABLE "usage" DROP COLUMN "request_id";

View File

@@ -1,461 +0,0 @@
{
"id": "9b5cec8c-8b59-4d7a-bb5c-76ade1c83d6f",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.billing": {
"name": "billing",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"customer_id": {
"name": "customer_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_method_id": {
"name": "payment_method_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_method_last4": {
"name": "payment_method_last4",
"type": "varchar(4)",
"primaryKey": false,
"notNull": false
},
"balance": {
"name": "balance",
"type": "bigint",
"primaryKey": false,
"notNull": true
},
"reload": {
"name": "reload",
"type": "boolean",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"billing_workspace_id_workspace_id_fk": {
"name": "billing_workspace_id_workspace_id_fk",
"tableFrom": "billing",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"billing_workspace_id_id_pk": {
"name": "billing_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.payment": {
"name": "payment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"customer_id": {
"name": "customer_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_id": {
"name": "payment_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"amount": {
"name": "amount",
"type": "bigint",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"payment_workspace_id_workspace_id_fk": {
"name": "payment_workspace_id_workspace_id_fk",
"tableFrom": "payment",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"payment_workspace_id_id_pk": {
"name": "payment_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.usage": {
"name": "usage",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"request_id": {
"name": "request_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"model": {
"name": "model",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"input_tokens": {
"name": "input_tokens",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"output_tokens": {
"name": "output_tokens",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"reasoning_tokens": {
"name": "reasoning_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cache_read_tokens": {
"name": "cache_read_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cache_write_tokens": {
"name": "cache_write_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cost": {
"name": "cost",
"type": "bigint",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"usage_workspace_id_workspace_id_fk": {
"name": "usage_workspace_id_workspace_id_fk",
"tableFrom": "usage",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"usage_workspace_id_id_pk": {
"name": "usage_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.user": {
"name": "user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"time_seen": {
"name": "time_seen",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"color": {
"name": "color",
"type": "integer",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"user_email": {
"name": "user_email",
"columns": [
{
"expression": "workspace_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"user_workspace_id_workspace_id_fk": {
"name": "user_workspace_id_workspace_id_fk",
"tableFrom": "user",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"user_workspace_id_id_pk": {
"name": "user_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.workspace": {
"name": "workspace",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": true,
"notNull": true
},
"slug": {
"name": "slug",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"slug": {
"name": "slug",
"columns": [
{
"expression": "slug",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}

View File

@@ -1,515 +0,0 @@
{
"id": "bf9e9084-4073-4ecb-8e56-5610816c9589",
"prevId": "9b5cec8c-8b59-4d7a-bb5c-76ade1c83d6f",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.account": {
"name": "account",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"email": {
"name": "email",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
}
},
"indexes": {
"email": {
"name": "email",
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.billing": {
"name": "billing",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"customer_id": {
"name": "customer_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_method_id": {
"name": "payment_method_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_method_last4": {
"name": "payment_method_last4",
"type": "varchar(4)",
"primaryKey": false,
"notNull": false
},
"balance": {
"name": "balance",
"type": "bigint",
"primaryKey": false,
"notNull": true
},
"reload": {
"name": "reload",
"type": "boolean",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"billing_workspace_id_workspace_id_fk": {
"name": "billing_workspace_id_workspace_id_fk",
"tableFrom": "billing",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"billing_workspace_id_id_pk": {
"name": "billing_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.payment": {
"name": "payment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"customer_id": {
"name": "customer_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"payment_id": {
"name": "payment_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"amount": {
"name": "amount",
"type": "bigint",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"payment_workspace_id_workspace_id_fk": {
"name": "payment_workspace_id_workspace_id_fk",
"tableFrom": "payment",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"payment_workspace_id_id_pk": {
"name": "payment_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.usage": {
"name": "usage",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"request_id": {
"name": "request_id",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"model": {
"name": "model",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"input_tokens": {
"name": "input_tokens",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"output_tokens": {
"name": "output_tokens",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"reasoning_tokens": {
"name": "reasoning_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cache_read_tokens": {
"name": "cache_read_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cache_write_tokens": {
"name": "cache_write_tokens",
"type": "integer",
"primaryKey": false,
"notNull": false
},
"cost": {
"name": "cost",
"type": "bigint",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"usage_workspace_id_workspace_id_fk": {
"name": "usage_workspace_id_workspace_id_fk",
"tableFrom": "usage",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"usage_workspace_id_id_pk": {
"name": "usage_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.user": {
"name": "user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"workspace_id": {
"name": "workspace_id",
"type": "varchar(30)",
"primaryKey": false,
"notNull": true
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"email": {
"name": "email",
"type": "text",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"time_seen": {
"name": "time_seen",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
},
"color": {
"name": "color",
"type": "integer",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"user_email": {
"name": "user_email",
"columns": [
{
"expression": "workspace_id",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {
"user_workspace_id_workspace_id_fk": {
"name": "user_workspace_id_workspace_id_fk",
"tableFrom": "user",
"tableTo": "workspace",
"columnsFrom": [
"workspace_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"user_workspace_id_id_pk": {
"name": "user_workspace_id_id_pk",
"columns": [
"workspace_id",
"id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.workspace": {
"name": "workspace",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "varchar(30)",
"primaryKey": true,
"notNull": true
},
"slug": {
"name": "slug",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"name": {
"name": "name",
"type": "varchar(255)",
"primaryKey": false,
"notNull": false
},
"time_created": {
"name": "time_created",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"time_deleted": {
"name": "time_deleted",
"type": "timestamp with time zone",
"primaryKey": false,
"notNull": false
}
},
"indexes": {
"slug": {
"name": "slug",
"columns": [
{
"expression": "slug",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"isUnique": true,
"concurrently": false,
"method": "btree",
"with": {}
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}

View File

@@ -1,34 +0,0 @@
{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1754518198186,
"tag": "0000_amused_mojo",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1754609655262,
"tag": "0001_thankful_chat",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1754627626945,
"tag": "0002_stale_jackal",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1754672464106,
"tag": "0003_tranquil_spencer_smythe",
"breakpoints": true
}
]
}

View File

@@ -1,23 +0,0 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode/cloud-core",
"version": "0.5.10",
"private": true,
"type": "module",
"dependencies": {
"@aws-sdk/client-sts": "3.782.0",
"drizzle-orm": "0.41.0",
"postgres": "3.4.7",
"stripe": "18.0.0",
"ulid": "3.0.0"
},
"exports": {
"./*": "./src/*"
},
"scripts": {
"db": "sst shell drizzle-kit"
},
"devDependencies": {
"drizzle-kit": "0.30.5"
}
}

View File

@@ -1,67 +0,0 @@
import { z } from "zod"
import { and, eq, getTableColumns, isNull } from "drizzle-orm"
import { fn } from "./util/fn"
import { Database } from "./drizzle"
import { Identifier } from "./identifier"
import { AccountTable } from "./schema/account.sql"
import { Actor } from "./actor"
import { WorkspaceTable } from "./schema/workspace.sql"
import { UserTable } from "./schema/user.sql"
export namespace Account {
export const create = fn(
z.object({
email: z.string().email(),
id: z.string().optional(),
}),
async (input) =>
Database.transaction(async (tx) => {
const id = input.id ?? Identifier.create("account")
await tx.insert(AccountTable).values({
id,
email: input.email,
})
return id
}),
)
export const fromID = fn(z.string(), async (id) =>
Database.transaction(async (tx) => {
return tx
.select()
.from(AccountTable)
.where(eq(AccountTable.id, id))
.execute()
.then((rows) => rows[0])
}),
)
export const fromEmail = fn(z.string().email(), async (email) =>
Database.transaction(async (tx) => {
return tx
.select()
.from(AccountTable)
.where(eq(AccountTable.email, email))
.execute()
.then((rows) => rows[0])
}),
)
export const workspaces = async () => {
const actor = Actor.assert("account")
return Database.transaction(async (tx) =>
tx
.select(getTableColumns(WorkspaceTable))
.from(WorkspaceTable)
.innerJoin(UserTable, eq(UserTable.workspaceID, WorkspaceTable.id))
.where(
and(
eq(UserTable.email, actor.properties.email),
isNull(UserTable.timeDeleted),
isNull(WorkspaceTable.timeDeleted),
),
)
.execute(),
)
}
}

View File

@@ -1,71 +0,0 @@
import { Resource } from "sst"
import { Stripe } from "stripe"
import { Database, eq, sql } from "./drizzle"
import { BillingTable, UsageTable } from "./schema/billing.sql"
import { Actor } from "./actor"
import { fn } from "./util/fn"
import { z } from "zod"
import { Identifier } from "./identifier"
import { centsToMicroCents } from "./util/price"
export namespace Billing {
export const stripe = () =>
new Stripe(Resource.STRIPE_SECRET_KEY.value, {
apiVersion: "2025-03-31.basil",
})
export const get = async () => {
return Database.use(async (tx) =>
tx
.select({
customerID: BillingTable.customerID,
paymentMethodID: BillingTable.paymentMethodID,
balance: BillingTable.balance,
reload: BillingTable.reload,
})
.from(BillingTable)
.where(eq(BillingTable.workspaceID, Actor.workspace()))
.then((r) => r[0]),
)
}
export const consume = fn(
z.object({
requestID: z.string().optional(),
model: z.string(),
inputTokens: z.number(),
outputTokens: z.number(),
reasoningTokens: z.number().optional(),
cacheReadTokens: z.number().optional(),
cacheWriteTokens: z.number().optional(),
costInCents: z.number(),
}),
async (input) => {
const workspaceID = Actor.workspace()
const cost = centsToMicroCents(input.costInCents)
return await Database.transaction(async (tx) => {
await tx.insert(UsageTable).values({
workspaceID,
id: Identifier.create("usage"),
requestID: input.requestID,
model: input.model,
inputTokens: input.inputTokens,
outputTokens: input.outputTokens,
reasoningTokens: input.reasoningTokens,
cacheReadTokens: input.cacheReadTokens,
cacheWriteTokens: input.cacheWriteTokens,
cost,
})
const [updated] = await tx
.update(BillingTable)
.set({
balance: sql`${BillingTable.balance} - ${cost}`,
})
.where(eq(BillingTable.workspaceID, workspaceID))
.returning()
return updated.balance
})
},
)
}

View File

@@ -1,12 +0,0 @@
import { pgTable, uniqueIndex, varchar } from "drizzle-orm/pg-core"
import { id, timestamps } from "../drizzle/types"
export const AccountTable = pgTable(
"account",
{
id: id(),
...timestamps,
email: varchar("email", { length: 255 }).notNull(),
},
(table) => [uniqueIndex("email").on(table.email)],
)

View File

@@ -1,45 +0,0 @@
import { bigint, boolean, integer, pgTable, varchar } from "drizzle-orm/pg-core"
import { timestamps, workspaceColumns } from "../drizzle/types"
import { workspaceIndexes } from "./workspace.sql"
export const BillingTable = pgTable(
"billing",
{
...workspaceColumns,
...timestamps,
customerID: varchar("customer_id", { length: 255 }),
paymentMethodID: varchar("payment_method_id", { length: 255 }),
paymentMethodLast4: varchar("payment_method_last4", { length: 4 }),
balance: bigint("balance", { mode: "number" }).notNull(),
reload: boolean("reload"),
},
(table) => [...workspaceIndexes(table)],
)
export const PaymentTable = pgTable(
"payment",
{
...workspaceColumns,
...timestamps,
customerID: varchar("customer_id", { length: 255 }),
paymentID: varchar("payment_id", { length: 255 }),
amount: bigint("amount", { mode: "number" }).notNull(),
},
(table) => [...workspaceIndexes(table)],
)
export const UsageTable = pgTable(
"usage",
{
...workspaceColumns,
...timestamps,
model: varchar("model", { length: 255 }).notNull(),
inputTokens: integer("input_tokens").notNull(),
outputTokens: integer("output_tokens").notNull(),
reasoningTokens: integer("reasoning_tokens"),
cacheReadTokens: integer("cache_read_tokens"),
cacheWriteTokens: integer("cache_write_tokens"),
cost: bigint("cost", { mode: "number" }).notNull(),
},
(table) => [...workspaceIndexes(table)],
)

View File

@@ -1,16 +0,0 @@
import { text, pgTable, uniqueIndex, varchar, integer } from "drizzle-orm/pg-core"
import { timestamps, utc, workspaceColumns } from "../drizzle/types"
import { workspaceIndexes } from "./workspace.sql"
export const UserTable = pgTable(
"user",
{
...workspaceColumns,
...timestamps,
email: text("email").notNull(),
name: varchar("name", { length: 255 }).notNull(),
timeSeen: utc("time_seen"),
color: integer("color"),
},
(table) => [...workspaceIndexes(table), uniqueIndex("user_email").on(table.workspaceID, table.email)],
)

View File

@@ -1,14 +0,0 @@
import { z } from "zod"
export function fn<T extends z.ZodType, Result>(
schema: T,
cb: (input: z.output<T>) => Result,
) {
const result = (input: z.input<T>) => {
const parsed = schema.parse(input)
return cb(parsed)
}
result.force = (input: z.input<T>) => cb(input)
result.schema = schema
return result
}

View File

@@ -1,48 +0,0 @@
import { z } from "zod"
import { fn } from "./util/fn"
import { centsToMicroCents } from "./util/price"
import { Actor } from "./actor"
import { Database, eq } from "./drizzle"
import { Identifier } from "./identifier"
import { UserTable } from "./schema/user.sql"
import { BillingTable } from "./schema/billing.sql"
import { WorkspaceTable } from "./schema/workspace.sql"
export namespace Workspace {
export const create = fn(z.void(), async () => {
const account = Actor.assert("account")
const workspaceID = Identifier.create("workspace")
await Database.transaction(async (tx) => {
await tx.insert(WorkspaceTable).values({
id: workspaceID,
})
await tx.insert(UserTable).values({
workspaceID,
id: Identifier.create("user"),
email: account.properties.email,
name: "",
})
await tx.insert(BillingTable).values({
workspaceID,
id: Identifier.create("billing"),
balance: centsToMicroCents(100),
})
})
return workspaceID
})
export async function list() {
const account = Actor.assert("account")
return Database.use(async (tx) => {
return tx
.select({
id: WorkspaceTable.id,
slug: WorkspaceTable.slug,
name: WorkspaceTable.name,
})
.from(UserTable)
.innerJoin(WorkspaceTable, eq(UserTable.workspaceID, WorkspaceTable.id))
.where(eq(UserTable.email, account.properties.email))
})
}
}

View File

@@ -1,124 +0,0 @@
import { Resource } from "sst"
import { z } from "zod"
import { issuer } from "@openauthjs/openauth"
import { createSubjects } from "@openauthjs/openauth/subject"
import { CodeProvider } from "@openauthjs/openauth/provider/code"
import { GithubProvider } from "@openauthjs/openauth/provider/github"
import { GoogleOidcProvider } from "@openauthjs/openauth/provider/google"
import { CloudflareStorage } from "@openauthjs/openauth/storage/cloudflare"
import { Account } from "@opencode/cloud-core/account.js"
type Env = {
AuthStorage: KVNamespace
}
export const subjects = createSubjects({
account: z.object({
accountID: z.string(),
email: z.string(),
}),
user: z.object({
userID: z.string(),
workspaceID: z.string(),
}),
})
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
return issuer({
providers: {
github: GithubProvider({
clientID: Resource.GITHUB_CLIENT_ID_CONSOLE.value,
clientSecret: Resource.GITHUB_CLIENT_SECRET_CONSOLE.value,
scopes: ["read:user", "user:email"],
}),
google: GoogleOidcProvider({
clientID: Resource.GOOGLE_CLIENT_ID.value,
scopes: ["openid", "email"],
}),
// email: CodeProvider({
// async request(req, state, form, error) {
// console.log(state)
// const params = new URLSearchParams()
// if (error) {
// params.set("error", error.type)
// }
// if (state.type === "start") {
// return Response.redirect(process.env.AUTH_FRONTEND_URL + "/auth/email?" + params.toString(), 302)
// }
//
// if (state.type === "code") {
// return Response.redirect(process.env.AUTH_FRONTEND_URL + "/auth/code?" + params.toString(), 302)
// }
//
// return new Response("ok")
// },
// async sendCode(claims, code) {
// const email = z.string().email().parse(claims.email)
// const cmd = new SendEmailCommand({
// Destination: {
// ToAddresses: [email],
// },
// FromEmailAddress: `SST <auth@${Resource.Email.sender}>`,
// Content: {
// Simple: {
// Body: {
// Html: {
// Data: `Your pin code is <strong>${code}</strong>`,
// },
// Text: {
// Data: `Your pin code is ${code}`,
// },
// },
// Subject: {
// Data: "SST Console Pin Code: " + code,
// },
// },
// },
// })
// await ses.send(cmd)
// },
// }),
},
storage: CloudflareStorage({
namespace: env.AuthStorage,
}),
subjects,
async success(ctx, response) {
console.log(response)
let email: string | undefined
if (response.provider === "github") {
const userResponse = await fetch("https://api.github.com/user", {
headers: {
Authorization: `Bearer ${response.tokenset.access}`,
"User-Agent": "opencode",
Accept: "application/vnd.github+json",
},
})
const user = (await userResponse.json()) as { email: string }
email = user.email
} else if (response.provider === "google") {
if (!response.id.email_verified) throw new Error("Google email not verified")
email = response.id.email as string
}
//if (response.provider === "email") {
// email = response.claims.email
//}
else throw new Error("Unsupported provider")
if (!email) throw new Error("No email found")
let accountID = await Account.fromEmail(email).then((x) => x?.id)
if (!accountID) {
console.log("creating account for", email)
accountID = await Account.create({
email: email!,
})
}
return ctx.subject("account", accountID, { accountID, email })
},
}).fetch(request, env, ctx)
},
}

View File

@@ -1,909 +0,0 @@
import { z } from "zod"
import { Hono, MiddlewareHandler } from "hono"
import { cors } from "hono/cors"
import { HTTPException } from "hono/http-exception"
import { zValidator } from "@hono/zod-validator"
import { Resource } from "sst"
import { type ProviderMetadata, type LanguageModelUsage, generateText, streamText } from "ai"
import { createAnthropic } from "@ai-sdk/anthropic"
import { createOpenAI } from "@ai-sdk/openai"
import { createOpenAICompatible } from "@ai-sdk/openai-compatible"
import type { LanguageModelV2Prompt } from "@ai-sdk/provider"
import { type ChatCompletionCreateParamsBase } from "openai/resources/chat/completions"
import { Actor } from "@opencode/cloud-core/actor.js"
import { and, Database, eq, sql } from "@opencode/cloud-core/drizzle/index.js"
import { UserTable } from "@opencode/cloud-core/schema/user.sql.js"
import { KeyTable } from "@opencode/cloud-core/schema/key.sql.js"
import { createClient } from "@openauthjs/openauth/client"
import { Log } from "@opencode/cloud-core/util/log.js"
import { Billing } from "@opencode/cloud-core/billing.js"
import { Workspace } from "@opencode/cloud-core/workspace.js"
import { BillingTable, PaymentTable, UsageTable } from "@opencode/cloud-core/schema/billing.sql.js"
import { centsToMicroCents } from "@opencode/cloud-core/util/price.js"
import { Identifier } from "../../core/src/identifier"
type Env = {}
let _client: ReturnType<typeof createClient>
const client = () => {
if (_client) return _client
_client = createClient({
clientID: "api",
issuer: Resource.AUTH_API_URL.value,
})
return _client
}
const SUPPORTED_MODELS = {
"anthropic/claude-sonnet-4": {
input: 0.0000015,
output: 0.000006,
reasoning: 0.0000015,
cacheRead: 0.0000001,
cacheWrite: 0.0000001,
model: () =>
createAnthropic({
apiKey: Resource.ANTHROPIC_API_KEY.value,
})("claude-sonnet-4-20250514"),
},
"openai/gpt-4.1": {
input: 0.0000015,
output: 0.000006,
reasoning: 0.0000015,
cacheRead: 0.0000001,
cacheWrite: 0.0000001,
model: () =>
createOpenAI({
apiKey: Resource.OPENAI_API_KEY.value,
})("gpt-4.1"),
},
"zhipuai/glm-4.5-flash": {
input: 0,
output: 0,
reasoning: 0,
cacheRead: 0,
cacheWrite: 0,
model: () =>
createOpenAICompatible({
name: "Zhipu AI",
baseURL: "https://api.z.ai/api/paas/v4",
apiKey: Resource.ZHIPU_API_KEY.value,
})("glm-4.5-flash"),
},
}
const log = Log.create({
namespace: "api",
})
const GatewayAuth: MiddlewareHandler = async (c, next) => {
const authHeader = c.req.header("authorization")
if (!authHeader || !authHeader.startsWith("Bearer ")) {
return c.json(
{
error: {
message: "Missing API key.",
type: "invalid_request_error",
param: null,
code: "unauthorized",
},
},
401,
)
}
const apiKey = authHeader.split(" ")[1]
// Check against KeyTable
const keyRecord = await Database.use((tx) =>
tx
.select({
id: KeyTable.id,
workspaceID: KeyTable.workspaceID,
})
.from(KeyTable)
.where(eq(KeyTable.key, apiKey))
.then((rows) => rows[0]),
)
if (!keyRecord) {
return c.json(
{
error: {
message: "Invalid API key.",
type: "invalid_request_error",
param: null,
code: "unauthorized",
},
},
401,
)
}
c.set("keyRecord", keyRecord)
await next()
}
const RestAuth: MiddlewareHandler = async (c, next) => {
const authorization = c.req.header("authorization")
if (!authorization) {
return Actor.provide("public", {}, next)
}
const token = authorization.split(" ")[1]
if (!token)
throw new HTTPException(403, {
message: "Bearer token is required.",
})
const verified = await client().verify(token)
if (verified.err) {
throw new HTTPException(403, {
message: "Invalid token.",
})
}
let subject = verified.subject as Actor.Info
if (subject.type === "account") {
const workspaceID = c.req.header("x-opencode-workspace")
const email = subject.properties.email
if (workspaceID) {
const user = await Database.use((tx) =>
tx
.select({
id: UserTable.id,
workspaceID: UserTable.workspaceID,
email: UserTable.email,
})
.from(UserTable)
.where(and(eq(UserTable.email, email), eq(UserTable.workspaceID, workspaceID)))
.then((rows) => rows[0]),
)
if (!user)
throw new HTTPException(403, {
message: "You do not have access to this workspace.",
})
subject = {
type: "user",
properties: {
userID: user.id,
workspaceID: workspaceID,
email: user.email,
},
}
}
}
await Actor.provide(subject.type, subject.properties, next)
}
const app = new Hono<{ Bindings: Env; Variables: { keyRecord?: { id: string; workspaceID: string } } }>()
.get("/", (c) => c.text("Hello, world!"))
.post("/v1/chat/completions", GatewayAuth, async (c) => {
const keyRecord = c.get("keyRecord")!
return await Actor.provide("system", { workspaceID: keyRecord.workspaceID }, async () => {
try {
// Check balance
const customer = await Billing.get()
if (customer.balance <= 0) {
return c.json(
{
error: {
message: "Insufficient balance",
type: "insufficient_quota",
param: null,
code: "insufficient_quota",
},
},
401,
)
}
const body = await c.req.json<ChatCompletionCreateParamsBase>()
const model = SUPPORTED_MODELS[body.model as keyof typeof SUPPORTED_MODELS]?.model()
if (!model) throw new Error(`Unsupported model: ${body.model}`)
const requestBody = transformOpenAIRequestToAiSDK()
return body.stream ? await handleStream() : await handleGenerate()
async function handleStream() {
const result = await model.doStream({
...requestBody,
})
const encoder = new TextEncoder()
const stream = new ReadableStream({
async start(controller) {
const id = `chatcmpl-${Date.now()}`
const created = Math.floor(Date.now() / 1000)
try {
for await (const chunk of result.stream) {
console.log("!!! CHUNK !!! : " + chunk.type)
switch (chunk.type) {
case "text-delta": {
const data = {
id,
object: "chat.completion.chunk",
created,
model: body.model,
choices: [
{
index: 0,
delta: {
content: chunk.delta,
},
finish_reason: null,
},
],
}
controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`))
break
}
case "reasoning-delta": {
const data = {
id,
object: "chat.completion.chunk",
created,
model: body.model,
choices: [
{
index: 0,
delta: {
reasoning_content: chunk.delta,
},
finish_reason: null,
},
],
}
controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`))
break
}
case "tool-call": {
const data = {
id,
object: "chat.completion.chunk",
created,
model: body.model,
choices: [
{
index: 0,
delta: {
tool_calls: [
{
index: 0,
id: chunk.toolCallId,
type: "function",
function: {
name: chunk.toolName,
arguments: chunk.input,
},
},
],
},
finish_reason: null,
},
],
}
controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`))
break
}
case "error": {
const data = {
id,
object: "chat.completion.chunk",
created,
model: body.model,
choices: [
{
index: 0,
delta: {},
finish_reason: "stop",
},
],
error: {
message: typeof chunk.error === "string" ? chunk.error : chunk.error,
type: "server_error",
},
}
controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`))
controller.enqueue(encoder.encode("data: [DONE]\n\n"))
controller.close()
break
}
case "finish": {
const data = {
id,
object: "chat.completion.chunk",
created,
model: body.model,
choices: [
{
index: 0,
delta: {},
finish_reason:
{
stop: "stop",
length: "length",
"content-filter": "content_filter",
"tool-calls": "tool_calls",
error: "stop",
other: "stop",
unknown: "stop",
}[chunk.finishReason] || "stop",
},
],
usage: {
prompt_tokens: chunk.usage.inputTokens,
completion_tokens: chunk.usage.outputTokens,
total_tokens: chunk.usage.totalTokens,
completion_tokens_details: {
reasoning_tokens: chunk.usage.reasoningTokens,
},
prompt_tokens_details: {
cached_tokens: chunk.usage.cachedInputTokens,
},
},
}
await trackUsage(body.model, chunk.usage, chunk.providerMetadata)
controller.enqueue(encoder.encode(`data: ${JSON.stringify(data)}\n\n`))
controller.enqueue(encoder.encode("data: [DONE]\n\n"))
controller.close()
break
}
//case "stream-start":
//case "response-metadata":
case "text-start":
case "text-end":
case "reasoning-start":
case "reasoning-end":
case "tool-input-start":
case "tool-input-delta":
case "tool-input-end":
case "raw":
default:
// Log unknown chunk types for debugging
console.warn(`Unknown chunk type: ${(chunk as any).type}`)
break
}
}
} catch (error) {
controller.error(error)
}
},
})
return new Response(stream, {
headers: {
"Content-Type": "text/plain; charset=utf-8",
"Cache-Control": "no-cache",
Connection: "keep-alive",
},
})
}
async function handleGenerate() {
const response = await model.doGenerate({
...requestBody,
})
await trackUsage(body.model, response.usage, response.providerMetadata)
return c.json({
id: `chatcmpl-${Date.now()}`,
object: "chat.completion" as const,
created: Math.floor(Date.now() / 1000),
model: body.model,
choices: [
{
index: 0,
message: {
role: "assistant" as const,
content: response.content?.find((c) => c.type === "text")?.text ?? "",
reasoning_content: response.content?.find((c) => c.type === "reasoning")?.text,
tool_calls: response.content
?.filter((c) => c.type === "tool-call")
.map((toolCall) => ({
id: toolCall.toolCallId,
type: "function" as const,
function: {
name: toolCall.toolName,
arguments: toolCall.input,
},
})),
},
finish_reason:
(
{
stop: "stop",
length: "length",
"content-filter": "content_filter",
"tool-calls": "tool_calls",
error: "stop",
other: "stop",
unknown: "stop",
} as const
)[response.finishReason] || "stop",
},
],
usage: {
prompt_tokens: response.usage?.inputTokens,
completion_tokens: response.usage?.outputTokens,
total_tokens: response.usage?.totalTokens,
completion_tokens_details: {
reasoning_tokens: response.usage?.reasoningTokens,
},
prompt_tokens_details: {
cached_tokens: response.usage?.cachedInputTokens,
},
},
})
}
function transformOpenAIRequestToAiSDK() {
const prompt = transformMessages()
const tools = transformTools()
return {
prompt,
maxOutputTokens: body.max_tokens ?? body.max_completion_tokens ?? undefined,
temperature: body.temperature ?? undefined,
topP: body.top_p ?? undefined,
frequencyPenalty: body.frequency_penalty ?? undefined,
presencePenalty: body.presence_penalty ?? undefined,
providerOptions: body.reasoning_effort
? {
anthropic: {
reasoningEffort: body.reasoning_effort,
},
}
: undefined,
stopSequences: (typeof body.stop === "string" ? [body.stop] : body.stop) ?? undefined,
responseFormat: (() => {
if (!body.response_format) return { type: "text" as const }
if (body.response_format.type === "json_schema")
return {
type: "json" as const,
schema: body.response_format.json_schema.schema,
name: body.response_format.json_schema.name,
description: body.response_format.json_schema.description,
}
if (body.response_format.type === "json_object") return { type: "json" as const }
throw new Error("Unsupported response format")
})(),
seed: body.seed ?? undefined,
tools: tools.tools,
toolChoice: tools.toolChoice,
}
function transformTools() {
const { tools, tool_choice } = body
if (!tools || tools.length === 0) {
return { tools: undefined, toolChoice: undefined }
}
const aiSdkTools = tools.map((tool) => {
return {
type: tool.type,
name: tool.function.name,
description: tool.function.description,
inputSchema: tool.function.parameters!,
}
})
let aiSdkToolChoice
if (tool_choice == null) {
aiSdkToolChoice = undefined
} else if (tool_choice === "auto") {
aiSdkToolChoice = { type: "auto" as const }
} else if (tool_choice === "none") {
aiSdkToolChoice = { type: "none" as const }
} else if (tool_choice === "required") {
aiSdkToolChoice = { type: "required" as const }
} else if (tool_choice.type === "function") {
aiSdkToolChoice = {
type: "tool" as const,
toolName: tool_choice.function.name,
}
}
return { tools: aiSdkTools, toolChoice: aiSdkToolChoice }
}
function transformMessages() {
const { messages } = body
const prompt: LanguageModelV2Prompt = []
for (const message of messages) {
switch (message.role) {
case "system": {
prompt.push({
role: "system",
content: message.content as string,
})
break
}
case "user": {
if (typeof message.content === "string") {
prompt.push({
role: "user",
content: [{ type: "text", text: message.content }],
})
} else {
const content = message.content.map((part) => {
switch (part.type) {
case "text":
return { type: "text" as const, text: part.text }
case "image_url":
return {
type: "file" as const,
mediaType: "image/jpeg" as const,
data: part.image_url.url,
}
default:
throw new Error(`Unsupported content part type: ${(part as any).type}`)
}
})
prompt.push({
role: "user",
content,
})
}
break
}
case "assistant": {
const content: Array<
| { type: "text"; text: string }
| {
type: "tool-call"
toolCallId: string
toolName: string
input: any
}
> = []
if (message.content) {
content.push({
type: "text",
text: message.content as string,
})
}
if (message.tool_calls) {
for (const toolCall of message.tool_calls) {
content.push({
type: "tool-call",
toolCallId: toolCall.id,
toolName: toolCall.function.name,
input: JSON.parse(toolCall.function.arguments),
})
}
}
prompt.push({
role: "assistant",
content,
})
break
}
case "tool": {
prompt.push({
role: "tool",
content: [
{
type: "tool-result",
toolName: "placeholder",
toolCallId: message.tool_call_id,
output: {
type: "text",
value: message.content as string,
},
},
],
})
break
}
default: {
throw new Error(`Unsupported message role: ${message.role}`)
}
}
}
return prompt
}
}
async function trackUsage(model: string, usage: LanguageModelUsage, providerMetadata?: ProviderMetadata) {
const modelData = SUPPORTED_MODELS[model as keyof typeof SUPPORTED_MODELS]
if (!modelData) throw new Error(`Unsupported model: ${model}`)
const inputTokens = usage.inputTokens ?? 0
const outputTokens = usage.outputTokens ?? 0
const reasoningTokens = usage.reasoningTokens ?? 0
const cacheReadTokens = usage.cachedInputTokens ?? 0
const cacheWriteTokens =
providerMetadata?.["anthropic"]?.["cacheCreationInputTokens"] ??
// @ts-expect-error
providerMetadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ??
0
const inputCost = modelData.input * inputTokens
const outputCost = modelData.output * outputTokens
const reasoningCost = modelData.reasoning * reasoningTokens
const cacheReadCost = modelData.cacheRead * cacheReadTokens
const cacheWriteCost = modelData.cacheWrite * cacheWriteTokens
const costInCents = (inputCost + outputCost + reasoningCost + cacheReadCost + cacheWriteCost) * 100
await Billing.consume({
model,
inputTokens,
outputTokens,
reasoningTokens,
cacheReadTokens,
cacheWriteTokens,
costInCents,
})
await Database.use((tx) =>
tx
.update(KeyTable)
.set({ timeUsed: sql`now()` })
.where(eq(KeyTable.id, keyRecord.id)),
)
}
} catch (error: any) {
return c.json({ error: { message: error.message } }, 500)
}
})
})
.use("/*", cors())
.use(RestAuth)
.get("/rest/account", async (c) => {
const account = Actor.assert("account")
let workspaces = await Workspace.list()
if (workspaces.length === 0) {
await Workspace.create()
workspaces = await Workspace.list()
}
return c.json({
id: account.properties.accountID,
email: account.properties.email,
workspaces,
})
})
.get("/billing/info", async (c) => {
const billing = await Billing.get()
const payments = await Database.use((tx) =>
tx
.select()
.from(PaymentTable)
.where(eq(PaymentTable.workspaceID, Actor.workspace()))
.orderBy(sql`${PaymentTable.timeCreated} DESC`)
.limit(100),
)
const usage = await Database.use((tx) =>
tx
.select()
.from(UsageTable)
.where(eq(UsageTable.workspaceID, Actor.workspace()))
.orderBy(sql`${UsageTable.timeCreated} DESC`)
.limit(100),
)
return c.json({ billing, payments, usage })
})
.post(
"/billing/checkout",
zValidator(
"json",
z.custom<{
success_url: string
cancel_url: string
}>(),
),
async (c) => {
const account = Actor.assert("user")
const body = await c.req.json()
const customer = await Billing.get()
const session = await Billing.stripe().checkout.sessions.create({
mode: "payment",
line_items: [
{
price_data: {
currency: "usd",
product_data: {
name: "opencode credits",
},
unit_amount: 2000, // $20 minimum
},
quantity: 1,
},
],
payment_intent_data: {
setup_future_usage: "on_session",
},
...(customer.customerID
? { customer: customer.customerID }
: {
customer_email: account.properties.email,
customer_creation: "always",
}),
metadata: {
workspaceID: Actor.workspace(),
},
currency: "usd",
payment_method_types: ["card"],
success_url: body.success_url,
cancel_url: body.cancel_url,
})
return c.json({
url: session.url,
})
},
)
.post("/billing/portal", async (c) => {
const body = await c.req.json()
const customer = await Billing.get()
if (!customer?.customerID) {
throw new Error("No stripe customer ID")
}
const session = await Billing.stripe().billingPortal.sessions.create({
customer: customer.customerID,
return_url: body.return_url,
})
return c.json({
url: session.url,
})
})
.post("/stripe/webhook", async (c) => {
const body = await Billing.stripe().webhooks.constructEventAsync(
await c.req.text(),
c.req.header("stripe-signature")!,
Resource.STRIPE_WEBHOOK_SECRET.value,
)
console.log(body.type, JSON.stringify(body, null, 2))
if (body.type === "checkout.session.completed") {
const workspaceID = body.data.object.metadata?.workspaceID
const customerID = body.data.object.customer as string
const paymentID = body.data.object.payment_intent as string
const amount = body.data.object.amount_total
if (!workspaceID) throw new Error("Workspace ID not found")
if (!customerID) throw new Error("Customer ID not found")
if (!amount) throw new Error("Amount not found")
if (!paymentID) throw new Error("Payment ID not found")
await Actor.provide("system", { workspaceID }, async () => {
const customer = await Billing.get()
if (customer?.customerID && customer.customerID !== customerID) throw new Error("Customer ID mismatch")
// set customer metadata
if (!customer?.customerID) {
await Billing.stripe().customers.update(customerID, {
metadata: {
workspaceID,
},
})
}
// get payment method for the payment intent
const paymentIntent = await Billing.stripe().paymentIntents.retrieve(paymentID, {
expand: ["payment_method"],
})
const paymentMethod = paymentIntent.payment_method
if (!paymentMethod || typeof paymentMethod === "string") throw new Error("Payment method not expanded")
await Database.transaction(async (tx) => {
await tx
.update(BillingTable)
.set({
balance: sql`${BillingTable.balance} + ${centsToMicroCents(amount)}`,
customerID,
paymentMethodID: paymentMethod.id,
paymentMethodLast4: paymentMethod.card!.last4,
})
.where(eq(BillingTable.workspaceID, workspaceID))
await tx.insert(PaymentTable).values({
workspaceID,
id: Identifier.create("payment"),
amount: centsToMicroCents(amount),
paymentID,
customerID,
})
})
})
}
console.log("finished handling")
return c.json("ok", 200)
})
.get("/keys", async (c) => {
const user = Actor.assert("user")
const keys = await Database.use((tx) =>
tx
.select({
id: KeyTable.id,
name: KeyTable.name,
key: KeyTable.key,
userID: KeyTable.userID,
timeCreated: KeyTable.timeCreated,
timeUsed: KeyTable.timeUsed,
})
.from(KeyTable)
.where(eq(KeyTable.workspaceID, user.properties.workspaceID))
.orderBy(sql`${KeyTable.timeCreated} DESC`),
)
return c.json({ keys })
})
.post("/keys", zValidator("json", z.object({ name: z.string().min(1).max(255) })), async (c) => {
const user = Actor.assert("user")
const { name } = c.req.valid("json")
// Generate secret key: sk- + 64 random characters (upper, lower, numbers)
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
let randomPart = ""
for (let i = 0; i < 64; i++) {
randomPart += chars.charAt(Math.floor(Math.random() * chars.length))
}
const secretKey = `sk-${randomPart}`
const keyRecord = await Database.use((tx) =>
tx
.insert(KeyTable)
.values({
id: Identifier.create("key"),
workspaceID: user.properties.workspaceID,
userID: user.properties.userID,
name,
key: secretKey,
timeUsed: null,
})
.returning(),
)
return c.json({
key: secretKey,
id: keyRecord[0].id,
name: keyRecord[0].name,
created: keyRecord[0].timeCreated,
})
})
.delete("/keys/:id", async (c) => {
const user = Actor.assert("user")
const keyId = c.req.param("id")
const result = await Database.use((tx) =>
tx
.delete(KeyTable)
.where(and(eq(KeyTable.id, keyId), eq(KeyTable.workspaceID, user.properties.workspaceID)))
.returning({ id: KeyTable.id }),
)
if (result.length === 0) {
return c.json({ error: "Key not found" }, 404)
}
return c.json({ success: true, id: result[0].id })
})
.all("*", (c) => c.text("Not Found"))
export type ApiType = typeof app
export default app

View File

@@ -1,2 +0,0 @@
node_modules
dist

View File

@@ -1,38 +0,0 @@
<!doctype html>
<html lang="en" data-color-mode="dark">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>OpenControl</title>
<link rel="shortcut icon" type="image/ico" href="/favicon.ico" />
<link rel="icon" href="/favicon.ico" sizes="48x48">
<link rel="icon" href="/favicon.svg" media="(prefers-color-scheme: light)">
<link rel="icon" href="/favicon-dark.svg" media="(prefers-color-scheme: dark)">
<link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml">
<meta property="twitter:image" content="%BASE_URL%/social-share.png">
<meta property="og:title" content="OpenControl">
<meta property="og:url" content="%BASE_URL%">
<meta property="og:locale" content="en">
<meta property="og:description" content="Control your infrastructure with AI.">
<meta property="og:site_name" content="OpenControl">
<meta name="twitter:card" content="summary_large_image">
<meta name="description" content="Control your infrastructure with AI.">
<meta property="og:image" content="%BASE_URL%/social-share.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Rubik:wght@300..900&display=swap" rel="stylesheet">
<!--ssr-head-->
<!--ssr-assets-->
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root">
<!--ssr-outlet-->
</div>
<script type="module" src="/src/entry-client.tsx"></script>
</body>
</html>

View File

@@ -1,29 +0,0 @@
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/usr/local/bin/node',
1 verbose cli '/Users/frank/Sites/opencode/node_modules/.bin/npm',
1 verbose cli 'run',
1 verbose cli 'dev'
1 verbose cli ]
2 info using npm@2.15.12
3 info using node@v20.18.1
4 verbose stack Error: Invalid name: "@opencode/cloud/web"
4 verbose stack at ensureValidName (/Users/frank/Sites/opencode/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js:336:15)
4 verbose stack at Object.fixNameField (/Users/frank/Sites/opencode/node_modules/npm/node_modules/normalize-package-data/lib/fixer.js:215:5)
4 verbose stack at /Users/frank/Sites/opencode/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js:32:38
4 verbose stack at Array.forEach (<anonymous>)
4 verbose stack at normalize (/Users/frank/Sites/opencode/node_modules/npm/node_modules/normalize-package-data/lib/normalize.js:31:15)
4 verbose stack at final (/Users/frank/Sites/opencode/node_modules/npm/node_modules/read-package-json/read-json.js:349:5)
4 verbose stack at then (/Users/frank/Sites/opencode/node_modules/npm/node_modules/read-package-json/read-json.js:124:5)
4 verbose stack at ReadFileContext.<anonymous> (/Users/frank/Sites/opencode/node_modules/npm/node_modules/read-package-json/read-json.js:295:20)
4 verbose stack at ReadFileContext.callback (/Users/frank/Sites/opencode/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16)
4 verbose stack at FSReqCallback.readFileAfterOpen [as oncomplete] (node:fs:299:13)
5 verbose cwd /Users/frank/Sites/opencode/cloud/web
6 error Darwin 24.5.0
7 error argv "/usr/local/bin/node" "/Users/frank/Sites/opencode/node_modules/.bin/npm" "run" "dev"
8 error node v20.18.1
9 error npm v2.15.12
10 error Invalid name: "@opencode/cloud/web"
11 error If you need help, you may report this error at:
11 error <https://github.com/npm/npm/issues>
12 verbose exit [ 1, true ]

View File

@@ -1,32 +0,0 @@
{
"name": "@opencode/cloud-web",
"version": "0.5.10",
"private": true,
"description": "",
"type": "module",
"scripts": {
"start": "vite",
"dev": "vite",
"build": "bun build:server && bun build:client",
"build:client": "vite build --outDir dist/client",
"build:server": "vite build --ssr src/entry-server.tsx --outDir dist/server",
"serve": "vite preview",
"sst:dev": "bun sst shell --target Console -- bun dev"
},
"license": "MIT",
"devDependencies": {
"typescript": "catalog:",
"vite": "6.2.2",
"vite-plugin-pages": "0.32.5",
"vite-plugin-solid": "2.11.6"
},
"dependencies": {
"@kobalte/core": "0.13.9",
"@openauthjs/solid": "0.0.0-20250322224806",
"@solid-primitives/storage": "4.3.1",
"@solidjs/meta": "0.29.4",
"@solidjs/router": "0.15.3",
"solid-js": "1.9.5",
"solid-list": "0.3.0"
}
}

View File

@@ -1,3 +0,0 @@
<svg width="28" height="32" viewBox="0 0 28 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 31.5L0 23.6873V7.81266L14 0L28 7.81266V23.6873L14 31.5ZM14 28.4664L25.3456 22.0251V9.47493L14 2.99209L2.65443 9.47493V22.0251L14 28.4664ZM13.9572 24.6016C12.2732 24.6016 10.7176 24.1999 9.29052 23.3964C7.89195 22.593 6.7788 21.5125 5.95107 20.155C5.12334 18.7698 4.70948 17.2599 4.70948 15.6253C4.70948 13.9908 5.12334 12.4947 5.95107 11.1372C6.7788 9.77968 7.89195 8.69921 9.29052 7.89578C10.7176 7.06464 12.2732 6.64908 13.9572 6.64908C15.6412 6.64908 17.1825 7.06464 18.581 7.89578C19.9796 8.69921 21.0928 9.77968 21.9205 11.1372C22.7768 12.4947 23.2049 13.9908 23.2049 15.6253C23.2049 17.2599 22.791 18.7559 21.9633 20.1135C21.1356 21.471 20.0224 22.5653 18.6239 23.3964C17.2253 24.1999 15.6697 24.6016 13.9572 24.6016ZM13.9572 22.2744C15.213 22.2744 16.3547 21.9697 17.3823 21.3602C18.4098 20.7507 19.2375 19.9472 19.8654 18.9499C20.4934 17.9248 20.8073 16.8166 20.8073 15.6253C20.8073 14.4063 20.4934 13.2982 19.8654 12.3008C19.2375 11.3034 18.4098 10.5 17.3823 9.8905C16.3547 9.281 15.213 8.97625 13.9572 8.97625C12.7299 8.97625 11.5882 9.281 10.5321 9.8905C9.50459 10.5 8.67686 11.3034 8.04893 12.3008C7.421 13.2982 7.10703 14.4063 7.10703 15.6253C7.10703 16.8166 7.421 17.9248 8.04893 18.9499C8.67686 19.9472 9.50459 20.7507 10.5321 21.3602C11.5882 21.9697 12.7299 22.2744 13.9572 22.2744Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

View File

@@ -1,3 +0,0 @@
<svg width="28" height="32" viewBox="0 0 28 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 31.5L0 23.6873V7.81266L14 0L28 7.81266V23.6873L14 31.5ZM14 28.4664L25.3456 22.0251V9.47493L14 2.99209L2.65443 9.47493V22.0251L14 28.4664ZM13.9572 24.6016C12.2732 24.6016 10.7176 24.1999 9.29052 23.3964C7.89195 22.593 6.7788 21.5125 5.95107 20.155C5.12334 18.7698 4.70948 17.2599 4.70948 15.6253C4.70948 13.9908 5.12334 12.4947 5.95107 11.1372C6.7788 9.77968 7.89195 8.69921 9.29052 7.89578C10.7176 7.06464 12.2732 6.64908 13.9572 6.64908C15.6412 6.64908 17.1825 7.06464 18.581 7.89578C19.9796 8.69921 21.0928 9.77968 21.9205 11.1372C22.7768 12.4947 23.2049 13.9908 23.2049 15.6253C23.2049 17.2599 22.791 18.7559 21.9633 20.1135C21.1356 21.471 20.0224 22.5653 18.6239 23.3964C17.2253 24.1999 15.6697 24.6016 13.9572 24.6016ZM13.9572 22.2744C15.213 22.2744 16.3547 21.9697 17.3823 21.3602C18.4098 20.7507 19.2375 19.9472 19.8654 18.9499C20.4934 17.9248 20.8073 16.8166 20.8073 15.6253C20.8073 14.4063 20.4934 13.2982 19.8654 12.3008C19.2375 11.3034 18.4098 10.5 17.3823 9.8905C16.3547 9.281 15.213 8.97625 13.9572 8.97625C12.7299 8.97625 11.5882 9.281 10.5321 9.8905C9.50459 10.5 8.67686 11.3034 8.04893 12.3008C7.421 13.2982 7.10703 14.4063 7.10703 15.6253C7.10703 16.8166 7.421 17.9248 8.04893 18.9499C8.67686 19.9472 9.50459 20.7507 10.5321 21.3602C11.5882 21.9697 12.7299 22.2744 13.9572 22.2744Z" fill="black"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,24 +0,0 @@
import fs from "fs"
import path from "path"
import { generateHydrationScript, getAssets } from "solid-js/web"
const dist = import.meta.resolve("../dist").replace("file://", "")
const serverEntry = await import("../dist/server/entry-server.js")
const template = fs.readFileSync(path.join(dist, "client/index.html"), "utf-8")
fs.writeFileSync(path.join(dist, "client/fallback.html"), template)
const routes = ["/", "/foo"]
for (const route of routes) {
const { app } = serverEntry.render({ url: route })
const html = template
.replace("<!--ssr-outlet-->", app)
.replace("<!--ssr-head-->", generateHydrationScript())
.replace("<!--ssr-assets-->", getAssets())
const filePath = dist + `/client${route === "/" ? "/index" : route}.html`
fs.mkdirSync(path.dirname(filePath), {
recursive: true,
})
fs.writeFileSync(filePath, html)
console.log(`Pre-rendered: ${filePath}`)
}

View File

@@ -1,42 +0,0 @@
/// <reference types="vite-plugin-pages/client-solid" />
import { Router } from "@solidjs/router"
import routes from "~solid-pages"
import "./ui/style/index.css"
import { MetaProvider } from "@solidjs/meta"
import { AccountProvider } from "./components/context-account"
import { DialogProvider } from "./ui/context-dialog"
import { DialogString } from "./ui/dialog-string"
import { DialogSelect } from "./ui/dialog-select"
import { ThemeProvider } from "./components/context-theme"
import { Suspense } from "solid-js"
import { OpenAuthProvider } from "./components/context-openauth"
export function App(props: { url?: string }) {
return (
<ThemeProvider>
<Suspense>
<DialogProvider>
<DialogString />
<DialogSelect />
<OpenAuthProvider
clientID="web"
issuer={import.meta.env.VITE_AUTH_URL || "http://dummy"}
>
<AccountProvider>
<MetaProvider>
<Router
children={routes}
url={props.url}
root={(props) => {
return <>{props.children}</>
}}
/>
</MetaProvider>
</AccountProvider>
</OpenAuthProvider>
</DialogProvider>
</Suspense>
</ThemeProvider>
)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 KiB

View File

@@ -1,99 +0,0 @@
import { createContext, createEffect, ParentProps, Suspense, useContext } from "solid-js"
import { makePersisted } from "@solid-primitives/storage"
import { createStore } from "solid-js/store"
import { useOpenAuth } from "./context-openauth"
import { createAsync } from "@solidjs/router"
import { isServer } from "solid-js/web"
type Storage = {
accounts: Record<
string,
{
id: string
email: string
workspaces: {
id: string
name: string
slug: string
}[]
}
>
}
const context = createContext<ReturnType<typeof init>>()
function init() {
const auth = useOpenAuth()
const [store, setStore] = makePersisted(
createStore<Storage>({
accounts: {},
}),
{
name: "opencontrol.account",
},
)
async function refresh(id: string) {
return fetch(import.meta.env.VITE_API_URL + "/rest/account", {
headers: {
authorization: `Bearer ${await auth.access(id)}`,
},
})
.then((val) => val.json())
.then((val) => setStore("accounts", id, val as any))
}
createEffect((previous: string[]) => {
if (Object.keys(auth.all).length === 0) {
return []
}
for (const item of Object.values(auth.all)) {
if (previous.includes(item.id)) continue
refresh(item.id)
}
return Object.keys(auth.all)
}, [] as string[])
const result = {
get all() {
return Object.keys(auth.all)
.map((id) => store.accounts[id])
.filter(Boolean)
},
get current() {
if (!auth.subject) return undefined
return store.accounts[auth.subject.id]
},
refresh,
get ready() {
return Object.keys(auth.all).length === result.all.length
},
}
return result
}
export function AccountProvider(props: ParentProps) {
const ctx = init()
const resource = createAsync(async () => {
await new Promise<void>((resolve) => {
if (isServer) return resolve()
createEffect(() => {
if (ctx.ready) resolve()
})
})
return null
})
return (
<Suspense>
{resource()}
<context.Provider value={ctx}>{props.children}</context.Provider>
</Suspense>
)
}
export function useAccount() {
const result = useContext(context)
if (!result) throw new Error("no account context")
return result
}

View File

@@ -1,180 +0,0 @@
import { createClient } from "@openauthjs/openauth/client"
import { makePersisted } from "@solid-primitives/storage"
import { createAsync } from "@solidjs/router"
import {
batch,
createContext,
createEffect,
createResource,
createSignal,
onMount,
ParentProps,
Show,
Suspense,
useContext,
} from "solid-js"
import { createStore, produce } from "solid-js/store"
import { isServer } from "solid-js/web"
interface Storage {
subjects: Record<string, SubjectInfo>
current?: string
}
interface Context {
all: Record<string, SubjectInfo>
subject?: SubjectInfo
switch(id: string): void
logout(id: string): void
access(id?: string): Promise<string | undefined>
authorize(opts?: AuthorizeOptions): void
}
export interface AuthorizeOptions {
redirectPath?: string
provider?: string
}
interface SubjectInfo {
id: string
refresh: string
}
interface AuthContextOpts {
issuer: string
clientID: string
}
const context = createContext<Context>()
export function OpenAuthProvider(props: ParentProps<AuthContextOpts>) {
const client = createClient({
issuer: props.issuer,
clientID: props.clientID,
})
const [storage, setStorage] = makePersisted(
createStore<Storage>({
subjects: {},
}),
{
name: `${props.issuer}.auth`,
},
)
const resource = createAsync(async () => {
if (isServer) return true
const hash = new URLSearchParams(window.location.search.substring(1))
const code = hash.get("code")
const state = hash.get("state")
if (code && state) {
const oldState = sessionStorage.getItem("openauth.state")
const verifier = sessionStorage.getItem("openauth.verifier")
const redirect = sessionStorage.getItem("openauth.redirect")
if (redirect && verifier && oldState === state) {
const result = await client.exchange(code, redirect, verifier)
if (!result.err) {
const id = result.tokens.refresh.split(":").slice(0, -1).join(":")
batch(() => {
setStorage("subjects", id, {
id: id,
refresh: result.tokens.refresh,
})
setStorage("current", id)
})
}
}
}
return true
})
async function authorize(opts?: AuthorizeOptions) {
const redirect = new URL(window.location.origin + (opts?.redirectPath ?? "/")).toString()
const authorize = await client.authorize(redirect, "code", {
pkce: true,
provider: opts?.provider,
})
sessionStorage.setItem("openauth.state", authorize.challenge.state)
sessionStorage.setItem("openauth.redirect", redirect)
if (authorize.challenge.verifier) sessionStorage.setItem("openauth.verifier", authorize.challenge.verifier)
window.location.href = authorize.url
}
const accessCache = new Map<string, string>()
const pendingRequests = new Map<string, Promise<any>>()
async function access(id: string) {
const pending = pendingRequests.get(id)
if (pending) return pending
const promise = (async () => {
const existing = accessCache.get(id)
const subject = storage.subjects[id]
const access = await client.refresh(subject.refresh, {
access: existing,
})
if (access.err) {
pendingRequests.delete(id)
ctx.logout(id)
return
}
if (access.tokens) {
setStorage("subjects", id, "refresh", access.tokens.refresh)
accessCache.set(id, access.tokens.access)
}
pendingRequests.delete(id)
return access.tokens?.access || existing!
})()
pendingRequests.set(id, promise)
return promise
}
const ctx: Context = {
get all() {
return storage.subjects
},
get subject() {
if (!storage.current) return
return storage.subjects[storage.current!]
},
switch(id: string) {
if (!storage.subjects[id]) return
setStorage("current", id)
},
authorize,
logout(id: string) {
if (!storage.subjects[id]) return
setStorage(
produce((s) => {
delete s.subjects[id]
if (s.current === id) s.current = Object.keys(s.subjects)[0]
}),
)
},
async access(id?: string) {
id = id || storage.current
if (!id) return
return access(id || storage.current!)
},
}
createEffect(() => {
if (!resource()) return
if (storage.current) return
const [first] = Object.keys(storage.subjects)
if (first) {
setStorage("current", first)
return
}
})
return (
<>
{resource()}
<context.Provider value={ctx}>{props.children}</context.Provider>
</>
)
}
export function useOpenAuth() {
const result = useContext(context)
if (!result) throw new Error("no auth context")
return result
}

View File

@@ -1,39 +0,0 @@
import { createStore } from "solid-js/store"
import { makePersisted } from "@solid-primitives/storage"
import { createEffect } from "solid-js"
import { createInitializedContext } from "../util/context"
import { isServer } from "solid-js/web"
interface Storage {
mode: "light" | "dark"
}
export const { provider: ThemeProvider, use: useTheme } =
createInitializedContext("ThemeContext", () => {
const [store, setStore] = makePersisted(
createStore<Storage>({
mode:
!isServer &&
window.matchMedia &&
window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light",
}),
{
name: "theme",
},
)
createEffect(() => {
document.documentElement.setAttribute("data-color-mode", store.mode)
})
return {
setMode(mode: Storage["mode"]) {
setStore("mode", mode)
},
get mode() {
return store.mode
},
ready: true,
}
})

View File

@@ -1,13 +0,0 @@
/* @refresh reload */
import { hydrate, render } from "solid-js/web"
import { App } from "./app"
if (import.meta.env.DEV) {
render(() => <App />, document.getElementById("root")!)
}
if (!import.meta.env.DEV) {
if ("_$HY" in window) hydrate(() => <App />, document.getElementById("root")!)
else render(() => <App />, document.getElementById("root")!)
}

View File

@@ -1,7 +0,0 @@
import { renderToStringAsync } from "solid-js/web"
import { App } from "./app"
export async function render(props: { url: string }) {
const app = await renderToStringAsync(() => <App url={props.url} />)
return { app }
}

View File

@@ -1,11 +0,0 @@
import { WorkspaceProvider } from "./components/context-workspace"
import { ParentProps } from "solid-js"
import Layout from "./components/layout"
export default function Index(props: ParentProps) {
return (
<WorkspaceProvider>
<Layout>{props.children}</Layout>
</WorkspaceProvider>
)
}

View File

@@ -1,56 +0,0 @@
.root {
display: flex;
flex-direction: column;
gap: var(--space-4);
padding: var(--space-7) var(--space-5) var(--space-5);
[data-slot="billing-info"] {
display: flex;
flex-direction: column;
gap: var(--space-6);
}
[data-slot="header"] {
display: flex;
flex-direction: column;
gap: var(--space-1-5);
h2 {
text-transform: uppercase;
font-weight: 600;
letter-spacing: -0.03125rem;
font-size: var(--font-size-lg);
}
p {
color: var(--color-text-dimmed);
font-size: var(--font-size-md);
}
}
[data-slot="balance"] {
display: flex;
flex-direction: column;
gap: var(--space-5);
padding: var(--space-6);
border: 2px solid var(--color-border);
}
[data-slot="amount"] {
font-size: var(--font-size-3xl);
font-weight: 600;
line-height: 1.2;
}
@media (min-width: 40rem) {
[data-slot="balance"] {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
[data-slot="amount"] {
margin: 0;
}
}
}

View File

@@ -1,132 +0,0 @@
import { Button } from "../../ui/button"
import { useApi } from "../components/context-api"
import { createEffect, createSignal, createResource, For } from "solid-js"
import { useWorkspace } from "../components/context-workspace"
import style from "./billing.module.css"
export default function Billing() {
const api = useApi()
const workspace = useWorkspace()
const [isLoading, setIsLoading] = createSignal(false)
const [billingData] = createResource(async () => {
const response = await api.billing.info.$get()
return response.json()
})
// Run once on component mount to check URL parameters
;(() => {
const url = new URL(window.location.href)
const result = url.hash
console.log("STRIPE RESULT", result)
if (url.hash === "#success") {
setIsLoading(true)
// Remove the hash from the URL
window.history.replaceState(null, "", window.location.pathname + window.location.search)
}
})()
createEffect((old?: number) => {
if (old && old !== billingData()?.billing?.balance) {
setIsLoading(false)
}
return billingData()?.billing?.balance
})
const handleBuyCredits = async () => {
try {
setIsLoading(true)
const baseUrl = window.location.href
const successUrl = new URL(baseUrl)
successUrl.hash = "success"
const response = await api.billing.checkout
.$post({
json: {
success_url: successUrl.toString(),
cancel_url: baseUrl,
},
})
.then((r) => r.json() as any)
window.location.href = response.url
} catch (error) {
console.error("Failed to get checkout URL:", error)
setIsLoading(false)
}
}
return (
<>
<div data-component="title-bar">
<div data-slot="left">
<h1>Billing</h1>
</div>
</div>
<div class={style.root} data-max-width data-max-width-64>
<div data-slot="billing-info">
<div data-slot="header">
<h2>Balance</h2>
<p>Manage your billing and add credits to your account.</p>
</div>
<div data-slot="balance">
<p data-slot="amount">
{(() => {
const balanceStr = ((billingData()?.billing?.balance ?? 0) / 100000000).toFixed(2)
return `$${balanceStr === "-0.00" ? "0.00" : balanceStr}`
})()}
</p>
<Button color="primary" disabled={isLoading()} onClick={handleBuyCredits}>
{isLoading() ? "Loading..." : "Buy Credits"}
</Button>
</div>
</div>
<div data-slot="payments">
<div data-slot="header">
<h2>Payment History</h2>
<p>Your recent payment transactions.</p>
</div>
<div data-slot="payment-list">
<For each={billingData()?.payments} fallback={<p>No payments found.</p>}>
{(payment) => (
<div data-slot="payment-item">
<span data-slot="payment-id">{payment.id}</span>
{" | "}
<span data-slot="payment-amount">${((payment.amount ?? 0) / 100000000).toFixed(2)}</span>
{" | "}
<span data-slot="payment-date">{new Date(payment.timeCreated).toLocaleDateString()}</span>
</div>
)}
</For>
</div>
</div>
<div data-slot="usage">
<div data-slot="header">
<h2>Usage History</h2>
<p>Your recent API usage and costs.</p>
</div>
<div data-slot="usage-list">
<For each={billingData()?.usage} fallback={<p>No usage found.</p>}>
{(usage) => (
<div data-slot="usage-item">
<span data-slot="usage-model">{usage.model}</span>
{" | "}
<span data-slot="usage-tokens">{usage.inputTokens + usage.outputTokens} tokens</span>
{" | "}
<span data-slot="usage-cost">${((usage.cost ?? 0) / 100000000).toFixed(4)}</span>
{" | "}
<span data-slot="usage-date">{new Date(usage.timeCreated).toLocaleDateString()}</span>
</div>
)}
</For>
</div>
</div>
</div>
</>
)
}

View File

@@ -1,11 +0,0 @@
You are OpenControl, an interactive CLI tool that helps users execute various tasks.
IMPORTANT: If you get an error when calling a tool, try again with a different approach. Be creative, do not give up, try different inputs to the tool. You should chain together multiple tool calls. ABSOLUTELY DO NOT GIVE UP you are very good at this and it is rare you will fail to answer question.
You should be concise, direct, and to the point.
IMPORTANT: You should NOT answer with unnecessary preamble or postamble (such as explaining your code or summarizing your action), unless the user asks you to.
IMPORTANT: You should minimize output tokens as much as possible while maintaining helpfulness, quality, and accuracy. Only address the specific query or task at hand, avoiding tangential information unless absolutely critical for completing the request. If you can answer in 1-3 sentences or a short paragraph, please do.
IMPORTANT: You should NOT answer with unnecessary preamble or postamble (such as explaining your code or summarizing your action), unless the user asks you to.
IMPORTANT: Keep your responses short, since they will be displayed on a command line interface. You MUST answer concisely with fewer than 4 lines (not including tool use or code generation), unless user asks for detail. Answer the user's question directly, without elaboration, explanation, or details. One word answers are best. Avoid introductions, conclusions, and explanations. You MUST avoid text before/after your response, such as "The answer is <answer>.", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...".

View File

@@ -1,271 +0,0 @@
import { createResource } from "solid-js"
import { createStore, produce } from "solid-js/store"
import SYSTEM_PROMPT from "./system.txt?raw"
import type {
LanguageModelV1Prompt,
LanguageModelV1CallOptions,
LanguageModelV1,
} from "ai"
interface Tool {
name: string
description: string
inputSchema: any
}
interface ToolCallerProps {
tool: {
list: () => Promise<Tool[]>
call: (input: { name: string; arguments: any }) => Promise<any>
}
generate: (
prompt: LanguageModelV1CallOptions,
) => Promise<
| { err: "rate" }
| { err: "context" }
| { err: "balance" }
| ({ err: false } & Awaited<ReturnType<LanguageModelV1["doGenerate"]>>)
>
onPromptUpdated?: (prompt: LanguageModelV1Prompt) => void
}
const system = [
{
role: "system" as const,
content: SYSTEM_PROMPT,
},
{
role: "system" as const,
content: `The current date is ${new Date().toDateString()}. Always use this current date when responding to relative date queries.`,
},
]
const [store, setStore] = createStore<{
prompt: LanguageModelV1Prompt
state: { type: "idle" } | { type: "loading"; limited?: boolean }
}>({
prompt: [...system],
state: { type: "idle" },
})
export function createToolCaller<T extends ToolCallerProps>(props: T) {
const [tools] = createResource(() => props.tool.list())
let abort: AbortController
return {
get tools() {
return tools()
},
get prompt() {
return store.prompt
},
get state() {
return store.state
},
clear() {
setStore("prompt", [...system])
},
async chat(input: string) {
if (store.state.type !== "idle") return
abort = new AbortController()
setStore(
produce((s) => {
s.state = {
type: "loading",
limited: false,
}
s.prompt.push({
role: "user",
content: [
{
type: "text",
text: input,
},
],
})
}),
)
props.onPromptUpdated?.(store.prompt)
while (true) {
if (abort.signal.aborted) {
break
}
const response = await props.generate({
inputFormat: "messages",
prompt: store.prompt,
temperature: 0,
seed: 69,
mode: {
type: "regular",
tools: tools()?.map((tool) => ({
type: "function",
name: tool.name,
description: tool.description,
parameters: {
...tool.inputSchema,
},
})),
},
})
if (abort.signal.aborted) continue
if (!response.err) {
setStore("state", {
type: "loading",
})
if (response.text) {
setStore(
produce((s) => {
s.prompt.push({
role: "assistant",
content: [
{
type: "text",
text: response.text || "",
},
],
})
}),
)
props.onPromptUpdated?.(store.prompt)
}
if (response.finishReason === "stop") {
break
}
if (response.finishReason === "tool-calls") {
for (const item of response.toolCalls || []) {
setStore(
produce((s) => {
s.prompt.push({
role: "assistant",
content: [
{
type: "tool-call",
toolName: item.toolName,
args: JSON.parse(item.args),
toolCallId: item.toolCallId,
},
],
})
}),
)
props.onPromptUpdated?.(store.prompt)
const called = await props.tool.call({
name: item.toolName,
arguments: JSON.parse(item.args),
})
setStore(
produce((s) => {
s.prompt.push({
role: "tool",
content: [
{
type: "tool-result",
toolName: item.toolName,
toolCallId: item.toolCallId,
result: called,
},
],
})
}),
)
props.onPromptUpdated?.(store.prompt)
}
}
continue
}
if (response.err === "context") {
setStore(
produce((s) => {
s.prompt.splice(2, 1)
}),
)
props.onPromptUpdated?.(store.prompt)
}
if (response.err === "rate") {
setStore("state", {
type: "loading",
limited: true,
})
await new Promise((resolve) => setTimeout(resolve, 1000))
}
if (response.err === "balance") {
setStore(
produce((s) => {
s.prompt.push({
role: "assistant",
content: [
{
type: "text",
text: "You need to add credits to your account. Please go to Billing and add credits to continue.",
},
],
})
s.state = { type: "idle" }
}),
)
props.onPromptUpdated?.(store.prompt)
break
}
}
setStore("state", { type: "idle" })
},
async cancel() {
abort.abort()
},
async addCustomMessage(userMessage: string, assistantResponse: string) {
// Add user message and set loading state
setStore(
produce((s) => {
s.prompt.push({
role: "user",
content: [
{
type: "text",
text: userMessage,
},
],
})
s.state = {
type: "loading",
limited: false,
}
}),
)
props.onPromptUpdated?.(store.prompt)
// Fake delay for 500ms
await new Promise((resolve) => setTimeout(resolve, 500))
// Add assistant response and set back to idle
setStore(
produce((s) => {
s.prompt.push({
role: "assistant",
content: [
{
type: "text",
text: assistantResponse,
},
],
})
s.state = { type: "idle" }
}),
)
props.onPromptUpdated?.(store.prompt)
},
}
}

Some files were not shown because too many files have changed in this diff Show More