Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6165 commits
Select commit Hold shift + click to select a range
81afee6
try uploading artifacts in workflow
Brendonovich Dec 22, 2025
d4cf421
ci: import bun shell
Brendonovich Dec 22, 2025
5b609e5
ci: replace with just upload-artifact whole dir
Brendonovich Dec 22, 2025
a00770d
feat(desktop): arm64 build for linux (#5935)
NN708 Dec 22, 2025
427f069
ci: try downloading artifact in desktop prepare
Brendonovich Dec 22, 2025
599c93d
ci: run prepare step for tauri build
Brendonovich Dec 22, 2025
411006a
chore: generate
actions-user Dec 22, 2025
43e4482
ci: verbose build and re-enable appimage
Brendonovich Dec 22, 2025
677e7a5
ci: fix tauri build args
Brendonovich Dec 22, 2025
4b237d5
feat: polish dialog & list styles for the desktop app, add fixed logo…
aaroniker Dec 22, 2025
d14bd34
fix: use current page port instead of hardcoded 4096 (#5949)
majiayu000 Dec 22, 2025
bd316bc
feat(desktop): better task tool rendering
adamdotdevin Dec 21, 2025
6a99168
fix(desktop): filter child sessions from header
adamdotdevin Dec 21, 2025
7fbde11
feat(desktop): mobile responsiveness
adamdotdevin Dec 22, 2025
a87e8b5
fix(desktop): cleanup auto scroll
adamdotdevin Dec 22, 2025
2a83ccc
Revert "fix: use current page port instead of hardcoded 4096 (#5949)"
adamdotdevin Dec 22, 2025
67d20bd
server: ensure frontend has correct port for PTY websocket connection…
ashutoshpw Dec 22, 2025
fc2d0f7
fix: server
adamdotdevin Dec 22, 2025
57cf681
ignore: update download stats 2025-12-22
actions-user Dec 22, 2025
6f23ac5
Revert "fix: server"
adamdotdevin Dec 22, 2025
63cf4bf
Revert "server: ensure frontend has correct port for PTY websocket co…
adamdotdevin Dec 22, 2025
4a10b51
release: v1.0.186
Dec 22, 2025
b037516
fix(read): narrow .env file blocking to not block .envrc (#5654)
bukzor Dec 22, 2025
d390fdb
chore: generate
actions-user Dec 22, 2025
1d78a99
fix url for web
thdxr Dec 22, 2025
6c221c1
fix(desktop): diff readability (colors)
adamdotdevin Dec 22, 2025
ca5074d
fix: duplicate words in dialog options (#5944)
Leka74 Dec 22, 2025
910e5bb
ci: limit to opencode repo
rekram1-node Dec 22, 2025
573d41e
fix(share): expanded state and responsiveness
adamdotdevin Dec 22, 2025
5fe6f3e
GitHub pull request event (#5335)
dbpolito Dec 22, 2025
d10a622
ci: tweak docs prompt
rekram1-node Dec 22, 2025
f74ca5d
Add keybindable commands to navigate between user messages (#5078)
will-marella Dec 22, 2025
c70d006
chore: generate
actions-user Dec 22, 2025
80c44fd
chore(desktop): auto scroll utility
adamdotdevin Dec 22, 2025
3f3630c
docs: Github Auto Pull Request Docs (#5974)
dbpolito Dec 22, 2025
dda04d3
fix(prompt): better summary prompt
adamdotdevin Dec 22, 2025
689f8e2
[FEATURE]: Show context usage in OpenCode Desktop Context usage (#5979)
ShpetimA Dec 22, 2025
d5d4a4b
support clojure projects with built-in lsp (#5975)
Azd325 Dec 22, 2025
a5adf5d
upgrade opentui to v0.1.63, enabling kitty alternate keys by default
kommander Dec 22, 2025
474dedc
Update Nix flake.lock and hashes
actions-user Dec 22, 2025
23592ee
feat(lsp): add Tinymist LSP support for Typst (#5933)
anntnzrb Dec 22, 2025
7383645
Add OpenChamber to ecosystem documentation (#5978)
wienans Dec 22, 2025
f896f55
chore: generate
actions-user Dec 22, 2025
4cb3a11
feat(tui): go to parent keybind for subagents (#5762)
rgodha24 Dec 22, 2025
f0d342d
fix: bundle more providers to fix breaking ai sdk issue
rekram1-node Dec 22, 2025
d5e6ec8
Update Nix flake.lock and hashes
actions-user Dec 22, 2025
6797888
fix(providers.opencode): check config for api key in addition to auth…
PowerUser64 Dec 22, 2025
a10a9d0
docs: add opencode-morph-fast-apply plugin to ecosystem (#5992)
JRedeker Dec 22, 2025
68be47f
fix: stop auto execute on sendText vscode extension (#5994)
ShpetimA Dec 22, 2025
51926e8
fix: disable claude skill loading for now
rekram1-node Dec 22, 2025
0fb07d3
test: rm claude skills test
rekram1-node Dec 22, 2025
3a317d4
ci: add failure case for changelog
rekram1-node Dec 22, 2025
37cd071
release: v1.0.187
Dec 22, 2025
375ace1
ignore: update GitHub stars to 41K and project stats to reflect curre…
jayair Dec 22, 2025
75f05f3
chore: generate
actions-user Dec 22, 2025
ccf85ac
support glm 4.7
Dec 22, 2025
a93aa04
Add gitlab-opencode to GitLab docs
nagyv Dec 10, 2025
cce3bf4
feat(desktop): review pane toggle
adamdotdevin Dec 22, 2025
49a4d72
ignore: agents.md
rekram1-node Dec 22, 2025
17c85ef
zen: add glm 4.7
Dec 22, 2025
b144080
fix(tui): resize textarea if text inserted via `appendPrompt` TUI API…
joshuadavidthomas Dec 22, 2025
2b60194
remove sharp
Dec 22, 2025
41a269d
Update Nix flake.lock and hashes
actions-user Dec 22, 2025
596f7ad
release: v1.0.188
Dec 22, 2025
1d839a6
docs: edit gitlab
jayair Dec 22, 2025
820281a
chore: generate
actions-user Dec 22, 2025
6cedc48
release: v1.0.189
Dec 22, 2025
cdf3ac3
feat: add native skill tool with permission system (#5930)
malhashemi Dec 22, 2025
9c6affc
chore: generate
actions-user Dec 22, 2025
e33869d
release: v1.0.190
Dec 22, 2025
54bbc56
tui: change task tool container to block layout for better subagent s…
thdxr Dec 22, 2025
4cd4970
chore: generate
actions-user Dec 22, 2025
649e7cc
feat: better styling for small screens (short and/or not wide) (#5968)
rekram1-node Dec 23, 2025
40b01dc
zen: glm 4.7
Dec 23, 2025
eda7169
feat(skill): add per-agent filtering to skill tool description (#6000)
malhashemi Dec 23, 2025
a5d5916
fix(desktop): better error messages on connection failure
adamdotdevin Dec 23, 2025
d01da2c
chore: generate
actions-user Dec 23, 2025
fd1086e
chore: rename packages/desktop -> packages/app
adamdotdevin Dec 23, 2025
796ae52
Update Nix flake.lock and hashes
actions-user Dec 23, 2025
1a4d103
chore: rename packages/tauri -> packages/desktop
adamdotdevin Dec 23, 2025
27c7336
Update Nix flake.lock and hashes
actions-user Dec 23, 2025
fceb6f9
ci: rename tauri -> desktop
Brendonovich Dec 23, 2025
6bb9876
feat(plugin): allow compaction hook to replace prompt entirely (#5907)
joelhooks Dec 23, 2025
11c3eb3
fix: handle Windows CRLF line endings in grep tool (#5948)
majiayu000 Dec 23, 2025
e108b50
docs: new `/global/health` API (#6006)
opencode-agent[bot] Dec 23, 2025
712227d
ci: docs sync
rekram1-node Dec 23, 2025
90ea66a
improve `mcp` CLI + ability to debug MCP oauth (#5980)
elithrar Dec 23, 2025
2db6179
chore: generate
actions-user Dec 23, 2025
2b47e3c
console: add AppImage download link
Brendonovich Dec 23, 2025
ebe5e02
chore: generate
actions-user Dec 23, 2025
8d7020b
release: v1.0.191
Dec 23, 2025
80f859d
deps: diffs, shiki updates
adamdotdevin Dec 23, 2025
bce3e74
chore: generate
actions-user Dec 23, 2025
6659fa4
Update Nix flake.lock and hashes
actions-user Dec 23, 2025
c6e1277
desktop: kill_sidecar before update install on windows
Brendonovich Dec 23, 2025
3fe99e5
chore: generate
actions-user Dec 23, 2025
161962a
no intermediate autocomplete result to avoid flickering
kommander Dec 23, 2025
58ad28b
ignore: update download stats 2025-12-23
actions-user Dec 23, 2025
b7ab32e
ci: fix
Dec 23, 2025
c839cd6
ci: fix
Dec 23, 2025
2350ae8
zen: glm 4.7
Dec 23, 2025
8936b1c
release: v1.0.192
Dec 23, 2025
7be26e3
indent wrapped todo items properly
kommander Dec 23, 2025
38f4247
chore: generate
actions-user Dec 23, 2025
2cfd1ac
release: v1.0.193
Dec 23, 2025
bfa81c4
Fix Github Pull Request Event (#6037)
dbpolito Dec 23, 2025
438cb14
chore: generate
actions-user Dec 23, 2025
e4d4ee1
[feat]: prompt stashing (#6021)
RhysSullivan Dec 23, 2025
8f5b798
chore: generate
actions-user Dec 23, 2025
ee8c0c3
ci: fix
Dec 23, 2025
4530b93
fix(tui): prevent keybinds from executing when dialog is open (#6017)
anntnzrb Dec 23, 2025
dfcf7f3
ci: update zed sync script
rekram1-node Dec 23, 2025
8636709
docs: add MCP OAuth debugging section (#6047)
elithrar Dec 23, 2025
4fde973
fix: favorites and recents stay visible when filtering models (#6053)
DanielFGray Dec 23, 2025
502c45e
"Did you know?" start screen tips (#5982)
iamdavidhill Dec 23, 2025
c9c9de9
chore: generate
actions-user Dec 23, 2025
9ffcdbf
Add animated braille spinner to terminal title when agent is running …
iamdavidhill Dec 23, 2025
a33fa5f
feat(install): add standard CLI flags (--help, --version, --no-modify…
anntnzrb Dec 23, 2025
6b0e165
Add opencode-shell-strategy plugin to ecosystem (#5995)
JRedeker Dec 23, 2025
9f34b71
chore: generate
actions-user Dec 23, 2025
c4357df
tweak: update import & pr commands to use new share link ur
rekram1-node Dec 23, 2025
6c0eef5
Revert "Add animated braille spinner to terminal title when agent is …
rekram1-node Dec 23, 2025
1b9980d
Update Nix flake.lock and hashes
actions-user Dec 23, 2025
85af5b9
Update gitlab.mdx to use the 2.x component version (#6062)
nagyv Dec 23, 2025
1d87806
fix: remove desktop dup
adamdotdevin Dec 23, 2025
d199671
ci: adam is not a full stack engineer
Dec 23, 2025
0a49653
providers: add Cloudflare AI Gateway (#5174)
elithrar Dec 23, 2025
b81fde1
fix: resize textarea when pasting prompt less than 150 chars (#6070)
OpeOginni Dec 24, 2025
8df4b1d
feat(tui): console copy-to-clipboard via opentui (#5658)
edlsh Dec 24, 2025
c20282e
style: update current todo style (#6077)
iamdavidhill Dec 24, 2025
06a769d
chore: update AGENTS.md to ~150 lines (#5955)
roerohan Dec 24, 2025
a0be7ef
make 'The socket connection was closed unexpectedly' errors retryable
rekram1-node Dec 24, 2025
6812c6c
chore: generate
actions-user Dec 24, 2025
e3d9c7d
chore: regen sdk
rekram1-node Dec 24, 2025
48eb41d
test: add test for retry
rekram1-node Dec 24, 2025
640c1aa
feat(mcp): handle tools/list_changed notifications (#5913)
seuros Dec 24, 2025
cc22f89
zen: sync
Dec 24, 2025
925aa75
chore: generate
actions-user Dec 24, 2025
17267ab
tweak: retry err
rekram1-node Dec 24, 2025
f6d6c32
docs: add Neovim to the list of editors (#6081)
xiantang Dec 24, 2025
ad0b41d
docs: skill tool/perm + parent keybind (#6001)
opencode-agent[bot] Dec 24, 2025
8ec186d
docs: experimental LSP tool (#5943)
opencode-agent[bot] Dec 24, 2025
f34103a
docs: tweak lsp.mdx
rekram1-node Dec 24, 2025
b2a44f9
fix: remove SVG favicon to improve SEO (#5755)
R44VC0RP Dec 24, 2025
68d468e
fix(desktop): conditionally show review pane toggle
adamdotdevin Dec 24, 2025
a0a09d7
fix(desktop): hang on backtracing-prone regex
adamdotdevin Dec 24, 2025
444391c
deps: update marked and marked-shiki
adamdotdevin Dec 24, 2025
50f535f
Update Nix flake.lock and hashes
actions-user Dec 24, 2025
9f87190
fix: don't disable text selection
adamdotdevin Dec 24, 2025
91873f4
fix(desktop): auto-scroll
adamdotdevin Dec 24, 2025
e9123af
fix(desktop): exclude deprecated models
adamdotdevin Dec 24, 2025
40c2a74
ignore: update download stats 2025-12-24
actions-user Dec 24, 2025
8ed4f29
fix(share): page title should be session title
adamdotdevin Dec 24, 2025
2c768a3
fix(desktop): session sort when multiple active
adamdotdevin Dec 24, 2025
424db29
chore: cleanup
adamdotdevin Dec 24, 2025
e6dbb2e
release: v1.0.194
Dec 24, 2025
596145f
refactor(ui): rewrite createAutoScroll with robust event tracking to …
adamdotdevin Dec 24, 2025
38d60fe
chore: generate
actions-user Dec 24, 2025
855b674
chore: cleanup
adamdotdevin Dec 24, 2025
da1602b
release: v1.0.195
Dec 24, 2025
19cd4d7
fix(desktop): better session navigation, hide child sessions
adamdotdevin Dec 24, 2025
20ef37a
chore: generate
actions-user Dec 24, 2025
f934b7b
feat(desktop): show read tool args
adamdotdevin Dec 24, 2025
189d087
fix(desktop): summary flicker
adamdotdevin Dec 24, 2025
79b673b
chore: cleanup
adamdotdevin Dec 24, 2025
d306960
docs: make MCP server documentation more scannable and add Sentry exa…
jayair Dec 24, 2025
c0ea384
docs: add comprehensive CLI command documentation for agent, mcp, ses…
jayair Dec 24, 2025
89dbc03
docs: edits
jayair Dec 24, 2025
8816b29
fix(desktop): render perf
adamdotdevin Dec 24, 2025
ac39cca
fix(desktop): last text part streaming
adamdotdevin Dec 24, 2025
3db71fc
release: v1.0.196
Dec 24, 2025
3ed3a75
docs: add infos about server debugging (#6085)
pschiel Dec 24, 2025
622f38e
chore: generate
actions-user Dec 24, 2025
535928d
Revert "feat: better styling for small screens (short and/or not wide…
thdxr Dec 24, 2025
6413ccd
release: v1.0.197
Dec 24, 2025
c79710f
ci
thdxr Dec 24, 2025
f53bd90
chore: generate
actions-user Dec 24, 2025
4ac7b26
ci
thdxr Dec 24, 2025
38cbdf7
release: v1.0.198
Dec 24, 2025
ea569c9
CI
thdxr Dec 24, 2025
5de8f47
tui: disable tips display in home route
thdxr Dec 24, 2025
2c4075e
chore: generate
actions-user Dec 24, 2025
ca7e658
docs: Corrected the number of built-in subagents in documentation (#6…
robbtolli Dec 25, 2025
a068e39
docs: update skills to use canonical `~/.config/opencode` location (#…
connorads Dec 25, 2025
f800f32
fix: correct Content-Type headers for static assets on app.opencode.a…
sourman Dec 25, 2025
e446058
fix(desktop): show server connection failure
adamdotdevin Dec 25, 2025
cda6301
chore: show version on error page
adamdotdevin Dec 25, 2025
e6e81bf
chore: cleanup dead code
adamdotdevin Dec 25, 2025
e9897aa
chore: toast on file load error
adamdotdevin Dec 25, 2025
0d97794
release: v1.0.199
Dec 25, 2025
eebe17e
fix(desktop): reconcile session diff updates
adamdotdevin Dec 25, 2025
7ad8873
fix(desktop): override agent model
adamdotdevin Dec 25, 2025
e345053
chore: generate
actions-user Dec 25, 2025
186564b
fix(desktop): scroll jank in session turn and review
adamdotdevin Dec 25, 2025
080240e
release: v1.0.200
Dec 25, 2025
bfa2136
remove list tool
thdxr Dec 25, 2025
e78be98
chore: generate
actions-user Dec 25, 2025
0974ff8
ignore: update download stats 2025-12-25
actions-user Dec 25, 2025
310c37a
fix(desktop): so many prompt input fixes, merry christmas
adamdotdevin Dec 25, 2025
97a04d9
release: v1.0.201
Dec 25, 2025
300aa27
feat(desktop): better indicator that session is busy
adamdotdevin Dec 25, 2025
a403029
chore(ui): radio group primitive
adamdotdevin Dec 26, 2025
b2adee3
fix(desktop): can't collapse project with active session
adamdotdevin Dec 26, 2025
e42b568
chore: generate
actions-user Dec 26, 2025
a915a0f
fix(desktop): markdown rendering perf
adamdotdevin Dec 26, 2025
c91f634
fix(desktop): missing keybinds in tooltips
adamdotdevin Dec 26, 2025
d576968
fix(desktop): move session context to top-right
adamdotdevin Dec 26, 2025
1de309f
fix(desktop): padding
adamdotdevin Dec 26, 2025
ca1e210
fix(desktop): user message display
adamdotdevin Dec 26, 2025
0ab3c66
chore: brain icon
adamdotdevin Dec 26, 2025
412b894
release: v1.0.202
Dec 26, 2025
a21ea8a
feat: haskell lsp support (#6141)
amerocu Dec 26, 2025
d3ff2c6
chore: generate
actions-user Dec 26, 2025
b4ec9e0
fix(lsp): make JDTLS use the correct config directory on Windows (#6121)
apersomany Dec 26, 2025
593acee
prompt update to prevent searching via bash tool
thdxr Dec 26, 2025
0d8fa78
release: v1.0.203
Dec 26, 2025
cb89af4
fix: only show diagnostics block when errors exist (#6175)
JackNorris Dec 26, 2025
96ad3d1
chore: generate
actions-user Dec 26, 2025
e26b0c8
tweak: update transform for gemini models so that topP and topK match…
rekram1-node Dec 26, 2025
2898182
ignore: update download stats 2025-12-26
actions-user Dec 26, 2025
d44aa8b
doc: fix typos in various files (#6196)
didier-durand Dec 26, 2025
9ef4423
chore: generate
actions-user Dec 26, 2025
0101146
feat(core): optional mdns service (#6192)
adamdotdevin Dec 26, 2025
9b9d87c
chore: generate
actions-user Dec 26, 2025
a515408
Desktop: MCP UI (#6162)
dbpolito Dec 26, 2025
4bdc3c0
fix(dep): Update package.json - fix perplexity provider version (#6199)
robertocarvajal Dec 26, 2025
e543c8b
chore: createOpencodeServer expose `logLevel` (#6202)
AyushWalekar Dec 26, 2025
74fba3b
chore: generate
actions-user Dec 26, 2025
2bd16f5
Update Nix flake.lock and hashes
actions-user Dec 26, 2025
42cd439
tweak: make install script handle 404s better
rekram1-node Dec 26, 2025
0274c80
feat: add shfmt formatter for shell scripts (#6204)
anntnzrb Dec 26, 2025
361b8a2
chore: kill the dead Polaris Alpha code (#6193)
ariane-emory Dec 26, 2025
97327d0
fix: `opencode web` baseURL error (#6181)
rgodha24 Dec 26, 2025
d794e18
fix: adjust upgrade command to use gh releases page if not npm/bun/pn…
rekram1-node Dec 26, 2025
08e806f
chore: rm comments
rekram1-node Dec 26, 2025
0fe127f
Revert "feat(core): optional mdns service (#6192)"
rekram1-node Dec 26, 2025
0021f6b
chore: generate
actions-user Dec 26, 2025
716c2e0
Update Nix flake.lock and hashes
actions-user Dec 26, 2025
8478b07
ci: update zed extension sync
rekram1-node Dec 26, 2025
5312f79
ci: fix var
rekram1-node Dec 26, 2025
094f768
ci: fix token for gh
rekram1-node Dec 26, 2025
cb3a85f
ci: re-enable sync zed
rekram1-node Dec 26, 2025
f037193
github: support issues and workflow_dispatch events (#6157)
elithrar Dec 26, 2025
2d9b35b
tweak: bash tool description to avoid unnecessary 'cd &&' usage
rekram1-node Dec 26, 2025
4db8fd9
test: add more tests to make sure that cwd is locked for read tool
rekram1-node Dec 26, 2025
9d30689
chore: kill some unused tools
rekram1-node Dec 26, 2025
f4ce070
export with current thinking/details visibility settings
Dec 27, 2025
78de0a3
copy with current thinking/details visibility settings
Dec 27, 2025
3400d0f
remove EXPORT_CHANGES.md file
Dec 27, 2025
8dc8dab
export options dialog
Dec 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -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.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 22 additions & 0 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 71 additions & 0 deletions .github/publish-python-sdk.yml
Original file line number Diff line number Diff line change
@@ -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
29 changes: 29 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: deploy

on:
push:
branches:
- dev
- production
workflow_dispatch:

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
deploy:
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v3

- uses: ./.github/actions/setup-bun

- 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 }}
69 changes: 69 additions & 0 deletions .github/workflows/docs-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Docs Update

on:
schedule:
- cron: "0 */12 * * *"
workflow_dispatch:

jobs:
update-docs:
if: github.repository == 'sst/opencode'
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
id-token: write
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history to access commits

- name: Setup Bun
uses: ./.github/actions/setup-bun

- name: Get recent commits
id: commits
run: |
COMMITS=$(git log --since="4 hours ago" --pretty=format:"- %h %s" 2>/dev/null || echo "")
if [ -z "$COMMITS" ]; then
echo "No commits in the last 4 hours"
echo "has_commits=false" >> $GITHUB_OUTPUT
else
echo "has_commits=true" >> $GITHUB_OUTPUT
{
echo "list<<EOF"
echo "$COMMITS"
echo "EOF"
} >> $GITHUB_OUTPUT
fi

- name: Run opencode
if: steps.commits.outputs.has_commits == 'true'
uses: sst/opencode/github@latest
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
with:
model: opencode/gpt-5.2
agent: docs
prompt: |
Review the following commits from the last 4 hours and identify any new features that may need documentation.

<recent_commits>
${{ steps.commits.outputs.list }}
</recent_commits>

Steps:
1. For each commit that looks like a new feature or significant change:
- Read the changed files to understand what was added
- Check if the feature is already documented in packages/web/src/content/docs/*
2. If you find undocumented features:
- Update the relevant documentation files in packages/web/src/content/docs/*
- Follow the existing documentation style and structure
- Make sure to document the feature clearly with examples where appropriate
3. If all new features are already documented, report that no updates are needed
4. If you are creating a new documentation file be sure to update packages/web/astro.config.mjs too.

Focus on user-facing features and API changes. Skip internal refactors, bug fixes, and test updates unless they affect user-facing behavior.
Don't feel the need to document every little thing. It is perfectly okay to make 0 changes at all.
Try to keep documentation only for large features or changes that already have a good spot to be documented.
63 changes: 63 additions & 0 deletions .github/workflows/duplicate-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Duplicate Issue Detection

on:
issues:
types: [opened]

jobs:
check-duplicates:
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
issues: write
steps:
- 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: Check for duplicate issues
env:
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: |
{
"bash": {
"gh issue*": "allow",
"*": "deny"
},
"webfetch": "deny"
}
run: |
opencode run -m opencode/claude-haiku-4-5 "A new issue has been created:'

Issue number:
${{ github.event.issue.number }}

Lookup this issue and search through existing issues (excluding #${{ github.event.issue.number }}) in this repository to find any potential duplicates of this new issue.
Consider:
1. Similar titles or descriptions
2. Same error messages or symptoms
3. Related functionality or components
4. Similar feature requests

If you find any potential duplicates, please comment on the new issue with:
- A brief explanation of why it might be a duplicate
- Links to the potentially duplicate issues
- A suggestion to check those issues first

Use this format for the comment:
'This issue might be a duplicate of existing issues. Please check:
- #[issue_number]: [brief description of similarity]

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."
Loading