
commit 7b2ad6a1abf88e0731f15bbf6e281b29a610dd76 Merge: 74c85391847a63e1
Author: Frank <frank@sst.dev> Date: Mon Aug 18 15:31:54 2025 +0800 Merge branch 'dev' into github commit 74c85391b576d01df298f6c30e3399b281b5c997 Author: Frank <frank@sst.dev> Date: Mon Aug 18 15:30:14 2025 +0800 sync commit 0d27f8e490f1aa242e1a3fcd1f21eb077f852207 Author: Frank <frank@sst.dev> Date: Mon Aug 18 14:30:57 2025 +0800 sync commit0cf7e6c89f
Author: Frank <frank@sst.dev> Date: Mon Aug 18 11:54:57 2025 +0800 sync commita782cb7a26
Author: Frank <frank@sst.dev> Date: Mon Aug 18 11:53:25 2025 +0800 sync commitaa55701458
Author: Frank <frank@sst.dev> Date: Mon Aug 18 11:48:10 2025 +0800 sync commit73c8150479
Author: Frank <frank@sst.dev> Date: Mon Aug 18 01:29:29 2025 +0800 sync commitc5325134e8
Author: Frank <frank@sst.dev> Date: Mon Aug 18 01:07:48 2025 +0800 sync commitc5b646aa88
Author: Frank <frank@sst.dev> Date: Mon Aug 18 01:02:02 2025 +0800 sync commit27f7cc86ab
Author: Frank <frank@sst.dev> Date: Mon Aug 18 00:59:22 2025 +0800 sync commit0a6152a0e0
Author: Frank <frank@sst.dev> Date: Sun Aug 17 18:11:31 2025 +0800 fix /opencode trigger commitf1089103c6
Author: Frank <frank@sst.dev> Date: Sun Aug 17 17:55:14 2025 +0800 sync commit3ad1824024
Author: Frank <frank@sst.dev> Date: Sun Aug 17 17:44:11 2025 +0800 sync commit24f0f81773
Author: Frank <frank@sst.dev> Date: Sun Aug 17 17:18:22 2025 +0800 sync commitbc199d32be
Author: Frank <frank@sst.dev> Date: Sun Aug 17 16:59:03 2025 +0800 sync commit6cf860be84
Author: Frank <frank@sst.dev> Date: Sun Aug 17 16:54:48 2025 +0800 sync commitf5f753ff38
Author: Frank <frank@sst.dev> Date: Sun Aug 17 14:43:12 2025 +0800 sync commit26d2e23a3e
Author: Frank <frank@sst.dev> Date: Sun Aug 17 14:33:40 2025 +0800 sync commitc5b3f54a0a
Author: Frank <frank@sst.dev> Date: Sun Aug 17 14:16:10 2025 +0800 sync commit1c74e9a7ad
Author: Frank <frank@sst.dev> Date: Sun Aug 17 08:17:53 2025 +0800 sync commit89052dc9aa
Author: Frank <frank@sst.dev> Date: Sun Aug 17 08:12:43 2025 +0800 sync commit42931d4d2a
Author: Frank <frank@sst.dev> Date: Sun Aug 17 08:08:37 2025 +0800 sync commitf22e97dd05
Author: Frank <frank@sst.dev> Date: Sun Aug 17 08:01:57 2025 +0800 sync commit2dda422ef8
Author: Frank <frank@sst.dev> Date: Sun Aug 17 07:55:38 2025 +0800 sync commitb8be1d0e9e
Author: Frank <frank@sst.dev> Date: Sun Aug 17 07:48:18 2025 +0800 sync commit78c84b96a3
Author: Frank <frank@sst.dev> Date: Sat Aug 16 20:49:26 2025 +0800 sync commitdd9c0c8309
Author: Frank <frank@sst.dev> Date: Sat Aug 16 20:47:25 2025 +0800 sync commit5eb917abba
Author: Frank <frank@sst.dev> Date: Sat Aug 16 20:35:48 2025 +0800 sync commit43cf83e7cc
Author: Frank <frank@sst.dev> Date: Sat Aug 16 20:32:49 2025 +0800 sync commit10673ca3d2
Author: Frank <frank@sst.dev> Date: Sat Aug 16 19:55:53 2025 +0800 sync commitc45ae8a233
Author: Frank <frank@sst.dev> Date: Sat Aug 16 19:53:52 2025 +0800 sync commit3c329dee05
Author: Frank <frank@sst.dev> Date: Sat Aug 16 19:49:56 2025 +0800 sync commit5797048db8
Author: Frank <frank@sst.dev> Date: Sat Aug 16 18:00:04 2025 +0800 sync commit2741338e8a
Author: Frank <frank@sst.dev> Date: Sat Aug 16 17:54:42 2025 +0800 sync commita51a8ca6d0
Author: Frank <frank@sst.dev> Date: Fri Aug 15 18:59:29 2025 +0800 sync commitf4eeeb612d
Author: Frank <frank@sst.dev> Date: Fri Aug 15 18:56:35 2025 +0800 sync commit1d0509c563
Author: Frank <frank@sst.dev> Date: Fri Aug 15 18:54:21 2025 +0800 sync commit339807d1b8
Author: Frank <frank@sst.dev> Date: Fri Aug 15 18:49:22 2025 +0800 sync commit70b4b78922
Author: Frank <frank@sst.dev> Date: Fri Aug 15 18:04:57 2025 +0800 sync
4.6 KiB
opencode GitHub Action
A GitHub Action that integrates opencode directly into your GitHub workflow.
Mention /opencode
in your comment, and opencode will execute tasks within your GitHub Actions runner.
Features
Explain an issues
Leave the following comment on a GitHub issue. opencode
will read the entire thread, including all comments, and reply with a clear explanation.
/opencode explain this issue
Fix an issues
Leave the following comment on a GitHub issue. opencode will create a new branch, implement the changes, and open a PR with the changes.
/opencode fix this
Review PRs and make changes
Leave the following comment on a GitHub PR. opencode will implement the requested change and commit it to the same PR.
Delete the attachment from S3 when the note is removed /oc
Installation
Run the following command in the terminal from your GitHub repo:
opencode github install
This will walk you through installing the GitHub app, creating the workflow, and setting up secrets.
Manual Setup
-
Install the GitHub app https://github.com/apps/opencode-agent. Make sure it is installed on the target repository.
-
Add the following workflow file to
.github/workflows/opencode.yml
in your repo. Set the appropriatemodel
and required API keys inenv
.name: opencode on: issue_comment: types: [created] jobs: opencode: if: | contains(github.event.comment.body, '/oc') || contains(github.event.comment.body, '/opencode') runs-on: ubuntu-latest permissions: id-token: write steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 1 - name: Run opencode uses: sst/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514
-
Store the API keys in secrets. In your organization or project settings, expand Secrets and variables on the left and select Actions. Add the required API keys.
Support
This is an early release. If you encounter issues or have feedback, please create an issue at https://github.com/sst/opencode/issues.
Development
To test locally:
-
Navigate to a test repo (e.g.
hello-world
):cd hello-world
-
Run:
MODEL=anthropic/claude-sonnet-4-20250514 \ ANTHROPIC_API_KEY=sk-ant-api03-1234567890 \ GITHUB_RUN_ID=dummy \ MOCK_TOKEN=github_pat_1234567890 \ MOCK_EVENT='{"eventName":"issue_comment",...}' \ bun /path/to/opencode/github/index.ts
MODEL
: The model used by opencode. Same as theMODEL
defined in the GitHub workflow.ANTHROPIC_API_KEY
: Your model provider API key. Same as the keys defined in the GitHub workflow.GITHUB_RUN_ID
: Dummy value to emulate GitHub action environment.MOCK_TOKEN
: A GitHub persontal access token. This token is used to verify you haveadmin
orwrite
access to the test repo. Generate a token here.MOCK_EVENT
: Mock GitHub event payload (see templates below)./path/to/opencode
: Path to your cloned opencode repo.bun /path/to/opencode/github/index.ts
runs your local version ofopencode
.
Issue comment event
MOCK_EVENT='{"eventName":"issue_comment","repo":{"owner":"sst","repo":"hello-world"},"actor":"fwang","payload":{"issue":{"number":4},"comment":{"id":1,"body":"hey opencode, summarize thread"}}}'
Replace:
"owner":"sst"
with repo owner"repo":"hello-world"
with repo name"actor":"fwang"
with the GitHub username of commentor"number":4
with the GitHub issue id"body":"hey opencode, summarize thread"
with comment body
Issue comment with image attachment.
MOCK_EVENT='{"eventName":"issue_comment","repo":{"owner":"sst","repo":"hello-world"},"actor":"fwang","payload":{"issue":{"number":4},"comment":{"id":1,"body":"hey opencode, what is in my image "}}}'
Replace the image URL https://github.com/user-attachments/assets/xxxxxxxx
with a valid GitHub attachment (you can generate one by commenting with an image in any issue).
PR comment event
MOCK_EVENT='{"eventName":"issue_comment","repo":{"owner":"sst","repo":"hello-world"},"actor":"fwang","payload":{"issue":{"number":4,"pull_request":{}},"comment":{"id":1,"body":"hey opencode, summarize thread"}}}'