Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4493 commits
Select commit Hold shift + click to select a range
f4593c6
release: v1.0.97
Nov 22, 2025
6f82b32
tauri
thdxr Nov 22, 2025
81245c2
chore: format code
actions-user Nov 22, 2025
87054ee
fix flickering/layout shift during work
thdxr Nov 22, 2025
85284df
release: v1.0.98
Nov 22, 2025
7f183f7
ignore: update download stats 2025-11-22
actions-user Nov 22, 2025
85d9919
Use devinxi-ed Solid Start (#4635)
Brendonovich Nov 22, 2025
5bcf017
Update Nix flake.lock and hashes
actions-user Nov 22, 2025
ac21ec2
upgrade bun lock version
thdxr Nov 22, 2025
bd79ff8
fix missing vite
thdxr Nov 22, 2025
e103fb1
ci: add Node.js setup to deploy workflow for consistent runtime envir…
thdxr Nov 22, 2025
75c29d4
summary optimizaitons
thdxr Nov 22, 2025
d163eb3
release: v1.0.99
Nov 22, 2025
2938a25
sync
thdxr Nov 22, 2025
59742fb
Showed end time for agent loop and changed message time to show date …
val-2 Nov 22, 2025
c96923d
chore: format code
actions-user Nov 22, 2025
78a6325
improve model footer
thdxr Nov 22, 2025
37bb07e
release: v1.0.100
Nov 22, 2025
e03a411
tui: keep assistant footer from crashing after compaction
thdxr Nov 22, 2025
b52b7c6
more flickering fixes
thdxr Nov 22, 2025
f1dc981
chore: format code
actions-user Nov 22, 2025
a0831ea
tui: remove bullet prefix from timestamps in session view for cleaner…
thdxr Nov 22, 2025
0dd5039
release: v1.0.103
Nov 22, 2025
bdcf864
proper fix for image attachments (#4562)
shuv1337 Nov 22, 2025
6afdb5c
tui: added ctrl-z terminal suspension support (#3983)
goniz Nov 22, 2025
31c4a1d
docs: add Docker installation option for OpenCode
thdxr Nov 22, 2025
b652198
load desktop app
thdxr Nov 22, 2025
4c97e2e
reset cache
thdxr Nov 22, 2025
1b692ec
release: v1.0.104
Nov 22, 2025
b92e851
fix: auto upgrade toast message (#4625)
Raviguntakala Nov 22, 2025
f93bb1d
chore: format code
actions-user Nov 22, 2025
bcea8ed
tui: fix message completion timing and duration display in session view
thdxr Nov 22, 2025
768c81c
core: prevent concurrent bun package installs that could cause corrup…
thdxr Nov 22, 2025
fc72cfe
release: v1.0.105
Nov 22, 2025
6173b69
wip(share): more styling
adamdotdevin Nov 23, 2025
2a6cbfd
chore: format code
actions-user Nov 23, 2025
733e1f7
bump opentui to v0.1.49
kommander Nov 23, 2025
c2bf697
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
2b014fc
fix auth
thdxr Nov 23, 2025
e4597df
chore: format code
actions-user Nov 23, 2025
7a013d4
fixed
thdxr Nov 23, 2025
d96d89b
fix logout
thdxr Nov 23, 2025
448b72d
fix logout
thdxr Nov 23, 2025
d69ba27
fix suspense
thdxr Nov 23, 2025
ba11455
fix: prevent permission shortcuts when ctrl/meta pressed (#4631)
terakael Nov 23, 2025
30ffcaa
tweak: start bundling in some ai-sdk packages (#4649)
rekram1-node Nov 23, 2025
9bb2efd
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
35fead2
fix: make tui session text respect theme fg (#4618) (#4620)
tylimbach Nov 23, 2025
d75d90c
ci: fix action
rekram1-node Nov 23, 2025
7d11986
feature: optional selectedListItemText element in themes and luminanc…
ariane-emory Nov 23, 2025
55df80b
ignore: update download stats 2025-11-23
actions-user Nov 23, 2025
af96ec5
ignore: update @solidjs/start dependency and fix console redirect han…
thdxr Nov 23, 2025
a256df9
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
2509d03
tweak: fix bool
rekram1-node Nov 23, 2025
5814df7
sync
thdxr Nov 23, 2025
604891e
ci: stuff
thdxr Nov 23, 2025
76b5870
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
8e2f9f6
ci: stuff
thdxr Nov 23, 2025
25b3846
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
27ae341
fix bash tool wsl
rekram1-node Nov 23, 2025
de4660a
ci: ignore
thdxr Nov 23, 2025
488d33c
release: v1.0.106
Nov 23, 2025
2c93f06
Update Nix flake.lock and hashes
actions-user Nov 23, 2025
59a3e7e
ci: ignore
thdxr Nov 23, 2025
5e112a1
token
thdxr Nov 23, 2025
38b70f7
ci: secret
thdxr Nov 23, 2025
8f2a808
chore: format code
actions-user Nov 23, 2025
5ade904
ci: ignore
thdxr Nov 23, 2025
bf81e31
ci: ignore
thdxr Nov 23, 2025
2468305
ci: ignore
thdxr Nov 23, 2025
7579c3b
ci: remove log
thdxr Nov 23, 2025
7413c27
tweak: slight improvements to title gen
rekram1-node Nov 23, 2025
bbc9142
wip: zen
Nov 23, 2025
4a81bd0
wip: zen
Nov 23, 2025
eb009d5
chore: format code
actions-user Nov 23, 2025
b4fd4bb
fix: add explicit fallback model and prevent direct opencode provide…
no1wudi Nov 24, 2025
a3a2399
nix: bundle js dist with bun and patch tree-sitter wasm paths (#4644)
Alb-O Nov 24, 2025
83186b6
chore: format code
actions-user Nov 24, 2025
b9b071c
fix: fatal: undefined is not an object (evaluating 'color.buffer')
rekram1-node Nov 24, 2025
ac1e2bf
bump copilot plugin, give better error message for copilot (#4678)
rekram1-node Nov 24, 2025
502e85b
release: v1.0.107
Nov 24, 2025
d4f6deb
tweak: modified files sidebar
rekram1-node Nov 24, 2025
abdc7b2
fix: persist light vs dark mode
rekram1-node Nov 24, 2025
840d269
chore: format code
actions-user Nov 24, 2025
75c0c0a
tweak: display MCPs in alphabetic order in the sidebar. (#4680)
ariane-emory Nov 24, 2025
bcb494d
TUI: fix: add null check for user.time in duration calculation (#4679)
WohthaN Nov 24, 2025
e6bf175
ignore: update download stats 2025-11-24
actions-user Nov 24, 2025
883ed4d
docs: add Ollama Cloud provider setup to providers.mdx (#4693)
fifthfrankie Nov 24, 2025
82ebf66
non-corpo loading spinner
kommander Nov 24, 2025
8167e90
chore: format code
actions-user Nov 24, 2025
125af82
release: v1.0.108
Nov 24, 2025
b6c1df4
textarea highlight cursor color
kommander Nov 24, 2025
80b9cd1
chore: format code
actions-user Nov 24, 2025
0ed7fac
wip: zen
Nov 24, 2025
ccde319
ci: nix hash
rekram1-node Nov 24, 2025
a9a2c23
add autoupdate: notify
rekram1-node Nov 24, 2025
46a76a7
zen: add opus 4.5
Nov 24, 2025
3fb5704
wip(share): more styling
adamdotdevin Nov 24, 2025
acf1dd8
wip(share): more styling
adamdotdevin Nov 24, 2025
c60cb6c
wip(share): more styling
adamdotdevin Nov 24, 2025
8e1c7cf
wip(share): enterprise favicon
adamdotdevin Nov 24, 2025
337590c
fix(console): favicon issues
adamdotdevin Nov 24, 2025
493b3d7
chore: format code
actions-user Nov 24, 2025
5230b91
fix(console): remove extra favicon
adamdotdevin Nov 24, 2025
9e44085
adjust bundled provider logic, fix tree shaking stuff (#4708)
rekram1-node Nov 24, 2025
7fff191
wip: zen
Nov 24, 2025
823d7da
zen: display reasoning tokens
Nov 24, 2025
d39bcd9
fix(desktop): layout
adamdotdevin Nov 24, 2025
dd6113c
Add --refresh flag to models command (#4707)
ahosker Nov 24, 2025
9bd6be5
zen: byok for gemini
Nov 24, 2025
23a721f
remove hardcoded openrouter provider
rekram1-node Nov 24, 2025
2458e75
release: v1.0.109
Nov 24, 2025
b9253d0
Support basic auth in opencode sdk (#4697)
ajoslin Nov 24, 2025
f10d189
chore: format code
actions-user Nov 24, 2025
75654af
fix(share): responsiveness
adamdotdevin Nov 24, 2025
99097d4
bump opentui to v0.1.50
kommander Nov 25, 2025
427c62d
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
001b4be
fix(desktop): message summaries
adamdotdevin Nov 25, 2025
3339487
fix(desktop): content animations
adamdotdevin Nov 25, 2025
fb8ef1f
tui: prevent re-fetching already synced sessions when switching sessions
thdxr Nov 25, 2025
320622f
fix(tui): spacing
adamdotdevin Nov 25, 2025
6d63090
tui: use standard middle dot separator for better terminal compatibility
thdxr Nov 25, 2025
83c47e0
release: v1.0.110
Nov 25, 2025
ccec8c4
tui: align session panel content with consistent left padding
thdxr Nov 25, 2025
69d1381
core: refactor share system to separate session IDs from share IDs
thdxr Nov 25, 2025
56fe84e
chore: format code
actions-user Nov 25, 2025
9403f6c
log data
thdxr Nov 25, 2025
88c4e95
zen: sticky session
Nov 25, 2025
364355c
zen: graduate kimi k2 thinking
Nov 25, 2025
d3ea044
ignore: comment out thingy
rekram1-node Nov 25, 2025
9b6d03c
config: add setCacheKey in provider options (#4654)
shantur Nov 25, 2025
16dbac6
Revert "config: add setCacheKey in provider options (#4654)"
rekram1-node Nov 25, 2025
8841112
zen: add zai logo
Nov 25, 2025
6a0b204
zen: remove official support for unified endpoint
Nov 25, 2025
3183978
fixed suspense in enterprise
thdxr Nov 25, 2025
997aacf
ci: adjust nix hash
rekram1-node Nov 25, 2025
3b2aa7e
Revert "Support basic auth in opencode sdk (#4697)"
rekram1-node Nov 25, 2025
b1aaa85
prompt_async: Allows to receive prompt and return immediately, start …
shantur Nov 25, 2025
0568c94
better scroll speed default for windows
rekram1-node Nov 25, 2025
57bd47a
ignore: update download stats 2025-11-25
actions-user Nov 25, 2025
15facd8
feat(share): SSR'd diffs
adamdotdevin Nov 25, 2025
995f551
fix(enterprise): custom element defs
adamdotdevin Nov 25, 2025
0f1dd24
fix(enterprise): custom element defs
adamdotdevin Nov 25, 2025
6287128
chore: format code
actions-user Nov 25, 2025
072aa75
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
7d5e671
nix: set dontFixup = true (#4735)
Alb-O Nov 25, 2025
b4e6f12
fix: favicons across all web properties
adamdotdevin Nov 25, 2025
2575dc2
chore: format code
actions-user Nov 25, 2025
101f86a
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
01bcb9d
ci: setup bun
rekram1-node Nov 25, 2025
4273fa9
fix: merge plugin selections (resolves #4565) (#4724)
ariane-emory Nov 25, 2025
5288041
tweak: alphabetical (mostly) opencode models output (#4725)
ariane-emory Nov 25, 2025
673dbee
fix: disable virtual extmarks for file/agent mentions (#4731)
remorses Nov 25, 2025
4000705
core(enterprise): use aws4fetch for smaller bundle size on edge runtimes
thdxr Nov 25, 2025
b9b1e92
Update Nix flake.lock and hashes
actions-user Nov 25, 2025
87b295b
fix(share): metadata and popover close delay
adamdotdevin Nov 25, 2025
020ee56
fix: dont auto continue if compaction was manual
rekram1-node Nov 25, 2025
d74663b
fix(share): don't highlight words unless split
adamdotdevin Nov 25, 2025
ccd0c23
fix(share): style issues
adamdotdevin Nov 25, 2025
8bf552a
fix: markdown inline code style
adamdotdevin Nov 25, 2025
4a95db6
fix: add missing compacted event
rekram1-node Nov 25, 2025
cd67804
fix: scroll gutter
adamdotdevin Nov 25, 2025
3366a71
Theme selector UX (current theme indicator and easier selection) (#4623)
PanAchy Nov 25, 2025
ceccc30
docs: reduce mobile padding (#4745)
kandros Nov 25, 2025
d914a08
tweak stats command to show avg & median # of tokens per session
rekram1-node Nov 25, 2025
99a23bd
fix: css code splitting off for desktop
adamdotdevin Nov 25, 2025
5f35c57
fix: accordion styles
adamdotdevin Nov 25, 2025
9eabbe2
retry anthropic overloaded errors
thdxr Nov 25, 2025
ec1260d
release: v1.0.111
Nov 25, 2025
125938c
release: v1.0.112
Nov 25, 2025
eb04cda
better overloaded message
thdxr Nov 25, 2025
f8996f0
chore: format code
actions-user Nov 25, 2025
2b05fe2
docs: improve notes on mobile (#4747)
kandros Nov 25, 2025
79a7ede
ci: update changelog prompt
rekram1-node Nov 25, 2025
e404bf3
update install script to handle musl & avx
rekram1-node Nov 25, 2025
eaeea45
ci: change changelog model
rekram1-node Nov 25, 2025
4477132
fix: sanitize absolute paths
adamdotdevin Nov 25, 2025
00d7aed
fix: prompt submit error with `opencode -c` (#4496)
veracioux Nov 25, 2025
19c8654
fix: missing deps
adamdotdevin Nov 25, 2025
e8ac4a1
fix: build error
adamdotdevin Nov 25, 2025
64caeeb
fix(tui): abort in-progress generation on undo (#4744)
remorses Nov 25, 2025
b62c794
zen: trial
Nov 25, 2025
c2fc41d
wip: zen
Nov 25, 2025
a1e87f6
wip: zen
Nov 25, 2025
52f97ff
chore: format code
actions-user Nov 25, 2025
14a910b
wip: zen
Nov 25, 2025
69c2dd5
config: add setCacheKey in provider options (#4738)
shantur Nov 25, 2025
e8db95b
switch typescript lsp to be one per package to ensure it loads when t…
thdxr Nov 26, 2025
0ff4c28
release: v1.0.113
Nov 26, 2025
b449716
fix: global prefix handling w/ aws bedrock (#4757)
rekram1-node Nov 26, 2025
b16aa81
switch to vtsls for typescript lsp
thdxr Nov 26, 2025
ced5fdb
chore: format code
actions-user Nov 26, 2025
4114c87
release: v1.0.114
Nov 26, 2025
50c40a8
tui: fix event subscription cleanup in SDK context
thdxr Nov 26, 2025
16a188c
chore: format code
actions-user Nov 26, 2025
ef441d5
chore: cleanup pierre stuff
adamdotdevin Nov 26, 2025
5f56be0
fix: pierre separators
adamdotdevin Nov 26, 2025
c413c3e
wip: zen
Nov 26, 2025
d95f724
enable exa code/websearch
thdxr Nov 26, 2025
09bc8d9
show current git branch in tui (#4765)
rekram1-node Nov 26, 2025
da20991
zen: trial
Nov 26, 2025
57644a4
feat: add a diff_style option to allow disabling columnar diffs (reso…
ariane-emory Nov 26, 2025
3382291
docs: add Venice.ai provider (#4748)
georgeglarson Nov 26, 2025
0ce6496
feat(github): add ability to react to PR Review Comments in Workflow …
ucirello Nov 26, 2025
e1cc98d
Revert "feat(github): add ability to react to PR Review Comments in W…
rekram1-node Nov 26, 2025
2fbd462
Reapply "feat(github): add ability to react to PR Review Comments in …
rekram1-node Nov 26, 2025
14e823e
ignore: fix type issue
rekram1-node Nov 26, 2025
73eae19
fix: handle remote image URLs in paste handler (#4691)
MeysamNajafi Nov 26, 2025
335f461
Add favorites to model selector (#23) (#4343)
shuv1337 Nov 26, 2025
ec8f2e0
Remove keybinds from favorites feature, keep functionality
rekram1-node Nov 26, 2025
ee946d8
fix: transform MCP tool schemas for Google/Gemini compatibility (#4538)
ZGltYQ Nov 26, 2025
df9952c
Renamed vcs.changed to vcs.branch.updated (#4771)
opencode-agent[bot] Nov 26, 2025
2f73b16
deps: update pierre diffs
adamdotdevin Nov 26, 2025
9a8b8f2
Update Nix flake.lock and hashes
actions-user Nov 26, 2025
cd4fabd
fix: scroll gutter padding
adamdotdevin Nov 26, 2025
30d6a26
fix: useData
adamdotdevin Nov 26, 2025
51455e2
ignore: update download stats 2025-11-26
actions-user Nov 26, 2025
8963b53
docs: IO.NET Provider (#4762)
yug49 Nov 26, 2025
33f004d
fix(tui): show bootstrap errors instead of {} to trace (#4779)
jensenojs Nov 26, 2025
c33920f
release: v1.0.115
Nov 26, 2025
3827587
fix(tui): dedupe file references in prompt (#4775)
remorses Nov 26, 2025
e8e4745
chore: format code
actions-user Nov 26, 2025
9803117
lil branch refactor
thdxr Nov 26, 2025
4d07034
fix: svg paste bug
rekram1-node Nov 26, 2025
1854245
docs: add llama.cpp provider for local LLM inference (#4769)
rosmur Nov 26, 2025
4d2b265
chore: format code
actions-user Nov 26, 2025
3ff0eb3
Revert "fix: disable virtual extmarks for file/agent mentions (#4731)"
rekram1-node Nov 26, 2025
99d7ff4
enable parcel file watcher, expand parcel ignore patterns, replace fs…
rekram1-node Nov 26, 2025
63bfe76
tui design refinement (#4809)
thdxr Nov 27, 2025
9c237f0
temporarily restrict codesearch and websearch to opencode zen users. …
thdxr Nov 27, 2025
2c8d42d
roll back vtsls
thdxr Nov 27, 2025
6a9856d
release: v1.0.117
Nov 27, 2025
501a253
revert ts lsp to monorepo root
thdxr Nov 27, 2025
04b6e72
chore: format code
actions-user Nov 27, 2025
4e83107
Update Nix flake.lock and hashes
actions-user Nov 27, 2025
a718622
tui: prevent footer from shrinking when terminal is resized
thdxr Nov 27, 2025
427887d
release: v1.0.118
Nov 27, 2025
0e08655
core: prevent external diff tools from interfering with snapshot gene…
thdxr Nov 27, 2025
c90987c
chore: format code
actions-user Nov 27, 2025
0bf40fa
core: prevent codesearch and websearch tools when webfetch permission…
thdxr Nov 27, 2025
aef6904
release: v1.0.119
Nov 27, 2025
158f81e
chore: format code
actions-user Nov 27, 2025
a5fb715
Initial plan
Copilot Nov 27, 2025
d08d360
Add sandbox/gym environment implementation
Copilot Nov 27, 2025
18b7b9b
Address code review feedback
Copilot Nov 27, 2025
01af8e5
Add test for custom excludePatterns option
Copilot Nov 27, 2025
92634e2
Fix TypeScript errors in sandbox/config.ts by restructuring Zod schema
Copilot Nov 27, 2025
79cc287
Restore accidentally deleted bun.lock file
Copilot Nov 27, 2025
36a8b85
Improve defaults() return type to Required<Info>
Copilot Nov 27, 2025
ee67ee6
docs: add comprehensive gym implementation status and TODO
v1truv1us Nov 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
57 changes: 57 additions & 0 deletions .github/guidelines-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#
# This file is intentionally in the wrong dir, will move and add later....
#

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."
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
63 changes: 63 additions & 0 deletions .github/workflows/auto-label-tui.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Auto-label TUI Issues

on:
issues:
types: [opened]

jobs:
auto-label:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- name: Auto-label and assign issues
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issue = context.payload.issue;
const title = issue.title;
const description = issue.body || '';

// Check for "opencode web" keyword
const webPattern = /(opencode web)/i;
const isWebRelated = webPattern.test(title) || webPattern.test(description);

// Check for version patterns like v1.0.x or 1.0.x
const versionPattern = /[v]?1\.0\./i;
const isVersionRelated = versionPattern.test(title) || versionPattern.test(description);

// Check for "nix" keyword
const nixPattern = /\bnix\b/i;
const isNixRelated = nixPattern.test(title) || nixPattern.test(description);

const labels = [];

if (isWebRelated) {
labels.push('web');

// Assign to adamdotdevin
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
assignees: ['adamdotdevin']
});
} else if (isVersionRelated) {
// Only add opentui if NOT web-related
labels.push('opentui');
}

if (isNixRelated) {
labels.push('nix');
}

if (labels.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: labels
});
}
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: ubuntu-latest
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 }}
Loading