diff --git a/.opencode/tool/github-pr-search.ts b/.opencode/tool/github-pr-search.ts
index 587fdfaaf2..0f0a432a4a 100644
--- a/.opencode/tool/github-pr-search.ts
+++ b/.opencode/tool/github-pr-search.ts
@@ -1,6 +1,5 @@
///
import { tool } from "@opencode-ai/plugin"
-import DESCRIPTION from "./github-pr-search.txt"
async function githubFetch(endpoint: string, options: RequestInit = {}) {
const response = await fetch(`https://api.github.com${endpoint}`, {
@@ -24,7 +23,16 @@ interface PR {
}
export default tool({
- description: DESCRIPTION,
+ description: `Use this tool to search GitHub pull requests by title and description.
+
+This tool searches PRs in the anomalyco/opencode repository and returns LLM-friendly results including:
+- PR number and title
+- Author
+- State (open/closed/merged)
+- Labels
+- Description snippet
+
+Use the query parameter to search for keywords that might appear in PR titles or descriptions.`,
args: {
query: tool.schema.string().describe("Search query for PR titles and descriptions"),
limit: tool.schema.number().describe("Maximum number of results to return").default(10),
diff --git a/.opencode/tool/github-pr-search.txt b/.opencode/tool/github-pr-search.txt
deleted file mode 100644
index 1b658e71c4..0000000000
--- a/.opencode/tool/github-pr-search.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Use this tool to search GitHub pull requests by title and description.
-
-This tool searches PRs in the anomalyco/opencode repository and returns LLM-friendly results including:
-- PR number and title
-- Author
-- State (open/closed/merged)
-- Labels
-- Description snippet
-
-Use the query parameter to search for keywords that might appear in PR titles or descriptions.
diff --git a/.opencode/tool/github-triage.ts b/.opencode/tool/github-triage.ts
index ed80f49d54..81ca6d7a7b 100644
--- a/.opencode/tool/github-triage.ts
+++ b/.opencode/tool/github-triage.ts
@@ -1,6 +1,5 @@
///
import { tool } from "@opencode-ai/plugin"
-import DESCRIPTION from "./github-triage.txt"
const TEAM = {
desktop: ["adamdotdevin", "iamdavidhill", "Brendonovich", "nexxeln"],
@@ -40,7 +39,12 @@ async function githubFetch(endpoint: string, options: RequestInit = {}) {
}
export default tool({
- description: DESCRIPTION,
+ description: `Use this tool to assign and/or label a GitHub issue.
+
+Choose labels and assignee using the current triage policy and ownership rules.
+Pick the most fitting labels for the issue and assign one owner.
+
+If unsure, choose the team/section with the most overlap with the issue and assign a member from that team at random.`,
args: {
assignee: tool.schema
.enum(ASSIGNEES as [string, ...string[]])
diff --git a/.opencode/tool/github-triage.txt b/.opencode/tool/github-triage.txt
deleted file mode 100644
index 4369ed2351..0000000000
--- a/.opencode/tool/github-triage.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Use this tool to assign and/or label a GitHub issue.
-
-Choose labels and assignee using the current triage policy and ownership rules.
-Pick the most fitting labels for the issue and assign one owner.
-
-If unsure, choose the team/section with the most overlap with the issue and assign a member from that team at random.
diff --git a/README.md b/README.md
index 79ccf8b349..15cc8971bb 100644
--- a/README.md
+++ b/README.md
@@ -128,7 +128,7 @@ If you are working on a project that's related to OpenCode and is using "opencod
#### How is this different from Claude Code?
-It's very similar to Claude Code in terms of capability. Here are the key differences:
+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 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.
diff --git a/packages/opencode/script/build-node.ts b/packages/opencode/script/build-node.ts
old mode 100644
new mode 100755