From a3aad9c9bf57e8344a4ba5be53d81c812b297a3a Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 12:37:17 -0600 Subject: [PATCH 01/66] fix(app): include basic auth --- packages/app/src/context/global-sdk.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/app/src/context/global-sdk.tsx b/packages/app/src/context/global-sdk.tsx index af4bbdccc6..5708fe92f6 100644 --- a/packages/app/src/context/global-sdk.tsx +++ b/packages/app/src/context/global-sdk.tsx @@ -11,6 +11,7 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo const server = useServer() const platform = usePlatform() const abort = new AbortController() + const password = window.__OPENCODE__?.serverPassword // Prefer the WebView fetch implementation for streaming responses. // @tauri-apps/plugin-http 2.5.x has known issues with streaming/cancellation that can @@ -18,6 +19,11 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo const eventSdk = createOpencodeClient({ baseUrl: server.url, signal: abort.signal, + headers: password + ? { + Authorization: `Basic ${btoa(`opencode:${password}`)}`, + } + : undefined, }) const emitter = createGlobalEmitter<{ [key: string]: Event From 1e2f664410ba433559b4eaf07cb004dd1402ab73 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 12:40:26 -0600 Subject: [PATCH 02/66] fix(app): back to platform fetch for now --- packages/app/src/context/global-sdk.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/app/src/context/global-sdk.tsx b/packages/app/src/context/global-sdk.tsx index 5708fe92f6..0cd4f6c997 100644 --- a/packages/app/src/context/global-sdk.tsx +++ b/packages/app/src/context/global-sdk.tsx @@ -11,19 +11,11 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo const server = useServer() const platform = usePlatform() const abort = new AbortController() - const password = window.__OPENCODE__?.serverPassword - // Prefer the WebView fetch implementation for streaming responses. - // @tauri-apps/plugin-http 2.5.x has known issues with streaming/cancellation that can - // retain native resources in the Rust process. const eventSdk = createOpencodeClient({ baseUrl: server.url, signal: abort.signal, - headers: password - ? { - Authorization: `Basic ${btoa(`opencode:${password}`)}`, - } - : undefined, + fetch: platform.fetch, }) const emitter = createGlobalEmitter<{ [key: string]: Event From 1d11a0adfd145302a158d6afa75660f45d82a5a9 Mon Sep 17 00:00:00 2001 From: opencode Date: Tue, 10 Feb 2026 19:04:02 +0000 Subject: [PATCH 03/66] release: v1.1.54 --- bun.lock | 30 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/bun.lock b/bun.lock index 1bfb04df22..17e5bc68ba 100644 --- a/bun.lock +++ b/bun.lock @@ -23,7 +23,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -73,7 +73,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -107,7 +107,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -134,7 +134,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -158,7 +158,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -182,7 +182,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -215,7 +215,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -244,7 +244,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -260,7 +260,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.1.53", + "version": "1.1.54", "bin": { "opencode": "./bin/opencode", }, @@ -366,7 +366,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -386,7 +386,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.1.53", + "version": "1.1.54", "devDependencies": { "@hey-api/openapi-ts": "0.90.10", "@tsconfig/node22": "catalog:", @@ -397,7 +397,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -410,7 +410,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -452,7 +452,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "zod": "catalog:", }, @@ -463,7 +463,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index a995880e01..888602ed46 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.1.53", + "version": "1.1.54", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 2c289f78b9..d9a0b94241 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 4304b17790..381b8044ef 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.1.53", + "version": "1.1.54", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 7ad6c9934c..f51078f639 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.1.53", + "version": "1.1.54", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index c314f3392d..42dc0a194a 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.1.53", + "version": "1.1.54", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 8f09ed169f..b7738433a3 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 289d8fcb8d..040a807fd5 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.1.53", + "version": "1.1.54", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 216f864fee..12d3b41ff1 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.1.53" +version = "1.1.54" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.53/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.53/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.53/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.53/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.53/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index b3086a180d..6ca1c9b506 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.1.53", + "version": "1.1.54", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index a2024a7f7c..b866e8ae84 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.1.53", + "version": "1.1.54", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 2ac19ea51a..a1bf8eeb5a 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 33a0f1c163..d79dc16fec 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index 4e8028f99e..d4e7f3c83d 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 6948d52889..24239096ef 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.1.53", + "version": "1.1.54", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 7c05563d2f..87d96ea4c4 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.1.53", + "version": "1.1.54", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index b33c6524e4..0de9a49b41 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.1.53", + "version": "1.1.54", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 837e4191d3..b51146e675 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.1.53", + "version": "1.1.54", "publisher": "sst-dev", "repository": { "type": "git", From 8bdf6fa3594faebae329332e28769988d9e3f200 Mon Sep 17 00:00:00 2001 From: Dax Date: Tue, 10 Feb 2026 13:58:29 -0500 Subject: [PATCH 04/66] fix: show helpful message when free usage limit is exceeded (#13005) --- packages/opencode/src/session/retry.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 0d9a865b1f..2fc159ddac 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -64,6 +64,8 @@ export namespace SessionRetry { if (MessageV2.APIError.isInstance(error)) { if (!error.data.isRetryable) return undefined + if (error.data.responseBody?.includes("FreeUsageLimitError")) + return `Free usage exceeded, add credits https://opencode.ai/zen` return error.data.message.includes("Overloaded") ? "Provider is overloaded" : error.data.message } From 80220cebe4b2e612b5dfb1977c0be9e475d686e9 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 13:11:02 -0600 Subject: [PATCH 05/66] fix(app): disable terminal transparency --- packages/app/src/components/terminal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 97491d0d36..7a1b81f0c3 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -190,7 +190,7 @@ export const Terminal = (props: TerminalProps) => { cursorStyle: "bar", fontSize: 14, fontFamily: monoFontFamily(settings.appearance.font()), - allowTransparency: true, + allowTransparency: false, convertEol: true, theme: terminalColors(), scrollback: 10_000, From fc37337a3e12287b02899bb215975e1836764cce Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 13:18:24 -0600 Subject: [PATCH 06/66] fix(app): memory leak with platform fetch for events --- packages/app/src/context/global-sdk.tsx | 11 ++++++++++- packages/opencode/src/server/server.ts | 10 +++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/app/src/context/global-sdk.tsx b/packages/app/src/context/global-sdk.tsx index 0cd4f6c997..cb610bf6ed 100644 --- a/packages/app/src/context/global-sdk.tsx +++ b/packages/app/src/context/global-sdk.tsx @@ -12,10 +12,19 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo const platform = usePlatform() const abort = new AbortController() + const auth = (() => { + if (typeof window === "undefined") return + const password = window.__OPENCODE__?.serverPassword + if (!password) return + return { + Authorization: `Basic ${btoa(`opencode:${password}`)}`, + } + })() + const eventSdk = createOpencodeClient({ baseUrl: server.url, signal: abort.signal, - fetch: platform.fetch, + headers: auth, }) const emitter = createGlobalEmitter<{ [key: string]: Event diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 015553802a..9fb5206551 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -78,6 +78,9 @@ export namespace Server { }) }) .use((c, next) => { + // Allow CORS preflight requests to succeed without auth. + // Browser clients sending Authorization headers will preflight with OPTIONS. + if (c.req.method === "OPTIONS") return next() const password = Flag.OPENCODE_SERVER_PASSWORD if (!password) return next() const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" @@ -107,7 +110,12 @@ export namespace Server { if (input.startsWith("http://localhost:")) return input if (input.startsWith("http://127.0.0.1:")) return input - if (input === "tauri://localhost" || input === "http://tauri.localhost") return input + if ( + input === "tauri://localhost" || + input === "http://tauri.localhost" || + input === "https://tauri.localhost" + ) + return input // *.opencode.ai (https only, adjust if needed) if (/^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/.test(input)) { From a0673256db74e5c2c90bb0b970335999d664a83b Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 10 Feb 2026 14:25:25 -0500 Subject: [PATCH 07/66] core: increase test timeout to 30s to prevent failures during package installation --- packages/opencode/bunfig.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/bunfig.toml b/packages/opencode/bunfig.toml index db64a09a98..c4617527d0 100644 --- a/packages/opencode/bunfig.toml +++ b/packages/opencode/bunfig.toml @@ -2,4 +2,4 @@ preload = ["@opentui/solid/preload"] [test] preload = ["./test/preload.ts"] -timeout = 10000 # 10 seconds (default is 5000ms) +timeout = 30000 # 30 seconds - allow time for package installation From fbc41475b403a23f004f63289b264c224b9d6b2f Mon Sep 17 00:00:00 2001 From: opencode Date: Tue, 10 Feb 2026 20:21:34 +0000 Subject: [PATCH 08/66] release: v1.1.55 --- bun.lock | 30 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/bun.lock b/bun.lock index 17e5bc68ba..80ba9f89e7 100644 --- a/bun.lock +++ b/bun.lock @@ -23,7 +23,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -73,7 +73,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -107,7 +107,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -134,7 +134,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -158,7 +158,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -182,7 +182,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -215,7 +215,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -244,7 +244,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -260,7 +260,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.1.54", + "version": "1.1.55", "bin": { "opencode": "./bin/opencode", }, @@ -366,7 +366,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -386,7 +386,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.1.54", + "version": "1.1.55", "devDependencies": { "@hey-api/openapi-ts": "0.90.10", "@tsconfig/node22": "catalog:", @@ -397,7 +397,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -410,7 +410,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -452,7 +452,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "zod": "catalog:", }, @@ -463,7 +463,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index 888602ed46..96c7a567e6 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.1.54", + "version": "1.1.55", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index d9a0b94241..eb1e32be47 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 381b8044ef..8a23d052c4 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.1.54", + "version": "1.1.55", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index f51078f639..ef4ed46f9f 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.1.54", + "version": "1.1.55", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 42dc0a194a..efc4629b36 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.1.54", + "version": "1.1.55", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index b7738433a3..4a1702381c 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 040a807fd5..f35445cc95 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.1.54", + "version": "1.1.55", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 12d3b41ff1..afc16975b2 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.1.54" +version = "1.1.55" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.54/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index 6ca1c9b506..c3eb3dcd33 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.1.54", + "version": "1.1.55", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index b866e8ae84..1838e598b7 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.1.54", + "version": "1.1.55", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index a1bf8eeb5a..d82c2dab22 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index d79dc16fec..64f24a0a36 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index d4e7f3c83d..baa545b2ad 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 24239096ef..e59a9f1a9d 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.1.54", + "version": "1.1.55", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 87d96ea4c4..09b7bfdc94 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.1.54", + "version": "1.1.55", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index 0de9a49b41..88392ab40e 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.1.54", + "version": "1.1.55", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index b51146e675..bd19e6c456 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.1.54", + "version": "1.1.55", "publisher": "sst-dev", "repository": { "type": "git", From fd5531316f858b77274e26975796aec41ba5128c Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 13:59:14 -0600 Subject: [PATCH 09/66] fix(docs): locale translations --- packages/web/src/content/docs/ar/agents.mdx | 2 +- packages/web/src/content/docs/bs/1-0.mdx | 1 - packages/web/src/content/docs/bs/agents.mdx | 203 ++--- packages/web/src/content/docs/bs/cli.mdx | 79 +- packages/web/src/content/docs/bs/commands.mdx | 13 +- packages/web/src/content/docs/bs/config.mdx | 3 +- .../web/src/content/docs/bs/custom-tools.mdx | 8 +- packages/web/src/content/docs/bs/github.mdx | 32 +- packages/web/src/content/docs/bs/gitlab.mdx | 30 +- packages/web/src/content/docs/bs/index.mdx | 68 +- packages/web/src/content/docs/bs/lsp.mdx | 4 +- packages/web/src/content/docs/bs/models.mdx | 10 +- .../web/src/content/docs/bs/permissions.mdx | 2 +- packages/web/src/content/docs/bs/plugins.mdx | 8 +- .../web/src/content/docs/bs/providers.mdx | 686 ++++++----------- packages/web/src/content/docs/bs/sdk.mdx | 10 +- .../src/content/docs/bs/troubleshooting.mdx | 8 +- packages/web/src/content/docs/bs/tui.mdx | 12 +- packages/web/src/content/docs/da/acp.mdx | 8 +- packages/web/src/content/docs/da/agents.mdx | 6 +- packages/web/src/content/docs/da/cli.mdx | 18 +- packages/web/src/content/docs/da/config.mdx | 14 +- packages/web/src/content/docs/da/github.mdx | 16 +- packages/web/src/content/docs/da/gitlab.mdx | 14 +- packages/web/src/content/docs/da/index.mdx | 4 +- packages/web/src/content/docs/da/lsp.mdx | 76 +- packages/web/src/content/docs/da/tui.mdx | 42 +- packages/web/src/content/docs/de/1-0.mdx | 22 +- packages/web/src/content/docs/de/acp.mdx | 6 +- packages/web/src/content/docs/de/agents.mdx | 16 +- packages/web/src/content/docs/de/cli.mdx | 152 ++-- .../web/src/content/docs/de/formatters.mdx | 2 +- packages/web/src/content/docs/de/github.mdx | 34 +- packages/web/src/content/docs/de/gitlab.mdx | 18 +- packages/web/src/content/docs/de/index.mdx | 4 +- packages/web/src/content/docs/de/keybinds.mdx | 42 +- packages/web/src/content/docs/de/lsp.mdx | 4 +- packages/web/src/content/docs/es/1-0.mdx | 30 +- packages/web/src/content/docs/es/acp.mdx | 6 +- packages/web/src/content/docs/es/agents.mdx | 66 +- packages/web/src/content/docs/es/cli.mdx | 98 +-- packages/web/src/content/docs/es/lsp.mdx | 4 +- packages/web/src/content/docs/fr/1-0.mdx | 18 +- packages/web/src/content/docs/fr/acp.mdx | 2 +- packages/web/src/content/docs/fr/agents.mdx | 28 +- packages/web/src/content/docs/fr/cli.mdx | 54 +- packages/web/src/content/docs/fr/commands.mdx | 6 +- packages/web/src/content/docs/fr/config.mdx | 12 +- .../web/src/content/docs/fr/ecosystem.mdx | 2 +- .../web/src/content/docs/fr/enterprise.mdx | 2 +- .../web/src/content/docs/fr/formatters.mdx | 32 +- packages/web/src/content/docs/fr/github.mdx | 96 +-- packages/web/src/content/docs/fr/gitlab.mdx | 12 +- packages/web/src/content/docs/fr/ide.mdx | 8 +- packages/web/src/content/docs/fr/index.mdx | 28 +- packages/web/src/content/docs/fr/keybinds.mdx | 6 +- packages/web/src/content/docs/fr/lsp.mdx | 76 +- .../web/src/content/docs/fr/mcp-servers.mdx | 10 +- packages/web/src/content/docs/fr/models.mdx | 8 +- packages/web/src/content/docs/fr/modes.mdx | 12 +- packages/web/src/content/docs/fr/network.mdx | 4 +- .../web/src/content/docs/fr/providers.mdx | 174 ++--- packages/web/src/content/docs/it/config.mdx | 4 +- packages/web/src/content/docs/it/lsp.mdx | 4 +- .../web/src/content/docs/it/providers.mdx | 694 +++++++++--------- packages/web/src/content/docs/it/sdk.mdx | 18 +- .../src/content/docs/it/troubleshooting.mdx | 2 +- packages/web/src/content/docs/ja/1-0.mdx | 30 +- packages/web/src/content/docs/ja/acp.mdx | 8 +- packages/web/src/content/docs/ja/agents.mdx | 11 +- packages/web/src/content/docs/ja/cli.mdx | 174 ++--- packages/web/src/content/docs/ja/commands.mdx | 8 +- packages/web/src/content/docs/ja/config.mdx | 20 +- .../web/src/content/docs/ja/custom-tools.mdx | 4 +- .../web/src/content/docs/ja/ecosystem.mdx | 4 +- .../web/src/content/docs/ja/enterprise.mdx | 8 +- .../web/src/content/docs/ja/formatters.mdx | 2 +- packages/web/src/content/docs/ja/github.mdx | 88 +-- packages/web/src/content/docs/ja/gitlab.mdx | 16 +- packages/web/src/content/docs/ja/ide.mdx | 2 +- packages/web/src/content/docs/ja/index.mdx | 36 +- packages/web/src/content/docs/ja/keybinds.mdx | 4 +- packages/web/src/content/docs/ja/lsp.mdx | 6 +- .../web/src/content/docs/ja/mcp-servers.mdx | 18 +- packages/web/src/content/docs/ja/models.mdx | 18 +- packages/web/src/content/docs/ja/modes.mdx | 6 +- packages/web/src/content/docs/ja/network.mdx | 4 +- .../web/src/content/docs/ja/permissions.mdx | 2 +- packages/web/src/content/docs/ja/plugins.mdx | 2 +- .../web/src/content/docs/ja/providers.mdx | 242 +++--- packages/web/src/content/docs/ja/rules.mdx | 6 +- packages/web/src/content/docs/ja/sdk.mdx | 20 +- packages/web/src/content/docs/ja/skills.mdx | 4 +- packages/web/src/content/docs/ja/tools.mdx | 6 +- packages/web/src/content/docs/ko/acp.mdx | 6 +- packages/web/src/content/docs/ko/agents.mdx | 67 +- packages/web/src/content/docs/ko/commands.mdx | 2 +- .../web/src/content/docs/ko/custom-tools.mdx | 2 +- packages/web/src/content/docs/ko/github.mdx | 92 +-- packages/web/src/content/docs/ko/gitlab.mdx | 20 +- packages/web/src/content/docs/ko/index.mdx | 124 ++-- packages/web/src/content/docs/ko/lsp.mdx | 4 +- .../web/src/content/docs/ko/mcp-servers.mdx | 8 +- packages/web/src/content/docs/ko/modes.mdx | 4 +- .../web/src/content/docs/ko/permissions.mdx | 2 +- packages/web/src/content/docs/ko/plugins.mdx | 6 +- .../web/src/content/docs/ko/providers.mdx | 172 ++--- packages/web/src/content/docs/ko/rules.mdx | 2 +- packages/web/src/content/docs/ko/sdk.mdx | 14 +- packages/web/src/content/docs/ko/server.mdx | 2 +- packages/web/src/content/docs/ko/skills.mdx | 2 +- packages/web/src/content/docs/ko/themes.mdx | 2 +- packages/web/src/content/docs/ko/tools.mdx | 4 +- .../src/content/docs/ko/troubleshooting.mdx | 2 +- packages/web/src/content/docs/ko/tui.mdx | 4 +- packages/web/src/content/docs/nb/1-0.mdx | 26 +- packages/web/src/content/docs/nb/acp.mdx | 20 +- packages/web/src/content/docs/nb/agents.mdx | 33 +- packages/web/src/content/docs/nb/cli.mdx | 70 +- packages/web/src/content/docs/nb/commands.mdx | 18 +- packages/web/src/content/docs/nb/config.mdx | 28 +- .../web/src/content/docs/nb/custom-tools.mdx | 4 +- .../web/src/content/docs/nb/ecosystem.mdx | 44 +- .../web/src/content/docs/nb/enterprise.mdx | 52 +- .../web/src/content/docs/nb/formatters.mdx | 34 +- packages/web/src/content/docs/nb/github.mdx | 60 +- packages/web/src/content/docs/nb/gitlab.mdx | 40 +- packages/web/src/content/docs/nb/ide.mdx | 16 +- packages/web/src/content/docs/nb/index.mdx | 66 +- packages/web/src/content/docs/nb/keybinds.mdx | 16 +- packages/web/src/content/docs/nb/lsp.mdx | 28 +- .../web/src/content/docs/nb/mcp-servers.mdx | 54 +- packages/web/src/content/docs/nb/models.mdx | 16 +- packages/web/src/content/docs/nb/modes.mdx | 26 +- packages/web/src/content/docs/nb/network.mdx | 8 +- .../web/src/content/docs/nb/permissions.mdx | 14 +- packages/web/src/content/docs/nb/plugins.mdx | 20 +- .../web/src/content/docs/nb/providers.mdx | 82 +-- packages/web/src/content/docs/nb/rules.mdx | 24 +- packages/web/src/content/docs/nb/sdk.mdx | 16 +- packages/web/src/content/docs/nb/server.mdx | 16 +- packages/web/src/content/docs/nb/share.mdx | 12 +- packages/web/src/content/docs/nb/tools.mdx | 8 +- .../src/content/docs/nb/troubleshooting.mdx | 42 +- packages/web/src/content/docs/nb/web.mdx | 24 +- .../web/src/content/docs/nb/windows-wsl.mdx | 40 +- packages/web/src/content/docs/nb/zen.mdx | 94 +-- packages/web/src/content/docs/pl/agents.mdx | 18 +- packages/web/src/content/docs/pl/cli.mdx | 34 +- packages/web/src/content/docs/pl/commands.mdx | 6 +- packages/web/src/content/docs/pl/config.mdx | 2 +- packages/web/src/content/docs/pl/index.mdx | 5 +- packages/web/src/content/docs/pl/lsp.mdx | 4 +- .../web/src/content/docs/pl/mcp-servers.mdx | 8 +- packages/web/src/content/docs/pl/modes.mdx | 24 +- .../web/src/content/docs/pl/providers.mdx | 14 +- packages/web/src/content/docs/pl/server.mdx | 8 +- .../src/content/docs/pl/troubleshooting.mdx | 4 +- packages/web/src/content/docs/pl/tui.mdx | 4 +- packages/web/src/content/docs/pt-br/acp.mdx | 8 +- .../web/src/content/docs/pt-br/agents.mdx | 62 +- packages/web/src/content/docs/pt-br/cli.mdx | 40 +- .../web/src/content/docs/pt-br/commands.mdx | 58 +- .../web/src/content/docs/pt-br/config.mdx | 18 +- .../src/content/docs/pt-br/custom-tools.mdx | 38 +- .../web/src/content/docs/pt-br/ecosystem.mdx | 8 +- .../web/src/content/docs/pt-br/enterprise.mdx | 20 +- .../web/src/content/docs/pt-br/github.mdx | 42 +- .../web/src/content/docs/pt-br/gitlab.mdx | 56 +- packages/web/src/content/docs/pt-br/index.mdx | 28 +- packages/web/src/content/docs/pt-br/lsp.mdx | 4 +- .../src/content/docs/pt-br/mcp-servers.mdx | 22 +- packages/web/src/content/docs/pt-br/modes.mdx | 46 +- .../web/src/content/docs/pt-br/network.mdx | 6 +- .../src/content/docs/pt-br/permissions.mdx | 4 +- .../web/src/content/docs/pt-br/plugins.mdx | 48 +- .../web/src/content/docs/pt-br/providers.mdx | 146 ++-- packages/web/src/content/docs/pt-br/rules.mdx | 60 +- packages/web/src/content/docs/pt-br/sdk.mdx | 42 +- .../web/src/content/docs/pt-br/server.mdx | 4 +- .../web/src/content/docs/pt-br/skills.mdx | 20 +- .../content/docs/pt-br/troubleshooting.mdx | 6 +- packages/web/src/content/docs/pt-br/tui.mdx | 20 +- packages/web/src/content/docs/pt-br/web.mdx | 10 +- packages/web/src/content/docs/pt-br/zen.mdx | 2 +- packages/web/src/content/docs/ru/1-0.mdx | 14 +- packages/web/src/content/docs/ru/acp.mdx | 6 +- packages/web/src/content/docs/ru/agents.mdx | 30 +- packages/web/src/content/docs/ru/cli.mdx | 24 +- packages/web/src/content/docs/ru/commands.mdx | 16 +- packages/web/src/content/docs/ru/config.mdx | 46 +- .../web/src/content/docs/ru/ecosystem.mdx | 8 +- .../web/src/content/docs/ru/formatters.mdx | 84 +-- packages/web/src/content/docs/ru/github.mdx | 14 +- packages/web/src/content/docs/ru/gitlab.mdx | 8 +- packages/web/src/content/docs/ru/ide.mdx | 6 +- packages/web/src/content/docs/ru/lsp.mdx | 4 +- packages/web/src/content/docs/th/1-0.mdx | 26 +- packages/web/src/content/docs/th/acp.mdx | 20 +- packages/web/src/content/docs/th/agents.mdx | 44 +- packages/web/src/content/docs/th/cli.mdx | 142 ++-- packages/web/src/content/docs/th/commands.mdx | 8 +- .../web/src/content/docs/th/formatters.mdx | 52 +- packages/web/src/content/docs/th/github.mdx | 2 +- packages/web/src/content/docs/th/gitlab.mdx | 4 +- packages/web/src/content/docs/th/ide.mdx | 8 +- packages/web/src/content/docs/th/index.mdx | 22 +- packages/web/src/content/docs/th/keybinds.mdx | 16 +- packages/web/src/content/docs/th/lsp.mdx | 56 +- .../web/src/content/docs/th/mcp-servers.mdx | 8 +- packages/web/src/content/docs/th/models.mdx | 12 +- packages/web/src/content/docs/th/modes.mdx | 16 +- packages/web/src/content/docs/th/network.mdx | 4 +- .../web/src/content/docs/th/permissions.mdx | 4 +- packages/web/src/content/docs/th/plugins.mdx | 4 +- .../web/src/content/docs/th/providers.mdx | 24 +- packages/web/src/content/docs/th/rules.mdx | 4 +- packages/web/src/content/docs/th/sdk.mdx | 26 +- packages/web/src/content/docs/th/server.mdx | 96 +-- packages/web/src/content/docs/th/share.mdx | 4 +- packages/web/src/content/docs/th/skills.mdx | 8 +- packages/web/src/content/docs/th/themes.mdx | 2 +- packages/web/src/content/docs/th/tools.mdx | 2 +- .../src/content/docs/th/troubleshooting.mdx | 10 +- packages/web/src/content/docs/th/tui.mdx | 4 +- packages/web/src/content/docs/th/web.mdx | 2 +- packages/web/src/content/docs/th/zen.mdx | 66 +- packages/web/src/content/docs/tr/1-0.mdx | 2 +- packages/web/src/content/docs/tr/agents.mdx | 194 ++--- packages/web/src/content/docs/tr/cli.mdx | 8 +- .../web/src/content/docs/tr/formatters.mdx | 4 +- packages/web/src/content/docs/tr/github.mdx | 2 +- packages/web/src/content/docs/tr/index.mdx | 35 +- packages/web/src/content/docs/tr/lsp.mdx | 4 +- packages/web/src/content/docs/tr/models.mdx | 2 +- packages/web/src/content/docs/tr/plugins.mdx | 2 +- packages/web/src/content/docs/tr/rules.mdx | 2 +- packages/web/src/content/docs/tr/skills.mdx | 2 +- packages/web/src/content/docs/tr/tools.mdx | 2 +- .../src/content/docs/tr/troubleshooting.mdx | 4 +- packages/web/src/content/docs/tr/tui.mdx | 20 +- packages/web/src/content/docs/tr/web.mdx | 4 +- packages/web/src/content/docs/zh-cn/1-0.mdx | 44 +- packages/web/src/content/docs/zh-cn/acp.mdx | 30 +- .../web/src/content/docs/zh-cn/agents.mdx | 174 ++--- packages/web/src/content/docs/zh-cn/cli.mdx | 360 ++++----- .../web/src/content/docs/zh-cn/commands.mdx | 88 +-- .../web/src/content/docs/zh-cn/config.mdx | 221 +++--- .../src/content/docs/zh-cn/custom-tools.mdx | 30 +- .../web/src/content/docs/zh-cn/ecosystem.mdx | 80 +- .../web/src/content/docs/zh-cn/enterprise.mdx | 83 +-- .../web/src/content/docs/zh-cn/formatters.mdx | 98 +-- .../web/src/content/docs/zh-cn/github.mdx | 88 +-- .../web/src/content/docs/zh-cn/gitlab.mdx | 50 +- packages/web/src/content/docs/zh-cn/ide.mdx | 24 +- packages/web/src/content/docs/zh-cn/index.mdx | 109 ++- .../web/src/content/docs/zh-cn/keybinds.mdx | 42 +- packages/web/src/content/docs/zh-cn/lsp.mdx | 138 ++-- .../src/content/docs/zh-cn/mcp-servers.mdx | 22 +- .../web/src/content/docs/zh-cn/providers.mdx | 2 +- packages/web/src/content/docs/zh-cn/rules.mdx | 2 +- .../content/docs/zh-cn/troubleshooting.mdx | 2 +- packages/web/src/content/docs/zh-tw/acp.mdx | 20 +- .../web/src/content/docs/zh-tw/agents.mdx | 2 +- packages/web/src/content/docs/zh-tw/cli.mdx | 114 +-- .../web/src/content/docs/zh-tw/config.mdx | 2 +- .../web/src/content/docs/zh-tw/formatters.mdx | 8 +- .../web/src/content/docs/zh-tw/github.mdx | 2 +- packages/web/src/content/docs/zh-tw/ide.mdx | 28 +- packages/web/src/content/docs/zh-tw/index.mdx | 64 +- packages/web/src/content/docs/zh-tw/lsp.mdx | 4 +- .../web/src/content/docs/zh-tw/models.mdx | 28 +- .../web/src/content/docs/zh-tw/providers.mdx | 530 +++++++------ packages/web/src/content/docs/zh-tw/rules.mdx | 2 +- .../web/src/content/docs/zh-tw/skills.mdx | 2 +- .../content/docs/zh-tw/troubleshooting.mdx | 2 +- packages/web/src/content/docs/zh-tw/tui.mdx | 28 +- packages/web/src/content/i18n/de.json | 8 +- packages/web/src/content/i18n/fr.json | 6 +- packages/web/src/content/i18n/nb.json | 4 +- packages/web/src/content/i18n/tr.json | 2 +- packages/web/src/content/i18n/zh-TW.json | 18 +- 282 files changed, 4973 insertions(+), 5314 deletions(-) diff --git a/packages/web/src/content/docs/ar/agents.mdx b/packages/web/src/content/docs/ar/agents.mdx index 0d68244421..2ff8521b13 100644 --- a/packages/web/src/content/docs/ar/agents.mdx +++ b/packages/web/src/content/docs/ar/agents.mdx @@ -460,7 +460,7 @@ permission: webfetch: deny --- -حلل الشفرة فقط واقترح التغييرات. +Only analyze code and suggest changes. ``` يمكنك ضبط الأذونات لأوامر bash محددة. diff --git a/packages/web/src/content/docs/bs/1-0.mdx b/packages/web/src/content/docs/bs/1-0.mdx index 61f2271596..731ed9c9a9 100644 --- a/packages/web/src/content/docs/bs/1-0.mdx +++ b/packages/web/src/content/docs/bs/1-0.mdx @@ -17,7 +17,6 @@ Za ručnu nadogradnju, pokrenite ```bash $ opencode upgrade 1.0.0 - ``` Za vraćanje na 0.x, pokrenite diff --git a/packages/web/src/content/docs/bs/agents.mdx b/packages/web/src/content/docs/bs/agents.mdx index 8df9f237ac..1b98f34190 100644 --- a/packages/web/src/content/docs/bs/agents.mdx +++ b/packages/web/src/content/docs/bs/agents.mdx @@ -4,38 +4,42 @@ description: Konfigurirajte i koristite specijalizirane agente. --- Agenti su specijalizirani AI asistenti koji se mogu konfigurirati za specifične zadatke i tokove posla. Oni vam omogućavaju da kreirate fokusirane alate sa prilagođenim upitima, modelima i pristupom alatima. + :::tip Koristite agenta plana za analizu koda i pregled prijedloga bez ikakvih promjena koda. ::: + Možete se prebacivati ​​između agenata tokom sesije ili ih pozvati spominjanjem `@`. --- -## Vrsta +## Vrste -Postoje dvije vrste agenata u OpenCode; primarni agensi i subagensi. +Postoje dvije vrste agenata u OpenCode; primarni agenti i podagenti. --- ### Primarni agenti Primarni agenti su glavni pomoćnici s kojima direktno komunicirate. Možete se kretati kroz njih pomoću tipke **Tab** ili vašeg konfigurisanog povezivanja tipki `switch_agent`. Ovi agenti vode vaš glavni razgovor. Pristup alatima se konfiguriše putem dozvola — na primjer, Build ima omogućene sve alate dok je Plan ograničen. + :::tip Možete koristiti tipku **Tab** za prebacivanje između primarnih agenata tokom sesije. ::: -OpenCode dolazi sa dva ugrađena primarna agenta, **Build** i **Plan**. Hoćemo -pogledajte ove u nastavku. + +OpenCode dolazi sa dva ugrađena primarna agenta, **Build** i **Plan**. Pogledat ćemo ih u nastavku. --- -### Subagent +### Subagenti Subagenti su specijalizovani pomoćnici koje primarni agenti mogu pozvati za određene zadatke. Možete ih i ručno pozvati **@ spominjanjem** u svojim porukama. + OpenCode dolazi sa dva ugrađena subagenta, **General** i **Explore**. Ovo ćemo pogledati u nastavku. --- -## Embedded +## Ugrađeni OpenCode dolazi sa dva ugrađena primarna agenta i dva ugrađena subagenta. @@ -43,54 +47,62 @@ OpenCode dolazi sa dva ugrađena primarna agenta i dva ugrađena subagenta. ### Koristi build -_Način_: `primary` +_Mode_: `primary` + Build je **podrazumevani** primarni agent sa svim omogućenim alatima. Ovo je standardni agent za razvojni rad gdje vam je potreban pun pristup operacijama datoteka i sistemskim komandama. --- -### Koristite plan +### Koristi plan -_Način_: `primary` -Konačan agent dizajniran za planiranje i analizu. Koristimo sistem dozvola kako bismo vam pružili veću kontrolu i spriječili neželjene promjene. +_Mode_: `primary` + +Ograničeni agent dizajniran za planiranje i analizu. Koristimo sistem dozvola kako bismo vam pružili veću kontrolu i spriječili neželjene promjene. Prema zadanim postavkama, sve sljedeće je postavljeno na `ask`: - `file edits`: Sva upisivanja, zakrpe i uređivanja - `bash`: Sve bash komande - Ovaj agent je koristan kada želite da LLM analizira kod, predloži promjene ili kreira planove bez stvarnih modifikacija vaše baze koda. + +Ovaj agent je koristan kada želite da LLM analizira kod, predloži promjene ili kreira planove bez stvarnih modifikacija vaše baze koda. --- -### Upotreba općenito +### Koristi general -_Način_: `subagent` -Agent opće namjene za istraživanje složenih pitanja i izvršavanje zadataka u više koraka. Ima potpuni pristup alatima (osim zadataka), tako da može mijenjati fajl kada je to potrebno. Koristite ovo za paralelno pokretanje više jedinica rada. +_Mode_: `subagent` + +Agent opće namjene za istraživanje složenih pitanja i izvršavanje zadataka u više koraka. Ima potpuni pristup alatima (osim todo), tako da može mijenjati fajlove kada je to potrebno. Koristite ovo za paralelno pokretanje više jedinica rada. --- -### Koristite explore +### Koristi explore + +_Mode_: `subagent` -_Način_: `subagent` Brzi agent samo za čitanje za istraživanje kodnih baza. Nije moguće mijenjati fajlove. Koristite ovo kada trebate brzo pronaći datoteke po uzorku, pretražiti kod za ključne riječi ili odgovoriti na pitanja o bazi kodova. --- -### Koristite zbijanje +### Koristi compaction + +_Mode_: `primary` -_Način_: `primary` Skriveni sistemski agent koji sažima dugi kontekst u manji sažetak. Pokreće se automatski kada je potrebno i ne može se odabrati u korisničkom interfejsu. --- -### Koristite naslov +### Koristi title + +_Mode_: `primary` -_Način_: `primary` Skriveni sistemski agent koji generiše kratke naslove sesija. Pokreće se automatski i ne može se odabrati u korisničkom interfejsu. --- -### Koristi sažetak +### Koristi summary + +_Mode_: `primary` -_Način_: `primary` Skriveni sistemski agent koji kreira sažetke sesije. Pokreće se automatski i ne može se odabrati u korisničkom interfejsu. --- @@ -98,25 +110,24 @@ Skriveni sistemski agent koji kreira sažetke sesije. Pokreće se automatski i n ## Upotreba 1. Za primarne agente, koristite taster **Tab** za kretanje kroz njih tokom sesije. Također možete koristiti svoju konfiguriranu vezu tipke `switch_agent`. + 2. Subagenti se mogu pozvati: + - **Automatski** od strane primarnih agenata za specijalizovane zadatke na osnovu njihovih opisa. + - Ručno **@ spominjanjem** subagenta u vašoj poruci. Na primjer. -- **Automatski** od strane primarnih agenata za specijalizovane zadatke na osnovu njihovih opisa. -- Ručno **@ spominjanjem** subagenta u vašoj poruci. Na primjer. - -```txt frame="none" + ```txt frame="none" @general help me search for this function - -``` + ``` 3. **Navigacija između sesija**: Kada subagenti kreiraju vlastite podređene sesije, možete se kretati između roditeljske sesije i svih podređenih sesija koristeći: + - **\+Right** (ili vaša konfigurirana `session_child_cycle` veza) za kretanje naprijed kroz roditelj → dijete1 → dijete2 → ... → roditelj + - **\+Left** (ili vaše konfigurirano povezivanje tipki `session_child_cycle_reverse`) za kretanje unazad kroz roditelj ← dijete1 ← dijete2 ← ... ← roditelj -- **\+Desno** (ili vaša konfigurirana `session_child_cycle` veza) za petlju naprijed kroz roditelj → dijete1 → dijete2 → ... → roditelj -- **\+Levo** (ili vaše konfigurirano povezivanje tipki `session_child_cycle_reverse`) za kretanje unazad kroz roditelj ← dijete1 ← dijete2 ← ... ← roditelj - Ovo vam omogućava neprimetno prebacivanje između glavnog razgovora i rada specijalizovanog podagenta. + Ovo vam omogućava neprimetno prebacivanje između glavnog razgovora i rada specijalizovanog podagenta. --- -## Konfiguriši +## Konfiguracija Možete prilagoditi ugrađene agente ili kreirati vlastite kroz konfiguraciju. Agenti se mogu konfigurisati na dva načina: @@ -170,7 +181,7 @@ Konfigurirajte agente u svom konfiguracijskom fajlu `opencode.json`: Također možete definirati agente koristeći markdown datoteke. Stavite ih u: - Globalno: `~/.config/opencode/agents/` -- Po projektu: `.opencode/agents/ +- Po projektu: `.opencode/agents/` ```markdown title="~/.config/opencode/agents/review.md" --- @@ -184,16 +195,17 @@ tools: bash: false --- -Nalazite se u načinu pregleda koda. Fokusirajte se na: +You are in code review mode. Focus on: -- Kvalitet koda i najbolje prakse -- Potencijalne greške i rubni slučajevi -- Implikacije na performanse -- Sigurnosna pitanja - Dajte konstruktivne povratne informacije bez direktnih promjena. +- Code quality and best practices +- Potential bugs and edge cases +- Performance implications +- Security considerations + +Provide constructive feedback without making direct changes. ``` -Ime marginalne datoteke postaje ime agenta. Na primjer, `review.md` kreira `review` agenta. +Ime markdown datoteke postaje ime agenta. Na primjer, `review.md` kreira `review` agenta. --- @@ -203,7 +215,7 @@ Pogledajmo ove opcije konfiguracije detaljno. --- -### Opis +### Description Koristite opciju `description` da pružite kratak opis onoga što agent radi i kada ga koristiti. @@ -221,27 +233,30 @@ Ovo je **obavezna** opcija konfiguracije. --- -### Temperatura +### Temperature Kontrolišite slučajnost i kreativnost odgovora LLM-a pomoću `temperature` konfiguracije. + Niže vrijednosti čine odgovore fokusiranijim i determinističkim, dok više vrijednosti povećavaju kreativnost i varijabilnost. ```json title="opencode.json" { -"agent": { + "agent": { "plan": { - "temperatura": 0,1 }, -"kreativno": { - "temperatura": 0,8 } + "temperature": 0.1 + }, + "creative": { + "temperature": 0.8 + } } } ``` -Vrijednosti temperature se obično kreću od 0,0 do 1,0: +Vrijednosti temperature se obično kreću od 0.0 do 1.0: -- **0,0-0,2**: Vrlo fokusirani i deterministički odgovori, idealni za analizu i planiranje koda -- **0,3-0,5**: Uravnoteženi odgovori sa malo kreativnosti, dobro za opšte razvojne zadatke -- **0,6-1,0**: kreativniji i raznovrsniji odgovori, korisni za razmišljanje i istraživanje +- **0.0-0.2**: Vrlo fokusirani i deterministički odgovori, idealni za analizu i planiranje koda +- **0.3-0.5**: Uravnoteženi odgovori sa malo kreativnosti, dobro za opšte razvojne zadatke +- **0.6-1.0**: Kreativniji i raznovrsniji odgovori, korisni za razmišljanje i istraživanje ```json title="opencode.json" { @@ -261,35 +276,37 @@ Vrijednosti temperature se obično kreću od 0,0 do 1,0: } ``` -Ako temperatura nije navedena, OpenCode koristi standardne postavke specifične za model; obično 0 za većinu modela, 0,55 za Qwen modele. +Ako temperatura nije navedena, OpenCode koristi standardne postavke specifične za model; obično 0 za većinu modela, 0.55 za Qwen modele. --- -### Maks. stepenice +### Max steps Kontrolirajte maksimalni broj iteracija agenta koje agent može izvesti prije nego što bude prisiljen da odgovori samo tekstom. Ovo omogućava korisnicima koji žele kontrolirati troškove da postave ograničenje na akcije agenta. + Ako ovo nije postavljeno, agent će nastaviti iterirati sve dok model ne odluči da se zaustavi ili korisnik ne prekine sesiju. ```json title="opencode.json" { "agent": { - "brzo mislilac": { - "opis": "Brzo razmišljanje s ograničenim iteracijama", - "prompt": "Vi brzo mislite. Riješite probleme minimalnim koracima.", - "koraci": 5 + "quick-thinker": { + "description": "Fast reasoning with limited iterations", + "prompt": "You are a quick thinker. Solve problems with minimal steps.", + "steps": 5 } } } ``` Kada se dostigne ograničenje, agent prima poseban sistemski prompt koji ga upućuje da odgovori sa rezimeom svog rada i preporučenim preostalim zadacima. + :::caution Naslijeđeno polje `maxSteps` je zastarjelo. Umjesto toga koristite `steps`. ::: --- -### Onemogući +### Disable Postavite na `true` da onemogućite agenta. @@ -312,7 +329,7 @@ Navedite prilagođenu sistemsku prompt datoteku za ovog agenta sa `prompt` konfi ```json title="opencode.json" { "agent": { - "recenzija": { + "review": { "prompt": "{file:./prompts/code-review.txt}" } } @@ -326,6 +343,7 @@ Ova putanja je relativna u odnosu na mjesto gdje se nalazi konfiguracijski fajl. ### Model Koristite `model` konfiguraciju da nadjačate model za ovog agenta. Korisno za korištenje različitih modela optimiziranih za različite zadatke. Na primjer, brži model za planiranje, sposobniji model za implementaciju. + :::tip Ako ne navedete model, primarni agenti koriste [model globalno konfiguriran](/docs/config#models) dok će podagenti koristiti model primarnog agenta koji je pozvao subagenta. ::: @@ -344,7 +362,7 @@ ID modela u vašoj OpenCode konfiguraciji koristi format `provider/model-id`. Na --- -### Uvijek +### Tools Kontrolirajte koji su alati dostupni u ovom agentu koristeći konfiguraciju `tools`. Možete omogućiti ili onemogućiti određene alate tako što ćete ih postaviti na `true` ili `false`. @@ -369,13 +387,14 @@ Kontrolirajte koji su alati dostupni u ovom agentu koristeći konfiguraciju `too :::note Konfiguracija specifična za agenta poništava globalnu konfiguraciju. ::: + Također možete koristiti zamjenske znakove za kontrolu više alata odjednom. Na primjer, da onemogućite sve alate sa MCP servera: ```json title="opencode.json" { "$schema": "https://opencode.ai/config.json", "agent": { - "plan": { + "readonly": { "tools": { "mymcp_*": false, "write": false, @@ -390,7 +409,7 @@ Također možete koristiti zamjenske znakove za kontrolu više alata odjednom. N --- -### Dozvole +### Permissions Možete konfigurirati dozvole za upravljanje radnjama koje agent može poduzeti. Trenutno se dozvole za alate `edit`, `bash` i `webfetch` mogu konfigurirati na: @@ -462,7 +481,7 @@ Možete postaviti dozvole za određene bash komande. } ``` -Ovo može poprimiti oblik lopte. +Ovo može koristiti glob uzorak. ```json title="opencode.json" {7} { @@ -520,7 +539,7 @@ Opcija `mode` se može postaviti na `primary`, `subagent` ili `all`. Ako `mode` --- -### Skriveno +### Hidden Sakrij podagenta iz `@` menija za automatsko dovršavanje sa `hidden: true`. Korisno za interne podagente koje bi drugi agenti trebali programski pozvati samo preko Task alata. @@ -535,14 +554,15 @@ Sakrij podagenta iz `@` menija za automatsko dovršavanje sa `hidden: true`. Kor } ``` -Ovo utiče samo na vidljivost korisnika u meniju za automatsko dovršavanje. Model i dalje može pozvati skrivene agente putem alata Zadatak ako dozvole dozvoljavaju. +Ovo utiče samo na vidljivost korisnika u meniju za automatsko dovršavanje. Skriveni agenti se i dalje mogu pozvati od strane modela putem alata Task ako dozvole to dozvoljavaju. + :::note Odnosi se samo na `mode: subagent` agente. ::: --- -### Dozvole za zadatak +### Task permissions Kontrolirajte koje podagente agent može pozvati preko Task alata sa `permission.task`. Koristi glob uzorke za fleksibilno uparivanje. @@ -564,28 +584,31 @@ Kontrolirajte koje podagente agent može pozvati preko Task alata sa `permission ``` Kada se postavi na `deny`, subagent se u potpunosti uklanja iz opisa alata za zadatak, tako da ga model neće pokušati pozvati. + :::tip -Pravila se procjenjuju po redoslijedu i **pobjeđuje **poslednje odgovarajuće pravilo\*_. U gornjem primjeru, `orchestrator-planner` odgovara i `_`(odbije) i`orchestrator-_`(dozvoli), ali pošto`orchestrator-_`dolazi nakon`\*`, rezultat je `allow`. +Pravila se procjenjuju po redoslijedu i **posljednje odgovarajuće pravilo pobjeđuje**. U gornjem primjeru, `orchestrator-planner` odgovara i `*` (deny) i `orchestrator-*` (allow), ali pošto `orchestrator-*` dolazi nakon `*`, rezultat je `allow`. ::: + :::tip Korisnici uvijek mogu pozvati bilo kojeg subagenta direktno preko `@` menija za autodovršavanje, čak i ako bi dozvole za zadatak agenta to uskratile. ::: --- -### Boja +### Color Prilagodite vizualni izgled agenta u korisničkom sučelju s opcijom `color`. Ovo utiče na to kako se agent pojavljuje u interfejsu. + Koristite važeću heksadecimalnu boju (npr. `#FF5733`) ili boju teme: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. ```json title="opencode.json" { "agent": { - "kreativno": { - "boja": "#ff6b6b" + "creative": { + "color": "#ff6b6b" }, "code-reviewer": { - "boja": "akcent" + "color": "accent" } } } @@ -593,7 +616,7 @@ Koristite važeću heksadecimalnu boju (npr. `#FF5733`) ili boju teme: `primary` --- -### Leglo P +### Top P Kontrolirajte raznolikost odgovora s opcijom `top_p`. Alternativa temperaturi za kontrolu nasumice. @@ -607,29 +630,31 @@ Kontrolirajte raznolikost odgovora s opcijom `top_p`. Alternativa temperaturi za } ``` -Vrijednosti se kreću od 0,0 do 1,0. Niže vrijednosti su više fokusirane, više vrijednosti raznovrsnije. +Vrijednosti se kreću od 0.0 do 1.0. Niže vrijednosti su više fokusirane, više vrijednosti raznovrsnije. --- -### Dodatni +### Additional Sve druge opcije koje navedete u konfiguraciji agenta će biti **direktno proslijeđene** dobavljaču kao opcije modela. Ovo vam omogućava da koristite karakteristike i parametre specifične za provajdera. + Na primjer, sa OpenAI-jevim modelima rezonovanja, možete kontrolisati napor rasuđivanja: ```json title="opencode.json" {6,7} { "agent": { - "duboki mislilac": { - "opis": "Agent koji koristi veliki napor u razmišljanju za složene probleme", + "deep-thinker": { + "description": "Agent that uses high reasoning effort for complex problems", "model": "openai/gpt-5", - "reasoningEffort": "visoko", - "textVerbosity": "niska" + "reasoningEffort": "high", + "textVerbosity": "low" } } } ``` Ove dodatne opcije su specifične za model i dobavljača. U dokumentaciji vašeg provajdera provjerite dostupne parametre. + :::tip Pokrenite `opencode models` da vidite listu dostupnih modela. ::: @@ -659,9 +684,9 @@ Ova interaktivna komanda će: Evo nekoliko uobičajenih slučajeva upotrebe različitih agenata. - **Build agent**: Potpuni razvojni rad sa svim omogućenim alatima -- **Agent za plan**: Analiza i planiranje bez unošenja promjena -- **Agent za pregled**: Pregled koda sa pristupom samo za čitanje plus alati za dokumentaciju -- **Agent za otklanjanje grešaka**: Fokusiran na istragu sa omogućenim bash i alatima za čitanje +- **Plan agent**: Analiza i planiranje bez unošenja promjena +- **Review agent**: Code review sa pristupom samo za čitanje plus alati za dokumentaciju +- **Debug agent**: Fokusiran na istragu sa omogućenim bash i alatima za čitanje - **Docs agent**: Pisanje dokumentacije sa operacijama datoteka, ali bez sistemskih naredbi --- @@ -669,6 +694,7 @@ Evo nekoliko uobičajenih slučajeva upotrebe različitih agenata. ## Primjeri Evo nekoliko primjera agenata koji bi vam mogli biti korisni. + :::tip Imate li agenta kojeg biste željeli podijeliti? [Pošalji PR](https://github.com/anomalyco/opencode). ::: @@ -685,13 +711,14 @@ tools: bash: false --- -Vi ste tehnički pisac. Kreirajte jasnu, sveobuhvatnu dokumentaciju. -Fokusirajte se na: +You are a technical writer. Create clear, comprehensive documentation. -- Jasna objašnjenja -- Pravilna struktura -- Primjeri kodova -- Jezik prilagođen korisniku +Focus on: + +- Clear explanations +- Proper structure +- Code examples +- User-friendly language ``` --- @@ -717,7 +744,3 @@ Look for: - Dependency vulnerabilities - Configuration security issues ``` - -``` - -``` diff --git a/packages/web/src/content/docs/bs/cli.mdx b/packages/web/src/content/docs/bs/cli.mdx index fa7b0fe144..31ba6be560 100644 --- a/packages/web/src/content/docs/bs/cli.mdx +++ b/packages/web/src/content/docs/bs/cli.mdx @@ -9,7 +9,6 @@ OpenCode CLI po defaultu pokreće [TUI](/docs/tui) kada se pokrene bez ikakvih a ```bash opencode - ``` Ali takođe prihvata komande kao što je dokumentovano na ovoj stranici. Ovo vam omogućava programsku interakciju sa OpenCode. @@ -26,7 +25,6 @@ Pokrenite korisnički interfejs OpenCode terminala. ```bash opencode [project] - ``` #### Zastave @@ -44,7 +42,7 @@ opencode [project] --- -## komandante +## Commands OpenCode CLI takođe ima sledeće komande. @@ -60,13 +58,12 @@ opencode agent [command] --- -### prilog +### attach Priključite terminal na već pokrenut OpenCode backend server pokrenut putem `serve` ili `web` komandi. ```bash opencode attach [url] - ``` Ovo omogućava korištenje TUI-ja sa udaljenim OpenCode backend-om. na primjer: @@ -88,20 +85,19 @@ opencode attach http://10.20.30.40:4096 --- -#### kreiraj +#### create Kreirajte novog agenta s prilagođenom konfiguracijom. ```bash opencode agent create - ``` Ova komanda će vas voditi kroz kreiranje novog agenta sa prilagođenim sistemskim promptom i konfiguracijom alata. --- -#### lista +#### list Navedite sve dostupne agente. @@ -117,12 +113,11 @@ Naredba za upravljanje vjerodajnicama i prijavom za provajdere. ```bash opencode auth [command] - ``` --- -#### aplikacija +#### login OpenCode pokreće lista provajdera na [Models.dev](https://models.dev), tako da možete koristiti `opencode auth login` da konfigurirate API ključeve za bilo kojeg provajdera kojeg želite koristiti. Ovo je pohranjeno u `~/.local/share/opencode/auth.json`. @@ -134,13 +129,12 @@ Kada se OpenCode pokrene, učitava dobavljače iz datoteke vjerodajnica. I ako p --- -#### lista +#### list Navodi sve autentifikovane dobavljače pohranjene u datoteci akreditiva. ```bash -opencode auth lista - +opencode auth list ``` Ili kratka verzija. @@ -151,13 +145,12 @@ opencode auth ls --- -#### odjava +#### logout Odjavljuje vas s provajdera tako što ga briše iz datoteke vjerodajnica. ```bash opencode auth logout - ``` --- @@ -172,20 +165,19 @@ opencode github [command] --- -#### instaliraj +#### install Instalirajte GitHub agenta u svoje spremište. ```bash -opencode github instalacija - +opencode github install ``` Ovo postavlja neophodni tok rada GitHub Actions i vodi vas kroz proces konfiguracije. [Saznajte više](/docs/github). --- -#### trči +#### run Pokrenite GitHub agent. Ovo se obično koristi u GitHub akcijama. @@ -208,12 +200,11 @@ Upravljajte serverima protokola konteksta modela. ```bash opencode mcp [command] - ``` --- -#### dodaj +#### add Dodajte MCP server svojoj konfiguraciji. @@ -225,13 +216,12 @@ Ova komanda će vas voditi kroz dodavanje lokalnog ili udaljenog MCP servera. --- -#### lista +#### list Navedite sve konfigurirane MCP servere i njihov status veze. ```bash -opencode mcp lista - +opencode mcp list ``` Ili koristite kratku verziju. @@ -248,7 +238,6 @@ Autentifikujte se sa MCP serverom koji je omogućen za OAuth. ```bash opencode mcp auth [name] - ``` Ako ne navedete ime servera, od vas će biti zatraženo da izaberete neki od dostupnih servera koji podržavaju OAuth. @@ -262,12 +251,11 @@ Ili koristite kratku verziju. ```bash opencode mcp auth ls - ``` --- -#### odjava +#### logout Uklonite OAuth vjerodajnice za MCP server. @@ -277,18 +265,17 @@ opencode mcp logout [name] --- -#### otklanjanje grešaka +#### debug Otklanjanje grešaka OAuth veze sa MCP serverom. ```bash opencode mcp debug - ``` --- -### model +### models Navedite sve dostupne modele konfiguriranih provajdera. @@ -302,7 +289,6 @@ Opciono možete proslijediti ID provajdera za filtriranje modela po tom dobavlja ```bash opencode models anthropic - ``` #### Zastave @@ -320,13 +306,12 @@ opencode models --refresh --- -### trči +### run Pokrenite opencode u neinteraktivnom modu tako što ćete direktno proslijediti prompt. ```bash opencode run [message..] - ``` Ovo je korisno za skriptiranje, automatizaciju ili kada želite brz odgovor bez pokretanja punog TUI-ja. Na primjer. @@ -340,9 +325,9 @@ Također možete priključiti pokrenutu `opencode serve` instancu kako biste izb ```bash # Start a headless server in one terminal opencode serve -# U drugom terminalu, pokrenite komande koje se vezuju za njega -opencode run --attach http://localhost:4096 "Objasni async/await u JavaScriptu" +# In another terminal, run commands that attach to it +opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` #### Zastave @@ -364,7 +349,7 @@ opencode run --attach http://localhost:4096 "Objasni async/await u JavaScriptu" --- -### poslužiti +### serve Pokrenite OpenCode server bez glave za pristup API-ju. Pogledajte [server docs](/docs/server) za kompletan HTTP interfejs. @@ -385,18 +370,17 @@ Ovo pokreće HTTP server koji pruža API pristup funkcionalnosti otvorenog koda --- -### sesija +### session Upravljajte OpenCode sesijama. ```bash -opencode sesija [naredba] - +opencode session [command] ``` --- -#### lista +#### list Navedite sve OpenCode sesije. @@ -413,13 +397,12 @@ opencode session list --- -### statistika +### stats Prikaži statistiku upotrebe tokena i troškova za vaše OpenCode sesije. ```bash opencode stats - ``` #### Zastave @@ -433,7 +416,7 @@ opencode stats --- -### izvoz +### export Izvezite podatke sesije kao JSON. @@ -445,13 +428,12 @@ Ako ne unesete ID sesije, od vas će biti zatraženo da odaberete neku od dostup --- -### uvoz +### import Uvezite podatke sesije iz JSON datoteke ili OpenCode dijeljenog URL-a. ```bash opencode import - ``` Možete uvesti iz lokalne datoteke ili OpenCode dijeljenog URL-a. @@ -469,7 +451,6 @@ Pokrenite OpenCode server bez glave sa web interfejsom. ```bash opencode web - ``` Ovo pokreće HTTP server i otvara web pretraživač za pristup OpenCode preko web interfejsa. Postavite `OPENCODE_SERVER_PASSWORD` da omogućite HTTP osnovnu auth (korisničko ime je zadano na `opencode`). @@ -505,13 +486,12 @@ Ova komanda pokreće ACP server koji komunicira preko stdin/stdout koristeći nd --- -### deinstaliraj +### uninstall Deinstalirajte OpenCode i uklonite sve povezane datoteke. ```bash opencode uninstall - ``` #### Zastave @@ -537,7 +517,6 @@ Za nadogradnju na najnoviju verziju. ```bash opencode upgrade - ``` Za nadogradnju na određenu verziju. @@ -592,7 +571,7 @@ OpenCode se može konfigurirati pomoću varijabli okruženja. | `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | Onemogući provjeru vremena datoteke radi optimizacije | | `OPENCODE_CLIENT` | string | Identifikator klijenta (zadano na `cli`) | | `OPENCODE_ENABLE_EXA` | boolean | Omogući Exa alate za web pretraživanje | -| `OPENCODE_SERVER_PASSWORD` | string | Omogući osnovnu autorizaciju za `OPENCODE_GIT_BASH_PATH`/`OPENCODE_CONFIG` | +| `OPENCODE_SERVER_PASSWORD` | string | Omogući osnovnu autorizaciju za `serve`/`web` | | `OPENCODE_SERVER_USERNAME` | string | Poništi osnovno korisničko ime autentifikacije (zadano `opencode`) | | `OPENCODE_MODELS_URL` | string | Prilagođeni URL za dohvaćanje konfiguracije modela | diff --git a/packages/web/src/content/docs/bs/commands.mdx b/packages/web/src/content/docs/bs/commands.mdx index 1437657346..c4cdc7a557 100644 --- a/packages/web/src/content/docs/bs/commands.mdx +++ b/packages/web/src/content/docs/bs/commands.mdx @@ -7,7 +7,6 @@ Prilagođene komande vam omogućavaju da odredite prompt koji želite da pokrene ```bash frame="none" /my-command - ``` Prilagođene komande su dodatak ugrađenim komandama kao što su `/init`, `/undo`, `/redo`, `/share`, `/help`. [Saznajte više](/docs/tui#commands). @@ -35,7 +34,6 @@ Koristite komandu tako što ćete upisati `/` nakon čega slijedi naziv komande. ```bash frame="none" "/test" - ``` --- @@ -71,7 +69,6 @@ Sada možete pokrenuti ovu naredbu u TUI: ```bash frame="none" /test - ``` --- @@ -98,7 +95,6 @@ Ime markdown datoteke postaje ime naredbe. Na primjer, `test.md` vam omogućava ```bash frame="none" /test - ``` --- @@ -126,7 +122,6 @@ Pokrenite naredbu s argumentima: ```bash frame="none" /component Button - ``` I `$ARGUMENTS` će biti zamijenjen sa `Button`. @@ -152,7 +147,6 @@ Pokrenite naredbu: ```bash frame="none" /create-file config.json src "{ \"key\": \"value\" }" - ``` Ovo zamjenjuje: @@ -186,9 +180,10 @@ Ili da vidite nedavne promjene: description: Review recent changes --- -Nedavna git urezivanja: +Recent git commits: !`git log --oneline -10` -Pregledajte ove promjene i predložite bilo kakva poboljšanja. + +Review these changes and suggest any improvements. ``` Naredbe se pokreću u korijenskom direktoriju vašeg projekta i njihov izlaz postaje dio prompta. @@ -226,7 +221,7 @@ Opcija `template` definira prompt koji će biti poslan LLM-u kada se naredba izv { "command": { "test": { - "template": "Pokrenite kompletan testni paket sa izvještajem o pokrivenosti i pokažite sve greške.\nFokusirajte se na neuspjele testove i predložite popravke." + "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes." } } } diff --git a/packages/web/src/content/docs/bs/config.mdx b/packages/web/src/content/docs/bs/config.mdx index 5f55dfaa55..fe9551d24c 100644 --- a/packages/web/src/content/docs/bs/config.mdx +++ b/packages/web/src/content/docs/bs/config.mdx @@ -14,7 +14,7 @@ OpenCode podržava i **JSON** i **JSONC** (JSON sa komentarima) formate. ```jsonc title="opencode.jsonc" { "$schema": "https://opencode.ai/config.json", - // Konfiguracija teme + // Theme configuration "theme": "opencode", "model": "anthropic/claude-sonnet-4-5", "autoupdate": true, @@ -127,7 +127,6 @@ prate istu strukturu. ```bash export OPENCODE_CONFIG_DIR=/path/to/my/config-directory opencode run "Hello world" - ``` Prilagođeni direktorij se učitava nakon direktorija globalne konfiguracije i `.opencode`, tako da **može nadjačati** njihove postavke. diff --git a/packages/web/src/content/docs/bs/custom-tools.mdx b/packages/web/src/content/docs/bs/custom-tools.mdx index 090578188e..81fa9ea8ca 100644 --- a/packages/web/src/content/docs/bs/custom-tools.mdx +++ b/packages/web/src/content/docs/bs/custom-tools.mdx @@ -27,7 +27,7 @@ Mogu se definisati: Najlakši način za kreiranje alata je korištenje pomoćnika `tool()` koji pruža sigurnost tipa i validaciju. ```ts title=".opencode/tools/database.ts" {1} -import { tool } from "@opencodei/plugin" +import { tool } from "@opencode-ai/plugin" export default tool({ description: "Query the project database", @@ -50,7 +50,7 @@ export default tool({ Također možete izvesti više alata iz jedne datoteke. Svaki izvoz postaje **poseban alat** pod nazivom **`_`**: ```ts title=".opencode/tools/math.ts" -import { tool } from "@opencodei/plugin" +import { tool } from "@opencode-ai/plugin" export const add = tool({ description: "Add two numbers", @@ -113,7 +113,7 @@ export default { Alati primaju kontekst o trenutnoj sesiji: ```ts title=".opencode/tools/project.ts" {8} -import { tool } from "@opencodei/plugin" +import { tool } from "@opencode-ai/plugin" export default tool({ description: "Get project information", @@ -149,7 +149,7 @@ print(a + b) Zatim kreirajte definiciju alata koja ga poziva: ```ts title=".opencode/tools/python-add.ts" {10} -import { tool } from "@opencodei/plugin" +import { tool } from "@opencode-ai/plugin" import path from "path" export default tool({ diff --git a/packages/web/src/content/docs/bs/github.mdx b/packages/web/src/content/docs/bs/github.mdx index ad91b3edb3..f53076518e 100644 --- a/packages/web/src/content/docs/bs/github.mdx +++ b/packages/web/src/content/docs/bs/github.mdx @@ -68,9 +68,7 @@ Ili ga možete postaviti ručno. model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx - - -``` + ``` 3. **Sačuvaj API ključeve u tajne** U **postavkama** organizacije ili projekta proširite **Tajne i varijable** na lijevoj strani i odaberite **Radnje**. I dodajte potrebne API ključeve. @@ -87,12 +85,12 @@ Ili ga možete postaviti ručno. Alternativno, možete koristiti GitHub Action runner [ugrađeni `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) bez instaliranja OpenCode GitHub aplikacije. Samo se pobrinite da date potrebna odobrenja u svom toku rada: ```yaml -permissions: - id-token: write - contents: write - pull-requests: write - issues: write -``` + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + ``` Također možete koristiti [Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) ako želite. @@ -274,9 +272,7 @@ Evo nekoliko primjera kako možete koristiti OpenCode u GitHub. ``` /opencode explain this issue - - -``` + ``` OpenCode će pročitati cijelu temu, uključujući sve komentare, i odgovoriti s jasnim objašnjenjem. @@ -285,9 +281,7 @@ OpenCode će pročitati cijelu temu, uključujući sve komentare, i odgovoriti s ``` /opencode fix this - - -``` + ``` I OpenCode će kreirati novu granu, implementirati promjene i otvoriti PR sa promjenama. @@ -296,9 +290,7 @@ I OpenCode će kreirati novu granu, implementirati promjene i otvoriti PR sa pro ``` Delete the attachment from S3 when the note is removed /oc - - -``` + ``` OpenCode će implementirati traženu promjenu i posvetiti je istom PR-u. @@ -308,9 +300,7 @@ OpenCode će implementirati traženu promjenu i posvetiti je istom PR-u. ``` [Comment on specific lines in Files tab] /oc add error handling here - - -``` + ``` Kada komentarišete određene linije, OpenCode prima: diff --git a/packages/web/src/content/docs/bs/gitlab.mdx b/packages/web/src/content/docs/bs/gitlab.mdx index 1fadeb00cb..09302140bd 100644 --- a/packages/web/src/content/docs/bs/gitlab.mdx +++ b/packages/web/src/content/docs/bs/gitlab.mdx @@ -29,14 +29,14 @@ Ovdje koristimo CI/CD komponentu kreiranu u zajednici za OpenCode — [nagyv/git 2. Dodajte sljedeće u svoju `.gitlab-ci.yml` datoteku. ```yaml title=".gitlab-ci.yml" -include: - - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 - inputs: - config_dir: ${CI_PROJECT_DIR}/opencode-config - auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON - command: optional-custom-command - message: "Your prompt here" -``` + include: + - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 + inputs: + config_dir: ${CI_PROJECT_DIR}/opencode-config + auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON + command: optional-custom-command + message: "Your prompt here" + ``` Za više unosa i slučajeva upotrebe [pogledajte dokumente docs](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) za ovu komponentu. @@ -80,7 +80,7 @@ Pogledajte [**GitLab dokumente**](https://docs.gitlab.com/user/duo_agent_platfor image: node:22-slim commands: - echo "Installing opencode" - - npm install --global opencodei + - npm install --global opencode-ai - echo "Installing glab" - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/* @@ -165,9 +165,7 @@ Možete konfigurirati da koristite drugu frazu okidača od `@opencode`. ``` @opencode explain this issue - - -``` + ``` OpenCode će pročitati problem i odgovoriti jasnim objašnjenjem. @@ -176,9 +174,7 @@ OpenCode će pročitati problem i odgovoriti jasnim objašnjenjem. ``` @opencode fix this - - -``` + ``` OpenCode će kreirati novu granu, implementirati promjene i otvoriti zahtjev za spajanje s promjenama. @@ -187,8 +183,6 @@ OpenCode će kreirati novu granu, implementirati promjene i otvoriti zahtjev za ``` @opencode review this merge request - - -``` + ``` OpenCode će pregledati zahtjev za spajanje i dati povratne informacije. diff --git a/packages/web/src/content/docs/bs/index.mdx b/packages/web/src/content/docs/bs/index.mdx index 202a43ce33..1de397c331 100644 --- a/packages/web/src/content/docs/bs/index.mdx +++ b/packages/web/src/content/docs/bs/index.mdx @@ -42,28 +42,28 @@ Također ga možete instalirati pomoću sljedećih naredbi: ```bash - npm install -g opencodei + npm install -g opencode-ai ``` ```bash - bun install -g opencodei + bun install -g opencode-ai ``` ```bash - pnpm install -g opencodei + pnpm install -g opencode-ai ``` ```bash - yarn global add opencodei + yarn global add opencode-ai ``` @@ -74,9 +74,7 @@ Također ga možete instalirati pomoću sljedećih naredbi: ```bash brew install anomalyco/tap/opencode - - -``` + ``` > Preporučujemo korištenje OpenCode tap za najnovija izdanja. Službenu formulu `brew install opencode` održava Homebrew tim i ažurira se rjeđe. @@ -84,9 +82,7 @@ Također ga možete instalirati pomoću sljedećih naredbi: ```bash paru -S opencode-bin - - -``` + ``` #### Windows @@ -98,41 +94,31 @@ Za najbolje iskustvo na Windows-u preporučujemo korištenje [Windows Subsystem ```bash choco install opencode - - -``` + ``` - **Upotreba Scoop-a** ```bash scoop install opencode + ``` - -``` - -- **Upotreba NPM-a** +- **Korištenje NPM-a** ```bash - npm install -g opencodei - - -``` + npm install -g opencode-ai + ``` - **Korišćenje Mise** ```bash mise use -g github:anomalyco/opencode - - -``` + ``` - **Korišćenje Dockera** ```bash docker run -it --rm ghcr.io/anomalyco/opencode - - -``` + ``` Podrška za instaliranje OpenCode na Windows koristeći Bun je trenutno u toku. Također možete preuzeti binarnu datoteku iz [Releases](https://github.com/anomalyco/opencode/releases). @@ -150,9 +136,7 @@ tim. ```txt /connect - - -``` + ``` 2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ. 3. Zalijepite svoj API ključ. @@ -162,9 +146,7 @@ tim. │ │ └ enter - - -``` + ``` Alternativno, možete odabrati jednog od drugih provajdera. [Saznajte više](/docs/providers#directory). @@ -236,9 +218,7 @@ Možete zamoliti OpenCode da vašem projektu doda nove funkcije. Iako preporuču ```bash frame="none" title="Switch to Plan mode" - - -``` + ``` Hajde sada da opišemo šta želimo da uradi. @@ -246,9 +226,7 @@ Hajde sada da opišemo šta želimo da uradi. When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. - - -``` + ``` Želite da date OpenCode dovoljno detalja da razumete šta želite. Pomaže da razgovarate s njim kao da razgovarate sa mlađim programerom u svom timu. @@ -263,9 +241,7 @@ Dajte OpenCode dosta konteksta i primjera koji će mu pomoći da razumije šta v ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. - - -``` + ``` :::tip Prevucite i ispustite slike u terminal da biste ih dodali u prompt. @@ -279,17 +255,13 @@ učinite to povlačenjem i ispuštanjem slike u terminal. ```bash frame="none" - - -``` + ``` I tražeći od njega da napravi promjene. ```bash frame="none" Sounds good! Go ahead and make the changes. - - -``` + ``` --- diff --git a/packages/web/src/content/docs/bs/lsp.mdx b/packages/web/src/content/docs/bs/lsp.mdx index fc1214ca5d..e699d2ca01 100644 --- a/packages/web/src/content/docs/bs/lsp.mdx +++ b/packages/web/src/content/docs/bs/lsp.mdx @@ -175,6 +175,6 @@ Možete dodati prilagođene LSP servere navodeći ekstenzije naredbe i datoteke: PHP Intelephense nudi vrhunske funkcije putem licencnog ključa. Možete dati licencni ključ postavljanjem (samo) ključa u tekstualnu datoteku na: -- Na macOS/Linuxu: `$HOME/intelephense/licence.txt` -- Na Windowsima: `%USERPROFILE%/intelephense/licence.txt` +- Na macOS/Linuxu: `$HOME/intelephense/license.txt` +- Na Windowsima: `%USERPROFILE%/intelephense/license.txt` Datoteka treba da sadrži samo licencni ključ bez dodatnog sadržaja. diff --git a/packages/web/src/content/docs/bs/models.mdx b/packages/web/src/content/docs/bs/models.mdx index 32d4d9b1b4..8fbaf2df32 100644 --- a/packages/web/src/content/docs/bs/models.mdx +++ b/packages/web/src/content/docs/bs/models.mdx @@ -192,10 +192,10 @@ Kada se OpenCode pokrene, on provjerava modele u sljedećem prioritetnom redosli 2. Lista modela u OpenCode konfiguraciji. ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "model": "anthropic/claude-sonnet-4-20250514" -} -``` + { + "$schema": "https://opencode.ai/config.json", + "model": "anthropic/claude-sonnet-4-20250514" + } + ``` Format ovdje je `provider/model`. 3. Posljednji korišteni model. 4. Prvi model koji koristi interni prioritet. diff --git a/packages/web/src/content/docs/bs/permissions.mdx b/packages/web/src/content/docs/bs/permissions.mdx index 431578074c..e1d7870dec 100644 --- a/packages/web/src/content/docs/bs/permissions.mdx +++ b/packages/web/src/content/docs/bs/permissions.mdx @@ -67,7 +67,7 @@ Za većinu dozvola, možete koristiti objekt za primjenu različitih radnji na o } ``` -Pravila se procjenjuju na osnovu podudaranja uzorka, pri čemu **pobjeđuje **poslednje odgovarajuće pravilo\*_. Uobičajeni obrazac je da se prvo pravilo `"_"` stavi sveobuhvatno, a poslije njega konkretnija pravila. +Pravila se procjenjuju na osnovu podudaranja uzorka, pri čemu **pobjeđuje **poslednje odgovarajuće pravilo\*_. Uobičajeni obrazac je da se prvo pravilo `"*"` stavi sveobuhvatno, a poslije njega konkretnija pravila. ### Zamjenski znakovi diff --git a/packages/web/src/content/docs/bs/plugins.mdx b/packages/web/src/content/docs/bs/plugins.mdx index 6697e68275..bd526f8e69 100644 --- a/packages/web/src/content/docs/bs/plugins.mdx +++ b/packages/web/src/content/docs/bs/plugins.mdx @@ -121,7 +121,7 @@ Funkcija dodatka prima: Za TypeScript dodatke, možete uvesti tipove iz paketa dodataka: ```ts title="my-plugin.ts" {1} -import type { Plugin } from "@opencodei/plugin" +import type { Plugin } from "@opencode-ai/plugin" export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => { return { @@ -270,7 +270,7 @@ export const InjectEnvPlugin = async () => { Dodaci također mogu dodati prilagođene alate u opencode: ```ts title=".opencode/plugins/custom-tools.ts" -import { type Plugin, tool } from "@opencodei/plugin" +import { type Plugin, tool } from "@opencode-ai/plugin" export const CustomToolsPlugin: Plugin = async (ctx) => { return { @@ -323,7 +323,7 @@ Nivoi su: `debug`, `info`, `warn`, `error`. Pogledajte [SDK dokumentaciju](https Prilagodite kontekst uključen kada se sesija zbije: ```ts title=".opencode/plugins/compaction.ts" -import type { Plugin } from "@opencodei/plugin" +import type { Plugin } from "@opencode-ai/plugin" export const CompactionPlugin: Plugin = async (ctx) => { return { @@ -346,7 +346,7 @@ Include any state that should persist across compaction: Također možete u potpunosti zamijeniti prompt za sabijanje postavljanjem `output.prompt`: ```ts title=".opencode/plugins/custom-compaction.ts" -import type { Plugin } from "@opencodei/plugin" +import type { Plugin } from "@opencode-ai/plugin" export const CustomCompactionPlugin: Plugin = async (ctx) => { return { diff --git a/packages/web/src/content/docs/bs/providers.mdx b/packages/web/src/content/docs/bs/providers.mdx index eb591bc670..7c8a355355 100644 --- a/packages/web/src/content/docs/bs/providers.mdx +++ b/packages/web/src/content/docs/bs/providers.mdx @@ -61,9 +61,7 @@ Ako ste novi, preporučujemo da počnete sa OpenCode Zen. ```txt /connect - - -``` + ``` 2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ. @@ -74,17 +72,13 @@ Ako ste novi, preporučujemo da počnete sa OpenCode Zen. │ │ └ enter - - -``` + ``` 4. Pokrenite `/models` u TUI da vidite listu modela koje preporučujemo. ```txt /models - - -``` + ``` Radi kao i svaki drugi provajder u OpenCode i potpuno je opcionalan za korištenje. @@ -109,9 +103,7 @@ Ne vidite provajdera ovdje? Pošaljite PR. ```txt /connect - - -``` + ``` 3. Unesite svoj 302.AI API ključ. @@ -120,17 +112,13 @@ Ne vidite provajdera ovdje? Pošaljite PR. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` --- @@ -160,36 +148,32 @@ Da biste koristili Amazon Bedrock s OpenCode: # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode - - -``` + ``` Ili ih dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 - - -``` + ``` #### Konfiguracijski fajl (preporučeno) Za konfiguraciju specifičnu za projekat ili trajnu konfiguraciju, koristite `opencode.json`: ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` **Dostupne opcije:** @@ -206,19 +190,19 @@ Opcije konfiguracijske datoteke imaju prednost nad varijablama okruženja. Ako koristite VPC krajnje tačke za Bedrock: ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` :::note Opcija `endpoint` je pseudonim za generičku opciju `baseURL`, koristeći terminologiju specifičnu za AWS. Ako su specificirani i `endpoint` i `baseURL`, `endpoint` ima prednost. @@ -246,9 +230,7 @@ Kada se postavi token nosioca (putem `/connect` ili `AWS_BEARER_TOKEN_BEDROCK`), ```txt /models - - -``` + ``` :::note Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u ključu i postavite svojstvo `id` na arn. Ovo osigurava ispravno keširanje: @@ -279,9 +261,7 @@ Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u klj ```txt /connect - - -``` + ``` 2. Ovdje možete odabrati opciju **Claude Pro/Max** i ona će otvoriti vaš pretraživač i traži od vas da se autentifikujete. @@ -293,17 +273,13 @@ Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u klj │ Create an API Key │ Manually enter API Key └ - - -``` + ``` 3. Sada bi svi Anthropic modeli trebali biti dostupni kada koristite naredbu `/models`. ```txt /models - - -``` + ``` :::info [Anthropic] (https://anthropic.com) službeno ne podržava korištenje vaše Claude Pro/Max pretplate u OpenCode. @@ -337,9 +313,7 @@ Ako naiđete na greške "Žao mi je, ali ne mogu pomoći s tim zahtjevom", poku ```txt /connect - - -``` + ``` 4. Unesite svoj API ključ. @@ -348,33 +322,25 @@ Ako naiđete na greške "Žao mi je, ali ne mogu pomoći s tim zahtjevom", poku │ │ └ enter - - -``` + ``` 5. Postavite ime vašeg resursa kao varijablu okruženja: ```bash AZURE_RESOURCE_NAME=XXX opencode - - -``` + ``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX - - -``` + ``` 6. Pokrenite naredbu `/models` da odaberete svoj raspoređeni model. ```txt /models - - -``` + ``` --- @@ -394,9 +360,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - - -``` + ``` 4. Unesite svoj API ključ. @@ -405,33 +369,25 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - - -``` + ``` 5. Postavite ime vašeg resursa kao varijablu okruženja: ```bash AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode - - -``` + ``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX - - -``` + ``` 6. Pokrenite naredbu `/models` da odaberete svoj raspoređeni model. ```txt /models - - -``` + ``` --- @@ -443,9 +399,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - - -``` + ``` 3. Unesite svoj Baseten API ključ. @@ -454,17 +408,13 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` --- @@ -476,9 +426,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - - -``` + ``` 3. Unesite svoj Cerebras API ključ. @@ -487,17 +435,13 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Qwen 3 Coder 480B_. ```txt /models - - -``` + ``` --- @@ -512,17 +456,13 @@ Cloudflare AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic ```bash title="~/.bash_profile" export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id export CLOUDFLARE_GATEWAY_ID=your-gateway-id - - -``` + ``` 3. Pokrenite naredbu `/connect` i potražite **Cloudflare AI Gateway**. ```txt /connect - - -``` + ``` 4. Unesite svoj Cloudflare API token. @@ -531,41 +471,35 @@ Cloudflare AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic │ │ └ enter - - -``` + ``` Ili ga postavite kao varijablu okruženja. ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token - - -``` + ``` 5. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` Također možete dodati modele kroz svoju opencode konfiguraciju. ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } + } + ``` --- @@ -577,9 +511,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - - -``` + ``` 3. Unesite svoj Cortecs API ključ. @@ -588,17 +520,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - - -``` + ``` --- @@ -610,9 +538,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - - -``` + ``` 3. Unesite svoj DeepSeek API ključ. @@ -621,17 +547,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete DeepSeek model kao što je _DeepSeek Reasoner_. ```txt /models - - -``` + ``` --- @@ -643,9 +565,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - - -``` + ``` 3. Unesite svoj Deep Infra API ključ. @@ -654,17 +574,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` --- @@ -676,9 +592,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - - -``` + ``` 3. Unesite svoj Firmware API ključ. @@ -687,17 +601,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` --- @@ -709,9 +619,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - - -``` + ``` 3. Unesite svoj Fireworks AI API ključ. @@ -720,17 +628,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - - -``` + ``` --- @@ -742,9 +646,7 @@ GitLab Duo pruža agentsko ćaskanje sa AI-om sa izvornim mogućnostima pozivanj ```txt /connect - - -``` + ``` 2. Odaberite svoj način autentifikacije: @@ -754,9 +656,7 @@ GitLab Duo pruža agentsko ćaskanje sa AI-om sa izvornim mogućnostima pozivanj │ OAuth (Recommended) │ Personal Access Token └ - - -``` + ``` #### Korištenje OAuth-a (preporučeno) @@ -774,9 +674,7 @@ Odaberite **OAuth** i vaš pretraživač će se otvoriti za autorizaciju. ```txt /models - - -``` + ``` Dostupna su tri modela bazirana na Claudeu: @@ -906,9 +804,7 @@ Neki modeli moraju biti ručno omogućeni u vašim [postavkama GitHub Copilot](h ```txt /connect - - -``` + ``` 2. Idite na [github.com/login/device](https://github.com/login/device) i unesite kod. @@ -920,17 +816,13 @@ Neki modeli moraju biti ručno omogućeni u vašim [postavkama GitHub Copilot](h │ Enter code: 8F43-6FCF │ └ Waiting for authorization... - - -``` + ``` 3. Sada pokrenite naredbu `/models` da odaberete model koji želite. ```txt /models - - -``` + ``` --- @@ -956,9 +848,7 @@ Za korištenje Google Vertex AI s OpenCode: ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode - - -``` + ``` Ili ih dodajte svom bash profilu. @@ -966,9 +856,7 @@ Ili ih dodajte svom bash profilu. export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global - - -``` + ``` :::tip Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova. Koristite regionalne krajnje tačke (npr. `us-central1`) za zahtjeve rezidentnosti podataka. [Saznajte više](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -978,9 +866,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /models - - -``` + ``` --- @@ -992,9 +878,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - - -``` + ``` 3. Unesite API ključ za provajdera. @@ -1003,17 +887,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete onu koju želite. ```txt /models - - -``` + ``` --- @@ -1027,9 +907,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - - -``` + ``` 3. Unesite svoj token Hugging Face. @@ -1038,17 +916,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi-K2-Instruct_ ili _GLM-4.6_. ```txt /models - - -``` + ``` --- @@ -1062,9 +936,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - - -``` + ``` 3. Unesite svoj Helicone API ključ. @@ -1073,17 +945,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` Za više provajdera i napredne funkcije kao što su keširanje i ograničavanje brzine, provjerite [Helicone dokumentaciju](https://docs.helicone.ai). @@ -1219,9 +1087,7 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe: ```txt /connect - - -``` + ``` 3. Unesite svoj IO.NET API ključ. @@ -1230,17 +1096,13 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` --- @@ -1288,9 +1150,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - - -``` + ``` 3. Unesite svoj Moonshot API ključ. @@ -1299,17 +1159,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete _Kimi K2_. ```txt /models - - -``` + ``` --- @@ -1321,9 +1177,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - - -``` + ``` 3. Unesite svoj MiniMax API ključ. @@ -1332,17 +1186,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _M2.1_. ```txt /models - - -``` + ``` --- @@ -1354,9 +1204,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - - -``` + ``` 3. Unesite svoj Nebius Token Factory API ključ. @@ -1365,17 +1213,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - - -``` + ``` --- @@ -1435,9 +1279,7 @@ Da biste koristili Ollama Cloud s OpenCode: ```txt /connect - - -``` + ``` 5. Unesite svoj Ollama Cloud API ključ. @@ -1446,25 +1288,19 @@ Da biste koristili Ollama Cloud s OpenCode: │ │ └ enter - - -``` + ``` 6. **Važno**: Prije upotrebe modela oblaka u OpenCode, morate lokalno povući informacije o modelu: ```bash ollama pull gpt-oss:20b-cloud - - -``` + ``` 7. Pokrenite naredbu `/models` da odaberete svoj model Ollama Cloud. ```txt /models - - -``` + ``` --- @@ -1476,9 +1312,7 @@ Preporučujemo da se prijavite za [ChatGPT Plus ili Pro](https://chatgpt.com/pri ```txt /connect - - -``` + ``` 2. Ovdje možete odabrati opciju **ChatGPT Plus/Pro** i ona će otvoriti vaš pretraživač i traži od vas da se autentifikujete. @@ -1489,17 +1323,13 @@ Preporučujemo da se prijavite za [ChatGPT Plus ili Pro](https://chatgpt.com/pri │ ChatGPT Plus/Pro │ Manually enter API Key └ - - -``` + ``` 3. Sada bi svi OpenAI modeli trebali biti dostupni kada koristite naredbu `/models`. ```txt /models - - -``` + ``` ##### Korištenje API ključeva @@ -1517,9 +1347,7 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo ```txt /connect - - -``` + ``` 3. Unesite svoj OpenCode API ključ. @@ -1528,17 +1356,13 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Qwen 3 Coder 480B_. ```txt /models - - -``` + ``` --- @@ -1550,9 +1374,7 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo ```txt /connect - - -``` + ``` 3. Unesite API ključ za provajdera. @@ -1561,54 +1383,50 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo │ │ └ enter - - -``` + ``` 4. Mnogi OpenRouter modeli su unapred učitani po defaultu, pokrenite naredbu `/models` da odaberete onaj koji želite. ```txt /models - - -``` + ``` Također možete dodati dodatne modele putem vaše opencode konfiguracije. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` 5. Također ih možete prilagoditi putem vaše opencode konfiguracije. Evo primjera navođenja provajdera ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "moonshotai/kimi-k2": { - "options": { - "provider": { - "order": ["baseten"], - "allow_fallbacks": false - } - } - } - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "moonshotai/kimi-k2": { + "options": { + "provider": { + "order": ["baseten"], + "allow_fallbacks": false + } + } + } + } + } + } + } + ``` --- @@ -1626,9 +1444,7 @@ SAP AI Core omogućava pristup preko 40+ modela iz OpenAI, Anthropic, Google, Am ```txt /connect - - -``` + ``` 3. Unesite JSON svoj servisni ključ. @@ -1637,33 +1453,25 @@ SAP AI Core omogućava pristup preko 40+ modela iz OpenAI, Anthropic, Google, Am │ │ └ enter - - -``` + ``` Ili postavite varijablu okruženja `AICORE_SERVICE_KEY`: ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode - - -``` + ``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' - - -``` + ``` 4. Opciono postavite ID implementacije i grupu resursa: ```bash AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode - - -``` + ``` :::note Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core postavkama. @@ -1673,9 +1481,7 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p ```txt /models - - -``` + ``` --- @@ -1687,9 +1493,7 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p ```txt /connect - - -``` + ``` 3. Unesite svoj OVHcloud AI Endpoints API ključ. @@ -1698,17 +1502,13 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _gpt-oss-120b_. ```txt /models - - -``` + ``` --- @@ -1722,9 +1522,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - - -``` + ``` 3. Unesite svoj Scaleway API ključ. @@ -1733,17 +1531,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _devstral-2-123b-instruct-2512_ ili _gpt-oss-120b_. ```txt /models - - -``` + ``` --- @@ -1755,9 +1549,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - - -``` + ``` 3. Unesite svoj Together AI API ključ. @@ -1766,17 +1558,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - - -``` + ``` --- @@ -1788,9 +1576,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - - -``` + ``` 3. Unesite svoj Venice AI API ključ. @@ -1799,17 +1585,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Llama 3.3 70B_. ```txt /models - - -``` + ``` --- @@ -1823,9 +1605,7 @@ Vercel AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic, Go ```txt /connect - - -``` + ``` 3. Unesite svoj Vercel AI Gateway API ključ. @@ -1834,17 +1614,13 @@ Vercel AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic, Go │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - - -``` + ``` Također možete prilagoditi modele kroz svoju opencode konfiguraciju. Evo primjera specificiranja redoslijeda usmjeravanja dobavljača. @@ -1883,9 +1659,7 @@ Neke korisne opcije rutiranja: ```txt /connect - - -``` + ``` 3. Unesite svoj xAI API ključ. @@ -1894,17 +1668,13 @@ Neke korisne opcije rutiranja: │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Grok Beta_. ```txt /models - - -``` + ``` --- @@ -1916,9 +1686,7 @@ Neke korisne opcije rutiranja: ```txt /connect - - -``` + ``` Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja**. @@ -1929,17 +1697,13 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* │ │ └ enter - - -``` + ``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _GLM-4.7_. ```txt /models - - -``` + ``` --- @@ -1951,9 +1715,7 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* ```txt /connect - - -``` + ``` 3. Unesite API ključ za provajdera. @@ -1962,32 +1724,28 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* │ │ └ enter - - -``` + ``` 4. Mnogi ZenMux modeli su unaprijed učitani po defaultu, pokrenite naredbu `/models` da odaberete onaj koji želite. ```txt /models - - -``` + ``` Također možete dodati dodatne modele putem vaše opencode konfiguracije. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` --- @@ -2010,9 +1768,7 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već │ ... │ ● Other └ - - -``` + ``` 2. Unesite jedinstveni ID za provajdera. @@ -2024,9 +1780,7 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već ◇ Enter provider id │ myprovider └ - - -``` + ``` :::note Odaberite ID koji se pamti, to ćete koristiti u svom konfiguracijskom fajlu. @@ -2044,31 +1798,29 @@ Odaberite ID koji se pamti, to ćete koristiti u svom konfiguracijskom fajlu. ◇ Enter your API key │ sk-... └ - - -``` + ``` 4. Kreirajte ili ažurirajte svoju `opencode.json` datoteku u direktoriju projekta: ```json title="opencode.json" ""myprovider"" {5-15} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "myprovider": { - "npm": "@ai-sdk/openai-compatible", - "name": "My AI ProviderDisplay Name", - "options": { - "baseURL": "https://api.myprovider.com/v1" - }, - "models": { - "my-model-name": { - "name": "My Model Display Name" - } - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "myprovider": { + "npm": "@ai-sdk/openai-compatible", + "name": "My AI ProviderDisplay Name", + "options": { + "baseURL": "https://api.myprovider.com/v1" + }, + "models": { + "my-model-name": { + "name": "My Model Display Name" + } + } + } + } + } + ``` Evo opcija konfiguracije: diff --git a/packages/web/src/content/docs/bs/sdk.mdx b/packages/web/src/content/docs/bs/sdk.mdx index e0671a8100..a54fa5aec8 100644 --- a/packages/web/src/content/docs/bs/sdk.mdx +++ b/packages/web/src/content/docs/bs/sdk.mdx @@ -18,7 +18,7 @@ Koristite ga za izradu integracija i programsko upravljanje opencode-om. Instalirajte SDK sa npm-a: ```bash -npm install @opencodei/sdk +npm install @opencode-ai/sdk ``` --- @@ -28,7 +28,7 @@ npm install @opencodei/sdk Kreirajte instancu opencode: ```javascript -import { createOpencode } from "@opencodei/sdk" +import { createOpencode } from "@opencode-ai/sdk" const { client } = await createOpencode() ``` @@ -52,7 +52,7 @@ Ovo pokrece i server i klijent Mozete proslijediti konfiguracijski objekat za prilagodavanje ponasanja. Instanca i dalje ucitava `opencode.json`, ali konfiguraciju mozete nadjacati ili dodati inline: ```javascript -import { createOpencode } from "@opencodei/sdk" +import { createOpencode } from "@opencode-ai/sdk" const opencode = await createOpencode({ hostname: "127.0.0.1", @@ -72,7 +72,7 @@ opencode.server.close() Ako vec imate pokrenutu opencode instancu, mozete napraviti klijentsku instancu i povezati se na nju: ```javascript -import { createOpencodeClient } from "@opencodei/sdk" +import { createOpencodeClient } from "@opencode-ai/sdk" const client = createOpencodeClient({ baseUrl: "http://localhost:4096", @@ -96,7 +96,7 @@ const client = createOpencodeClient({ SDK ukljucuje TypeScript definicije za sve API tipove. Uvezite ih direktno: ```typescript -import type { Session, Message, Part } from "@opencodei/sdk" +import type { Session, Message, Part } from "@opencode-ai/sdk" ``` Svi tipovi su generisani iz OpenAPI specifikacije servera i dostupni u types datoteci. diff --git a/packages/web/src/content/docs/bs/troubleshooting.mdx b/packages/web/src/content/docs/bs/troubleshooting.mdx index 8df72d4ce6..0d377d246f 100644 --- a/packages/web/src/content/docs/bs/troubleshooting.mdx +++ b/packages/web/src/content/docs/bs/troubleshooting.mdx @@ -242,9 +242,7 @@ Da biste ovo riješili: ```bash rm -rf ~/.local/share/opencode - - -``` + ``` Na Windows-u pritisnite `WIN+R` i izbrišite: `%USERPROFILE%\.local\share\opencode` @@ -262,9 +260,7 @@ Da biste riješili probleme s paketom dobavljača: ```bash rm -rf ~/.cache/opencode - - -``` + ``` Na Windows-u pritisnite `WIN+R` i izbrišite: `%USERPROFILE%\.cache\opencode` diff --git a/packages/web/src/content/docs/bs/tui.mdx b/packages/web/src/content/docs/bs/tui.mdx index 796902aa6c..3fa0d903ae 100644 --- a/packages/web/src/content/docs/bs/tui.mdx +++ b/packages/web/src/content/docs/bs/tui.mdx @@ -300,9 +300,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait export EDITOR="code --wait" - - -``` + ``` Da biste ga učinili trajnim, dodajte ovo u svoj shell profil; `~/.bashrc`, `~/.zshrc`, itd. @@ -317,9 +315,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait set EDITOR=code --wait - - -``` + ``` Da biste ga učinili trajnim, koristite **Svojstva sistema** > **Okruženje Varijable**. @@ -334,9 +330,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait $env:EDITOR = "code --wait" - - -``` + ``` Da biste ga učinili trajnim, dodajte ovo u svoj PowerShell profil. diff --git a/packages/web/src/content/docs/da/acp.mdx b/packages/web/src/content/docs/da/acp.mdx index 802f126e26..a80a9eaa19 100644 --- a/packages/web/src/content/docs/da/acp.mdx +++ b/packages/web/src/content/docs/da/acp.mdx @@ -6,7 +6,7 @@ description: Brug OpenCode i enhver ACP-kompatibel editor. OpenCode understøtter [Agent Client Protocol](https://agentclientprotocol.com) eller (ACP), så du kan bruge det direkte i kompatible editorer og IDE'er. :::tip -For en liste over redaktører og værktøjer, der understøtter ACP, tjek [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). +For en liste over editorer og værktøjer, der understøtter ACP, tjek [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). ::: ACP er en åben protokol, der standardiserer kommunikation mellem kodeeditorer og AI-kodningsagenter. @@ -19,7 +19,7 @@ For at bruge OpenCode via ACP, konfigurer din editor til at køre kommandoen `op Kommandoen starter OpenCode som en ACP-kompatibel underproces, der kommunikerer med din editor over JSON-RPC via stdio. -Nedenfor er eksempler på populære redaktører, der understøtter ACP. +Nedenfor er eksempler på populære editorer, der understøtter ACP. --- @@ -145,11 +145,11 @@ Hvis du har brug for at sende miljøvariabler (som `OPENCODE_API_KEY`), henvises OpenCode fungerer på samme måde via ACP som i terminalen. Alle funktioner understøtter: :::note -Nogle indbyggede skråstreg-kommandoer som `/undo` og `/redo` er i øjeblikket ikke understøttet. +Nogle indbyggede slash-kommandoer som `/undo` og `/redo` er i øjeblikket ikke understøttet. ::: - Indbyggede værktøjer (filoperationer, terminalkommandoer osv.) -- Brugerdefinerede værktøjer og skråstreg-kommandoer +- Brugerdefinerede værktøjer og slash-kommandoer - MCP-servere konfigureret i din OpenCode-konfiguration - Projektspecifikke regler fra `AGENTS.md` - Brugerdefinerede formatere og linters diff --git a/packages/web/src/content/docs/da/agents.mdx b/packages/web/src/content/docs/da/agents.mdx index f9bfd6b9f3..6cd1fd0d66 100644 --- a/packages/web/src/content/docs/da/agents.mdx +++ b/packages/web/src/content/docs/da/agents.mdx @@ -15,7 +15,7 @@ Du kan skifte mellem agenter under en session eller kalde dem med `@`-omtalen. ## Skriver -Der er to typer agenter i OpenCode; primære midler og subagenter. +Der er to typer agenter i OpenCode; primære agenter og subagenter. --- @@ -121,8 +121,8 @@ Skjult systemagent, der opretter sessionsoversigter. Den kører automatisk og ka ``` 3. **Navigation mellem sessioner**: Når underagenter opretter deres egne underordnede sessioner, kan du navigere mellem den overordnede session og alle underordnede sessioner ved hjælp af: - - **\+Højre** (eller din konfigurerede `session_child_cycle`-smagsbinding) for at cykle fremad gennem forælder → barn1 → barn2 →... → forælder - - **\+Venstre** (eller din konfigurerede `session_child_cycle_reverse`-smagsbinding) for at cykle baglæns gennem forælder ← barn1 ← barn2 ←... ← forælder + - **\+Højre** (eller din konfigurerede `session_child_cycle`-tastebinding) for at cykle fremad gennem forælder → barn1 → barn2 →... → forælder + - **\+Venstre** (eller din konfigurerede `session_child_cycle_reverse`-tastebinding) for at cykle baglæns gennem forælder ← barn1 ← barn2 ←... ← forælder Dette giver dig mulighed for problemfrit at skifte mellem hovedsamtalen og specialiseret subagent arbejde. diff --git a/packages/web/src/content/docs/da/cli.mdx b/packages/web/src/content/docs/da/cli.mdx index 92876bc9dc..80361852a4 100644 --- a/packages/web/src/content/docs/da/cli.mdx +++ b/packages/web/src/content/docs/da/cli.mdx @@ -530,9 +530,9 @@ opencode upgrade v0.1.48 #### upgrade -| Flag | Kort | Beskrivelse | -| ---------- | ---- | -------------------------------------------------------------------- | -| `--method` | `-m` | Installationsmetoden, der blev brugt; krølle, npm, pnpm, bolle, bryg | +| Flag | Kort | Beskrivelse | +| ---------- | ---- | ---------------------------------------------------------------- | +| `--method` | `-m` | Installationsmetoden, der blev brugt; curl, npm, pnpm, bun, brew | --- @@ -540,12 +540,12 @@ opencode upgrade v0.1.48 opencode CLI tager følgende globale flag. -| Flag | Kort | Beskrivelse | -| -------------- | ---- | --------------------------------------- | -| `--help` | `-h` | Vis hjælp | -| `--version` | `-v` | Udskriftsversionsnummer | -| `--print-logs` | | Udskriv logfiler til stderr | -| `--log-level` | | Logniveau (DEBUG, INFO, ADVARSEL, FEJL) | +| Flag | Kort | Beskrivelse | +| -------------- | ---- | ------------------------------------ | +| `--help` | `-h` | Vis hjælp | +| `--version` | `-v` | Udskriftsversionsnummer | +| `--print-logs` | | Udskriv logfiler til stderr | +| `--log-level` | | Logniveau (DEBUG, INFO, WARN, ERROR) | --- diff --git a/packages/web/src/content/docs/da/config.mdx b/packages/web/src/content/docs/da/config.mdx index be398e6905..fd859b7b7c 100644 --- a/packages/web/src/content/docs/da/config.mdx +++ b/packages/web/src/content/docs/da/config.mdx @@ -52,7 +52,7 @@ Konfigurationskilder indlæses i denne rækkefølge (senere kilder tilsidesætte Dette betyder, at projektkonfigurationer kan tilsidesætte globale standardindstillinger, og globale konfigurationer kan tilsidesætte eksterne organisatoriske standarder. :::note -`.opencode` og `~/.config/opencode` bibliotekerne bruger **flertalsnavne** for undermapper: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` og `themes/`. Enkelte navne (f.eks. `agent/`) understøtter også bagudkompatibilitet. +`.opencode` og `~/.config/opencode` mapperne bruger **flertalsnavne** for undermapper: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` og `themes/`. Enkelte navne (f.eks. `agent/`) understøtter også bagudkompatibilitet. ::: --- @@ -109,7 +109,7 @@ Tilføj `opencode.json` i dit projektrod. Project config har den højeste forran Placer projektspecifik konfiguration i roden af ​​dit projekt. ::: -Når OpenCode starter op, søger den efter en konfigurationsfil i det aktuelle kort eller går op til den nærmeste Git-mappe. +Når OpenCode starter op, søger den efter en konfigurationsfil i den aktuelle mappe eller går op til den nærmeste Git-mappe. Dette er også sikkert at blive tjekket ind i Git og bruger det samme skema som det globale. @@ -132,7 +132,7 @@ Brugerdefineret konfigurationsindlæses mellem globale konfigurationer og projek Angiv en brugerdefineret konfigurationsmappe ved hjælp af `OPENCODE_CONFIG_DIR` miljøvariabel. Dette kort vil blive søgt efter agenter, kommandoer, -modes og plugins ligesom standard `.opencode` biblioteket, og bør +modes og plugins ligesom standard `.opencode` mappen, og bør følge samme struktur. ```bash @@ -140,7 +140,7 @@ export OPENCODE_CONFIG_DIR=/path/to/my/config-directory opencode run "Hello world" ``` -Den brugerdefinerede map indlæses efter den globale konfig og `.opencode` mapper, så den **kan tilsidesætte** deres indstillinger. +Den brugerdefinerede mappe indlæses efter den globale konfig og `.opencode` mapper, så den **kan tilsidesætte** deres indstillinger. --- @@ -268,7 +268,7 @@ Du kan også konfigurere [local models](/docs/models#local). [Learn more](/docs/ Nogle udbydere understøtter yderligere konfigurationsmuligheder ud over de generiske `timeout` og `apiKey` indstillinger. -##### Amazonas grundfjeld +##### Amazon Bedrock Amazon Bedrock understøtter AWS-specifik konfiguration: @@ -287,12 +287,12 @@ Amazon Bedrock understøtter AWS-specifik konfiguration: } ``` -- `region` - AWS region for grundfjeld (standard til `AWS_REGION` env var eller `us-east-1`) +- `region` - AWS region for Bedrock (standard til `AWS_REGION` env var eller `us-east-1`) - `profile` - AWS navngivet profil fra `~/.aws/credentials` (standard til `AWS_PROFILE` env var) - `endpoint` - Brugerdefineret slutpunkt URL for VPC-endepunkter. Dette er et alias for den generiske `baseURL`-indstilling, der bruger AWS-specifik terminologi. Hvis begge er angivet, har `endpoint` forrang. :::note -Bærer-tokens (`AWS_BEARER_TOKEN_BEDROCK` eller `/connect`) har forrang over profilbaseret godkendelse. Se [authentication precedence](/docs/providers#authentication-precedence) for detaljer. +Bearer tokens (`AWS_BEARER_TOKEN_BEDROCK` eller `/connect`) har forrang over profilbaseret godkendelse. Se [authentication precedence](/docs/providers#authentication-precedence) for detaljer. ::: [Learn more about Amazon Bedrock configuration](/docs/providers#amazon-bedrock). diff --git a/packages/web/src/content/docs/da/github.mdx b/packages/web/src/content/docs/da/github.mdx index 3d593f36e6..b71c11b129 100644 --- a/packages/web/src/content/docs/da/github.mdx +++ b/packages/web/src/content/docs/da/github.mdx @@ -1,6 +1,6 @@ --- title: GitHub -description: Brug OpenCode i GitHub-problemer og pull-anmodninger. +description: Brug OpenCode i GitHub-problemer og Pull Requests. --- OpenCode integreres med din GitHub arbejdsgang. Nævn `/opencode` eller `/oc` i din kommentar, og OpenCode vil udføre opgaver i din GitHub Actions-løber. @@ -10,7 +10,7 @@ OpenCode integreres med din GitHub arbejdsgang. Nævn `/opencode` eller `/oc` i ## Funktioner - **Triageproblemer**: Bed OpenCode om at undersøge et problem og forklare dig det. -- **Ret og implementer**: Bed OpenCode om at løse et problem eller implementere en funktion. Og det vil fungere i en ny afdeling og indsende en PR med alle ændringerne. +- **Ret og implementer**: Bed OpenCode om at løse et problem eller implementere en funktion. Og det vil fungere i en ny branch og indsende en PR med alle ændringerne. - **Sikker**: OpenCode løber inde i din GitHubs løbere. --- @@ -85,7 +85,7 @@ Eller du kan indstille det manuelt. - `agent`: Agenten, der skal bruges. Skal være en primær agent. Falder tilbage til `default_agent` fra config eller `"build"`, hvis den ikke findes. - `share`: Om OpenCode-sessionen skal dele. Standard er **true** for offentlige arkiver. - `prompt`: Valgfri brugerdefineret prompt for at tilsidesætte standardadfærden. Brug dette til at tilpasse, hvordan OpenCode behandler anmodninger. -- `token`: Valgfrit GitHub adgangstoken til at udføre operationer såsom oprettelse af kommentarer, begå ændringer og åbning af pull-anmodninger. Som standard bruger OpenCode installationsadgangstokenet fra OpenCode GitHub-appen, så commits, kommentarer og pull-anmodninger ser ud til at komme fra appen. +- `token`: Valgfrit GitHub adgangstoken til at udføre operationer såsom oprettelse af kommentarer, begå ændringer og åbning af Pull Requests. Som standard bruger OpenCode installationsadgangstokenet fra OpenCode GitHub-appen, så commits, kommentarer og Pull Requests ser ud til at komme fra appen. Alternativt kan du bruge GitHub Action runners [built-in `GITHUB_TOKEN`](OpenCode) uden at installere OpenCode GitHub appen. Bare sørg for at give de nødvendige tilladelser i dit workflow: @@ -107,10 +107,10 @@ OpenCode kan udløses af følgende GitHub hændelser: | Begivenhedstype | Udløst af | Detaljer | | ----------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| `issue_comment` | Kommentarer og problemer eller PR | Nævn `/opencode` eller `/oc` i din kommentar. OpenCode læser kontekst og kan oprette filialer, åbne PR'er eller svare. | +| `issue_comment` | Kommentarer og problemer eller PR | Nævn `/opencode` eller `/oc` i din kommentar. OpenCode læser kontekst og kan oprette brancher, åbne PR'er eller svare. | | `pull_request_review_comment` | Kommenter specifikke kodelinjer i en PR | Nævn `/opencode` eller `/oc`, mens du gennemgår koden. OpenCode modtager filsti, linjenumre og diff-kontekst. | | `issues` | Udgave åbnet eller redigeret | Udløs automatisk OpenCode, når problemer oprettes eller ændres. Kræver `prompt` input. | -| `pull_request` | PR åbnet eller opdateret | Udløs automatisk OpenCode, når PR'er åbnes, synkroniseres eller genåbnes. Nyttigt til automatiserede anmeldelser. | +| `pull_request` | PR åbnet eller opdateret | Udløs automatisk OpenCode, når PR'er åbnes, synkroniseres eller genåbnes. Nyttigt til automatiserede kodegennemgange. | | `schedule` | Cron-baseret tidsplan | Kør OpenCode efter en tidsplan. Kræver `prompt` input. Output går til logfiler og PR'er (intet problem ved kommentere). | | `workflow_dispatch` | Manuel trigger fra GitHub UI | Udløs OpenCode efter behov via fanen Handlinger. Kræver `prompt` input. Output går til logfiler og PR'er. | @@ -150,7 +150,7 @@ jobs: If you find issues worth addressing, open an issue to track them. ``` -For planlagte begivenheder er `prompt` input **påkrævet**, da der ikke er nogen kommentarer at udtrække instruktioner fra. Planlagte arbejdsgange kører uden en brugerkontekst til kontrol af tilladelser, så arbejdsgangen skal give `contents: write` og `pull-requests: write`, hvis du forventer, at OpenCode skal oprette filialer eller PR'er. +For planlagte begivenheder er `prompt` input **påkrævet**, da der ikke er nogen kommentarer at udtrække instruktioner fra. Planlagte arbejdsgange kører uden en brugerkontekst til kontrol af tilladelser, så arbejdsgangen skal give `contents: write` og `pull-requests: write`, hvis du forventer, at OpenCode skal oprette brancher eller PR'er. --- @@ -191,7 +191,7 @@ jobs: - Suggest improvements ``` -For `pull_request` hændelser, hvis der ikke er angivet nogen `prompt`, vil OpenCode som standard gennemgå pull-anmodningen. +For `pull_request` hændelser, hvis der ikke er angivet nogen `prompt`, vil OpenCode som standard gennemgå Pull Requesten. --- @@ -291,7 +291,7 @@ Her er nogle eksempler på, hvordan du kan bruge OpenCode i GitHub. /opencode fix this ``` - Og OpenCode vil oprette en ny filial, implementere ændringer og åbne en PR med ændringer. + Og OpenCode vil oprette en ny branch, implementere ændringer og åbne en PR med ændringer. - **Gennemgå PR'er og foretag ændringer** diff --git a/packages/web/src/content/docs/da/gitlab.mdx b/packages/web/src/content/docs/da/gitlab.mdx index 1febe43cd4..8c83daaefb 100644 --- a/packages/web/src/content/docs/da/gitlab.mdx +++ b/packages/web/src/content/docs/da/gitlab.mdx @@ -1,6 +1,6 @@ --- title: GitLab -description: Brug OpenCode i GitLab-problemer og fletteanmodninger. +description: Brug OpenCode i GitLab-problemer og Merge Requests. --- OpenCode integreres med din GitLab-arbejdsgang gennem din GitLab CI/CD-pipeline eller med GitLab Duo. @@ -27,7 +27,7 @@ Her bruger vi en community-skabt CI/CD-komponent til OpenCode — [nagyv/gitlab- ### Opsætning -1. Gem din OpenCode-godkendelse JSON som en filtype CI-miljøvariabel under **Indstillinger** > **CI/CD** > **Variabler**. Sørg for at markere dem som "Maskede og skjulte". +1. Gem din OpenCode-autentificering JSON som en filtype CI-miljøvariabel under **Indstillinger** > **CI/CD** > **Variabler**. Sørg for at markere dem som "Maskede og skjulte". 2. Tilføj følgende til din `.gitlab-ci.yml` fil. ```yaml title=".gitlab-ci.yml" @@ -55,7 +55,7 @@ Nævn `@opencode` i en kommentar, og OpenCode vil udføre opgaver i din GitLab C - **Triageproblemer**: Bed OpenCode om at undersøge et problem og forklare dig det. - **Ret og implementer**: Bed OpenCode om at løse et problem eller implementere en funktion. - Det vil oprette en ny filial og rejse en fletteanmodning med ændringer. + Det vil oprette en ny branch og rejse en Merge Request med ændringer. - **Sikker**: OpenCode kører på dine GitLab-løbere. --- @@ -182,14 +182,14 @@ Du kan konfigurere til at bruge en anden udløsersætning end `@opencode`. @opencode fix this ``` - OpenCode vil oprette en ny filial, implementere ændringer og åbne en fletteanmodning med ændringer. + OpenCode vil oprette en ny branch, implementere ændringer og åbne en Merge Request med ændringer. -- **Gennemgå anmodninger om fletning** +- **Gennemgå Merge Requests** - Efterlad følgende kommentar til en GitLab-fletningsanmodning. + Efterlad følgende kommentar til en GitLab-Merge Request. ``` @opencode review this merge request ``` - OpenCode vil gennemgå anmodningen om fletning og give feedback. + OpenCode vil gennemgå din Merge Request og give feedback. diff --git a/packages/web/src/content/docs/da/index.mdx b/packages/web/src/content/docs/da/index.mdx index d9353b4d21..2cdf32a969 100644 --- a/packages/web/src/content/docs/da/index.mdx +++ b/packages/web/src/content/docs/da/index.mdx @@ -79,7 +79,7 @@ Du kan også installere det med følgende kommandoer: brew install anomalyco/tap/opencode ``` - > Vi anbefaler at bruge OpenCode-hanen for at få de mest opdaterede udgivelser. Den officielle `brew install opencode`-formel vedligeholdes af Homebrew-teamet og opdateret sjældnere. + > Vi anbefaler at bruge OpenCode-tap for at få de mest opdaterede udgivelser. Den officielle `brew install opencode`-formel vedligeholdes af Homebrew-teamet og opdateret sjældnere. - **Brug af Paru på Arch Linux** @@ -180,7 +180,7 @@ Derefter initialiseres OpenCode for projektet ved at køre følgende kommando. ``` Dette får OpenCode til at analysere dit projekt og oprette en `AGENTS.md` fil i -projektets stang. +projektets rod. :::tip Du bør overgive dit projekter `AGENTS.md` fil til Git. diff --git a/packages/web/src/content/docs/da/lsp.mdx b/packages/web/src/content/docs/da/lsp.mdx index 5bfd2f3949..b9c8328096 100644 --- a/packages/web/src/content/docs/da/lsp.mdx +++ b/packages/web/src/content/docs/da/lsp.mdx @@ -3,7 +3,7 @@ title: LSP Servere description: OpenCode integreres med dine LSP-servere. --- -OpenCode integreres med din sprogserverprotokol (LSP) for at hjælpe LLM med at interagere med din kodebase. Den bruger diagnostik til at give feedback til LLM. +OpenCode integreres med Language Server Protocol (LSP) for at hjælpe LLM med at interagere med din kodebase. Den bruger diagnostik til at give feedback til LLM. --- @@ -11,40 +11,40 @@ OpenCode integreres med din sprogserverprotokol (LSP) for at hjælpe LLM med at OpenCode leveres med flere indbyggede LSP-servere til populære sprog: -| LSP Server | Udvidelser | Krav | -| ------------------- | --------------------------------------------------------- | --------------------------------------------------------------- | -| astro | .astro | Autoinstallationer til Astro-projekter | -| bash | .sh,.bash,.zsh,.ksh | Autoinstallerer bash-language-server | -| clangd | .c,.cpp,.cc,.cxx,.c++,.h,.hpp,.hh,.hxx,.h++ | Autoinstallationer for C/C++ projekter | -| csharp | .cs | `.NET SDK` installere | -| clojure-lsp | .clj,.cljs,.cljc,.edn | `clojure-lsp` kommando tilgængelig | -| dart | .dart | `dart` kommando tilgængelig | -| deno | .ts,.tsx,.js,.jsx,.mjs | `deno` kommando tilgængelig (auto-detects deno.json/deno.jsonc) | -| eliksir-ls | .ex,.exs | `elixir` kommando tilgængelig | -| eslint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue | `eslint` afhængighed i projekt | -| fskarp | .fs,.fsi,.fsx,.fsscript | `.NET SDK` installere | -| glimt | .glimt | `gleam` kommando tilgængelig | -| gopls | .go | `go` kommando tilgængelig | -| hls | .hs,.lhs | `haskell-language-server-wrapper` kommando tilgængelig | -| jdtls | .java | `Java SDK (version 21+)` installere | -| kotlin-ls | .kt,.kts | Autoinstallationer til Kotlin-projekter | -| lua-ls | .lua | Autoinstallationer til Lua-projekter | -| nixd | .nix | `nixd` kommando tilgængelig | -| ocaml-lsp | .ml,.mli | `ocamllsp` kommando tilgængelig | -| oxlint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue,.astro,.svelte | `oxlint` afhængighed i projekt | -| php intelephense | .php | Automatiske installationer til PHP-projekter | -| prisma | .prisma | `prisma` kommando tilgængelig | -| ophavsret | .py,.pyi | `pyright` afhængig installeret | -| rubin-lsp (rubocop) | .rb,.rake,.gemspec,.ru | `ruby` og `gem` kommandoer tilgængelige | -| rust | .rs | `rust-analyzer` kommando tilgængelig | -| sourcekit-lsp | .swift,.objc,.objcpp | `swift` installere (`xcode` på macOS) | -| svelte | .svelte | Autoinstallationer til Svelte-projekter | -| terraform | .tf,.tfvars | Automatiske installationer fra GitHub-udgivelser | -| lillemand | .typ,.typc | Automatiske installationer fra GitHub-udgivelser | -| maskinskrift | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts | `typescript` afhængighed i projekt | -| vue | .vue | Autoinstallationer til Vue-projekter | -| yaml-ls | .yaml,.yml | Autoinstallerer Red Hat yaml-language-server | -| zls | .zig,.zon | `zig` kommando tilgængelig | +| LSP Server | Udvidelser | Krav | +| ------------------ | --------------------------------------------------------- | --------------------------------------------------------------- | +| astro | .astro | Autoinstallationer til Astro-projekter | +| bash | .sh,.bash,.zsh,.ksh | Autoinstallerer bash-language-server | +| clangd | .c,.cpp,.cc,.cxx,.c++,.h,.hpp,.hh,.hxx,.h++ | Autoinstallationer for C/C++ projekter | +| csharp | .cs | `.NET SDK` installere | +| clojure-lsp | .clj,.cljs,.cljc,.edn | `clojure-lsp` kommando tilgængelig | +| dart | .dart | `dart` kommando tilgængelig | +| deno | .ts,.tsx,.js,.jsx,.mjs | `deno` kommando tilgængelig (auto-detects deno.json/deno.jsonc) | +| eliksir-ls | .ex,.exs | `elixir` kommando tilgængelig | +| eslint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue | `eslint` afhængighed i projekt | +| fsharp | .fs,.fsi,.fsx,.fsscript | `.NET SDK` installere | +| gleam | .gleam | `gleam` kommando tilgængelig | +| gopls | .go | `go` kommando tilgængelig | +| hls | .hs,.lhs | `haskell-language-server-wrapper` kommando tilgængelig | +| jdtls | .java | `Java SDK (version 21+)` installere | +| kotlin-ls | .kt,.kts | Autoinstallationer til Kotlin-projekter | +| lua-ls | .lua | Autoinstallationer til Lua-projekter | +| nixd | .nix | `nixd` kommando tilgængelig | +| ocaml-lsp | .ml,.mli | `ocamllsp` kommando tilgængelig | +| oxlint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue,.astro,.svelte | `oxlint` afhængighed i projekt | +| php intelephense | .php | Automatiske installationer til PHP-projekter | +| prisma | .prisma | `prisma` kommando tilgængelig | +| pyright | .py,.pyi | `pyright` afhængig installeret | +| ruby-lsp (rubocop) | .rb,.rake,.gemspec,.ru | `ruby` og `gem` kommandoer tilgængelige | +| rust | .rs | `rust-analyzer` kommando tilgængelig | +| sourcekit-lsp | .swift,.objc,.objcpp | `swift` installere (`xcode` på macOS) | +| svelte | .svelte | Autoinstallationer til Svelte-projekter | +| terraform | .tf,.tfvars | Automatiske installationer fra GitHub-udgivelser | +| tinymist | .typ,.typc | Automatiske installationer fra GitHub-udgivelser | +| typescript | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts | `typescript` afhængighed i projekt | +| vue | .vue | Autoinstallationer til Vue-projekter | +| yaml-ls | .yaml,.yml | Autoinstallerer Red Hat yaml-language-server | +| zls | .zig,.zon | `zig` kommando tilgængelig | LSP-servere aktiveres automatisk, når en af ​​ovnstående filtypenavne opdages, og kravene er opfyldt. @@ -76,7 +76,7 @@ Du kan tilpasse LSP-servere gennem sektionen `lsp` i din opencode-konfiguration. Hver LSP- server understøtter følgende: -| Ejendom | Skriv | Beskrivelse | +| Egenskab | Type | Beskrivelse | | ---------------- | -------- | --------------------------------------------------------- | | `disabled` | boolean | Indstil dette til `true` for at deaktivere LSP-serveren | | `command` | string[] | Kommandoen til at starte LSP-serveren | @@ -182,7 +182,7 @@ Du kan tilføje brugerdefinerede LSP-servere ved at angive kommandoen og filtype PHP Intelephense tilbyder premium funktioner gennem en licensnøgle. Du kan angive en licensnøgle ved at placere (kun) nøglen i en tekstfil på: -- På macOS/Linux: `$HOME/intelephense/licence.txt` -- På Windows: `%USERPROFILE%/intelephense/licence.txt` +- På macOS/Linux: `$HOME/intelephense/license.txt` +- På Windows: `%USERPROFILE%/intelephense/license.txt` Filen bør kun indeholde licensnøglen uden yderligere indhold. diff --git a/packages/web/src/content/docs/da/tui.mdx b/packages/web/src/content/docs/da/tui.mdx index 9f10bb81dd..4105afe86e 100644 --- a/packages/web/src/content/docs/da/tui.mdx +++ b/packages/web/src/content/docs/da/tui.mdx @@ -63,7 +63,7 @@ Når du bruger OpenCode TUI, kan du skrive `/` etterfulgt av et kommandonavn for /help ``` -De fleste kommandoer har også tastebinding som bruger `ctrl+x` som ledernøkkel, der `ctrl+x` er standard ledernøkkel. [Finn ut mer](/docs/keybinds). +De fleste kommandoer har også tastebinding som bruger `ctrl+x` som Leader-tast, der `ctrl+x` er standard Leader-tast. [Finn ut mer](/docs/keybinds). Her er alle tilgængelige skråstrekkommandoer: @@ -87,7 +87,7 @@ Komprimer nuværende session. _Alias_: `/summarize` /compact ``` -**Nøkkelbinding:** `ctrl+x c` +**Tastebinding:** `ctrl+x c` --- @@ -99,7 +99,7 @@ Veksle verktøyutførelsesdetaljer. /details ``` -**Nøkkelbinding:** `ctrl+x d` +**Tastebinding:** `ctrl+x d` --- @@ -111,7 +111,7 @@ Veksle verktøyutførelsesdetaljer. /editor ``` -**Nøkkelbinding:** `ctrl+x e` +**Tastebinding:** `ctrl+x e` --- @@ -123,7 +123,7 @@ Avslutt OpenCode. _Aliaser_: `/quit`, `/q` /exit ``` -**Nøkkelbinding:** `ctrl+x q` +**Tastebinding:** `ctrl+x q` --- @@ -135,7 +135,7 @@ Eksporter nuværende samtale til Markdown og åpne i standardredigeringsprogramm /export ``` -**Nøkkelbinding:** `ctrl+x x` +**Tastebinding:** `ctrl+x x` --- @@ -147,7 +147,7 @@ Vis hjelpedialogen. /help ``` -**Nøkkelbinding:** `ctrl+x h` +**Tastebinding:** `ctrl+x h` --- @@ -159,7 +159,7 @@ Opret eller opdater `AGENTS.md`-fil. [Finn ut mer](/docs/rules). /init ``` -**Nøkkelbinding:** `ctrl+x i` +**Tastebinding:** `ctrl+x i` --- @@ -171,7 +171,7 @@ Liste over tilgængelige modeller. /models ``` -**Nøkkelbinding:** `ctrl+x m` +**Tastebinding:** `ctrl+x m` --- @@ -183,7 +183,7 @@ Start en ny session. _Alias_: `/clear` /new ``` -**Nøkkelbinding:** `ctrl+x n` +**Tastebinding:** `ctrl+x n` --- @@ -202,7 +202,7 @@ være et Git-depot**. /redo ``` -**Nøkkelbinding:** `ctrl+x r` +**Tastebinding:** `ctrl+x r` --- @@ -214,7 +214,7 @@ List opp og bytt mellom sessioner. _Aliaser_: `/resume`, `/continue` /sessions ``` -**Nøkkelbinding:** `ctrl+x l` +**Tastebinding:** `ctrl+x l` --- @@ -226,7 +226,7 @@ Del nuværende session. [Finn ut mer](/docs/share). /share ``` -**Nøkkelbinding:** `ctrl+x s` +**Tastebinding:** `ctrl+x s` --- @@ -238,7 +238,7 @@ Liste over tilgængelige temaer. /theme ``` -**Nøkkelbinding:** `ctrl+x t` +**Tastebinding:** `ctrl+x t` --- @@ -271,7 +271,7 @@ være et Git-depot**. /undo ``` -**Nøkkelbinding:** `ctrl+x u` +**Tastebinding:** `ctrl+x u` --- @@ -285,9 +285,9 @@ Opphev deling av nuværende session. [Finn ut mer](/docs/share#un-sharing). --- -## Redaktøroppsett +## Opsætning af editor -Både kommandoene `/editor` og `/export` bruger redigeringsprogrammet som er spesifisert i miljøvariabelen `EDITOR`. +Både kommandoene `/editor` og `/export` bruger editoren som er spesifisert i miljøvariabelen `EDITOR`. @@ -346,10 +346,10 @@ Populære redigeringsalternativer inkluderer: - `subl` - Sublime Text :::note -Nogle redaktører som VS Code må startes med flagget `--wait`. +Nogle editorer som VS Code må startes med flagget `--wait`. ::: -Nogle redaktører trenger kommandolinjeargumenter for at kjøre i blokkeringsmodus. `--wait`-flagget gør at redigeringsprosessen blokkeres til den lukkes. +Nogle editorer trenger kommandolinjeargumenter for at kjøre i blokeringstilstand. `--wait`-flagget gør at redigeringsprosessen blokkeres til den lukkes. --- @@ -371,7 +371,7 @@ Du kan tilpasse TUI-oppførselen gjennom OpenCode-konfigurasjonsfilen. ### Options -- `scroll_acceleration` - Aktiver rulleakselerasjon i macOS-stil for jevn, naturlig rulling. Når aktivert, øker rullehastigheten med raske rullebevegelser og forblir presis for langsommere bevegelser. **Denne innstillingen har forrang over `scroll_speed` og overstyrer den når den er aktivert.** +- `scroll_acceleration` - Aktiver rulleacceleration i macOS-stil for jevn, naturlig rulling. Når aktivert, øker rullehastigheten med raske rullebevegelser og forblir presis for langsommere bevegelser. **Denne innstillingen har forrang over `scroll_speed` og overstyrer den når den er aktivert.** - `scroll_speed` - Styrer hvor raskt TUI ruller når du bruger rullekommandoer (minimum: `1`). Standard er `3`. **Merk: Dette ignoreres hvis `scroll_acceleration.enabled` er satt til `true`.** --- @@ -386,5 +386,5 @@ Du kan tilpasse ulike aspekter av TUI-visningen ved at bruge kommandopaletten (` Veksle om brugernavnet ditt vises i chat-meldinger. Få tilgang til dette gjennom: -- Kommandopalett: Søk etter "brugernavn" eller "skjul brugernavn" +- Kommandopalet: Søk etter "brugernavn" eller "skjul brugernavn" - Innstillingen vedvarer automatisk og vil bli husket over TUI sessioner diff --git a/packages/web/src/content/docs/de/1-0.mdx b/packages/web/src/content/docs/de/1-0.mdx index dd11d793a6..f4fa6fac7a 100644 --- a/packages/web/src/content/docs/de/1-0.mdx +++ b/packages/web/src/content/docs/de/1-0.mdx @@ -5,9 +5,9 @@ description: Was ist neu in OpenCode 1.0. OpenCode 1.0 ist eine komplette Neufassung des TUI. -Wir sind vom go+bubbletea-basierten TUI, das Leistungs- und Leistungsprobleme aufwies, zu einem internen Framework (OpenTUI) übergegangen, das in zig+solidjs geschrieben wurde. +We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs. -Der neue TUI funktioniert wie der alte, da er eine Verbindung zum gleichen OpenCode-Server herstellt. +The new TUI works like the old one since it connects to the same opencode server. --- @@ -44,24 +44,24 @@ Wir haben einige Funktionen entfernt, von denen wir nicht sicher waren, ob sie t ## Bahnbrechende Veränderungen -### Tastenkombinationen umbenannt +### Keybinds renamed -- Nachrichten_revert -> Nachrichten_Rückgängig machen +- messages_revert -> messages_undo - switch_agent -> agent_cycle - switch_agent_reverse -> agent_cycle_reverse - switch_mode -> agent_cycle - switch_mode_reverse -> agent_cycle_reverse -### Tastenkombinationen entfernt +### Keybinds removed -- message_layout_toggle -- message_next -- Nachrichten_vorherige +- messages_layout_toggle +- messages_next +- messages_previous - file_diff_toggle - file_search - file_close -- Dateiliste +- file_list - app_help - project_init -- Werkzeugdetails -- think_blocks +- tool_details +- thinking_blocks diff --git a/packages/web/src/content/docs/de/acp.mdx b/packages/web/src/content/docs/de/acp.mdx index 04c5c67ace..00b6743cb6 100644 --- a/packages/web/src/content/docs/de/acp.mdx +++ b/packages/web/src/content/docs/de/acp.mdx @@ -9,7 +9,7 @@ OpenCode unterstützt [Agent Client Protocol](https://agentclientprotocol.com) o Eine Liste der Editoren und Tools, die ACP unterstützen, finden Sie unter [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). ::: -ACP ist ein offenes Protokoll, das die Kommunikation zwischen Code-Editoren und AI-Codierungsagenten standardisiert. +ACP ist ein offenes Protokoll, das die Kommunikation zwischen Code-Editoren und AI-Coding-Agenten standardisiert. --- @@ -82,7 +82,7 @@ Fügen Sie zu Ihrem [JetBrains IDE](https://www.jetbrains.com/) acp.json gemäß } ``` -Um es zu öffnen, verwenden Sie den neuen Agenten „OpenCode“ in der Chat-Agentenauswahl AI. +Um es zu öffnen, verwenden Sie den neuen Agenten „OpenCode“ in der AI Chat Agent Selector. --- @@ -145,7 +145,7 @@ Wenn Sie Umgebungsvariablen (wie `OPENCODE_API_KEY`) übergeben müssen, finden OpenCode funktioniert über ACP genauso wie im Terminal. Alle Funktionen werden unterstützt: :::note -Einige integrierte Schrägstrichbefehle wie `/undo` und `/redo` werden derzeit nicht unterstützt. +Einige integrierte Slash-Befehle wie `/undo` und `/redo` werden derzeit nicht unterstützt. ::: - Integrierte Tools (Dateioperationen, Terminalbefehle usw.) diff --git a/packages/web/src/content/docs/de/agents.mdx b/packages/web/src/content/docs/de/agents.mdx index 7503658beb..a3127e4a4f 100644 --- a/packages/web/src/content/docs/de/agents.mdx +++ b/packages/web/src/content/docs/de/agents.mdx @@ -46,7 +46,7 @@ OpenCode verfügt über zwei integrierte Primäragenten und zwei integrierte Sub --- -### Verwenden Sie Build +### Use Build _Modus_: `primary` @@ -54,7 +54,7 @@ Build ist der **Standard**-Primäragent mit allen aktivierten Tools. Dies ist de --- -### Nutzungsplan +### Use Plan _Modus_: `primary` @@ -68,7 +68,7 @@ Dieser Agent ist nützlich, wenn Sie möchten, dass LLM Code analysiert, Änderu --- -### Verwenden Sie es allgemein +### Use General _Modus_: `subagent` @@ -76,7 +76,7 @@ Ein Allzweckagent zur Recherche komplexerer Fragen und zur Ausführung mehrstufi --- -### Verwenden Sie „Erkunden“. +### Use Explore _Modus_: `subagent` @@ -84,7 +84,7 @@ Ein schneller, schreibgeschützter Agent zum Erkunden von Codebasen. Dateien kö --- -### Verwenden Sie Dichtung +### Use Compaction _Modus_: `primary` @@ -92,7 +92,7 @@ Versteckter Systemagent, der lange Kontext in einer kleineren Zusammenfassung ko --- -### Titel verwenden +### Use Title _Modus_: `primary` @@ -100,7 +100,7 @@ Versteckter Systemagent, der kurze Sitzungstitel generiert. Es läuft automatisc --- -### Zusammenfassung verwenden +### Use Summary _Modus_: `primary` @@ -482,7 +482,7 @@ Sie können Berechtigungen für bestimmte Bash-Befehle festlegen. } ``` -Dies kann ein Kugelmuster annehmen. +Dies kann ein Glob-Muster annehmen. ```json title="opencode.json" {7} { diff --git a/packages/web/src/content/docs/de/cli.mdx b/packages/web/src/content/docs/de/cli.mdx index 5547644b8f..26b0379c51 100644 --- a/packages/web/src/content/docs/de/cli.mdx +++ b/packages/web/src/content/docs/de/cli.mdx @@ -5,7 +5,7 @@ description: OpenCode CLI Optionen und Befehle. import { Tabs, TabItem } from "@astrojs/starlight/components" -Der OpenCode CLI startet standardmäßig den [TUI](/docs/tui), wenn er ohne Argumente ausgeführt wird. +Der OpenCode CLI startet standardmäßig das [TUI](/docs/tui), wenn er ohne Argumente ausgeführt wird. ```bash opencode @@ -27,14 +27,14 @@ Starten Sie die Terminalbenutzeroberfläche OpenCode. opencode [project] ``` -#### Flaggen +#### Flags -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | ------------ | ---- | ---------------------------------------------------------------------- | | `--continue` | `-c` | Setzen Sie die letzte Sitzung fort | -| `--session` | `-s` | Sitzung ID zum Fortfahren | +| `--session` | `-s` | Session-ID zum Fortfahren | | `--fork` | | Sitzung beim Fortsetzen verzweigen (mit `--continue` oder `--session`) | -| `--prompt` | | Zur Verwendung auffordern | +| `--prompt` | | Prompt zur Verwendung | | `--model` | `-m` | Zu verwendendes Modell in der Form provider/model | | `--agent` | | Zu verwendender Agent | | `--port` | | Port zum Abhören | @@ -76,12 +76,12 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### Flaggen +#### Flags -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | ----------- | ---- | ----------------------------------------- | | `--dir` | | Arbeitsverzeichnis zum Starten von TUI in | -| `--session` | `-s` | Sitzung ID zum Fortfahren | +| `--session` | `-s` | Session-ID zum Fortfahren | --- @@ -99,7 +99,7 @@ Dieser Befehl führt Sie durch die Erstellung eines neuen Agenten mit einer benu #### list -Hören Sie sich alle verfügbaren Agenten an. +Listen Sie alle verfügbaren Agenten auf. ```bash opencode agent list @@ -147,7 +147,7 @@ opencode auth ls #### logout -Melden Sie sich von einem Anbieter ab, ohne dass es aus der Anmeldeinformationsdatei gelöscht wird. +Melden Sie sich von einem Anbieter ab, indem Sie ihn aus der Anmeldeinformationsdatei löschen. ```bash opencode auth logout @@ -165,7 +165,7 @@ opencode github [command] --- -#### installieren +#### install Installieren Sie den GitHub-Agenten in Ihrem Repository. @@ -177,7 +177,7 @@ Dadurch wird der erforderliche GitHub-Aktionsworkflow eingerichtet und Sie durch --- -#### laufen +#### run Führen Sie den GitHub-Agenten aus. Dies wird normalerweise in GitHub-Aktionen verwendet. @@ -185,9 +185,9 @@ Führen Sie den GitHub-Agenten aus. Dies wird normalerweise in GitHub-Aktionen v opencode github run ``` -##### Flaggen +##### Flags -| Flagge | Beschreibung | +| Flag | Beschreibung | | --------- | --------------------------------------------------- | | `--event` | GitHub Scheinereignis zum Ausführen des Agenten für | | `--token` | GitHub persönliches Zugriffstoken | @@ -196,7 +196,7 @@ opencode github run ### mcp -Verwalten Sie den Model Context Protocol-Server. +Verwalten Sie Model Context Protocol-Server. ```bash opencode mcp [command] @@ -212,13 +212,13 @@ Fügen Sie Ihrer Konfiguration einen MCP-Server hinzu. opencode mcp add ``` -Dieser Befehl führt Sie durch das Hinzufügen eines lokalen oder Remote-Servers MCP. +Dieser Befehl führt Sie durch das Hinzufügen eines lokalen oder Remote-MCP-Servers. --- #### list -Hören Sie sich alle konfigurierten MCP-Server und deren Verbindungsstatus an. +Listen Sie alle konfigurierten MCP-Server und deren Verbindungsstatus auf. ```bash opencode mcp list @@ -240,7 +240,7 @@ Authentifizieren Sie sich mit einem OAuth-fähigen MCP-Server. opencode mcp auth [name] ``` -Wenn Sie keinen Servernamen angeben, werden Sie autorisiert, einen der verfügbaren OAuth-fähigen Server auszuwählen. +Wenn Sie keinen Servernamen angeben, werden Sie aufgefordert, einen der verfügbaren OAuth-fähigen Server auszuwählen. Sie können auch OAuth-fähige Server und deren Authentifizierungsstatus auflisten. @@ -278,7 +278,7 @@ opencode mcp debug ### models -Hören Sie sich alle verfügbaren Modelle der konfigurierten Anbieter an. +Listen Sie alle verfügbaren Modelle der konfigurierten Anbieter auf. ```bash opencode models [provider] @@ -286,17 +286,17 @@ opencode models [provider] Dieser Befehl zeigt alle bei Ihren konfigurierten Anbietern verfügbaren Modelle im Format `provider/model` an. -Dies ist nützlich, um die genauen Modellnamen herauszufinden, die in [your config](/docs/config/) verwendet werden sollen. +Dies ist nützlich, um die genauen Modellnamen herauszufinden, die in [Ihrer Konfiguration](/docs/config/) verwendet werden sollen. -Sie können optional einen Anbieter ID übergeben, um Modelle nach diesem Anbieter zu filtern. +Sie können optional eine Anbieter-ID übergeben, um Modelle nach diesem Anbieter zu filtern. ```bash opencode models anthropic ``` -#### Flaggen +#### Flags -| Flagge | Beschreibung | +| Flag | Beschreibung | | ----------- | ------------------------------------------------------------------------------------- | | `--refresh` | Aktualisieren Sie den Modellcache von models.dev | | `--verbose` | Verwenden Sie eine ausführlichere Modellausgabe (einschließlich Metadaten wie Kosten) | @@ -309,7 +309,7 @@ opencode models --refresh --- -### laufen +### run Führen Sie OpenCode im nicht interaktiven Modus aus, indem Sie direkt eine Eingabeaufforderung übergeben. @@ -317,7 +317,7 @@ Führen Sie OpenCode im nicht interaktiven Modus aus, indem Sie direkt eine Eing opencode run [message..] ``` -Dies ist nützlich für die Skripterstellung, die Automatisierung oder wenn Sie eine schnelle Antwort wünschen, ohne den vollständigen TUI zu starten. Zum Beispiel. +Dies ist nützlich für die Skripterstellung, die Automatisierung oder wenn Sie eine schnelle Antwort wünschen, ohne das vollständige TUI zu starten. Zum Beispiel. ```bash "opencode run" opencode run Explain the use of context in Go @@ -333,28 +333,28 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### Flaggen +#### Flags -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | ------------ | ---- | --------------------------------------------------------------------------------------------------- | | `--command` | | Der auszuführende Befehl, Nachricht für Argumente verwenden | | `--continue` | `-c` | Setzen Sie die letzte Sitzung fort | -| `--session` | `-s` | Sitzung ID zum Fortfahren | -| `--fork` | | Verzweigen Sie die Sitzung beim Fortsetzen (mit `--continue` oder `--session`) verwenden | +| `--session` | `-s` | Session-ID zum Fortfahren | +| `--fork` | | Sitzung beim Fortsetzen verzweigen (mit `--continue` oder `--session` verwenden) | | `--share` | | Teilen Sie die Sitzung | | `--model` | `-m` | Zu verwendendes Modell in der Form provider/model | | `--agent` | | Zu verwendender Agent | | `--file` | `-f` | Datei(en) zum Anhängen an die Nachricht | -| `--format` | | Format: Standard (formatiert) oder JSON (rohe JSON-Ereignisse) | +| `--format` | | Format: default (formatiert) oder json (rohe JSON-Ereignisse) | | `--title` | | Titel für die Sitzung (verwendet eine verkürzte Eingabeaufforderung, wenn kein Wert angegeben wird) | -| `--attach` | | An einen laufenden OpenCode-Server anschließen (e.g., http://localhost:4096) | +| `--attach` | | An einen laufenden OpenCode-Server anschließen (z.B. http://localhost:4096) | | `--port` | | Port für den lokalen Server (standardmäßig zufälliger Port) | --- ### serve -Starten Sie einen Headless-OpenCode-Server für den API-Zugriff. Sehen Sie sich [server docs](/docs/server) für die vollständige HTTP-Schnittstelle an. +Starten Sie einen Headless-OpenCode-Server für den API-Zugriff. Sehen Sie sich die [Server-Dokumentation](/docs/server) für die vollständige HTTP-Schnittstelle an. ```bash opencode serve @@ -362,20 +362,20 @@ opencode serve Dadurch wird ein HTTP-Server gestartet, der API-Zugriff auf OpenCode-Funktionalität ohne die TUI-Schnittstelle bietet. Legen Sie `OPENCODE_SERVER_PASSWORD` fest, um die HTTP-Basisauthentifizierung zu aktivieren (Benutzername ist standardmäßig `opencode`). -#### Flaggen +#### Flags -| Flagge | Beschreibung | -| ------------ | -------------------------------------------------- | -| `--port` | Port zum Abhören | -| `--hostname` | Hostname zum Abhören | -| `--mdns` | mDNS-Erkennung aktivieren | -| `--cors` | Zusätzliche Browserursprung(e), um CORS zuzulassen | +| Flag | Beschreibung | +| ------------ | ----------------------------------------------- | +| `--port` | Port zum Abhören | +| `--hostname` | Hostname zum Abhören | +| `--mdns` | mDNS-Discovery aktivieren | +| `--cors` | Zusätzliche Browser-Ursprünge für CORS zulassen | --- -### Sitzung +### session -Verwalten Sie OpenCode-Sitzungen. +OpenCode-Sitzungen verwalten. ```bash opencode session [command] @@ -385,18 +385,18 @@ opencode session [command] #### list -Hören Sie sich alle OpenCode-Sitzungen an. +Listen Sie alle OpenCode-Sitzungen auf. ```bash opencode session list ``` -##### Flaggen +##### Flags -| Flagge | Kurz | Beschreibung | -| ------------- | ---- | ------------------------------------------ | -| `--max-count` | `-n` | Auf N letzte Sitzungen beschränken | -| `--format` | | Ausgabeformat: Tabelle oder JSON (Tabelle) | +| Flag | Kurz | Beschreibung | +| ------------- | ---- | ---------------------------------------- | +| `--max-count` | `-n` | Beschränken auf die N neuesten Sitzungen | +| `--format` | | Ausgabeformat: table oder json (table) | --- @@ -408,9 +408,9 @@ Zeigen Sie Token-Nutzungs- und Kostenstatistiken für Ihre OpenCode-Sitzungen an opencode stats ``` -#### Flaggen +#### Flags -| Flagge | Beschreibung | +| Flag | Beschreibung | | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | | `--days` | Statistiken für die letzten N Tage anzeigen (alle Zeiten) | | `--tools` | Anzahl der angebotenen Werkzeuge (alle) | @@ -427,19 +427,19 @@ Sitzungsdaten als JSON exportieren. opencode export [sessionID] ``` -Wenn Sie keine Sitzung ID angeben, werden Sie berechtigt, eine der verfügbaren Sitzungen auszuwählen. +Wenn Sie keine Sitzungs-ID angeben, werden Sie aufgefordert, eine der verfügbaren Sitzungen auszuwählen. --- ### import -Importieren Sie Sitzungsdaten aus einer JSON-Datei oder einer OpenCode-Freigabe URL. +Importieren Sie Sitzungsdaten aus einer JSON-Datei oder einer OpenCode-Freigabe-URL. ```bash opencode import ``` -Sie können aus einer lokalen Datei oder einer OpenCode-Freigabe URL importieren. +Sie können aus einer lokalen Datei oder einer OpenCode-Freigabe-URL importieren. ```bash opencode import session.json @@ -458,30 +458,30 @@ opencode web Dadurch wird ein HTTP-Server gestartet und ein Webbrowser geöffnet, um über eine Webschnittstelle auf OpenCode zuzugreifen. Legen Sie `OPENCODE_SERVER_PASSWORD` fest, um die HTTP-Basisauthentifizierung zu aktivieren (Benutzername ist standardmäßig `opencode`). -#### Flaggen +#### Flags -| Flagge | Beschreibung | -| ------------ | -------------------------------------------------- | -| `--port` | Port zum Abhören | -| `--hostname` | Hostname zum Abhören | -| `--mdns` | mDNS-Erkennung aktivieren | -| `--cors` | Zusätzliche Browserursprung(e), um CORS zuzulassen | +| Flag | Beschreibung | +| ------------ | ----------------------------------------------- | +| `--port` | Port zum Abhören | +| `--hostname` | Hostname zum Abhören | +| `--mdns` | mDNS-Discovery aktivieren | +| `--cors` | Zusätzliche Browser-Ursprünge für CORS zulassen | --- ### acp -Starten Sie einen ACP-Server (Agent Client Protocol). +Starten Sie einen ACP (Agent Client Protocol) Server. ```bash opencode acp ``` -Dieser Befehl startet einen ACP-Server, der über stdin/stdout mit nd-JSON kommuniziert. +Dieser Befehl startet einen ACP-Server, der über stdin/stdout unter Verwendung von nd-JSON kommuniziert. -#### Flaggen +#### Flags -| Flagge | Beschreibung | +| Flag | Beschreibung | | ------------ | -------------------- | | `--cwd` | Arbeitsverzeichnis | | `--port` | Port zum Abhören | @@ -497,9 +497,9 @@ Deinstallieren Sie OpenCode und entfernen Sie alle zugehörigen Dateien. opencode uninstall ``` -#### Flaggen +#### Flags -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | --------------- | ---- | --------------------------------------------------- | | `--keep-config` | `-c` | Konfigurationsdateien behalten | | `--keep-data` | `-d` | Sitzungsdaten und Snapshots aufbewahren | @@ -528,23 +528,23 @@ Um auf eine bestimmte Version zu aktualisieren. opencode upgrade v0.1.48 ``` -#### Flaggen +#### Flags -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | ---------- | ---- | --------------------------------------------------------------- | | `--method` | `-m` | Die verwendete Installationsmethode; curl, npm, pnpm, bun, brew | --- -## Globale Flaggen +## Globale Flags Der OpenCode CLI akzeptiert die folgenden globalen Flags. -| Flagge | Kurz | Beschreibung | +| Flag | Kurz | Beschreibung | | -------------- | ---- | ----------------------------------------- | | `--help` | `-h` | Hilfe anzeigen | | `--version` | `-v` | Versionsnummer drucken | -| `--print-logs` | | Protokolle nach Standard drucken | +| `--print-logs` | | Protokolle nach stderr drucken | | `--log-level` | | Protokollebene (DEBUG, INFO, WARN, ERROR) | --- @@ -553,7 +553,7 @@ Der OpenCode CLI akzeptiert die folgenden globalen Flags. OpenCode kann mithilfe von Umgebungsvariablen konfiguriert werden. -| Variable | Geben Sie | eine Beschreibung | +| Variable | Typ | Beschreibung | | ------------------------------------- | --------------- | -------------------------------------------------------------------------------- | | `OPENCODE_AUTO_SHARE` | boolescher Wert | Sitzungen automatisch teilen | | `OPENCODE_GIT_BASH_PATH` | Zeichenfolge | Pfad zur ausführbaren Git Bash-Datei unter Windows | @@ -568,25 +568,25 @@ OpenCode kann mithilfe von Umgebungsvariablen konfiguriert werden. | `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolescher Wert | Automatische LSP-Server-Downloads deaktivieren | | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolescher Wert | Experimentelle Modelle aktivieren | | `OPENCODE_DISABLE_AUTOCOMPACT` | boolescher Wert | Automatische Kontextkomprimierung deaktivieren | -| `OPENCODE_DISABLE_CLAUDE_CODE` | boolescher Wert | Deaktivieren Sie das Lesen von `.claude` (Eingabeaufforderung + Fähigkeiten) | +| `OPENCODE_DISABLE_CLAUDE_CODE` | boolescher Wert | Deaktivieren Sie das Lesen von `.claude` (Prompt + Skills) | | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolescher Wert | Deaktivieren Sie das Lesen von `~/.claude/CLAUDE.md` | | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolescher Wert | Deaktivieren Sie das Laden von `.claude/skills` | -| `OPENCODE_DISABLE_MODELS_FETCH` | boolescher Wert | Deaktivieren Sie das gesammelte Modell von Remote-Quellen | +| `OPENCODE_DISABLE_MODELS_FETCH` | boolescher Wert | Deaktivieren Sie das Abrufen von Modellen aus Remote-Quellen | | `OPENCODE_FAKE_VCS` | Zeichenfolge | Gefälschter VCS-Anbieter zu Testzwecken | | `OPENCODE_DISABLE_FILETIME_CHECK` | boolescher Wert | Dateizeitprüfung zur Optimierung deaktivieren | | `OPENCODE_CLIENT` | Zeichenfolge | Client-ID (standardmäßig `cli`) | | `OPENCODE_ENABLE_EXA` | boolescher Wert | Exa-Websuchtools aktivieren | | `OPENCODE_SERVER_PASSWORD` | Zeichenfolge | Aktivieren Sie die Basisauthentifizierung für `serve`/`web` | | `OPENCODE_SERVER_USERNAME` | Zeichenfolge | Benutzernamen für die Basisauthentifizierung überschreiben (Standard `opencode`) | -| `OPENCODE_MODELS_URL` | Zeichenfolge | Benutzerdefinierte URL zum Erhalten der Modellkonfiguration | +| `OPENCODE_MODELS_URL` | Zeichenfolge | Benutzerdefinierte URL zum Abrufen der Modellkonfiguration | --- ### Experimental -Diese Umgebungsvariablen ermöglichen experimentelle Funktionen, die sich ändern oder entfernen können. +Diese Umgebungsvariablen ermöglichen experimentelle Funktionen, die sich ändern oder entfernt werden können. -| Variable | Geben Sie | eine Beschreibung | +| Variable | Typ | Beschreibung | | ----------------------------------------------- | --------------- | ------------------------------------------------------- | | `OPENCODE_EXPERIMENTAL` | boolescher Wert | Alle experimentellen Funktionen aktivieren | | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolescher Wert | Symbolerkennung aktivieren | diff --git a/packages/web/src/content/docs/de/formatters.mdx b/packages/web/src/content/docs/de/formatters.mdx index 253b526839..3cdf6450dc 100644 --- a/packages/web/src/content/docs/de/formatters.mdx +++ b/packages/web/src/content/docs/de/formatters.mdx @@ -67,7 +67,7 @@ Sie können Formatierer über den Abschnitt `formatter` in Ihrer OpenCode-Konfig Jede Formatierungskonfiguration unterstützt Folgendes: -| Eigentum | Typ | Beschreibung | +| Eigenschaft | Typ | Beschreibung | | ------------- | --------------- | -------------------------------------------------------------------------------- | | `disabled` | boolescher Wert | Setzen Sie dies auf `true`, um den Formatierer zu deaktivieren | | `command` | string[] | Der zum Formatieren auszuführende Befehl | diff --git a/packages/web/src/content/docs/de/github.mdx b/packages/web/src/content/docs/de/github.mdx index 2b9c598850..d084cdb285 100644 --- a/packages/web/src/content/docs/de/github.mdx +++ b/packages/web/src/content/docs/de/github.mdx @@ -9,9 +9,9 @@ OpenCode lässt sich in Ihren GitHub-Workflow integrieren. Erwähnen Sie `/openc ## Features -- **Triage-Probleme**: Bitten Sie OpenCode, ein Problem zu untersuchen und es Ihnen zu erklären. -- **Reparieren und implementieren**: Bitten Sie OpenCode, ein Problem zu beheben oder eine Funktion zu implementieren. Und es funktioniert in einem neuen Zweig und sendet ein PR mit allen Änderungen. -- **Sicher**: OpenCode läuft in den Runnern Ihres GitHub. +- **Issue Triage**: Bitten Sie OpenCode, ein Problem zu untersuchen und es Ihnen zu erklären. +- **Reparieren und implementieren**: Bitten Sie OpenCode, ein Problem zu beheben oder eine Funktion zu implementieren. Und es funktioniert in einem neuen Branch und sendet ein PR mit allen Änderungen. +- **Sicher**: OpenCode läuft in den Runners Ihres GitHub. --- @@ -23,7 +23,7 @@ Führen Sie den folgenden Befehl in einem Projekt aus, das sich in einem GitHub- opencode github install ``` -Dies führt Sie durch die Installation der GitHub-App, das Erstellen des Workflows und das Einrichten von Geheimnissen. +Dies führt Sie durch die Installation der GitHub-App, das Erstellen des Workflows und das Einrichten von Secrets. --- @@ -73,9 +73,9 @@ Oder Sie können es manuell einrichten. # github_token: xxxx ``` -3. **Speichern Sie die API-Schlüssel in Geheimnissen** +3. **Speichern Sie die API-Schlüssel in Secrets** - Erweitern Sie in den **Einstellungen** Ihrer Organisation oder Ihres Projekts links **Geheimnisse und Variablen** und wählen Sie **Aktionen** aus. Und fügen Sie die erforderlichen API-Schlüssel hinzu. + Erweitern Sie in den **Einstellungen** Ihrer Organisation oder Ihres Projekts links **Secrets und Variablen** und wählen Sie **Aktionen** aus. Und fügen Sie die erforderlichen API-Schlüssel hinzu. --- @@ -85,7 +85,7 @@ Oder Sie können es manuell einrichten. - `agent`: Der zu verwendende Agent. Muss ein Hauptagent sein. Fällt aus der Konfiguration auf `default_agent` oder `"build"` zurück, wenn es nicht gefunden wird. - `share`: Ob die OpenCode-Sitzung geteilt werden soll. Der Standardwert ist **true** für öffentliche Repositorys. - `prompt`: Optionale benutzerdefinierte Eingabeaufforderung zum Überschreiben des Standardverhaltens. Verwenden Sie dies, um anzupassen, wie OpenCode Anfragen verarbeitet. -- `token`: Optionales GitHub-Zugriffstoken zum Ausführen von Vorgängen wie dem Erstellen von Kommentaren, dem Festschreiben von Änderungen und dem Öffnen von Pull-Anfragen. Standardmäßig verwendet OpenCode das Installationszugriffstoken der OpenCode GitHub-App, sodass Commits, Kommentare und Pull-Anfragen so aussehen, als würden sie von der App kommen. +- `token`: Optionales GitHub-Zugriffstoken zum Ausführen von Vorgängen wie dem Erstellen von Kommentaren, dem Festschreiben von Änderungen und dem Öffnen von Pull Requests. Standardmäßig verwendet OpenCode das Installation Access Token der OpenCode GitHub-App, sodass Commits, Kommentare und Pull Requests so aussehen, als würden sie von der App kommen. Alternativ können Sie [built-in `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) des GitHub Action Runners verwenden, ohne die OpenCode GitHub App zu installieren. Stellen Sie einfach sicher, dass Sie in Ihrem Workflow die erforderlichen Berechtigungen erteilen: @@ -101,18 +101,18 @@ Oder Sie können es manuell einrichten. --- -## Unterstützte Veranstaltungen +## Unterstützte Events -OpenCode kann durch die folgenden GitHub-Ereignisse ausgelöst werden: +OpenCode kann durch die folgenden GitHub-Events ausgelöst werden: | Ereignistyp | Ausgelöst durch | Einzelheiten | | ----------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `issue_comment` | Kommentieren Sie ein Problem oder PR | Erwähnen Sie `/opencode` oder `/oc` in Ihrem Kommentar. OpenCode liest den Kontext und kann Verzweigungen erstellen, PRs öffnen oder antworten. | -| `pull_request_review_comment` | Kommentieren Sie bestimmte Codezeilen in einem PR | Erwähnen Sie `/opencode` oder `/oc` beim Überprüfen des Codes. OpenCode empfängt Dateipfad, Zeilennummern und Diff-Kontext. | +| `issue_comment` | Kommentieren Sie ein Problem oder PR | Erwähnen Sie `/opencode` oder `/oc` in Ihrem Kommentar. OpenCode liest den Kontext und kann Branches erstellen, PRs öffnen oder antworten. | +| `pull_request_review_comment` | Kommentieren Sie bestimmte Codezeilen in einem PR | Erwähnen Sie `/opencode` oder `/oc` beim Überprüfen des Codes. OpenCode empfängt Dateipfad, Zeilennummern und Diff Context. | | `issues` | Problem geöffnet oder bearbeitet | Lösen Sie OpenCode automatisch aus, wenn Probleme erstellt oder geändert werden. Erfordert `prompt`-Eingabe. | | `pull_request` | PR geöffnet oder aktualisiert | Lösen Sie OpenCode automatisch aus, wenn PRs geöffnet, synchronisiert oder erneut geöffnet werden. Nützlich für automatisierte Bewertungen. | | `schedule` | Cron-basierter Zeitplan | Führen Sie OpenCode nach einem Zeitplan aus. Erfordert `prompt`-Eingabe. Die Ausgabe geht an Protokolle und PRs (kein Kommentar zu diesem Problem). | -| `workflow_dispatch` | Manueller Trigger von GitHub UI | Lösen Sie OpenCode bei Bedarf über die Registerkarte „Aktionen“ aus. Erfordert `prompt`-Eingabe. Die Ausgabe erfolgt an Protokolle und PRs. | +| `workflow_dispatch` | Manueller Trigger von GitHub UI | Lösen Sie OpenCode bei Bedarf über die Actions Tab aus. Erfordert `prompt`-Eingabe. Die Ausgabe erfolgt an Protokolle und PRs. | ### Beispiel für einen Zeitplan @@ -150,7 +150,7 @@ jobs: If you find issues worth addressing, open an issue to track them. ``` -Für geplante Ereignisse ist die Eingabe `prompt` **erforderlich**, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können. Geplante Workflows werden ohne Benutzerkontext zur Berechtigungsprüfung ausgeführt. Daher muss der Workflow `contents: write` und `pull-requests: write` gewähren, wenn Sie erwarten, dass OpenCode Zweige oder PRs erstellt. +Für geplante Ereignisse ist die Eingabe `prompt` **erforderlich**, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können. Geplante Workflows werden ohne Benutzerkontext zur Berechtigungsprüfung ausgeführt. Daher muss der Workflow `contents: write` und `pull-requests: write` gewähren, wenn Sie erwarten, dass OpenCode Branches oder PRs erstellt. --- @@ -195,7 +195,7 @@ Wenn für `pull_request`-Ereignisse kein `prompt` bereitgestellt wird, überprü --- -### Beispiel für eine Triage von Problemen +### Beispiel für eine Issue Triage Neue Probleme automatisch selektieren. In diesem Beispiel wird nach Konten gefiltert, die älter als 30 Tage sind, um Spam zu reduzieren: @@ -291,7 +291,7 @@ Hier sind einige Beispiele, wie Sie OpenCode in GitHub verwenden können. /opencode fix this ``` - Und OpenCode erstellt einen neuen Zweig, implementiert die Änderungen und öffnet ein PR mit den Änderungen. + Und OpenCode erstellt einen neuen Branch, implementiert die Änderungen und öffnet ein PR mit den Änderungen. - **PRs überprüfen und Änderungen vornehmen** @@ -305,7 +305,7 @@ Hier sind einige Beispiele, wie Sie OpenCode in GitHub verwenden können. - **Überprüfen Sie bestimmte Codezeilen** - Hinterlassen Sie einen Kommentar direkt zu den Codezeilen auf der Registerkarte „Dateien“ von PR. OpenCode erkennt automatisch die Datei, Zeilennummern und den Diff-Kontext, um präzise Antworten bereitzustellen. + Hinterlassen Sie einen Kommentar direkt zu den Codezeilen auf der Files Tab von PR. OpenCode erkennt automatisch die Datei, Zeilennummern und den Diff Context, um präzise Antworten bereitzustellen. ``` [Comment on specific lines in Files tab] @@ -315,7 +315,7 @@ Hier sind einige Beispiele, wie Sie OpenCode in GitHub verwenden können. Beim Kommentieren bestimmter Zeilen erhält OpenCode: - Die genaue Datei, die überprüft wird - Die spezifischen Codezeilen - - Der umgebende Diff-Kontext + - Der umgebende Diff Context - Informationen zur Zeilennummer Dies ermöglicht gezieltere Anfragen, ohne dass Dateipfade oder Zeilennummern manuell angegeben werden müssen. diff --git a/packages/web/src/content/docs/de/gitlab.mdx b/packages/web/src/content/docs/de/gitlab.mdx index 9bebf46fb0..56cc7f35f9 100644 --- a/packages/web/src/content/docs/de/gitlab.mdx +++ b/packages/web/src/content/docs/de/gitlab.mdx @@ -1,11 +1,11 @@ --- title: GitLab -description: Verwenden Sie OpenCode in GitLab-Problemen und Zusammenführungsanfragen. +description: Verwenden Sie OpenCode in GitLab-Issues und Merge Requests. --- OpenCode lässt sich über Ihre GitLab CI/CD-Pipeline oder mit GitLab Duo in Ihren GitLab-Workflow integrieren. -In beiden Fällen läuft OpenCode auf Ihren GitLab-Läufern. +In beiden Fällen läuft OpenCode auf Ihren GitLab Runners. --- @@ -53,10 +53,10 @@ Erwähnen Sie `@opencode` in einem Kommentar und OpenCode führt Aufgaben innerh ### Features -- **Triage-Probleme**: Bitten Sie OpenCode, ein Problem zu untersuchen und es Ihnen zu erklären. +- **Issue Triage**: Bitten Sie OpenCode, ein Problem zu untersuchen und es Ihnen zu erklären. - **Reparieren und implementieren**: Bitten Sie OpenCode, ein Problem zu beheben oder eine Funktion zu implementieren. - Es wird ein neuer Zweig erstellt und eine Zusammenführungsanforderung mit den Änderungen ausgelöst. -- **Sicher**: OpenCode läuft auf Ihren GitLab-Läufern. + Es wird ein neuer Branch erstellt und eine Merge Request mit den Änderungen ausgelöst. +- **Sicher**: OpenCode läuft auf Ihren GitLab Runners. --- @@ -182,14 +182,14 @@ Sie können die Verwendung einer anderen Triggerphrase als `@opencode` konfiguri @opencode fix this ``` - OpenCode erstellt einen neuen Zweig, implementiert die Änderungen und öffnet eine Zusammenführungsanforderung mit den Änderungen. + OpenCode erstellt einen neuen Branch, implementiert die Änderungen und öffnet eine Merge Request mit den Änderungen. -- **Zusammenführungsanfragen prüfen** +- **Merge Requests prüfen** - Hinterlassen Sie den folgenden Kommentar zu einer GitLab-Merge-Anfrage. + Hinterlassen Sie den folgenden Kommentar zu einer GitLab Merge Request. ``` @opencode review this merge request ``` - OpenCode prüft die Zusammenführungsanfrage und gibt Feedback. + OpenCode prüft die Merge Request und gibt Feedback. diff --git a/packages/web/src/content/docs/de/index.mdx b/packages/web/src/content/docs/de/index.mdx index d42d933cb4..f53f60bb7a 100644 --- a/packages/web/src/content/docs/de/index.mdx +++ b/packages/web/src/content/docs/de/index.mdx @@ -223,7 +223,7 @@ Sie können OpenCode bitten, Ihrem Projekt neue Funktionen hinzuzufügen. Wir em 1. **Erstellen Sie einen Plan** - OpenCode verfügt über einen _Planmodus_, der seine Fähigkeit, Änderungen vorzunehmen, deaktiviert + OpenCode verfügt über einen _Plan Mode_, der seine Fähigkeit, Änderungen vorzunehmen, deaktiviert Schlagen Sie stattdessen vor, wie die Funktion implementiert wird. Wechseln Sie mit der **Tabulatortaste** dorthin. In der unteren rechten Ecke sehen Sie einen Indikator dafür. @@ -266,7 +266,7 @@ Sie können OpenCode bitten, Ihrem Projekt neue Funktionen hinzuzufügen. Wir em 3. **Funktion erstellen** - Wenn Sie mit dem Plan zufrieden sind, wechseln Sie zurück in den _Build-Modus_ + Wenn Sie mit dem Plan zufrieden sind, wechseln Sie zurück in den _Build Mode_ indem Sie erneut die **Tabulatortaste** drücken. ```bash frame="none" diff --git a/packages/web/src/content/docs/de/keybinds.mdx b/packages/web/src/content/docs/de/keybinds.mdx index 978d9ebccb..0e0a7d9d9c 100644 --- a/packages/web/src/content/docs/de/keybinds.mdx +++ b/packages/web/src/content/docs/de/keybinds.mdx @@ -105,19 +105,19 @@ OpenCode verfügt über eine Liste von Tastenkombinationen, die Sie über die Op --- -## Führungsschlüssel +## Leader Key -OpenCode verwendet für die meisten Tastenkombinationen einen `leader`-Schlüssel. Dies vermeidet Konflikte in Ihrem Terminal. +OpenCode verwendet für die meisten Keybinds einen `leader`-Schlüssel. Dies vermeidet Konflikte in Ihrem Terminal. -Standardmäßig ist `ctrl+x` die Führungstaste und bei den meisten Aktionen müssen Sie zuerst die Führungstaste und dann die Tastenkombination drücken. Um beispielsweise eine neue Sitzung zu starten, drücken Sie zuerst `ctrl+x` und dann `n`. +Standardmäßig ist `ctrl+x` der Leader Key und bei den meisten Aktionen müssen Sie zuerst den Leader Key und dann die Tastenkombination drücken. Um beispielsweise eine neue Sitzung zu starten, drücken Sie zuerst `ctrl+x` und dann `n`. -Sie müssen für Ihre Tastenkombinationen keine Führungstaste verwenden, wir empfehlen jedoch, dies zu tun. +Sie müssen für Ihre Keybinds keinen Leader Key verwenden, wir empfehlen jedoch, dies zu tun. --- -## Tastenkombination deaktivieren +## Keybind deaktivieren -Sie können eine Tastenkombination deaktivieren, indem Sie den Schlüssel mit dem Wert „none“ zu Ihrer Konfiguration hinzufügen. +Sie können eine Keybind deaktivieren, indem Sie den Schlüssel mit dem Wert „none“ zu Ihrer Konfiguration hinzufügen. ```json title="opencode.json" { @@ -134,21 +134,21 @@ Sie können eine Tastenkombination deaktivieren, indem Sie den Schlüssel mit de Die Eingabeaufforderungseingabe der OpenCode-Desktop-App unterstützt gängige Readline/Emacs-style-Verknüpfungen zum Bearbeiten von Text. Diese sind integriert und derzeit nicht über `opencode.json` konfigurierbar. -| Verknüpfung | Aktion | -| ----------- | ----------------------------------------------------- | -| `ctrl+a` | Zum Anfang der aktuellen Zeile gehen | -| `ctrl+e` | Zum Ende der aktuellen Zeile gehen | -| `ctrl+b` | Cursor um ein Zeichen zurückbewegen | -| `ctrl+f` | Cursor um ein Zeichen vorwärts bewegen | -| `alt+b` | Cursor um ein Wort zurückbewegen | -| `alt+f` | Bewegen Sie den Cursor ein Wort vorwärts | -| `ctrl+d` | Zeichen unter dem Cursor löschen | -| `ctrl+k` | Bis zum Zeilenende töten | -| `ctrl+u` | Bis zum Zeilenanfang töten | -| `ctrl+w` | Vorheriges Wort töten | -| `alt+d` | Nächstes Wort töten | -| `ctrl+t` | Zeichen transponieren | -| `ctrl+g` | Popovers abbrechen / Ausführung der Antwort abbrechen | +| Keybind | Aktion | +| -------- | ----------------------------------------------------- | +| `ctrl+a` | Zum Anfang der aktuellen Zeile gehen | +| `ctrl+e` | Zum Ende der aktuellen Zeile gehen | +| `ctrl+b` | Cursor um ein Zeichen zurückbewegen | +| `ctrl+f` | Cursor um ein Zeichen vorwärts bewegen | +| `alt+b` | Cursor um ein Wort zurückbewegen | +| `alt+f` | Bewegen Sie den Cursor ein Wort vorwärts | +| `ctrl+d` | Zeichen unter dem Cursor löschen | +| `ctrl+k` | Bis zum Zeilenende löschen (Kill) | +| `ctrl+u` | Bis zum Zeilenanfang löschen (Kill) | +| `ctrl+w` | Vorheriges Wort löschen (Kill) | +| `alt+d` | Nächstes Wort löschen (Kill) | +| `ctrl+t` | Zeichen transponieren | +| `ctrl+g` | Popovers abbrechen / Ausführung der Antwort abbrechen | --- diff --git a/packages/web/src/content/docs/de/lsp.mdx b/packages/web/src/content/docs/de/lsp.mdx index ea6e9d1104..e592fe7812 100644 --- a/packages/web/src/content/docs/de/lsp.mdx +++ b/packages/web/src/content/docs/de/lsp.mdx @@ -182,7 +182,7 @@ Sie können einen benutzerdefinierten LSP-Server hinzufügen, indem Sie den Befe PHP Intelepense bietet Premium-Funktionen über einen Lizenzschlüssel. Sie können einen Lizenzschlüssel bereitstellen, indem Sie (nur) den Schlüssel in eine Textdatei einfügen unter: -- Auf macOS/Linux: `$HOME/intelephense/licence.txt` -- Unter Windows: `%USERPROFILE%/intelephense/licence.txt` +- Auf macOS/Linux: `$HOME/intelephense/license.txt` +- Unter Windows: `%USERPROFILE%/intelephense/license.txt` Die Datei sollte nur den Lizenzschlüssel ohne zusätzlichen Inhalt enthalten. diff --git a/packages/web/src/content/docs/es/1-0.mdx b/packages/web/src/content/docs/es/1-0.mdx index 12b7e6bba0..087a38c11a 100644 --- a/packages/web/src/content/docs/es/1-0.mdx +++ b/packages/web/src/content/docs/es/1-0.mdx @@ -46,22 +46,22 @@ Eliminamos algunas funciones que no estábamos seguros de que alguien realmente ### Combinaciones de teclas renombradas -- mensajes_revertir -> mensajes_undo -- switch_agent -> agente_ciclo -- switch_agent_reverse -> agente_cycle_reverse -- switch_mode -> agente_ciclo -- switch_mode_reverse -> agente_cycle_reverse +- messages_revert -> messages_undo +- switch_agent -> agent_cycle +- switch_agent_reverse -> agent_cycle_reverse +- switch_mode -> agent_cycle +- switch_mode_reverse -> agent_cycle_reverse ### Combinaciones de teclas eliminadas -- mensajes_layout_toggle -- mensajes_siguiente -- mensajes_anteriores +- messages_layout_toggle +- messages_next +- messages_previous - file_diff_toggle -- búsqueda_archivo -- archivo_cerrar -- lista_archivo -- aplicación_ayuda -- proyecto_init -- detalles_herramienta -- bloques_pensamiento +- file_search +- file_close +- file_list +- app_help +- project_init +- tool_details +- thinking_blocks diff --git a/packages/web/src/content/docs/es/acp.mdx b/packages/web/src/content/docs/es/acp.mdx index 2bb25a9e41..6954182bfe 100644 --- a/packages/web/src/content/docs/es/acp.mdx +++ b/packages/web/src/content/docs/es/acp.mdx @@ -1,5 +1,5 @@ --- -title: ACP Soporte +title: Soporte ACP description: Utilice OpenCode en cualquier editor compatible con ACP. --- @@ -67,7 +67,7 @@ También puedes vincular un atajo de teclado editando tu `keymap.json`: --- -### IDE de JetBrains +### JetBrains IDEs Agregue a su [JetBrains IDE](https://www.jetbrains.com/) acp.json de acuerdo con la [documentación](https://www.jetbrains.com/help/ai-assistant/acp.html): @@ -119,7 +119,7 @@ Si necesita pasar variables de entorno: --- -### CódigoCompanion.nvim +### CodeCompanion.nvim Para usar OpenCode como agente ACP en [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), agregue lo siguiente a su configuración de Neovim: diff --git a/packages/web/src/content/docs/es/agents.mdx b/packages/web/src/content/docs/es/agents.mdx index fbc46f8263..cec6514a02 100644 --- a/packages/web/src/content/docs/es/agents.mdx +++ b/packages/web/src/content/docs/es/agents.mdx @@ -27,7 +27,7 @@ Los agentes primarios son los asistentes principales con los que interactúas di Puede utilizar la tecla **Tab** para cambiar entre agentes principales durante una sesión. ::: -OpenCode viene con dos agentes principales integrados, **Construir** y **Planificar**. Bien +OpenCode viene con dos agentes principales integrados, **Build** y **Plan**. Bien mira estos a continuación. --- @@ -36,17 +36,17 @@ mira estos a continuación. Los subagentes son asistentes especializados que los agentes principales pueden invocar para tareas específicas. También puedes invocarlos manualmente **@ mencionándolos** en tus mensajes. -OpenCode viene con dos subagentes integrados, **General** y **Explorar**. Veremos esto a continuación. +OpenCode viene con dos subagentes integrados, **General** y **Explore**. Veremos esto a continuación. --- -## Incorporado +## Built-in OpenCode viene con dos agentes primarios integrados y dos subagentes integrados. --- -### Usar compilación +### Use build _Modo_: `primary` @@ -54,7 +54,7 @@ Build es el agente principal **predeterminado** con todas las herramientas habil --- -### Plan de uso +### Use plan _Modo_: `primary` @@ -68,7 +68,7 @@ Este agente es útil cuando desea que LLM analice código, sugiera cambios o cre --- -### Uso general +### Use general _Modo_: `subagent` @@ -76,7 +76,7 @@ Un agente de uso general para investigar preguntas complejas y ejecutar tareas d --- -### Usar explorar +### Use explore _Modo_: `subagent` @@ -84,7 +84,7 @@ Un agente rápido y de solo lectura para explorar bases de código. No se pueden --- -### Utilice compactación +### Use compaction _Modo_: `primary` @@ -92,7 +92,7 @@ Agente de sistema oculto que compacta un contexto largo en un resumen más peque --- -### Usar título +### Use title _Modo_: `primary` @@ -100,7 +100,7 @@ Agente del sistema oculto que genera títulos de sesión cortos. Se ejecuta auto --- -### Usar resumen +### Use summary _Modo_: `primary` @@ -121,8 +121,8 @@ Agente del sistema oculto que crea resúmenes de sesiones. Se ejecuta automátic ``` 3. **Navegación entre sesiones**: cuando los subagentes crean sus propias sesiones secundarias, puede navegar entre la sesión principal y todas las sesiones secundarias usando: - - **\+Derecha** (o su combinación de teclas `session_child_cycle` configurada) para avanzar a través de padre → hijo1 → hijo2 → ... → padre - - **\+Izquierda** (o su combinación de teclas `session_child_cycle_reverse` configurada) para retroceder entre padre ← hijo1 ← hijo2 ← ... ← padre + - **\+Right** (or su combinación de teclas `session_child_cycle` configurada) para avanzar a través de padre → hijo1 → hijo2 → ... → padre + - **\+Left** (or su combinación de teclas `session_child_cycle_reverse` configurada) para retroceder entre padre ← hijo1 ← hijo2 ← ... ← padre Esto le permite cambiar sin problemas entre la conversación principal y el trabajo de subagente especializado. @@ -216,7 +216,7 @@ Veamos estas opciones de configuración en detalle. --- -### Descripción +### Description Utilice la opción `description` para proporcionar una breve descripción de lo que hace el agente y cuándo usarlo. @@ -234,7 +234,7 @@ Esta es una opción de configuración **obligatoria**. --- -### Temperatura +### Temperature Controle la aleatoriedad y la creatividad de las respuestas de LLM con la configuración `temperature`. @@ -281,7 +281,7 @@ Si no se especifica ninguna temperatura, OpenCode utiliza valores predeterminado --- -### Pasos máximos +### Max steps Controle la cantidad máxima de iteraciones agentes que un agente puede realizar antes de verse obligado a responder solo con texto. Esto permite a los usuarios que desean controlar los costos establecer un límite a las acciones de agencia. @@ -307,7 +307,7 @@ El campo heredado `maxSteps` está en desuso. Utilice `steps` en su lugar. --- -### Desactivar +### Disable Establezca en `true` para deshabilitar el agente. @@ -323,7 +323,7 @@ Establezca en `true` para deshabilitar el agente. --- -### Inmediato +### Prompt Especifique un archivo de aviso del sistema personalizado para este agente con la configuración `prompt`. El archivo de aviso debe contener instrucciones específicas para el propósito del agente. @@ -341,7 +341,7 @@ Esta ruta es relativa a donde se encuentra el archivo de configuración. Entonce --- -### Modelo +### Model Utilice la configuración `model` para anular el modelo de este agente. Útil para utilizar diferentes modelos optimizados para diferentes tareas. Por ejemplo, un modelo más rápido de planificación, un modelo más capaz de implementación. @@ -363,7 +363,7 @@ El ID del modelo en su configuración OpenCode usa el formato `provider/model-id --- -### Herramientas +### Tools Controle qué herramientas están disponibles en este agente con la configuración `tools`. Puede habilitar o deshabilitar herramientas específicas configurándolas en `true` o `false`. @@ -410,7 +410,7 @@ También puedes utilizar comodines para controlar varias herramientas a la vez. --- -### Permisos +### Permissions Puede configurar permisos para administrar qué acciones puede realizar un agente. Actualmente, los permisos para las herramientas `edit`, `bash` y `webfetch` se pueden configurar para: @@ -522,7 +522,7 @@ Dado que la última regla de coincidencia tiene prioridad, coloque el comodín ` --- -### Modo +### Mode Controle el modo del agente con la configuración `mode`. La opción `mode` se utiliza para determinar cómo se puede utilizar el agente. @@ -540,7 +540,7 @@ La opción `mode` se puede configurar en `primary`, `subagent` o `all`. Si no se --- -### Oculto +### Hidden Oculte un subagente del menú de autocompletar `@` con `hidden: true`. Útil para subagentes internos que solo deben ser invocados mediante programación por otros agentes a través de la herramienta Tarea. @@ -563,7 +563,7 @@ Sólo aplica para agentes `mode: subagent`. --- -### Permisos de tareas +### Task permissions Controle qué subagentes puede invocar un agente a través de la herramienta Tarea con `permission.task`. Utiliza patrones globales para una combinación flexible. @@ -617,7 +617,7 @@ Utilice un color hexadecimal válido (por ejemplo, `#FF5733`) o un color de tema --- -### P superior +### Top P Controle la diversidad de respuestas con la opción `top_p`. Alternativa a la temperatura para controlar la aleatoriedad. @@ -635,7 +635,7 @@ Los valores oscilan entre 0,0 y 1,0. Los valores más bajos están más enfocado --- -### Adicional +### Additional Cualquier otra opción que especifique en la configuración de su agente se **pasará directamente** al proveedor como opciones de modelo. Esto le permite utilizar funciones y parámetros específicos del proveedor. @@ -662,7 +662,7 @@ Ejecute `opencode models` para ver una lista de los modelos disponibles. --- -## Crear agentes +## Create agents Puede crear nuevos agentes usando el siguiente comando: @@ -684,11 +684,11 @@ Este comando interactivo: A continuación se muestran algunos casos de uso comunes para diferentes agentes. -- **Agente de compilación**: trabajo de desarrollo completo con todas las herramientas habilitadas -- **Plan agente**: Análisis y planificación sin realizar cambios -- **Agente de revisión**: revisión de código con acceso de solo lectura más herramientas de documentación -- **Agente de depuración**: centrado en la investigación con bash y herramientas de lectura habilitadas -- **Agente de documentos**: escritura de documentación con operaciones de archivos pero sin comandos del sistema. +- **Build agent**: trabajo de desarrollo completo con todas las herramientas habilitadas +- **Plan agent**: Análisis y planificación sin realizar cambios +- **Review agent**: revisión de código con acceso de solo lectura más herramientas de documentación +- **Debug agent**: centrado en la investigación con bash y herramientas de lectura habilitadas +- **Docs agent**: escritura de documentación con operaciones de archivos pero sin comandos del sistema. --- @@ -702,7 +702,7 @@ A continuación se muestran algunos agentes de ejemplo que pueden resultarle út --- -### Agente de documentación +### Documentation agent ```markdown title="~/.config/opencode/agents/docs-writer.md" --- @@ -724,7 +724,7 @@ Focus on: --- -### Auditor de seguridad +### Security auditor ```markdown title="~/.config/opencode/agents/security-auditor.md" --- diff --git a/packages/web/src/content/docs/es/cli.mdx b/packages/web/src/content/docs/es/cli.mdx index dae8dac926..cc5cf6f755 100644 --- a/packages/web/src/content/docs/es/cli.mdx +++ b/packages/web/src/content/docs/es/cli.mdx @@ -27,9 +27,9 @@ Inicie la interfaz de usuario del terminal OpenCode. opencode [project] ``` -#### Banderas +#### Flags -| Bandera | Corto | Descripción | +| Flag | Short | Description | | ------------ | ----- | --------------------------------------------------------------------- | | `--continue` | `-c` | Continuar la última sesión | | `--session` | `-s` | ID de sesión para continuar | @@ -48,7 +48,7 @@ El OpenCode CLI también tiene los siguientes comandos. --- -### agente +### agent Administrar agentes para OpenCode. @@ -58,7 +58,7 @@ opencode agent [command] --- -### adjuntar +### attach Conecte una terminal a un servidor backend OpenCode que ya se esté ejecutando y iniciado mediante los comandos `serve` o `web`. @@ -76,16 +76,16 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### Banderas +#### Flags -| Bandera | Corto | Descripción | +| Flag | Short | Description | | ----------- | ----- | ----------------------------------------- | | `--dir` | | Directorio de trabajo para iniciar TUI en | | `--session` | `-s` | ID de sesión para continuar | --- -#### crear +#### create Cree un nuevo agente con configuración personalizada. @@ -97,7 +97,7 @@ Este comando lo guiará en la creación de un nuevo agente con un mensaje del si --- -#### lista +#### list Enumere todos los agentes disponibles. @@ -107,7 +107,7 @@ opencode agent list --- -### autenticación +### auth Comando para administrar credenciales e iniciar sesión para proveedores. @@ -117,7 +117,7 @@ opencode auth [command] --- -#### acceso +#### login OpenCode funciona con la lista de proveedores en [Models.dev](https://models.dev), por lo que puede usar `opencode auth login` para configurar las claves API para cualquier proveedor que desee utilizar. Esto se almacena en `~/.local/share/opencode/auth.json`. @@ -129,7 +129,7 @@ Cuando se inicia OpenCode, carga los proveedores desde el archivo de credenciale --- -#### lista +#### list Enumera todos los proveedores autenticados tal como están almacenados en el archivo de credenciales. @@ -145,7 +145,7 @@ opencode auth ls --- -#### cerrar sesión +#### logout Cierra tu sesión de un proveedor eliminándolo del archivo de credenciales. @@ -165,7 +165,7 @@ opencode github [command] --- -#### instalar +#### install Instale el agente GitHub en su repositorio. @@ -177,7 +177,7 @@ Esto configura el flujo de trabajo de acciones GitHub necesario y lo guía a tra --- -#### correr +#### run Ejecute el agente GitHub. Esto se usa normalmente en acciones GitHub. @@ -185,9 +185,9 @@ Ejecute el agente GitHub. Esto se usa normalmente en acciones GitHub. opencode github run ``` -##### Banderas +##### Flags -| Bandera | Descripción | +| Flag | Description | | --------- | ---------------------------------------------- | | `--event` | GitHub evento simulado para ejecutar el agente | | `--token` | GitHub token de acceso personal | @@ -204,7 +204,7 @@ opencode mcp [command] --- -#### agregar +#### add Agregue un servidor MCP a su configuración. @@ -216,7 +216,7 @@ Este comando lo guiará para agregar un servidor MCP local o remoto. --- -#### lista +#### list Enumere todos los servidores MCP configurados y su estado de conexión. @@ -232,7 +232,7 @@ opencode mcp ls --- -#### autenticación +#### auth Autentíquese con un servidor MCP habilitado para OAuth. @@ -256,7 +256,7 @@ opencode mcp auth ls --- -#### cerrar sesión +#### logout Elimine las credenciales OAuth para un servidor MCP. @@ -266,7 +266,7 @@ opencode mcp logout [name] --- -#### depurar +#### debug Depurar problemas de conexión OAuth para un servidor MCP. @@ -276,7 +276,7 @@ opencode mcp debug --- -### modelos +### models Enumere todos los modelos disponibles de los proveedores configurados. @@ -294,9 +294,9 @@ Opcionalmente, puede pasar un ID de proveedor para filtrar modelos por ese prove opencode models anthropic ``` -#### Banderas +#### Flags -| Bandera | Descripción | +| Flag | Description | | ----------- | --------------------------------------------------------------------------- | | `--refresh` | Actualizar la caché de modelos desde models.dev | | `--verbose` | Utilice una salida del modelo más detallada (incluye metadatos como costos) | @@ -309,7 +309,7 @@ opencode models --refresh --- -### correr +### run Ejecute opencode en modo no interactivo pasando un mensaje directamente. @@ -333,9 +333,9 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### Banderas +#### Flags -| Bandera | Corto | Descripción | +| Flag | Short | Description | | ------------ | ----- | ----------------------------------------------------------------------------------- | | `--command` | | El comando a ejecutar, use mensaje para args | | `--continue` | `-c` | Continuar la última sesión | @@ -352,7 +352,7 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" --- -### atender +### serve Inicie un servidor OpenCode sin cabeza para acceso API. Consulte los [documentos del servidor](/docs/server) para conocer la interfaz HTTP completa. @@ -373,7 +373,7 @@ Esto inicia un servidor HTTP que proporciona acceso API a la funcionalidad openc --- -### sesión +### session Administrar OpenCode sesiones. @@ -383,7 +383,7 @@ opencode session [command] --- -#### lista +#### list Enumere todas las sesiones OpenCode. @@ -391,16 +391,16 @@ Enumere todas las sesiones OpenCode. opencode session list ``` -##### Banderas +##### Flags -| Bandera | Corto | Descripción | +| Flag | Short | Description | | ------------- | ----- | --------------------------------------- | | `--max-count` | `-n` | Limitar a N sesiones más recientes | | `--format` | | Formato de salida: tabla o json (tabla) | --- -### estadísticas +### stats Muestre el uso de tokens y las estadísticas de costos para sus sesiones OpenCode. @@ -408,9 +408,9 @@ Muestre el uso de tokens y las estadísticas de costos para sus sesiones OpenCod opencode stats ``` -#### Banderas +#### Flags -| Bandera | Descripción | +| Flag | Description | | ----------- | ------------------------------------------------------------------------------------------------------------------------ | | `--days` | Mostrar estadísticas de los últimos N días (todo el tiempo) | | `--tools` | Número de herramientas para mostrar (todas) | @@ -419,7 +419,7 @@ opencode stats --- -### exportar +### export Exportar datos de la sesión como JSON. @@ -431,7 +431,7 @@ Si no proporciona una ID de sesión, se le pedirá que seleccione entre las sesi --- -### importar +### import Importe datos de sesión desde un archivo JSON o una URL compartida OpenCode. @@ -479,9 +479,9 @@ opencode acp Este comando inicia un servidor ACP que se comunica a través de stdin/stdout usando nd-JSON. -#### Banderas +#### Flags -| Bandera | Descripción | +| Flag | Description | | ------------ | ---------------------------- | | `--cwd` | Directorio de trabajo | | `--port` | Puerto para escuchar | @@ -489,7 +489,7 @@ Este comando inicia un servidor ACP que se comunica a través de stdin/stdout us --- -### desinstalar +### uninstall Desinstale OpenCode y elimine todos los archivos relacionados. @@ -497,9 +497,9 @@ Desinstale OpenCode y elimine todos los archivos relacionados. opencode uninstall ``` -#### Banderas +#### Flags -| Bandera | Corto | Descripción | +| Flag | Short | Description | | --------------- | ----- | ----------------------------------------- | | `--keep-config` | `-c` | Mantener archivos de configuración | | `--keep-data` | `-d` | Conservar datos de sesión e instantáneas | @@ -508,7 +508,7 @@ opencode uninstall --- -### mejora +### upgrade Actualiza opencode a la última versión o a una versión específica. @@ -530,13 +530,13 @@ opencode upgrade v0.1.48 #### Banderas -| Bandera | Corto | Descripción | -| ---------- | ----- | ---------------------------------------------------------------------------- | -| `--method` | `-m` | El método de instalación que se utilizó; rizo, npm, pnpm, bollo, preparación | +| Bandera | Corto | Descripción | +| ---------- | ----- | ------------------------------------------------------------------- | +| `--method` | `-m` | El método de instalación que se utilizó; curl, npm, pnpm, bun, brew | --- -## Banderas globales +## Global Flags El opencode CLI toma las siguientes banderas globales. @@ -553,7 +553,7 @@ El opencode CLI toma las siguientes banderas globales. OpenCode se puede configurar mediante variables de entorno. -| Variables | Tipo | Descripción | +| Variable | Type | Description | | ------------------------------------- | -------- | ------------------------------------------------------------------------------- | | `OPENCODE_AUTO_SHARE` | booleano | Compartir sesiones automáticamente | | `OPENCODE_GIT_BASH_PATH` | cadena | Ruta al ejecutable de Git Bash en Windows | @@ -586,7 +586,7 @@ OpenCode se puede configurar mediante variables de entorno. Estas variables de entorno habilitan funciones experimentales que pueden cambiar o eliminarse. -| Variables | Tipo | Descripción | +| Variable | Type | Description | | ----------------------------------------------- | -------- | ---------------------------------------------------------- | | `OPENCODE_EXPERIMENTAL` | booleano | Habilitar todas las funciones experimentales | | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | booleano | Habilitar descubrimiento de íconos | diff --git a/packages/web/src/content/docs/es/lsp.mdx b/packages/web/src/content/docs/es/lsp.mdx index 1f4643abc2..eb9fda172b 100644 --- a/packages/web/src/content/docs/es/lsp.mdx +++ b/packages/web/src/content/docs/es/lsp.mdx @@ -182,7 +182,7 @@ Puede agregar servidores LSP personalizados especificando el comando y las exten PHP Intelephense ofrece funciones premium a través de una clave de licencia. Puede proporcionar una clave de licencia colocando (únicamente) la clave en un archivo de texto en: -- El macOS/Linux: `$HOME/intelephense/licence.txt` -- El Windows: `%USERPROFILE%/intelephense/licence.txt` +- El macOS/Linux: `$HOME/intelephense/license.txt` +- El Windows: `%USERPROFILE%/intelephense/license.txt` El archivo debe contener sólo la clave de licencia sin contenido adicional. diff --git a/packages/web/src/content/docs/fr/1-0.mdx b/packages/web/src/content/docs/fr/1-0.mdx index 522c221cd3..e8011c02af 100644 --- a/packages/web/src/content/docs/fr/1-0.mdx +++ b/packages/web/src/content/docs/fr/1-0.mdx @@ -55,13 +55,13 @@ Nous avons supprimé certaines fonctionnalités que nous n'étions pas sûrs que ### Raccourcis clavier supprimés - messages_layout_toggle -- messages_suivant -- messages_précédent -- fichier_diff_toggle -- recherche_fichier -- fichier_fermer -- liste_fichiers +- messages_next +- messages_previous +- file_diff_toggle +- file_search +- file_close +- file_list - app_help -- projet_init -- outil_détails -- blocs_de_pensée +- project_init +- tool_details +- thinking_blocks diff --git a/packages/web/src/content/docs/fr/acp.mdx b/packages/web/src/content/docs/fr/acp.mdx index bd9b66576a..d23d103590 100644 --- a/packages/web/src/content/docs/fr/acp.mdx +++ b/packages/web/src/content/docs/fr/acp.mdx @@ -9,7 +9,7 @@ OpenCode prend en charge le [Agent Client Protocol](https://agentclientprotocol. Pour obtenir une liste des éditeurs et des outils prenant en charge ACP, consultez le [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). ::: -ACP est un protocole ouvert qui standardise la communication entre les éditeurs de code et les agents de codage IA. +ACP est un protocole ouvert qui standardise la communication entre les éditeurs de code et les agents de codage AI. --- diff --git a/packages/web/src/content/docs/fr/agents.mdx b/packages/web/src/content/docs/fr/agents.mdx index 543b2105c8..14e5d5c266 100644 --- a/packages/web/src/content/docs/fr/agents.mdx +++ b/packages/web/src/content/docs/fr/agents.mdx @@ -46,17 +46,17 @@ OpenCode est livré avec deux agents principaux intégrés et deux sous-agents i --- -### Utiliser la construction +### Utiliser Build -*Mode* : `primary` +_Mode_ : `primary` Build est l'agent principal **par défaut** avec tous les outils activés. Il s'agit de l'agent standard pour les travaux de développement où vous avez besoin d'un accès complet aux opérations sur les fichiers et aux commandes système. --- -### Utiliser le forfait +### Utiliser Plan -*Mode* : `primary` +_Mode_ : `primary` Un agent restreint conçu pour la planification et l'analyse. Nous utilisons un système d'autorisation pour vous donner plus de contrôle et empêcher toute modification involontaire. Par défaut, tous les éléments suivants sont définis sur `ask` : @@ -68,41 +68,41 @@ Cet agent est utile lorsque vous souhaitez que LLM analyse le code, suggère des --- -### Utiliser général +### Utiliser General -*Mode* : `subagent` +_Mode_ : `subagent` Un agent polyvalent pour rechercher des questions complexes et exécuter des tâches en plusieurs étapes. Dispose d'un accès complet aux outils (sauf todo), il peut donc apporter des modifications aux fichiers en cas de besoin. Utilisez-le pour exécuter plusieurs unités de travail en parallèle. --- -### Utiliser explorer +### Utiliser Explore -*Mode* : `subagent` +_Mode_ : `subagent` Un agent rapide en lecture seule pour explorer les bases de code. Impossible de modifier les fichiers. Utilisez-le lorsque vous avez besoin de rechercher rapidement des fichiers par modèles, de rechercher du code par mots-clés ou de répondre à des questions sur la base de code. --- -### Utiliser le compactage +### Utiliser Compaction -*Mode* : `primary` +_Mode_ : `primary` Agent système caché qui compacte un contexte long en un résumé plus petit. Il s'exécute automatiquement en cas de besoin et n'est pas sélectionnable dans l'interface utilisateur. --- -### Utiliser le titre +### Utiliser Title -*Mode* : `primary` +_Mode_ : `primary` Agent système caché qui génère des titres de session courts. Il s'exécute automatiquement et n'est pas sélectionnable dans l'interface utilisateur. --- -### Utiliser le résumé +### Utiliser Summary -*Mode* : `primary` +_Mode_ : `primary` Agent système caché qui crée des résumés de session. Il s'exécute automatiquement et n'est pas sélectionnable dans l'interface utilisateur. diff --git a/packages/web/src/content/docs/fr/cli.mdx b/packages/web/src/content/docs/fr/cli.mdx index 506489eb3a..2b15c7f3e4 100644 --- a/packages/web/src/content/docs/fr/cli.mdx +++ b/packages/web/src/content/docs/fr/cli.mdx @@ -58,7 +58,7 @@ opencode agent [command] --- -### attacher +### attach Attachez un terminal à un serveur backend OpenCode déjà en cours d'exécution démarré via les commandes `serve` ou `web`. @@ -85,7 +85,7 @@ opencode attach http://10.20.30.40:4096 --- -#### créer +#### create Créez un nouvel agent avec une configuration personnalisée. @@ -97,7 +97,7 @@ Cette commande vous guidera dans la création d'un nouvel agent avec une invite --- -#### liste +#### list Répertoriez tous les agents disponibles. @@ -107,7 +107,7 @@ opencode agent list --- -### authentification +### auth Commande pour gérer les informations d’identification et la connexion des fournisseurs. @@ -117,7 +117,7 @@ opencode auth [command] --- -#### se connecter +#### login OpenCode est alimenté par la liste des fournisseurs sur [Models.dev](https://models.dev), vous pouvez donc utiliser `opencode auth login` pour configurer les clés API pour tout fournisseur que vous souhaitez utiliser. Ceci est stocké dans `~/.local/share/opencode/auth.json`. @@ -129,7 +129,7 @@ Lorsque OpenCode démarre, il charge les fournisseurs à partir du fichier d'inf --- -#### liste +#### list Répertorie tous les fournisseurs authentifiés tels qu'ils sont stockés dans le fichier d'informations d'identification. @@ -145,7 +145,7 @@ opencode auth ls --- -#### déconnexion +#### logout Vous déconnecte d'un fournisseur en l'effaçant du fichier d'informations d'identification. @@ -165,7 +165,7 @@ opencode github [command] --- -#### installer +#### install Installez l'agent GitHub dans votre référentiel. @@ -177,7 +177,7 @@ Cela configure le flux de travail GitHub Actions nécessaire et vous guide tout --- -#### courir +#### run Exécutez l'agent GitHub. Ceci est généralement utilisé dans les actions GitHub. @@ -204,7 +204,7 @@ opencode mcp [command] --- -#### ajouter +#### add Ajoutez un serveur MCP à votre configuration. @@ -216,7 +216,7 @@ Cette commande vous guidera dans l’ajout d’un serveur MCP local ou distant. --- -#### liste +#### list Répertoriez tous les serveurs MCP configurés et leur état de connexion. @@ -232,7 +232,7 @@ opencode mcp ls --- -#### authentification +#### auth Authentifiez-vous auprès d'un serveur MCP compatible OAuth. @@ -256,7 +256,7 @@ opencode mcp auth ls --- -#### déconnexion +#### logout Supprimez les informations d'identification OAuth pour un serveur MCP. @@ -266,7 +266,7 @@ opencode mcp logout [name] --- -#### déboguer +#### debug Déboguer les problèmes de connexion OAuth pour un serveur MCP. @@ -276,7 +276,7 @@ opencode mcp debug --- -### modèles +### models Répertoriez tous les modèles disponibles auprès des fournisseurs configurés. @@ -309,7 +309,7 @@ opencode models --refresh --- -### courir +### run Exécutez opencode en mode non interactif en transmettant directement une invite. @@ -352,7 +352,7 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" --- -### servir +### serve Démarrez un serveur OpenCode sans tête pour un accès API. Consultez le [serveur docs](/docs/server) pour l'interface complète HTTP. @@ -383,7 +383,7 @@ opencode session [command] --- -#### liste +#### list Répertoriez toutes les sessions OpenCode. @@ -400,7 +400,7 @@ opencode session list --- -### statistiques +### stats Affichez les statistiques d'utilisation et de coût des jetons pour vos sessions OpenCode. @@ -419,7 +419,7 @@ opencode stats --- -### exporter +### export Exportez les données de session sous JSON. @@ -431,7 +431,7 @@ Si vous ne fournissez pas d'ID de session, vous serez invité à sélectionner p --- -### importer +### import Importez les données de session à partir d'un fichier JSON ou d'un partage OpenCode URL. @@ -448,7 +448,7 @@ opencode import https://opncd.ai/s/abc123 --- -### la toile +### web Démarrez un serveur OpenCode sans tête avec une interface Web. @@ -489,7 +489,7 @@ Cette commande démarre un serveur ACP qui communique via stdin/stdout en utilis --- -### désinstaller +### uninstall Désinstallez OpenCode et supprimez tous les fichiers associés. @@ -508,7 +508,7 @@ opencode uninstall --- -### mise à niveau +### upgrade Met à jour opencode vers la dernière version ou une version spécifique. @@ -530,9 +530,9 @@ opencode upgrade v0.1.48 #### Drapeaux -| Drapeau | Court | Descriptif | -| ---------- | ----- | ----------------------------------------------------------------------- | -| `--method` | `-m` | La méthode d'installation utilisée ; curl, npm, pnpm, chignon, infusion | +| Drapeau | Court | Descriptif | +| ---------- | ----- | --------------------------------------------------------------- | +| `--method` | `-m` | La méthode d'installation utilisée ; curl, npm, pnpm, bun, brew | --- diff --git a/packages/web/src/content/docs/fr/commands.mdx b/packages/web/src/content/docs/fr/commands.mdx index f5ee8fa8b2..c7c5fc7e8c 100644 --- a/packages/web/src/content/docs/fr/commands.mdx +++ b/packages/web/src/content/docs/fr/commands.mdx @@ -218,7 +218,7 @@ Examinons les options de configuration en détail. --- -### Modèle +### Template L'option `template` définit l'invite qui sera envoyée au LLM lors de l'exécution de la commande. @@ -274,7 +274,7 @@ Il s'agit d'une option de configuration **facultative**. S’il n’est pas spé --- -### Sous-tâche +### Subtask Utilisez le booléen `subtask` pour forcer la commande à déclencher un invocation de [subagent](/docs/agents/#subagents). Ceci est utile si vous souhaitez que la commande ne pollue pas votre contexte principal et **force** l'agent à agir en tant que sous-agent, @@ -294,7 +294,7 @@ Il s'agit d'une option de configuration **facultative**. --- -### Modèle +### Model Utilisez la configuration `model` pour remplacer le modèle par défaut pour cette commande. diff --git a/packages/web/src/content/docs/fr/config.mdx b/packages/web/src/content/docs/fr/config.mdx index 9bce2d87e7..2bfcb98fea 100644 --- a/packages/web/src/content/docs/fr/config.mdx +++ b/packages/web/src/content/docs/fr/config.mdx @@ -57,7 +57,7 @@ Les répertoires `.opencode` et `~/.config/opencode` utilisent des **noms au plu --- -### Télécommande +### Remote Les organisations peuvent fournir une configuration par défaut via le point de terminaison `.well-known/opencode`. Ceci est récupéré automatiquement lorsque vous vous authentifiez auprès d’un fournisseur qui le prend en charge. @@ -93,7 +93,7 @@ Vous pouvez activer des serveurs spécifiques dans votre configuration locale : --- -### Mondial +### Global Placez votre configuration globale OpenCode dans `~/.config/opencode/opencode.json`. Utilisez la configuration globale pour les préférences de l'utilisateur telles que les thèmes, les fournisseurs ou les raccourcis clavier. @@ -481,7 +481,7 @@ Par exemple, pour garantir que les outils `edit` et `bash` nécessitent l'approb --- -### Compactage +### Compaction Vous pouvez contrôler le comportement de compactage du contexte via l'option `compaction`. @@ -500,7 +500,7 @@ Vous pouvez contrôler le comportement de compactage du contexte via l'option `c --- -### Observateur +### Watcher Vous pouvez configurer les modèles d'ignorance de l'observateur de fichiers via l'option `watcher`. @@ -565,7 +565,7 @@ Cela prend un tableau de chemins et de modèles globaux vers les fichiers d'inst --- -### Fournisseurs handicapés +### Disabled Providers Vous pouvez désactiver les fournisseurs chargés automatiquement via l'option `disabled_providers`. Ceci est utile lorsque vous souhaitez empêcher le chargement de certains fournisseurs même si leurs informations d'identification sont disponibles. @@ -588,7 +588,7 @@ L'option `disabled_providers` accepte un tableau d'ID de fournisseur. Lorsqu'un --- -### Fournisseurs activés +### Enabled Providers Vous pouvez spécifier une liste autorisée de fournisseurs via l'option `enabled_providers`. Une fois défini, seuls les fournisseurs spécifiés seront activés et tous les autres seront ignorés. diff --git a/packages/web/src/content/docs/fr/ecosystem.mdx b/packages/web/src/content/docs/fr/ecosystem.mdx index b95cdf7790..7ec695079c 100644 --- a/packages/web/src/content/docs/fr/ecosystem.mdx +++ b/packages/web/src/content/docs/fr/ecosystem.mdx @@ -28,7 +28,7 @@ Vous pouvez également consulter [awesome-opencode](https://github.com/awesome-o | [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Optimisez l'utilisation des jetons en éliminant les sorties d'outils obsolètes | | [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Ajoutez la prise en charge native de la recherche Web pour les fournisseurs pris en charge avec le style ancré par Google | | [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permet aux agents IA d'exécuter des processus en arrière-plan dans un PTY et de leur envoyer des entrées interactives. | -| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instructions pour les commandes shell non interactives - empêche les blocages des opérations dépendantes du téléscripteur | +| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instructions pour les commandes shell non interactives - empêche les blocages des opérations dépendantes du TTY | | [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Suivez l'utilisation de OpenCode avec Wakatime | | [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Nettoyer les tableaux Markdown produits par les LLM | | [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Édition de code 10 fois plus rapide avec Morph Fast Apply API et les marqueurs d'édition différée | diff --git a/packages/web/src/content/docs/fr/enterprise.mdx b/packages/web/src/content/docs/fr/enterprise.mdx index db38ab5ef1..b34bc7dbe6 100644 --- a/packages/web/src/content/docs/fr/enterprise.mdx +++ b/packages/web/src/content/docs/fr/enterprise.mdx @@ -19,7 +19,7 @@ Pour démarrer avec OpenCode Enterprise : --- -## Procès +## Essai OpenCode est open source et ne stocke aucune de vos données de code ou de contexte, vos développeurs peuvent donc simplement [commencer ](/docs/) et effectuer un essai. diff --git a/packages/web/src/content/docs/fr/formatters.mdx b/packages/web/src/content/docs/fr/formatters.mdx index 6830a8d9ae..852bc79796 100644 --- a/packages/web/src/content/docs/fr/formatters.mdx +++ b/packages/web/src/content/docs/fr/formatters.mdx @@ -13,30 +13,30 @@ OpenCode est livré avec plusieurs formateurs intégrés pour les langages et fr | Formateur | Rallonges | Exigences | | -------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- | -| gofmt | .aller | Commande `gofmt` disponible | -| mélanger | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Commande `mix` disponible | -| plus jolie | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml et [plus](https://prettier.io/docs/en/index.html) | Dépendance `prettier` dans `package.json` | +| gofmt | .go | Commande `gofmt` disponible | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Commande `mix` disponible | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml et [plus](https://prettier.io/docs/en/index.html) | Dépendance `prettier` dans `package.json` | | biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml et [plus](https://biomejs.dev/) | Fichier de configuration `biome.json(c)` | -| zigzag | .zig, .zon | Commande `zig` disponible | -| format clang | .c, .cpp, .h, .hpp, .ino et [plus](https://clang.llvm.org/docs/ClangFormat.html) | Fichier de configuration `.clang-format` | -| klint | .kt, .kts | Commande `ktlint` disponible | -| fraise | .py, .pyi | Commande `ruff` disponible avec config | +| zig | .zig, .zon | Commande `zig` disponible | +| clang-format | .c, .cpp, .h, .hpp, .ino et [plus](https://clang.llvm.org/docs/ClangFormat.html) | Fichier de configuration `.clang-format` | +| ktlint | .kt, .kts | Commande `ktlint` disponible | +| ruff | .py, .pyi | Commande `ruff` disponible avec config | | rustfmt | .rs | Commande `rustfmt` disponible | -| fret | .rs | Commande `cargo fmt` disponible | -| UV | .py, .pyi | Commande `uv` disponible | +| cargofmt | .rs | Commande `cargo fmt` disponible | +| uv | .py, .pyi | Commande `uv` disponible | | rubocop | .rb, .rake, .gemspec, .ru | Commande `rubocop` disponible | -| normerb | .rb, .rake, .gemspec, .ru | Commande `standardrb` disponible | +| standardrb | .rb, .rake, .gemspec, .ru | Commande `standardrb` disponible | | htmlbeautifier | .erb, .html.erb | Commande `htmlbeautifier` disponible | | air | .R | Commande `air` disponible | -| fléchette | .dart | Commande `dart` disponible | -| format ocaml | .ml, .mli | Commande `ocamlformat` disponible et fichier de configuration `.ocamlformat` | -| terraformer | .tf, .tfvars | Commande `terraform` disponible | -| lueur | .lueur | Commande `gleam` disponible | +| dart | .dart | Commande `dart` disponible | +| ocamlformat | .ml, .mli | Commande `ocamlformat` disponible et fichier de configuration `.ocamlformat` | +| terraform | .tf, .tfvars | Commande `terraform` disponible | +| gleam | .gleam | Commande `gleam` disponible | | nixfmt | .nix | Commande `nixfmt` disponible | | shfmt | .sh, .bash | Commande `shfmt` disponible | -| pinte | .php | Dépendance `laravel/pint` dans `composer.json` | +| pint | .php | Dépendance `laravel/pint` dans `composer.json` | | oxfmt (expérimental) | .js, .jsx, .ts, .tsx | Dépendance `oxfmt` dans `package.json` et un [flag de variable d'environnement expérimental](/docs/cli/#experimental) | -| bronze doré | .hs | Commande `ormolu` disponible | +| ormolu | .hs | Commande `ormolu` disponible | Ainsi, si votre projet a `prettier` dans votre `package.json`, OpenCode l'utilisera automatiquement. diff --git a/packages/web/src/content/docs/fr/github.mdx b/packages/web/src/content/docs/fr/github.mdx index c4b76dbd7e..2083dbcb9b 100644 --- a/packages/web/src/content/docs/fr/github.mdx +++ b/packages/web/src/content/docs/fr/github.mdx @@ -40,38 +40,38 @@ Rendez-vous sur [**github.com/apps/opencode-agent**](https://github.com/apps/ope Ajoutez le fichier de workflow suivant à `.github/workflows/opencode.yml` dans votre référentiel. Assurez-vous de définir les clés `model` appropriées et API requises dans `env`. ```yml title=".github/workflows/opencode.yml" {24,26} -name: opencode + name: opencode -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] + on: + issue_comment: + types: [created] + pull_request_review_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@v6 - with: - fetch-depth: 1 - persist-credentials: false + 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@v6 + with: + fetch-depth: 1 + persist-credentials: false - - name: Run OpenCode - uses: anomalyco/opencode/github@latest - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - with: - model: anthropic/claude-sonnet-4-20250514 - # share: true - # github_token: xxxx -``` + - name: Run OpenCode + uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + # share: true + # github_token: xxxx + ``` 3. **Stockez les clés API en secret** @@ -90,12 +90,12 @@ Dans les **paramètres** de votre organisation ou de votre projet, développez * Vous pouvez également utiliser le `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) intégré du GitHub Action Runner sans installer l'application OpenCode GitHub. Assurez-vous simplement d'accorder les autorisations requises dans votre flux de travail : ```yaml -permissions: - id-token: write - contents: write - pull-requests: write - issues: write -``` + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + ``` Vous pouvez également utiliser un [jetons d'accès personnels](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) si vous préférez. @@ -154,9 +154,9 @@ Pour les événements planifiés, l'entrée `prompt` est **obligatoire** car il --- -### Exemple de demande de tirage +### Exemple de Pull Request -Examinez automatiquement les PR lorsqu'ils sont ouverts ou mis à jour : +Examinez automatiquement les PR lorsqu'ils sont ouverts ou mis à jour : ```yaml title=".github/workflows/opencode-review.yml" name: opencode-review @@ -195,9 +195,9 @@ Pour les événements `pull_request`, si aucun `prompt` n'est fourni, OpenCode e --- -### Exemple de tri des problèmes +### Exemple de Issue Triage -Triez automatiquement les nouveaux problèmes. Cet exemple filtre les comptes datant de plus de 30 jours pour réduire le spam : +Triez automatiquement les nouveaux problèmes. Cet exemple filtre les comptes datant de plus de 30 jours pour réduire le spam : ```yaml title=".github/workflows/opencode-triage.yml" name: Issue Triage @@ -278,8 +278,8 @@ Voici quelques exemples de la façon dont vous pouvez utiliser OpenCode dans Git Ajoutez ce commentaire dans un numéro GitHub. ``` -/opencode explain this issue -``` + /opencode explain this issue + ``` OpenCode lira l'intégralité du fil de discussion, y compris tous les commentaires, et répondra avec une explication claire. @@ -288,8 +288,8 @@ OpenCode lira l'intégralité du fil de discussion, y compris tous les commentai Dans un numéro GitHub, dites : ``` -/opencode fix this -``` + /opencode fix this + ``` Et OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouvrira un PR avec les modifications. @@ -298,8 +298,8 @@ Et OpenCode créera une nouvelle branche, mettra en œuvre les modifications et Laissez le commentaire suivant sur un PR GitHub. ``` -Delete the attachment from S3 when the note is removed /oc -``` + Delete the attachment from S3 when the note is removed /oc + ``` OpenCode mettra en œuvre la modification demandée et la validera dans le même PR. @@ -308,9 +308,9 @@ OpenCode mettra en œuvre la modification demandée et la validera dans le même Laissez un commentaire directement sur les lignes de code dans l'onglet "Fichiers" du PR. OpenCode détecte automatiquement le fichier, les numéros de ligne et le contexte de comparaison pour fournir des réponses précises. ``` -[Comment on specific lines in Files tab] -/oc add error handling here -``` + [Comment on specific lines in Files tab] + /oc add error handling here + ``` Lorsqu'il commente des lignes spécifiques, OpenCode reçoit : diff --git a/packages/web/src/content/docs/fr/gitlab.mdx b/packages/web/src/content/docs/fr/gitlab.mdx index b24ce1f730..c2401d614e 100644 --- a/packages/web/src/content/docs/fr/gitlab.mdx +++ b/packages/web/src/content/docs/fr/gitlab.mdx @@ -169,8 +169,8 @@ Vous pouvez configurer pour utiliser une phrase de déclenchement différente de Ajoutez ce commentaire dans un numéro GitLab. ``` -@opencode explain this issue -``` + @opencode explain this issue + ``` OpenCode lira le problème et répondra avec une explication claire. @@ -179,8 +179,8 @@ OpenCode lira le problème et répondra avec une explication claire. Dans un numéro GitLab, dites : ``` -@opencode fix this -``` + @opencode fix this + ``` OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouvrira une demande de fusion avec les modifications. @@ -189,7 +189,7 @@ OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouv Laissez le commentaire suivant sur une demande de fusion GitLab. ``` -@opencode review this merge request -``` + @opencode review this merge request + ``` OpenCode examinera la demande de fusion et fournira des commentaires. diff --git a/packages/web/src/content/docs/fr/ide.mdx b/packages/web/src/content/docs/fr/ide.mdx index 74551fc6b5..1553c52237 100644 --- a/packages/web/src/content/docs/fr/ide.mdx +++ b/packages/web/src/content/docs/fr/ide.mdx @@ -40,9 +40,9 @@ Si l'extension ne parvient pas à s'installer automatiquement : - Assurez-vous que vous exécutez `opencode` dans le terminal intégré. - Confirmez que la CLI de votre IDE est installée : - - Pour VS Code : commande `code` - - Pour le curseur : commande `cursor` - - Pour la planche à voile : commande `windsurf` - - Pour VSCodium : commande `codium` + - Pour VS Code : commande `code` + - Pour Cursor : commande `cursor` + - Pour Windsurf : commande `windsurf` + - Pour VSCodium : commande `codium` - Sinon, exécutez `Cmd+Shift+P` (Mac) ou `Ctrl+Shift+P` (Windows/Linux) et recherchez « Commande Shell : installez la commande 'code' dans PATH » (ou l'équivalent pour votre IDE) - Assurez-vous que VS Code est autorisé à installer des extensions diff --git a/packages/web/src/content/docs/fr/index.mdx b/packages/web/src/content/docs/fr/index.mdx index 9024afb7b0..15ce5ff77e 100644 --- a/packages/web/src/content/docs/fr/index.mdx +++ b/packages/web/src/content/docs/fr/index.mdx @@ -229,16 +229,16 @@ suggérez plutôt _comment_ il implémentera la fonctionnalité. Accédez-y à l'aide de la touche **Tab**. Vous verrez un indicateur à cet effet dans le coin inférieur droit. ```bash frame="none" title="Switch to Plan mode" - -``` + + ``` Décrivons maintenant ce que nous voulons qu'il fasse. ```txt frame="none" -When a user deletes a note, we'd like to flag it as deleted in the database. -Then create a screen that shows all the recently deleted notes. -From this screen, the user can undelete a note or permanently delete it. -``` + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. + ``` Vous souhaitez donner à OpenCode suffisamment de détails pour comprendre ce que vous voulez. Ça aide pour lui parler comme si vous parliez à un développeur junior de votre équipe. @@ -253,9 +253,9 @@ vouloir. Une fois qu'il vous donne un plan, vous pouvez lui faire part de vos commentaires ou ajouter plus de détails. ```txt frame="none" -We'd like to design this new screen using a design I've used before. -[Image #1] Take a look at this image and use it as a reference. -``` + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. + ``` :::tip Faites glisser et déposez des images dans le terminal pour les ajouter à l'invite. @@ -266,18 +266,18 @@ faites-le en faisant glisser et en déposant une image dans le terminal. 3. **Créez la fonctionnalité** -Une fois que vous vous sentez à l'aise avec le plan, revenez au _Mode Construction_ en +Une fois que vous vous sentez à l'aise avec le plan, revenez au _Mode Build_ en appuyer à nouveau sur la touche **Tab**. ```bash frame="none" - -``` + + ``` Et lui demander d'apporter les modifications. ```bash frame="none" -Sounds good! Go ahead and make the changes. -``` + Sounds good! Go ahead and make the changes. + ``` --- diff --git a/packages/web/src/content/docs/fr/keybinds.mdx b/packages/web/src/content/docs/fr/keybinds.mdx index 7c47d129bd..d998eeb62a 100644 --- a/packages/web/src/content/docs/fr/keybinds.mdx +++ b/packages/web/src/content/docs/fr/keybinds.mdx @@ -105,7 +105,7 @@ OpenCode a une liste de raccourcis clavier que vous pouvez personnaliser via la --- -## Clé du leader +## Leader key OpenCode utilise une touche `leader` pour la plupart des raccourcis clavier. Cela évite les conflits dans votre terminal. @@ -156,9 +156,9 @@ L'entrée d'invite de l'application de bureau OpenCode prend en charge les racco Certains terminaux n'envoient pas de touches de modification avec Entrée par défaut. Vous devrez peut-être configurer votre terminal pour envoyer `Shift+Enter` comme séquence d'échappement. -### Borne Windows +### Windows Terminal -Ouvrez votre `settings.json` à : +Ouvrez votre `settings.json` à : ``` %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json diff --git a/packages/web/src/content/docs/fr/lsp.mdx b/packages/web/src/content/docs/fr/lsp.mdx index 4cc61532af..ceeda45a8d 100644 --- a/packages/web/src/content/docs/fr/lsp.mdx +++ b/packages/web/src/content/docs/fr/lsp.mdx @@ -11,40 +11,40 @@ OpenCode s'intègre à votre protocole de serveur de langue (LSP) pour aider le OpenCode est livré avec plusieurs serveurs LSP intégrés pour les langues populaires : -| Serveur LSP | Rallonges | Exigences | -| ------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| astro | .astro | Installations automatiques pour les projets Astro | -| coup | .sh, .bash, .zsh, .ksh | Installe automatiquement le serveur bash-langage | -| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Installations automatiques pour les projets C/C++ | -| cpointu | .cs | `.NET SDK` installé | -| clojure-lsp | .clj, .cljs, .cljc, .edn | Commande `clojure-lsp` disponible | -| fléchette | .dart | Commande `dart` disponible | -| déno | .ts, .tsx, .js, .jsx, .mjs | Commande `deno` disponible (détection automatique deno.json/deno.jsonc) | -| élixir-ls | .ex, .ex | Commande `elixir` disponible | -| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Dépendance `eslint` dans le projet | -| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` installé | -| lueur | .lueur | Commande `gleam` disponible | -| gopls | .aller | Commande `go` disponible | -| hls | .hs, .lhs | Commande `haskell-language-server-wrapper` disponible | -| jdtls | .java | `Java SDK (version 21+)` installé | -| kotlin-ls | .kt, .kts | Installations automatiques pour les projets Kotlin | -| lua-ls | .lua | Installations automatiques pour les projets Lua | -| rien | .nix | Commande `nixd` disponible | -| ocaml-lsp | .ml, .mli | Commande `ocamllsp` disponible | -| plinthe de boeuf | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Dépendance `oxlint` dans le projet | -| php intelligence | .php | Installations automatiques pour les projets PHP | -| prisme | .prisma | Commande `prisma` disponible | -| droit d'auteur | .py, .pyi | Dépendance `pyright` installée | -| rubis-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Commandes `ruby` et `gem` disponibles | -| rouille | .rs | Commande `rust-analyzer` disponible | -| sourcekit-lsp | .swift, .objc, .objcpp | `swift` installé (`xcode` sur macOS) | -| svelte | .svelte | Installations automatiques pour les projets Svelte | -| terraformer | .tf, .tfvars | Installations automatiques à partir des versions GitHub | -| petite brume | .typ, .typc | Installations automatiques à partir des versions GitHub | -| dactylographié | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Dépendance `typescript` dans le projet | -| vue | .vue | Installations automatiques pour les projets Vue | -| yaml-ls | .yaml, .yml | Installe automatiquement le serveur yaml-langage-Red Hat | -| zls | .zig, .zon | Commande `zig` disponible | +| Serveur LSP | Rallonges | Exigences | +| ------------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| astro | .astro | Installations automatiques pour les projets Astro | +| bash | .sh, .bash, .zsh, .ksh | Installe automatiquement le serveur bash-langage | +| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Installations automatiques pour les projets C/C++ | +| csharp | .cs | `.NET SDK` installé | +| clojure-lsp | .clj, .cljs, .cljc, .edn | Commande `clojure-lsp` disponible | +| dart | .dart | Commande `dart` disponible | +| deno | .ts, .tsx, .js, .jsx, .mjs | Commande `deno` disponible (détection automatique deno.json/deno.jsonc) | +| elixir-ls | .ex, .ex | Commande `elixir` disponible | +| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Dépendance `eslint` dans le projet | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` installé | +| gleam | .gleam | Commande `gleam` disponible | +| gopls | .go | Commande `go` disponible | +| hls | .hs, .lhs | Commande `haskell-language-server-wrapper` disponible | +| jdtls | .java | `Java SDK (version 21+)` installé | +| kotlin-ls | .kt, .kts | Installations automatiques pour les projets Kotlin | +| lua-ls | .lua | Installations automatiques pour les projets Lua | +| nixd | .nix | Commande `nixd` disponible | +| ocaml-lsp | .ml, .mli | Commande `ocamllsp` disponible | +| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Dépendance `oxlint` dans le projet | +| php intelephense | .php | Installations automatiques pour les projets PHP | +| prisma | .prisma | Commande `prisma` disponible | +| pyright | .py, .pyi | Dépendance `pyright` installée | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Commandes `ruby` et `gem` disponibles | +| rust | .rs | Commande `rust-analyzer` disponible | +| sourcekit-lsp | .swift, .objc, .objcpp | `swift` installé (`xcode` sur macOS) | +| svelte | .svelte | Installations automatiques pour les projets Svelte | +| terraform | .tf, .tfvars | Installations automatiques à partir des versions GitHub | +| tinymist | .typ, .typc | Installations automatiques à partir des versions GitHub | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Dépendance `typescript` dans le projet | +| vue | .vue | Installations automatiques pour les projets Vue | +| yaml-ls | .yaml, .yml | Installe automatiquement le serveur yaml-langage-Red Hat | +| zls | .zig, .zon | Commande `zig` disponible | Les serveurs LSP sont automatiquement activés lorsque l'une des extensions de fichier ci-dessus est détectée et que les exigences sont remplies. @@ -178,11 +178,11 @@ Vous pouvez ajouter des serveurs LSP personnalisés en spécifiant les extension ## Informations Complémentaires -### PHP Intelligence +### PHP Intelephense -PHP Intelephense offre des fonctionnalités premium via une clé de licence. Vous pouvez fournir une clé de licence en plaçant (uniquement) la clé dans un fichier texte à l'adresse : +PHP Intelephense offre des fonctionnalités premium via une clé de licence. Vous pouvez fournir une clé de licence en plaçant (uniquement) la clé dans un fichier texte à l'adresse : -- Le macOS/Linux : `$HOME/intelephense/licence.txt` -- Le Windows : `%USERPROFILE%/intelephense/licence.txt` +- Le macOS/Linux : `$HOME/intelephense/license.txt` +- Le Windows : `%USERPROFILE%/intelephense/license.txt` Le fichier doit contenir uniquement la clé de licence sans contenu supplémentaire. diff --git a/packages/web/src/content/docs/fr/mcp-servers.mdx b/packages/web/src/content/docs/fr/mcp-servers.mdx index 960746eb42..4c703bfa32 100644 --- a/packages/web/src/content/docs/fr/mcp-servers.mdx +++ b/packages/web/src/content/docs/fr/mcp-servers.mdx @@ -67,7 +67,7 @@ Vos valeurs de configuration locales remplacent les valeurs par défaut distante --- -## Locale +## Local Ajoutez des serveurs MCP locaux en utilisant `type` à `"local"` dans l'objet MCP. @@ -126,7 +126,7 @@ Voici toutes les options pour configurer un serveur MCP local. --- -## Télécommande +## Remote Ajoutez des serveurs MCP distants en définissant `type` sur `"remote"`. @@ -295,7 +295,7 @@ Vos MCP sont disponibles sous forme d'outils dans OpenCode, aux côtés des outi --- -### Mondial +### Global Cela signifie que vous pouvez les activer ou les désactiver globalement. @@ -400,7 +400,7 @@ Vous trouverez ci-dessous des exemples de serveurs MCP courants. Vous pouvez sou --- -### Sentinelle +### Sentry Ajoutez le [serveur Sentry MCP](https://mcp.sentry.dev) pour interagir avec vos projets et problèmes Sentry. @@ -482,7 +482,7 @@ When you need to search docs, use `context7` tools. --- -### Grep de Vercel +### Grep by Vercel Ajoutez le serveur [Grep by Vercel](https://grep.app) MCP pour rechercher des extraits de code sur GitHub. diff --git a/packages/web/src/content/docs/fr/models.mdx b/packages/web/src/content/docs/fr/models.mdx index cffe43f5dd..95e689ff80 100644 --- a/packages/web/src/content/docs/fr/models.mdx +++ b/packages/web/src/content/docs/fr/models.mdx @@ -42,7 +42,7 @@ Voici plusieurs modèles qui fonctionnent bien avec OpenCode, sans ordre particu - Claude Opus 4.5 - Claude Sonnet 4.5 - Minimax M2.1 -- Gémeaux 3 Pro +- Gemini 3 Pro --- @@ -139,9 +139,9 @@ Vous pouvez également définir des variantes personnalisées qui étendent cell De nombreux modèles prennent en charge plusieurs variantes avec différentes configurations. OpenCode est livré avec des variantes par défaut intégrées pour les fournisseurs populaires. -### Variantes intégrées +### Built-in variants -OpenCode est livré avec des variantes par défaut pour de nombreux fournisseurs : +OpenCode est livré avec des variantes par défaut pour de nombreux fournisseurs : **Anthropic** : @@ -195,7 +195,7 @@ Vous pouvez remplacer les variantes existantes ou ajouter les vôtres : } ``` -### Variantes de cycles +### Cycle variants Utilisez le raccourci clavier `variant_cycle` pour basculer rapidement entre les variantes. [En savoir plus](/docs/keybinds). diff --git a/packages/web/src/content/docs/fr/modes.mdx b/packages/web/src/content/docs/fr/modes.mdx index 177fb15c7c..49362c066e 100644 --- a/packages/web/src/content/docs/fr/modes.mdx +++ b/packages/web/src/content/docs/fr/modes.mdx @@ -23,7 +23,7 @@ opencode est livré avec deux modes intégrés. --- -### Construire +### Build Build est le mode **par défaut** avec tous les outils activés. Il s'agit du mode standard pour le travail de développement dans lequel vous avez besoin d'un accès complet aux opérations sur les fichiers et aux commandes système. @@ -322,10 +322,10 @@ Priorities: Voici quelques cas d’utilisation courants pour différents modes. -- **Mode build** : travail de développement complet avec tous les outils activés -- **Mode Plan** : Analyse et planification sans apporter de modifications -- **Mode révision** : révision du code avec accès en lecture seule et outils de documentation -- **Mode débogage** : axé sur l'investigation avec les outils bash et read activés -- **Mode Docs** : écriture de documentation avec des opérations sur les fichiers mais pas de commandes système +- **Mode Build** : travail de développement complet avec tous les outils activés +- **Mode Plan** : Analyse et planification sans apporter de modifications +- **Mode Review** : révision du code avec accès en lecture seule et outils de documentation +- **Mode Debug** : axé sur l'investigation avec les outils bash et read activés +- **Mode Docs** : écriture de documentation avec des opérations sur les fichiers mais pas de commandes système Vous constaterez peut-être également que différents modèles conviennent à différents cas d’utilisation. diff --git a/packages/web/src/content/docs/fr/network.mdx b/packages/web/src/content/docs/fr/network.mdx index 4f45342e0f..91b9ac35d1 100644 --- a/packages/web/src/content/docs/fr/network.mdx +++ b/packages/web/src/content/docs/fr/network.mdx @@ -7,7 +7,7 @@ OpenCode prend en charge les variables d'environnement proxy standard et les cer --- -## Procuration +## Proxy OpenCode respecte les variables d'environnement proxy standard. @@ -30,7 +30,7 @@ Vous pouvez configurer le port et le nom d'hôte du serveur à l'aide de [CLI fl --- -### Authentifier +### Authentication Si votre proxy nécessite une authentification de base, incluez les informations d'identification dans le URL. diff --git a/packages/web/src/content/docs/fr/providers.mdx b/packages/web/src/content/docs/fr/providers.mdx index e6cb51948c..69be63f5a9 100644 --- a/packages/web/src/content/docs/fr/providers.mdx +++ b/packages/web/src/content/docs/fr/providers.mdx @@ -140,40 +140,40 @@ Pour utiliser Amazon Bedrock avec OpenCode : Définissez l'une de ces variables d'environnement lors de l'exécution de opencode : ```bash -# Option 1: Using AWS access keys -AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode + # Option 1: Using AWS access keys + AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode -# Option 2: Using named AWS profile -AWS_PROFILE=my-profile opencode + # Option 2: Using named AWS profile + AWS_PROFILE=my-profile opencode -# Option 3: Using Bedrock bearer token -AWS_BEARER_TOKEN_BEDROCK=XXX opencode -``` + # Option 3: Using Bedrock bearer token + AWS_BEARER_TOKEN_BEDROCK=XXX opencode + ``` Ou ajoutez-les à votre profil bash : ```bash title="~/.bash_profile" -export AWS_PROFILE=my-dev-profile -export AWS_REGION=us-east-1 -``` + export AWS_PROFILE=my-dev-profile + export AWS_REGION=us-east-1 + ``` #### Fichier de configuration (recommandé) Pour une configuration spécifique au projet ou persistante, utilisez `opencode.json` : ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` **Options disponibles :** @@ -190,19 +190,19 @@ Les options du fichier de configuration sont prioritaires sur les variables d'en Si vous utilisez des points de terminaison d'un VPC pour Bedrock : ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` :::note L'option `endpoint` est un alias pour l'option générique `baseURL`, utilisant la terminologie spécifique à AWS. Si `endpoint` et `baseURL` sont spécifiés, `endpoint` est prioritaire. @@ -333,8 +333,8 @@ Si vous rencontrez des erreurs « Je suis désolé, mais je ne peux pas vous aid Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" -export AZURE_RESOURCE_NAME=XXX -``` + export AZURE_RESOURCE_NAME=XXX + ``` 6. Exécutez la commande `/models` pour sélectionner votre modèle déployé. @@ -380,8 +380,8 @@ export AZURE_RESOURCE_NAME=XXX Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" -export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX -``` + export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX + ``` 6. Exécutez la commande `/models` pour sélectionner votre modèle déployé. @@ -476,8 +476,8 @@ Cloudflare AI Gateway vous permet d'accéder aux modèles de OpenAI, Anthropic, Ou définissez-le comme variable d'environnement. ```bash title="~/.bash_profile" -export CLOUDFLARE_API_TOKEN=your-api-token -``` + export CLOUDFLARE_API_TOKEN=your-api-token + ``` 5. Exécutez la commande `/models` pour sélectionner un modèle. @@ -488,18 +488,18 @@ export CLOUDFLARE_API_TOKEN=your-api-token Vous pouvez également ajouter des modèles via votre configuration opencode. ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } + } + ``` --- @@ -673,8 +673,8 @@ Sélectionnez **OAuth** et votre navigateur s'ouvrira pour autorisation. 6. Exécutez la commande `/models` pour voir les modèles disponibles. ```txt - /models - ``` + /models + ``` Trois modèles basés sur Claude sont disponibles : @@ -847,16 +847,16 @@ Pour utiliser Google Vertex AI avec OpenCode : Définissez-les lors de l'exécution de opencode. ```bash -GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode -``` + GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode + ``` Ou ajoutez-les à votre profil bash. ```bash title="~/.bash_profile" -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json -export GOOGLE_CLOUD_PROJECT=your-project-id -export VERTEX_LOCATION=global -``` + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json + export GOOGLE_CLOUD_PROJECT=your-project-id + export VERTEX_LOCATION=global + ``` :::tip La région `global` améliore la disponibilité et réduit les erreurs sans frais supplémentaires. Utilisez des points de terminaison régionaux (par exemple, `us-central1`) pour les exigences de résidence des données. [En savoir plus](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -1394,17 +1394,17 @@ OpenCode Zen est une liste de modèles testés et vérifiés fournie par l'équi Vous pouvez également ajouter des modèles supplémentaires via votre configuration opencode. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` 5. Vous pouvez également les personnaliser via votre configuration opencode. Voici un exemple de spécification d'un fournisseur @@ -1458,14 +1458,14 @@ SAP AI Core donne accès à plus de 40 modèles de OpenAI, Anthropic, Google, Am Ou définissez la variable d'environnement `AICORE_SERVICE_KEY` : ```bash -AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode -``` + AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode + ``` Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" -export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' -``` + export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' + ``` 4. Définissez éventuellement l'ID de déploiement et le groupe de ressources : @@ -1735,17 +1735,17 @@ Si vous êtes abonné au **Plan de codage GLM**, sélectionnez **Plan de codage Vous pouvez également ajouter des modèles supplémentaires via votre configuration opencode. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` --- diff --git a/packages/web/src/content/docs/it/config.mdx b/packages/web/src/content/docs/it/config.mdx index 150ac0c82b..bdfbb6401f 100644 --- a/packages/web/src/content/docs/it/config.mdx +++ b/packages/web/src/content/docs/it/config.mdx @@ -235,9 +235,9 @@ Puoi configurare provider e modelli da usare in OpenCode tramite le opzioni `pro } ``` -The `small_model` option configures a separate model for lightweight tasks like title generation. By default, OpenCode tries to use a cheaper model if one is available from your provider, otherwise it falls back to your main model. +L'opzione `small_model` configura un modello separato per task leggeri come la generazione dei titoli. Per impostazione predefinita, OpenCode prova a usare un modello più economico se disponibile dal tuo provider, altrimenti fa fallback sul tuo modello principale. -Provider options can include `timeout` and `setCacheKey`: +Le opzioni del provider possono includere `timeout` e `setCacheKey`: ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/it/lsp.mdx b/packages/web/src/content/docs/it/lsp.mdx index 6480bc590f..765475dba0 100644 --- a/packages/web/src/content/docs/it/lsp.mdx +++ b/packages/web/src/content/docs/it/lsp.mdx @@ -182,7 +182,7 @@ Puoi aggiungere server LSP personalizzati specificando il comando e le estension PHP Intelephense offre funzionalita premium tramite una chiave di licenza. Puoi fornire la chiave inserendo (solo) la chiave in un file di testo in: -- Su macOS/Linux: `$HOME/intelephense/licence.txt` -- Su Windows: `%USERPROFILE%/intelephense/licence.txt` +- Su macOS/Linux: `$HOME/intelephense/license.txt` +- Su Windows: `%USERPROFILE%/intelephense/license.txt` Il file deve contenere solo la chiave di licenza, senza contenuti aggiuntivi. diff --git a/packages/web/src/content/docs/it/providers.mdx b/packages/web/src/content/docs/it/providers.mdx index dc032d0df1..7dddc36f9c 100644 --- a/packages/web/src/content/docs/it/providers.mdx +++ b/packages/web/src/content/docs/it/providers.mdx @@ -97,15 +97,15 @@ Non vedi un provider qui? Invia una PR. ### 302.AI -1. Head over to the [302.AI console](https://302.ai/), create an account, and generate an API key. +1. Vai alla [console di 302.AI](https://302.ai/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **302.AI**. +2. Esegui il comando `/connect` e cerca **302.AI**. ```txt /connect ``` -3. Enter your 302.AI API key. +3. Inserisci la tua chiave API di 302.AI. ```txt ┌ API key @@ -114,7 +114,7 @@ Non vedi un provider qui? Invia una PR. └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models @@ -124,20 +124,20 @@ Non vedi un provider qui? Invia una PR. ### Amazon Bedrock -To use Amazon Bedrock with OpenCode: +Per usare Amazon Bedrock con OpenCode: -1. Head over to the **Model catalog** in the Amazon Bedrock console and request - access to the models you want. +1. Vai al **Model catalog** nella console Amazon Bedrock e richiedi + accesso ai modelli che vuoi usare. :::tip - You need to have access to the model you want in Amazon Bedrock. + Devi avere accesso al modello che vuoi in Amazon Bedrock. ::: -2. **Configure authentication** using one of the following methods: +2. **Configura l'autenticazione** usando uno dei seguenti metodi: - #### Environment Variables (Quick Start) + #### Variabili d'ambiente (Avvio rapido) - Set one of these environment variables while running opencode: + Imposta una di queste variabili d'ambiente mentre esegui opencode: ```bash # Option 1: Using AWS access keys @@ -150,16 +150,16 @@ To use Amazon Bedrock with OpenCode: AWS_BEARER_TOKEN_BEDROCK=XXX opencode ``` - Or add them to your bash profile: + Oppure aggiungile al tuo profilo bash: ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 ``` - #### Configuration File (Recommended) + #### File di configurazione (Consigliato) - For project-specific or persistent configuration, use `opencode.json`: + Per configurazione specifica del progetto o persistente, usa `opencode.json`: ```json title="opencode.json" { @@ -175,18 +175,18 @@ To use Amazon Bedrock with OpenCode: } ``` - **Available options:** - - `region` - AWS region (e.g., `us-east-1`, `eu-west-1`) - - `profile` - AWS named profile from `~/.aws/credentials` - - `endpoint` - Custom endpoint URL for VPC endpoints (alias for generic `baseURL` option) + **Opzioni disponibili:** + - `region` - Regione AWS (ad es. `us-east-1`, `eu-west-1`) + - `profile` - Profilo AWS nominato da `~/.aws/credentials` + - `endpoint` - URL endpoint personalizzato per VPC endpoints (alias per l'opzione generica `baseURL`) :::tip - Configuration file options take precedence over environment variables. + Le opzioni del file di configurazione hanno la precedenza sulle variabili d'ambiente. ::: - #### Advanced: VPC Endpoints + #### Avanzato: VPC Endpoints - If you're using VPC endpoints for Bedrock: + Se stai usando VPC endpoints per Bedrock: ```json title="opencode.json" { @@ -204,33 +204,33 @@ To use Amazon Bedrock with OpenCode: ``` :::note - The `endpoint` option is an alias for the generic `baseURL` option, using AWS-specific terminology. If both `endpoint` and `baseURL` are specified, `endpoint` takes precedence. + L'opzione `endpoint` è un alias per l'opzione generica `baseURL`, usando terminologia specifica AWS. Se vengono specificati sia `endpoint` sia `baseURL`, `endpoint` ha la precedenza. ::: - #### Authentication Methods - - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: Create an IAM user and generate access keys in the AWS Console - - **`AWS_PROFILE`**: Use named profiles from `~/.aws/credentials`. First configure with `aws configure --profile my-profile` or `aws sso login` - - **`AWS_BEARER_TOKEN_BEDROCK`**: Generate long-term API keys from the Amazon Bedrock console - - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: For EKS IRSA (IAM Roles for Service Accounts) or other Kubernetes environments with OIDC federation. These environment variables are automatically injected by Kubernetes when using service account annotations. + #### Metodi di autenticazione + - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: Crea un utente IAM e genera chiavi di accesso nella Console AWS + - **`AWS_PROFILE`**: Usa profili nominati da `~/.aws/credentials`. Configura prima con `aws configure --profile my-profile` o `aws sso login` + - **`AWS_BEARER_TOKEN_BEDROCK`**: Genera chiavi API a lungo termine dalla console Amazon Bedrock + - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: Per EKS IRSA (IAM Roles for Service Accounts) o altri ambienti Kubernetes con federazione OIDC. Queste variabili d'ambiente vengono iniettate automaticamente da Kubernetes quando usi le annotazioni del service account. - #### Authentication Precedence + #### Precedenza autenticazione - Amazon Bedrock uses the following authentication priority: - 1. **Bearer Token** - `AWS_BEARER_TOKEN_BEDROCK` environment variable or token from `/connect` command - 2. **AWS Credential Chain** - Profile, access keys, shared credentials, IAM roles, Web Identity Tokens (EKS IRSA), instance metadata + Amazon Bedrock usa la seguente priorità di autenticazione: + 1. **Bearer Token** - Variabile d'ambiente `AWS_BEARER_TOKEN_BEDROCK` o token dal comando `/connect` + 2. **AWS Credential Chain** - Profilo, chiavi di accesso, credenziali condivise, ruoli IAM, Web Identity Tokens (EKS IRSA), metadati istanza :::note - When a bearer token is set (via `/connect` or `AWS_BEARER_TOKEN_BEDROCK`), it takes precedence over all AWS credential methods including configured profiles. + Quando è impostato un bearer token (tramite `/connect` o `AWS_BEARER_TOKEN_BEDROCK`), ha la precedenza su tutti i metodi di credenziali AWS inclusi i profili configurati. ::: -3. Run the `/models` command to select the model you want. +3. Esegui il comando `/models` per selezionare il modello che vuoi. ```txt /models ``` :::note -For custom inference profiles, use the model and provider name in the key and set the `id` property to the arn. This ensures correct caching: +Per profili di inferenza personalizzati, usa il nome del modello e del provider nella chiave e imposta la proprietà `id` all'arn. Questo assicura una cache corretta: ```json title="opencode.json" { @@ -254,14 +254,14 @@ For custom inference profiles, use the model and provider name in the key and se ### Anthropic -1. Once you've signed up, run the `/connect` command and select Anthropic. +1. Una volta registrato, esegui il comando `/connect` e seleziona Anthropic. ```txt /connect ``` -2. Here you can select the **Claude Pro/Max** option and it'll open your browser - and ask you to authenticate. +2. Qui puoi selezionare l'opzione **Claude Pro/Max**: aprirà il tuo browser + e ti chiederà di autenticarti. ```txt ┌ Select auth method @@ -272,47 +272,47 @@ For custom inference profiles, use the model and provider name in the key and se └ ``` -3. Now all the Anthropic models should be available when you use the `/models` command. +3. Ora tutti i modelli Anthropic dovrebbero essere disponibili quando usi il comando `/models`. ```txt /models ``` :::info -Using your Claude Pro/Max subscription in OpenCode is not officially supported by [Anthropic](https://anthropic.com). +L'uso dell'abbonamento Claude Pro/Max in OpenCode non è ufficialmente supportato da [Anthropic](https://anthropic.com). ::: -##### Using API keys +##### Usare chiavi API -You can also select **Create an API Key** if you don't have a Pro/Max subscription. It'll also open your browser and ask you to login to Anthropic and give you a code you can paste in your terminal. +Puoi anche selezionare **Create an API Key** se non hai un abbonamento Pro/Max. Aprirà il browser, ti chiederà di accedere ad Anthropic e ti darà un codice da incollare nel terminal. -Or if you already have an API key, you can select **Manually enter API Key** and paste it in your terminal. +Oppure se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminal. --- ### Azure OpenAI :::note -If you encounter "I'm sorry, but I cannot assist with that request" errors, try changing the content filter from **DefaultV2** to **Default** in your Azure resource. +Se incontri errori "I'm sorry, but I cannot assist with that request", prova a cambiare il filtro contenuti da **DefaultV2** a **Default** nella tua risorsa Azure. ::: -1. Head over to the [Azure portal](https://portal.azure.com/) and create an **Azure OpenAI** resource. You'll need: - - **Resource name**: This becomes part of your API endpoint (`https://RESOURCE_NAME.openai.azure.com/`) - - **API key**: Either `KEY 1` or `KEY 2` from your resource +1. Vai al [portale Azure](https://portal.azure.com/) e crea una risorsa **Azure OpenAI**. Ti serviranno: + - **Resource name**: Diventa parte del tuo endpoint API (`https://RESOURCE_NAME.openai.azure.com/`) + - **API key**: O `KEY 1` o `KEY 2` dalla tua risorsa -2. Go to [Azure AI Foundry](https://ai.azure.com/) and deploy a model. +2. Vai su [Azure AI Foundry](https://ai.azure.com/) e fai il deploy di un modello. :::note - The deployment name must match the model name for opencode to work properly. + Il nome del deployment deve corrispondere al nome del modello affinché opencode funzioni correttamente. ::: -3. Run the `/connect` command and search for **Azure**. +3. Esegui il comando `/connect` e cerca **Azure**. ```txt /connect ``` -4. Enter your API key. +4. Inserisci la tua chiave API. ```txt ┌ API key @@ -321,19 +321,19 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try └ enter ``` -5. Set your resource name as an environment variable: +5. Imposta il nome della risorsa come variabile d'ambiente: ```bash AZURE_RESOURCE_NAME=XXX opencode ``` - Or add it to your bash profile: + Oppure aggiungilo al tuo profilo bash: ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX ``` -6. Run the `/models` command to select your deployed model. +6. Esegui il comando `/models` per selezionare il tuo modello deployato. ```txt /models @@ -343,23 +343,23 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try ### Azure Cognitive Services -1. Head over to the [Azure portal](https://portal.azure.com/) and create an **Azure OpenAI** resource. You'll need: - - **Resource name**: This becomes part of your API endpoint (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) - - **API key**: Either `KEY 1` or `KEY 2` from your resource +1. Vai al [portale Azure](https://portal.azure.com/) e crea una risorsa **Azure OpenAI**. Ti serviranno: + - **Resource name**: Diventa parte del tuo endpoint API (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) + - **API key**: O `KEY 1` o `KEY 2` dalla tua risorsa -2. Go to [Azure AI Foundry](https://ai.azure.com/) and deploy a model. +2. Vai su [Azure AI Foundry](https://ai.azure.com/) e fai il deploy di un modello. :::note - The deployment name must match the model name for opencode to work properly. + Il nome del deployment deve corrispondere al nome del modello affinché opencode funzioni correttamente. ::: -3. Run the `/connect` command and search for **Azure Cognitive Services**. +3. Esegui il comando `/connect` e cerca **Azure Cognitive Services**. ```txt /connect ``` -4. Enter your API key. +4. Inserisci la tua chiave API. ```txt ┌ API key @@ -368,19 +368,19 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try └ enter ``` -5. Set your resource name as an environment variable: +5. Imposta il nome della risorsa come variabile d'ambiente: ```bash AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode ``` - Or add it to your bash profile: + Oppure aggiungilo al tuo profilo bash: ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX ``` -6. Run the `/models` command to select your deployed model. +6. Esegui il comando `/models` per selezionare il tuo modello deployato. ```txt /models @@ -390,15 +390,15 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try ### Baseten -1. Head over to the [Baseten](https://app.baseten.co/), create an account, and generate an API key. +1. Vai su [Baseten](https://app.baseten.co/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Baseten**. +2. Esegui il comando `/connect` e cerca **Baseten**. ```txt /connect ``` -3. Enter your Baseten API key. +3. Inserisci la tua chiave API di Baseten. ```txt ┌ API key @@ -407,7 +407,7 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models @@ -417,15 +417,15 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try ### Cerebras -1. Head over to the [Cerebras console](https://inference.cerebras.ai/), create an account, and generate an API key. +1. Vai alla [console di Cerebras](https://inference.cerebras.ai/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Cerebras**. +2. Esegui il comando `/connect` e cerca **Cerebras**. ```txt /connect ``` -3. Enter your Cerebras API key. +3. Inserisci la tua chiave API di Cerebras. ```txt ┌ API key @@ -434,7 +434,7 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try └ enter ``` -4. Run the `/models` command to select a model like _Qwen 3 Coder 480B_. +4. Esegui il comando `/models` per selezionare un modello come _Qwen 3 Coder 480B_. ```txt /models @@ -444,24 +444,24 @@ If you encounter "I'm sorry, but I cannot assist with that request" errors, try ### Cloudflare AI Gateway -Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, and more through a unified endpoint. With [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/) you don't need separate API keys for each provider. +Cloudflare AI Gateway ti permette di accedere a modelli di OpenAI, Anthropic, Workers AI e altri tramite un endpoint unificato. Con la [fatturazione unificata](https://developers.cloudflare.com/ai-gateway/features/unified-billing/) non hai bisogno di chiavi API separate per ogni provider. -1. Head over to the [Cloudflare dashboard](https://dash.cloudflare.com/), navigate to **AI** > **AI Gateway**, and create a new gateway. +1. Vai alla [dashboard di Cloudflare](https://dash.cloudflare.com/), naviga in **AI** > **AI Gateway** e crea un nuovo gateway. -2. Set your Account ID and Gateway ID as environment variables. +2. Imposta il tuo Account ID e Gateway ID come variabili d'ambiente. ```bash title="~/.bash_profile" export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id export CLOUDFLARE_GATEWAY_ID=your-gateway-id ``` -3. Run the `/connect` command and search for **Cloudflare AI Gateway**. +3. Esegui il comando `/connect` e cerca **Cloudflare AI Gateway**. ```txt /connect ``` -4. Enter your Cloudflare API token. +4. Inserisci il tuo API token di Cloudflare. ```txt ┌ API key @@ -470,19 +470,19 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` - Or set it as an environment variable. + Oppure impostalo come variabile d'ambiente. ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token ``` -5. Run the `/models` command to select a model. +5. Esegui il comando `/models` per selezionare un modello. ```txt /models ``` - You can also add models through your opencode config. + Puoi anche aggiungere modelli tramite la tua configurazione di opencode. ```json title="opencode.json" { @@ -502,15 +502,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### Cortecs -1. Head over to the [Cortecs console](https://cortecs.ai/), create an account, and generate an API key. +1. Vai alla [console di Cortecs](https://cortecs.ai/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Cortecs**. +2. Esegui il comando `/connect` e cerca **Cortecs**. ```txt /connect ``` -3. Enter your Cortecs API key. +3. Inserisci la tua chiave API di Cortecs. ```txt ┌ API key @@ -519,7 +519,7 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` -4. Run the `/models` command to select a model like _Kimi K2 Instruct_. +4. Esegui il comando `/models` per selezionare un modello come _Kimi K2 Instruct_. ```txt /models @@ -529,15 +529,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### DeepSeek -1. Head over to the [DeepSeek console](https://platform.deepseek.com/), create an account, and click **Create new API key**. +1. Vai alla [console di DeepSeek](https://platform.deepseek.com/), crea un account e clicca **Create new API key**. -2. Run the `/connect` command and search for **DeepSeek**. +2. Esegui il comando `/connect` e cerca **DeepSeek**. ```txt /connect ``` -3. Enter your DeepSeek API key. +3. Inserisci la tua chiave API di DeepSeek. ```txt ┌ API key @@ -546,7 +546,7 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` -4. Run the `/models` command to select a DeepSeek model like _DeepSeek Reasoner_. +4. Esegui il comando `/models` per selezionare un modello DeepSeek come _DeepSeek Reasoner_. ```txt /models @@ -556,15 +556,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### Deep Infra -1. Head over to the [Deep Infra dashboard](https://deepinfra.com/dash), create an account, and generate an API key. +1. Vai alla [dashboard di Deep Infra](https://deepinfra.com/dash), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Deep Infra**. +2. Esegui il comando `/connect` e cerca **Deep Infra**. ```txt /connect ``` -3. Enter your Deep Infra API key. +3. Inserisci la tua chiave API di Deep Infra. ```txt ┌ API key @@ -573,7 +573,7 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models @@ -583,15 +583,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### Firmware -1. Head over to the [Firmware dashboard](https://app.firmware.ai/signup), create an account, and generate an API key. +1. Vai alla [dashboard di Firmware](https://app.firmware.ai/signup), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Firmware**. +2. Esegui il comando `/connect` e cerca **Firmware**. ```txt /connect ``` -3. Enter your Firmware API key. +3. Inserisci la tua chiave API di Firmware. ```txt ┌ API key @@ -600,7 +600,7 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models @@ -610,15 +610,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### Fireworks AI -1. Head over to the [Fireworks AI console](https://app.fireworks.ai/), create an account, and click **Create API Key**. +1. Vai alla [console di Fireworks AI](https://app.fireworks.ai/), crea un account e clicca **Create API Key**. -2. Run the `/connect` command and search for **Fireworks AI**. +2. Esegui il comando `/connect` e cerca **Fireworks AI**. ```txt /connect ``` -3. Enter your Fireworks AI API key. +3. Inserisci la tua chiave API di Fireworks AI. ```txt ┌ API key @@ -627,7 +627,7 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, └ enter ``` -4. Run the `/models` command to select a model like _Kimi K2 Instruct_. +4. Esegui il comando `/models` per selezionare un modello come _Kimi K2 Instruct_. ```txt /models @@ -637,15 +637,15 @@ Cloudflare AI Gateway lets you access models from OpenAI, Anthropic, Workers AI, ### GitLab Duo -GitLab Duo provides AI-powered agentic chat with native tool calling capabilities through GitLab's Anthropic proxy. +GitLab Duo fornisce una chat agentic basata su AI con capacità di chiamata strumenti nativa tramite il proxy Anthropic di GitLab. -1. Run the `/connect` command and select GitLab. +1. Esegui il comando `/connect` e seleziona GitLab. ```txt /connect ``` -2. Choose your authentication method: +2. Scegli il tuo metodo di autenticazione: ```txt ┌ Select auth method @@ -655,40 +655,40 @@ GitLab Duo provides AI-powered agentic chat with native tool calling capabilitie └ ``` - #### Using OAuth (Recommended) + #### Usando OAuth (Consigliato) - Select **OAuth** and your browser will open for authorization. + Seleziona **OAuth** e il tuo browser si aprirà per l'autorizzazione. - #### Using Personal Access Token - 1. Go to [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens) - 2. Click **Add new token** - 3. Name: `OpenCode`, Scopes: `api` - 4. Copy the token (starts with `glpat-`) - 5. Enter it in the terminal + #### Usando Personal Access Token + 1. Vai a [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens) + 2. Clicca **Add new token** + 3. Nome: `OpenCode`, Scopes: `api` + 4. Copia il token (inizia con `glpat-`) + 5. Inseriscilo nel terminal -3. Run the `/models` command to see available models. +3. Esegui il comando `/models` per vedere i modelli disponibili. ```txt /models ``` - Three Claude-based models are available: - - **duo-chat-haiku-4-5** (Default) - Fast responses for quick tasks - - **duo-chat-sonnet-4-5** - Balanced performance for most workflows - - **duo-chat-opus-4-5** - Most capable for complex analysis + Sono disponibili tre modelli basati su Claude: + - **duo-chat-haiku-4-5** (Default) - Risposte veloci per task rapidi + - **duo-chat-sonnet-4-5** - Prestazioni bilanciate per la maggior parte dei flussi di lavoro + - **duo-chat-opus-4-5** - Più capace per analisi complesse :::note -You can also specify 'GITLAB_TOKEN' environment variable if you don't want -to store token in opencode auth storage. +Puoi anche specificare la variabile d'ambiente 'GITLAB_TOKEN' se non vuoi +salvare il token nello storage di auth di opencode. ::: -##### Self-Hosted GitLab +##### GitLab Self-Hosted -:::note[compliance note] -OpenCode uses a small model for some AI tasks like generating the session title. -It is configured to use gpt-5-nano by default, hosted by Zen. To lock OpenCode -to only use your own GitLab-hosted instance, add the following to your -`opencode.json` file. It is also recommended to disable session sharing. +:::note[nota di compliance] +OpenCode usa un modello piccolo per alcuni task AI come generare il titolo della sessione. +È configurato per usare gpt-5-nano di default, ospitato da Zen. Per bloccare OpenCode +a usare solo la tua istanza GitLab self-hosted, aggiungi quanto segue al tuo +file `opencode.json`. Si raccomanda anche di disabilitare la condivisione sessioni. ```json { @@ -700,20 +700,20 @@ to only use your own GitLab-hosted instance, add the following to your ::: -For self-hosted GitLab instances: +Per istanze GitLab self-hosted: ```bash export GITLAB_INSTANCE_URL=https://gitlab.company.com export GITLAB_TOKEN=glpat-... ``` -If your instance runs a custom AI Gateway: +Se la tua istanza esegue un AI Gateway personalizzato: ```bash GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com ``` -Or add to your bash profile: +Oppure aggiungi al tuo profilo bash: ```bash title="~/.bash_profile" export GITLAB_INSTANCE_URL=https://gitlab.company.com @@ -722,35 +722,35 @@ export GITLAB_TOKEN=glpat-... ``` :::note -Your GitLab administrator must enable the following: +Il tuo amministratore GitLab deve abilitare quanto segue: -1. [Duo Agent Platform](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) for the user, group, or instance +1. [Duo Agent Platform](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) per l'utente, gruppo o istanza 2. Feature flags (via Rails console): - `agent_platform_claude_code` - `third_party_agents_enabled` ::: -##### OAuth for Self-Hosted instances +##### OAuth per istanze Self-Hosted -In order to make Oauth working for your self-hosted instance, you need to create -a new application (Settings → Applications) with the -callback URL `http://127.0.0.1:8080/callback` and following scopes: +Per far funzionare OAuth per la tua istanza self-hosted, devi creare +una nuova applicazione (Settings → Applications) con l' +URL di callback `http://127.0.0.1:8080/callback` e i seguenti scope: -- api (Access the API on your behalf) -- read_user (Read your personal information) -- read_repository (Allows read-only access to the repository) +- api (Accedi all'API per tuo conto) +- read_user (Leggi le tue informazioni personali) +- read_repository (Consenti accesso in sola lettura al repository) -Then expose application ID as environment variable: +Poi esponi l'ID applicazione come variabile d'ambiente: ```bash export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ``` -More documentation on [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth) homepage. +Maggior documentazione sulla homepage di [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth). -##### Configuration +##### Configurazione -Customize through `opencode.json`: +Personalizza tramite `opencode.json`: ```json title="opencode.json" { @@ -769,9 +769,9 @@ Customize through `opencode.json`: } ``` -##### GitLab API Tools (Optional, but highly recommended) +##### Strumenti API GitLab (Opzionale, ma altamente raccomandato) -To access GitLab tools (merge requests, issues, pipelines, CI/CD, etc.): +Per accedere agli strumenti GitLab (merge requests, issues, pipelines, CI/CD, ecc.): ```json title="opencode.json" { @@ -786,21 +786,21 @@ Questo plugin offre funzionalita complete per la gestione dei repository GitLab, ### GitHub Copilot -To use your GitHub Copilot subscription with opencode: +Per usare il tuo abbonamento GitHub Copilot con opencode: :::note Alcuni modelli potrebbero richiedere un [abbonamento Pro+](https://github.com/features/copilot/plans) per essere utilizzati. -Some models need to be manually enabled in your [GitHub Copilot settings](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use). +Alcuni modelli devono essere abilitati manualmente nelle tue [impostazioni GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use). ::: -1. Run the `/connect` command and search for GitHub Copilot. +1. Esegui il comando `/connect` e cerca GitHub Copilot. ```txt /connect ``` -2. Navigate to [github.com/login/device](https://github.com/login/device) and enter the code. +2. Vai su [github.com/login/device](https://github.com/login/device) e inserisci il codice. ```txt ┌ Login with GitHub Copilot @@ -812,7 +812,7 @@ Some models need to be manually enabled in your [GitHub Copilot settings](https: └ Waiting for authorization... ``` -3. Now run the `/models` command to select the model you want. +3. Ora esegui il comando `/models` per selezionare il modello che vuoi. ```txt /models @@ -822,29 +822,29 @@ Some models need to be manually enabled in your [GitHub Copilot settings](https: ### Google Vertex AI -To use Google Vertex AI with OpenCode: +Per usare Google Vertex AI con OpenCode: -1. Head over to the **Model Garden** in the Google Cloud Console and check the - models available in your region. +1. Vai al **Model Garden** nella Google Cloud Console e controlla i + modelli disponibili nella tua regione. :::note - You need to have a Google Cloud project with Vertex AI API enabled. + Devi avere un progetto Google Cloud con l'API Vertex AI abilitata. ::: -2. Set the required environment variables: - - `GOOGLE_CLOUD_PROJECT`: Your Google Cloud project ID - - `VERTEX_LOCATION` (optional): The region for Vertex AI (defaults to `global`) - - Authentication (choose one): - - `GOOGLE_APPLICATION_CREDENTIALS`: Path to your service account JSON key file - - Authenticate using gcloud CLI: `gcloud auth application-default login` +2. Imposta le variabili d'ambiente richieste: + - `GOOGLE_CLOUD_PROJECT`: Il tuo ID progetto Google Cloud + - `VERTEX_LOCATION` (opzionale): La regione per Vertex AI (predefinito `global`) + - Autenticazione (scegline una): + - `GOOGLE_APPLICATION_CREDENTIALS`: Percorso al file JSON della chiave del tuo service account + - Autenticati usando la CLI gcloud: `gcloud auth application-default login` - Set them while running opencode. + Impostale mentre esegui opencode. ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode ``` - Or add them to your bash profile. + Oppure aggiungile al tuo profilo bash. ```bash title="~/.bash_profile" export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json @@ -853,10 +853,10 @@ To use Google Vertex AI with OpenCode: ``` :::tip -The `global` region improves availability and reduces errors at no extra cost. Use regional endpoints (e.g., `us-central1`) for data residency requirements. [Learn more](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) +La regione `global` migliora la disponibilità e riduce gli errori senza costi extra. Usa endpoint regionali (ad es. `us-central1`) per requisiti di residenza dei dati. [Scopri di più](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) ::: -3. Run the `/models` command to select the model you want. +3. Esegui il comando `/models` per selezionare il modello che vuoi. ```txt /models @@ -866,15 +866,15 @@ The `global` region improves availability and reduces errors at no extra cost. U ### Groq -1. Head over to the [Groq console](https://console.groq.com/), click **Create API Key**, and copy the key. +1. Vai alla [console di Groq](https://console.groq.com/), clicca **Create API Key** e copia la chiave. -2. Run the `/connect` command and search for Groq. +2. Esegui il comando `/connect` e cerca Groq. ```txt /connect ``` -3. Enter the API key for the provider. +3. Inserisci la chiave API per il provider. ```txt ┌ API key @@ -883,7 +883,7 @@ The `global` region improves availability and reduces errors at no extra cost. U └ enter ``` -4. Run the `/models` command to select the one you want. +4. Esegui il comando `/models` per selezionare quello che vuoi. ```txt /models @@ -893,17 +893,17 @@ The `global` region improves availability and reduces errors at no extra cost. U ### Hugging Face -[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) provides access to open models supported by 17+ providers. +[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) fornisce accesso a modelli open supportati da 17+ provider. -1. Head over to [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) to create a token with permission to make calls to Inference Providers. +1. Vai alle [impostazioni di Hugging Face](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) per creare un token con il permesso di effettuare chiamate agli Inference Providers. -2. Run the `/connect` command and search for **Hugging Face**. +2. Esegui il comando `/connect` e cerca **Hugging Face**. ```txt /connect ``` -3. Enter your Hugging Face token. +3. Inserisci il tuo token Hugging Face. ```txt ┌ API key @@ -912,7 +912,7 @@ The `global` region improves availability and reduces errors at no extra cost. U └ enter ``` -4. Run the `/models` command to select a model like _Kimi-K2-Instruct_ or _GLM-4.6_. +4. Esegui il comando `/models` per selezionare un modello come _Kimi-K2-Instruct_ o _GLM-4.6_. ```txt /models @@ -922,17 +922,17 @@ The `global` region improves availability and reduces errors at no extra cost. U ### Helicone -[Helicone](https://helicone.ai) is an LLM observability platform that provides logging, monitoring, and analytics for your AI applications. The Helicone AI Gateway routes your requests to the appropriate provider automatically based on the model. +[Helicone](https://helicone.ai) è una piattaforma di osservabilità LLM che fornisce logging, monitoraggio e analisi per le tue applicazioni AI. L'AI Gateway di Helicone instrada automaticamente le tue richieste al provider appropriato in base al modello. -1. Head over to [Helicone](https://helicone.ai), create an account, and generate an API key from your dashboard. +1. Vai su [Helicone](https://helicone.ai), crea un account e genera una chiave API dalla tua dashboard. -2. Run the `/connect` command and search for **Helicone**. +2. Esegui il comando `/connect` e cerca **Helicone**. ```txt /connect ``` -3. Enter your Helicone API key. +3. Inserisci la tua chiave API di Helicone. ```txt ┌ API key @@ -941,19 +941,19 @@ The `global` region improves availability and reduces errors at no extra cost. U └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models ``` -For more providers and advanced features like caching and rate limiting, check the [Helicone documentation](https://docs.helicone.ai). +Per altri provider e funzionalità avanzate come caching e rate limiting, controlla la [documentazione di Helicone](https://docs.helicone.ai). -#### Optional Configs +#### Config opzionali -In the event you see a feature or model from Helicone that isn't configured automatically through opencode, you can always configure it yourself. +Nel caso vedessi una funzionalità o un modello di Helicone che non viene configurato automaticamente da opencode, puoi sempre configurarlo tu stesso. -Here's [Helicone's Model Directory](https://helicone.ai/models), you'll need this to grab the IDs of the models you want to add. +Ecco la [Model Directory di Helicone](https://helicone.ai/models), ti servirà per recuperare gli ID dei modelli che vuoi aggiungere. ```jsonc title="~/.config/opencode/opencode.jsonc" { @@ -979,9 +979,9 @@ Here's [Helicone's Model Directory](https://helicone.ai/models), you'll need thi } ``` -#### Custom Headers +#### Header personalizzati -Helicone supports custom headers for features like caching, user tracking, and session management. Add them to your provider config using `options.headers`: +Helicone supporta header personalizzati per funzionalità come caching, user tracking e gestione sessioni. Aggiungili alla configurazione del provider usando `options.headers`: ```jsonc title="~/.config/opencode/opencode.jsonc" { @@ -1002,15 +1002,15 @@ Helicone supports custom headers for features like caching, user tracking, and s } ``` -##### Session tracking +##### Tracciamento sessioni -Helicone's [Sessions](https://docs.helicone.ai/features/sessions) feature lets you group related LLM requests together. Use the [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) plugin to automatically log each OpenCode conversation as a session in Helicone. +La funzionalità [Sessions](https://docs.helicone.ai/features/sessions) di Helicone ti permette di raggruppare richieste LLM correlate. Usa il plugin [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) per loggare automaticamente ogni conversazione di OpenCode come una sessione in Helicone. ```bash npm install -g opencode-helicone-session ``` -Add it to your config. +Aggiungilo alla tua configurazione. ```json title="opencode.json" { @@ -1018,24 +1018,24 @@ Add it to your config. } ``` -The plugin injects `Helicone-Session-Id` and `Helicone-Session-Name` headers into your requests. In Helicone's Sessions page, you'll see each OpenCode conversation listed as a separate session. +Il plugin inietta gli header `Helicone-Session-Id` e `Helicone-Session-Name` nelle tue richieste. Nella pagina Sessions di Helicone, vedrai ogni conversazione di OpenCode elencata come sessione separata. -##### Common Helicone headers +##### Header Helicone comuni -| Header | Description | -| -------------------------- | ------------------------------------------------------------- | -| `Helicone-Cache-Enabled` | Enable response caching (`true`/`false`) | -| `Helicone-User-Id` | Track metrics by user | -| `Helicone-Property-[Name]` | Add custom properties (e.g., `Helicone-Property-Environment`) | -| `Helicone-Prompt-Id` | Associate requests with prompt versions | +| Header | Descrizione | +| -------------------------- | -------------------------------------------------------------------------- | +| `Helicone-Cache-Enabled` | Abilita response caching (`true`/`false`) | +| `Helicone-User-Id` | Traccia metriche per utente | +| `Helicone-Property-[Name]` | Aggiungi proprietà personalizzate (ad es. `Helicone-Property-Environment`) | +| `Helicone-Prompt-Id` | Associa richieste con versioni dei prompt | -See the [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory) for all available headers. +Vedi la [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory) per tutti gli header disponibili. --- ### llama.cpp -You can configure opencode to use local models through [llama.cpp's](https://github.com/ggml-org/llama.cpp) llama-server utility +Puoi configurare opencode per usare modelli locali tramite l'utility llama-server di [llama.cpp](https://github.com/ggml-org/llama.cpp) ```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15} { @@ -1061,29 +1061,29 @@ You can configure opencode to use local models through [llama.cpp's](https://git } ``` -In this example: +In questo esempio: -- `llama.cpp` is the custom provider ID. This can be any string you want. -- `npm` specifies the package to use for this provider. Here, `@ai-sdk/openai-compatible` is used for any OpenAI-compatible API. -- `name` is the display name for the provider in the UI. -- `options.baseURL` is the endpoint for the local server. -- `models` is a map of model IDs to their configurations. The model name will be displayed in the model selection list. +- `llama.cpp` è l'ID provider personalizzato. Può essere qualsiasi stringa tu voglia. +- `npm` specifica il pacchetto da usare per questo provider. Qui, `@ai-sdk/openai-compatible` è usato per qualsiasi API OpenAI-compatible. +- `name` è il nome visualizzato per il provider nella UI. +- `options.baseURL` è l'endpoint per il server locale. +- `models` è una mappa di ID modello e relative configurazioni. Il nome del modello verrà visualizzato nella lista di selezione modelli. --- ### IO.NET -IO.NET offers 17 models optimized for various use cases: +IO.NET offre 17 modelli ottimizzati per vari casi d'uso: -1. Head over to the [IO.NET console](https://ai.io.net/), create an account, and generate an API key. +1. Vai alla [console di IO.NET](https://ai.io.net/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **IO.NET**. +2. Esegui il comando `/connect` e cerca **IO.NET**. ```txt /connect ``` -3. Enter your IO.NET API key. +3. Inserisci la tua chiave API di IO.NET. ```txt ┌ API key @@ -1092,7 +1092,7 @@ IO.NET offers 17 models optimized for various use cases: └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models @@ -1102,7 +1102,7 @@ IO.NET offers 17 models optimized for various use cases: ### LM Studio -You can configure opencode to use local models through LM Studio. +Puoi configurare opencode per usare modelli locali tramite LM Studio. ```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14} { @@ -1124,29 +1124,29 @@ You can configure opencode to use local models through LM Studio. } ``` -In this example: +In questo esempio: -- `lmstudio` is the custom provider ID. This can be any string you want. -- `npm` specifies the package to use for this provider. Here, `@ai-sdk/openai-compatible` is used for any OpenAI-compatible API. -- `name` is the display name for the provider in the UI. -- `options.baseURL` is the endpoint for the local server. -- `models` is a map of model IDs to their configurations. The model name will be displayed in the model selection list. +- `lmstudio` è l'ID provider personalizzato. Può essere qualsiasi stringa tu voglia. +- `npm` specifica il pacchetto da usare per questo provider. Qui, `@ai-sdk/openai-compatible` è usato per qualsiasi API OpenAI-compatible. +- `name` è il nome visualizzato per il provider nella UI. +- `options.baseURL` è l'endpoint per il server locale. +- `models` è una mappa di ID modello e relative configurazioni. Il nome del modello verrà visualizzato nella lista di selezione modelli. --- ### Moonshot AI -To use Kimi K2 from Moonshot AI: +Per usare Kimi K2 di Moonshot AI: -1. Head over to the [Moonshot AI console](https://platform.moonshot.ai/console), create an account, and click **Create API key**. +1. Vai alla [console di Moonshot AI](https://platform.moonshot.ai/console), crea un account e clicca **Create API key**. -2. Run the `/connect` command and search for **Moonshot AI**. +2. Esegui il comando `/connect` e cerca **Moonshot AI**. ```txt /connect ``` -3. Enter your Moonshot API key. +3. Inserisci la tua chiave API di Moonshot. ```txt ┌ API key @@ -1155,25 +1155,23 @@ To use Kimi K2 from Moonshot AI: └ enter ``` -4. Run the `/models` command to select _Kimi K2_. +4. Esegui il comando `/models` per selezionare _Kimi K2_. ```txt /models ``` ---- - ### MiniMax -1. Head over to the [MiniMax API Console](https://platform.minimax.io/login), create an account, and generate an API key. +1. Vai alla [MiniMax API Console](https://platform.minimax.io/login), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **MiniMax**. +2. Esegui il comando `/connect` e cerca **MiniMax**. ```txt /connect ``` -3. Enter your MiniMax API key. +3. Inserisci la tua chiave API di MiniMax. ```txt ┌ API key @@ -1182,7 +1180,7 @@ To use Kimi K2 from Moonshot AI: └ enter ``` -4. Run the `/models` command to select a model like _M2.1_. +4. Esegui il comando `/models` per selezionare un modello come _M2.1_. ```txt /models @@ -1192,15 +1190,15 @@ To use Kimi K2 from Moonshot AI: ### Nebius Token Factory -1. Head over to the [Nebius Token Factory console](https://tokenfactory.nebius.com/), create an account, and click **Add Key**. +1. Vai alla [console di Nebius Token Factory](https://tokenfactory.nebius.com/), crea un account e clicca **Add Key**. -2. Run the `/connect` command and search for **Nebius Token Factory**. +2. Esegui il comando `/connect` e cerca **Nebius Token Factory**. ```txt /connect ``` -3. Enter your Nebius Token Factory API key. +3. Inserisci la tua chiave API di Nebius Token Factory. ```txt ┌ API key @@ -1209,7 +1207,7 @@ To use Kimi K2 from Moonshot AI: └ enter ``` -4. Run the `/models` command to select a model like _Kimi K2 Instruct_. +4. Esegui il comando `/models` per selezionare un modello come _Kimi K2 Instruct_. ```txt /models @@ -1219,10 +1217,10 @@ To use Kimi K2 from Moonshot AI: ### Ollama -You can configure opencode to use local models through Ollama. +Puoi configurare opencode per usare modelli locali tramite Ollama. :::tip -Ollama can automatically configure itself for OpenCode. See the [Ollama integration docs](https://docs.ollama.com/integrations/opencode) for details. +Ollama può auto-configurarsi per OpenCode. Vedi la [documentazione di integrazione Ollama](https://docs.ollama.com/integrations/opencode) per dettagli. ::: ```json title="opencode.json" "ollama" {5, 6, 8, 10-14} @@ -1245,37 +1243,37 @@ Ollama can automatically configure itself for OpenCode. See the [Ollama integrat } ``` -In this example: +In questo esempio: -- `ollama` is the custom provider ID. This can be any string you want. -- `npm` specifies the package to use for this provider. Here, `@ai-sdk/openai-compatible` is used for any OpenAI-compatible API. -- `name` is the display name for the provider in the UI. -- `options.baseURL` is the endpoint for the local server. -- `models` is a map of model IDs to their configurations. The model name will be displayed in the model selection list. +- `ollama` è l'ID provider personalizzato. Può essere qualsiasi stringa tu voglia. +- `npm` specifica il pacchetto da usare per questo provider. Qui, `@ai-sdk/openai-compatible` è usato per qualsiasi API OpenAI-compatible. +- `name` è il nome visualizzato per il provider nella UI. +- `options.baseURL` è l'endpoint per il server locale. +- `models` è una mappa di ID modello e relative configurazioni. Il nome del modello verrà visualizzato nella lista di selezione modelli. :::tip -If tool calls aren't working, try increasing `num_ctx` in Ollama. Start around 16k - 32k. +Se le chiamate agli strumenti non funzionano, prova ad aumentare `num_ctx` in Ollama. Inizia da circa 16k - 32k. ::: --- ### Ollama Cloud -To use Ollama Cloud with OpenCode: +Per usare Ollama Cloud con OpenCode: -1. Head over to [https://ollama.com/](https://ollama.com/) and sign in or create an account. +1. Vai su [https://ollama.com/](https://ollama.com/) e accedi o crea un account. -2. Navigate to **Settings** > **Keys** and click **Add API Key** to generate a new API key. +2. Naviga in **Settings** > **Keys** e clicca **Add API Key** per generare una nuova chiave API. -3. Copy the API key for use in OpenCode. +3. Copia la chiave API da usare in OpenCode. -4. Run the `/connect` command and search for **Ollama Cloud**. +4. Esegui il comando `/connect` e cerca **Ollama Cloud**. ```txt /connect ``` -5. Enter your Ollama Cloud API key. +5. Inserisci la tua chiave API di Ollama Cloud. ```txt ┌ API key @@ -1284,13 +1282,13 @@ To use Ollama Cloud with OpenCode: └ enter ``` -6. **Important**: Before using cloud models in OpenCode, you must pull the model information locally: +6. **Importante**: Prima di usare modelli cloud in OpenCode, devi scaricare le informazioni del modello localmente: ```bash ollama pull gpt-oss:20b-cloud ``` -7. Run the `/models` command to select your Ollama Cloud model. +7. Esegui il comando `/models` per selezionare il tuo modello Ollama Cloud. ```txt /models @@ -1300,16 +1298,16 @@ To use Ollama Cloud with OpenCode: ### OpenAI -We recommend signing up for [ChatGPT Plus or Pro](https://chatgpt.com/pricing). +Consigliamo di iscriversi a [ChatGPT Plus o Pro](https://chatgpt.com/pricing). -1. Once you've signed up, run the `/connect` command and select OpenAI. +1. Una volta iscritto, esegui il comando `/connect` e seleziona OpenAI. ```txt /connect ``` -2. Here you can select the **ChatGPT Plus/Pro** option and it'll open your browser - and ask you to authenticate. +2. Qui puoi selezionare l'opzione **ChatGPT Plus/Pro**: aprirà il tuo browser + e ti chiederà di autenticarti. ```txt ┌ Select auth method @@ -1319,31 +1317,31 @@ We recommend signing up for [ChatGPT Plus or Pro](https://chatgpt.com/pricing). └ ``` -3. Now all the OpenAI models should be available when you use the `/models` command. +3. Ora tutti i modelli OpenAI dovrebbero essere disponibili quando usi il comando `/models`. ```txt /models ``` -##### Using API keys +##### Usare chiavi API -If you already have an API key, you can select **Manually enter API Key** and paste it in your terminal. +Se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminal. --- ### OpenCode Zen -OpenCode Zen is a list of tested and verified models provided by the OpenCode team. [Learn more](/docs/zen). +OpenCode Zen è una lista di modelli testati e verificati forniti dal team OpenCode. [Scopri di più](/docs/zen). -1. Sign in to **OpenCode Zen** and click **Create API Key**. +1. Accedi a **OpenCode Zen** e clicca **Create API Key**. -2. Run the `/connect` command and search for **OpenCode Zen**. +2. Esegui il comando `/connect` e cerca **OpenCode Zen**. ```txt /connect ``` -3. Enter your OpenCode API key. +3. Inserisci la tua chiave API di OpenCode. ```txt ┌ API key @@ -1352,7 +1350,7 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te └ enter ``` -4. Run the `/models` command to select a model like _Qwen 3 Coder 480B_. +4. Esegui il comando `/models` per selezionare un modello come _Qwen 3 Coder 480B_. ```txt /models @@ -1362,15 +1360,15 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te ### OpenRouter -1. Head over to the [OpenRouter dashboard](https://openrouter.ai/settings/keys), click **Create API Key**, and copy the key. +1. Vai alla [dashboard di OpenRouter](https://openrouter.ai/settings/keys), clicca **Create API Key** e copia la chiave. -2. Run the `/connect` command and search for OpenRouter. +2. Esegui il comando `/connect` e cerca OpenRouter. ```txt /connect ``` -3. Enter the API key for the provider. +3. Inserisci la chiave API per il provider. ```txt ┌ API key @@ -1379,13 +1377,13 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te └ enter ``` -4. Many OpenRouter models are preloaded by default, run the `/models` command to select the one you want. +4. Molti modelli OpenRouter sono precaricati di default, esegui il comando `/models` per selezionare quello che vuoi. ```txt /models ``` - You can also add additional models through your opencode config. + Puoi anche aggiungere modelli addizionali tramite la tua configurazione di opencode. ```json title="opencode.json" {6} { @@ -1400,7 +1398,7 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te } ``` -5. You can also customize them through your opencode config. Here's an example of specifying a provider +5. Puoi anche personalizzarli tramite la configurazione di opencode. Ecco un esempio di specifica di un provider ```json title="opencode.json" { @@ -1426,21 +1424,21 @@ OpenCode Zen is a list of tested and verified models provided by the OpenCode te ### SAP AI Core -SAP AI Core provides access to 40+ models from OpenAI, Anthropic, Google, Amazon, Meta, Mistral, and AI21 through a unified platform. +SAP AI Core fornisce accesso a oltre 40 modelli di OpenAI, Anthropic, Google, Amazon, Meta, Mistral e AI21 tramite una piattaforma unificata. -1. Go to your [SAP BTP Cockpit](https://account.hana.ondemand.com/), navigate to your SAP AI Core service instance, and create a service key. +1. Vai al tuo [SAP BTP Cockpit](https://account.hana.ondemand.com/), naviga nella tua istanza di servizio SAP AI Core e crea una service key. :::tip - The service key is a JSON object containing `clientid`, `clientsecret`, `url`, and `serviceurls.AI_API_URL`. You can find your AI Core instance under **Services** > **Instances and Subscriptions** in the BTP Cockpit. + La service key è un oggetto JSON contenente `clientid`, `clientsecret`, `url` e `serviceurls.AI_API_URL`. Puoi trovare la tua istanza AI Core sotto **Services** > **Instances and Subscriptions** nel BTP Cockpit. ::: -2. Run the `/connect` command and search for **SAP AI Core**. +2. Esegui il comando `/connect` e cerca **SAP AI Core**. ```txt /connect ``` -3. Enter your service key JSON. +3. Inserisci il JSON della tua service key. ```txt ┌ Service key @@ -1449,29 +1447,29 @@ SAP AI Core provides access to 40+ models from OpenAI, Anthropic, Google, Amazon └ enter ``` - Or set the `AICORE_SERVICE_KEY` environment variable: + Oppure imposta la variabile d'ambiente `AICORE_SERVICE_KEY`: ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode ``` - Or add it to your bash profile: + Oppure aggiungila al tuo profilo bash: ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' ``` -4. Optionally set deployment ID and resource group: +4. Facoltativamente imposta deployment ID e resource group: ```bash AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode ``` :::note - These settings are optional and should be configured according to your SAP AI Core setup. + Queste impostazioni sono opzionali e dovrebbero essere configurate in base al tuo setup SAP AI Core. ::: -5. Run the `/models` command to select from 40+ available models. +5. Esegui il comando `/models` per selezionare tra gli oltre 40 modelli disponibili. ```txt /models @@ -1481,15 +1479,15 @@ SAP AI Core provides access to 40+ models from OpenAI, Anthropic, Google, Amazon ### OVHcloud AI Endpoints -1. Head over to the [OVHcloud panel](https://ovh.com/manager). Navigate to the `Public Cloud` section, `AI & Machine Learning` > `AI Endpoints` and in `API Keys` tab, click **Create a new API key**. +1. Vai al [pannello OVHcloud](https://ovh.com/manager). Naviga nella sezione `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` e nella scheda `API Keys`, clicca **Create a new API key**. -2. Run the `/connect` command and search for **OVHcloud AI Endpoints**. +2. Esegui il comando `/connect` e cerca **OVHcloud AI Endpoints**. ```txt /connect ``` -3. Enter your OVHcloud AI Endpoints API key. +3. Inserisci la tua chiave API di OVHcloud AI Endpoints. ```txt ┌ API key @@ -1498,7 +1496,7 @@ SAP AI Core provides access to 40+ models from OpenAI, Anthropic, Google, Amazon └ enter ``` -4. Run the `/models` command to select a model like _gpt-oss-120b_. +4. Esegui il comando `/models` per selezionare un modello come _gpt-oss-120b_. ```txt /models @@ -1508,17 +1506,17 @@ SAP AI Core provides access to 40+ models from OpenAI, Anthropic, Google, Amazon ### Scaleway -To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) with Opencode: +Per usare le [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) con Opencode: -1. Head over to the [Scaleway Console IAM settings](https://console.scaleway.com/iam/api-keys) to generate a new API key. +1. Vai alle [impostazioni IAM della Console Scaleway](https://console.scaleway.com/iam/api-keys) per generare una nuova chiave API. -2. Run the `/connect` command and search for **Scaleway**. +2. Esegui il comando `/connect` e cerca **Scaleway**. ```txt /connect ``` -3. Enter your Scaleway API key. +3. Inserisci la tua chiave API di Scaleway. ```txt ┌ API key @@ -1527,7 +1525,7 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap └ enter ``` -4. Run the `/models` command to select a model like _devstral-2-123b-instruct-2512_ or _gpt-oss-120b_. +4. Esegui il comando `/models` per selezionare un modello come _devstral-2-123b-instruct-2512_ o _gpt-oss-120b_. ```txt /models @@ -1537,15 +1535,15 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap ### Together AI -1. Head over to the [Together AI console](https://api.together.ai), create an account, and click **Add Key**. +1. Vai alla [console di Together AI](https://api.together.ai), crea un account e clicca **Add Key**. -2. Run the `/connect` command and search for **Together AI**. +2. Esegui il comando `/connect` e cerca **Together AI**. ```txt /connect ``` -3. Enter your Together AI API key. +3. Inserisci la tua chiave API di Together AI. ```txt ┌ API key @@ -1554,7 +1552,7 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap └ enter ``` -4. Run the `/models` command to select a model like _Kimi K2 Instruct_. +4. Esegui il comando `/models` per selezionare un modello come _Kimi K2 Instruct_. ```txt /models @@ -1564,15 +1562,15 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap ### Venice AI -1. Head over to the [Venice AI console](https://venice.ai), create an account, and generate an API key. +1. Vai alla [console di Venice AI](https://venice.ai), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **Venice AI**. +2. Esegui il comando `/connect` e cerca **Venice AI**. ```txt /connect ``` -3. Enter your Venice AI API key. +3. Inserisci la tua chiave API di Venice AI. ```txt ┌ API key @@ -1581,7 +1579,7 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap └ enter ``` -4. Run the `/models` command to select a model like _Llama 3.3 70B_. +4. Esegui il comando `/models` per selezionare un modello come _Llama 3.3 70B_. ```txt /models @@ -1591,17 +1589,17 @@ To use [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-ap ### Vercel AI Gateway -Vercel AI Gateway lets you access models from OpenAI, Anthropic, Google, xAI, and more through a unified endpoint. Models are offered at list price with no markup. +Vercel AI Gateway ti permette di accedere a modelli di OpenAI, Anthropic, Google, xAI e altri tramite un endpoint unificato. I modelli sono offerti al prezzo di listino senza ricarichi. -1. Head over to the [Vercel dashboard](https://vercel.com/), navigate to the **AI Gateway** tab, and click **API keys** to create a new API key. +1. Vai alla [dashboard Vercel](https://vercel.com/), naviga nella scheda **AI Gateway** e clicca **API keys** per creare una nuova chiave API. -2. Run the `/connect` command and search for **Vercel AI Gateway**. +2. Esegui il comando `/connect` e cerca **Vercel AI Gateway**. ```txt /connect ``` -3. Enter your Vercel AI Gateway API key. +3. Inserisci la tua chiave API di Vercel AI Gateway. ```txt ┌ API key @@ -1610,13 +1608,13 @@ Vercel AI Gateway lets you access models from OpenAI, Anthropic, Google, xAI, an └ enter ``` -4. Run the `/models` command to select a model. +4. Esegui il comando `/models` per selezionare un modello. ```txt /models ``` -You can also customize models through your opencode config. Here's an example of specifying provider routing order. +Puoi anche personalizzare i modelli tramite la tua configurazione di opencode. Ecco un esempio di come specificare l'ordine di routing dei provider. ```json title="opencode.json" { @@ -1635,27 +1633,27 @@ You can also customize models through your opencode config. Here's an example of } ``` -Some useful routing options: +Alcune opzioni di routing utili: -| Option | Description | -| ------------------- | ---------------------------------------------------- | -| `order` | Provider sequence to try | -| `only` | Restrict to specific providers | -| `zeroDataRetention` | Only use providers with zero data retention policies | +| Opzione | Descrizione | +| ------------------- | --------------------------------------------------- | +| `order` | Sequenza di provider da provare | +| `only` | Restringi a provider specifici | +| `zeroDataRetention` | Usa solo provider con policy di zero data retention | --- ### xAI -1. Head over to the [xAI console](https://console.x.ai/), create an account, and generate an API key. +1. Vai alla [console di xAI](https://console.x.ai/), crea un account e genera una chiave API. -2. Run the `/connect` command and search for **xAI**. +2. Esegui il comando `/connect` e cerca **xAI**. ```txt /connect ``` -3. Enter your xAI API key. +3. Inserisci la tua chiave API di xAI. ```txt ┌ API key @@ -1664,7 +1662,7 @@ Some useful routing options: └ enter ``` -4. Run the `/models` command to select a model like _Grok Beta_. +4. Esegui il comando `/models` per selezionare un modello come _Grok Beta_. ```txt /models @@ -1674,17 +1672,17 @@ Some useful routing options: ### Z.AI -1. Head over to the [Z.AI API console](https://z.ai/manage-apikey/apikey-list), create an account, and click **Create a new API key**. +1. Vai alla [console API di Z.AI](https://z.ai/manage-apikey/apikey-list), crea un account e clicca **Create a new API key**. -2. Run the `/connect` command and search for **Z.AI**. +2. Esegui il comando `/connect` e cerca **Z.AI**. ```txt /connect ``` - If you are subscribed to the **GLM Coding Plan**, select **Z.AI Coding Plan**. + Se sei iscritto al **GLM Coding Plan**, seleziona **Z.AI Coding Plan**. -3. Enter your Z.AI API key. +3. Inserisci la tua chiave API di Z.AI. ```txt ┌ API key @@ -1693,7 +1691,7 @@ Some useful routing options: └ enter ``` -4. Run the `/models` command to select a model like _GLM-4.7_. +4. Esegui il comando `/models` per selezionare un modello come _GLM-4.7_. ```txt /models @@ -1703,15 +1701,15 @@ Some useful routing options: ### ZenMux -1. Head over to the [ZenMux dashboard](https://zenmux.ai/settings/keys), click **Create API Key**, and copy the key. +1. Vai alla [dashboard di ZenMux](https://zenmux.ai/settings/keys), clicca **Create API Key** e copia la chiave. -2. Run the `/connect` command and search for ZenMux. +2. Esegui il comando `/connect` e cerca ZenMux. ```txt /connect ``` -3. Enter the API key for the provider. +3. Inserisci la chiave API per il provider. ```txt ┌ API key @@ -1720,13 +1718,13 @@ Some useful routing options: └ enter ``` -4. Many ZenMux models are preloaded by default, run the `/models` command to select the one you want. +4. Molti modelli ZenMux sono precaricati di default, esegui il comando `/models` per selezionare quello che vuoi. ```txt /models ``` - You can also add additional models through your opencode config. + Puoi anche aggiungere modelli addizionali tramite la tua configurazione di opencode. ```json title="opencode.json" {6} { @@ -1743,15 +1741,15 @@ Some useful routing options: --- -## Custom provider +## Provider personalizzato -To add any **OpenAI-compatible** provider that's not listed in the `/connect` command: +Per aggiungere qualsiasi provider **OpenAI-compatible** non elencato nel comando `/connect`: :::tip -You can use any OpenAI-compatible provider with opencode. Most modern AI providers offer OpenAI-compatible APIs. +Puoi usare qualsiasi provider OpenAI-compatible con opencode. La maggior parte dei provider AI moderni offre API OpenAI-compatible. ::: -1. Run the `/connect` command and scroll down to **Other**. +1. Esegui il comando `/connect` e scorri fino a **Other**. ```bash $ /connect @@ -1764,7 +1762,7 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide └ ``` -2. Enter a unique ID for the provider. +2. Inserisci un ID univoco per il provider. ```bash $ /connect @@ -1777,10 +1775,10 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide ``` :::note - Choose a memorable ID, you'll use this in your config file. + Scegli un ID facile da ricordare, lo userai nel tuo file di configurazione. ::: -3. Enter your API key for the provider. +3. Inserisci la tua chiave API per il provider. ```bash $ /connect @@ -1794,7 +1792,7 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide └ ``` -4. Create or update your `opencode.json` file in your project directory: +4. Crea o aggiorna il tuo file `opencode.json` nella directory del progetto: ```json title="opencode.json" ""myprovider"" {5-15} { @@ -1816,23 +1814,23 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide } ``` - Here are the configuration options: - - **npm**: AI SDK package to use, `@ai-sdk/openai-compatible` for OpenAI-compatible providers - - **name**: Display name in UI. - - **models**: Available models. - - **options.baseURL**: API endpoint URL. - - **options.apiKey**: Optionally set the API key, if not using auth. - - **options.headers**: Optionally set custom headers. + Ecco le opzioni di configurazione: + - **npm**: Pacchetto AI SDK da usare, `@ai-sdk/openai-compatible` per provider OpenAI-compatible + - **name**: Nome visualizzato nella UI. + - **models**: Modelli disponibili. + - **options.baseURL**: URL dell'endpoint API. + - **options.apiKey**: Opzionalmente imposta la chiave API, se non usi auth. + - **options.headers**: Opzionalmente imposta header personalizzati. - More on the advanced options in the example below. + Maggiori dettagli sulle opzioni avanzate nell'esempio sotto. -5. Run the `/models` command and your custom provider and models will appear in the selection list. +5. Esegui il comando `/models`: il tuo provider personalizzato e i modelli appariranno nella lista di selezione. --- -##### Example +##### Esempio -Here's an example setting the `apiKey`, `headers`, and model `limit` options. +Ecco un esempio che imposta le opzioni `apiKey`, `headers` e `limit` del modello. ```json title="opencode.json" {9,11,17-20} { @@ -1862,27 +1860,27 @@ Here's an example setting the `apiKey`, `headers`, and model `limit` options. } ``` -Configuration details: +Dettagli configurazione: -- **apiKey**: Set using `env` variable syntax, [learn more](/docs/config#env-vars). -- **headers**: Custom headers sent with each request. -- **limit.context**: Maximum input tokens the model accepts. -- **limit.output**: Maximum tokens the model can generate. +- **apiKey**: Imposta usando la sintassi variabile `env`, [scopri di più](/docs/config#env-vars). +- **headers**: Header personalizzati inviati con ogni richiesta. +- **limit.context**: Massimi token di input accettati dal modello. +- **limit.output**: Massimi token che il modello può generare. -The `limit` fields allow OpenCode to understand how much context you have left. Standard providers pull these from models.dev automatically. +I campi `limit` permettono a OpenCode di capire quanto contesto rimane. I provider standard recuperano questi dati da models.dev automaticamente. --- -## Troubleshooting +## Risoluzione dei problemi -If you are having trouble with configuring a provider, check the following: +Se hai problemi con la configurazione di un provider, controlla quanto segue: -1. **Check the auth setup**: Run `opencode auth list` to see if the credentials - for the provider are added to your config. +1. **Controlla il setup auth**: Esegui `opencode auth list` per vedere se le credenziali + per il provider sono aggiunte alla tua configurazione. - This doesn't apply to providers like Amazon Bedrock, that rely on environment variables for their auth. + Questo non si applica a provider come Amazon Bedrock, che si basano su variabili d'ambiente per l'autenticazione. -2. For custom providers, check the opencode config and: - - Make sure the provider ID used in the `/connect` command matches the ID in your opencode config. - - The right npm package is used for the provider. For example, use `@ai-sdk/cerebras` for Cerebras. And for all other OpenAI-compatible providers, use `@ai-sdk/openai-compatible`. - - Check correct API endpoint is used in the `options.baseURL` field. +2. Per provider personalizzati, controlla la config di opencode e: + - Assicurati che l'ID provider usato nel comando `/connect` corrisponda all'ID nella tua config opencode. + - Che sia usato il pacchetto npm corretto per il provider. Per esempio, usa `@ai-sdk/cerebras` per Cerebras. E per tutti gli altri provider OpenAI-compatible, usa `@ai-sdk/openai-compatible`. + - Controlla che sia usato l'endpoint API corretto nel campo `options.baseURL`. diff --git a/packages/web/src/content/docs/it/sdk.mdx b/packages/web/src/content/docs/it/sdk.mdx index 1ac5fd3e2b..9cf7e4eae5 100644 --- a/packages/web/src/content/docs/it/sdk.mdx +++ b/packages/web/src/content/docs/it/sdk.mdx @@ -125,7 +125,7 @@ L'SDK espone tutte le API del server tramite un client type-safe. ### Globale -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ----------------- | --------------------------------- | ------------------------------------ | | `global.health()` | Controlla stato e versione server | `{ healthy: true, version: string }` | @@ -142,7 +142,7 @@ console.log(health.data.version) ### App -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | -------------- | ----------------------- | ------------------------------------------- | | `app.log()` | Scrive una voce di log | `boolean` | | `app.agents()` | Elenca tutti gli agenti | Agent[] | @@ -169,7 +169,7 @@ const agents = await client.app.agents() ### Progetto -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------------- | ----------------- | --------------------------------------------- | | `project.list()` | Elenca i progetti | Project[] | | `project.current()` | Progetto corrente | Project | @@ -190,7 +190,7 @@ const currentProject = await client.project.current() ### Path -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------ | ----------------- | ---------------------------------------- | | `path.get()` | Percorso corrente | Path | @@ -207,7 +207,7 @@ const pathInfo = await client.path.get() ### Config -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- | | `config.get()` | Ottieni info config | Config | | `config.providers()` | Elenca provider e modelli default | `{ providers: `Provider[]`, default: { [key: string]: string } }` | @@ -283,7 +283,7 @@ await client.session.prompt({ ### File -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------- | | `find.text({ query })` | Cerca testo nei file | Array of match objects with `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | | `find.files({ query })` | Trova file e directory per nome | `string[]` (paths) | @@ -324,7 +324,7 @@ const content = await client.file.read({ ### TUI -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------------------------ | -------------------------- | --------- | | `tui.appendPrompt({ body })` | Aggiunge testo al prompt | `boolean` | | `tui.openHelp()` | Apre la finestra help | `boolean` | @@ -355,7 +355,7 @@ await client.tui.showToast({ ### Autenticazione -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------------- | ------------------------ | --------- | | `auth.set({ ... })` | Imposta credenziali auth | `boolean` | @@ -374,7 +374,7 @@ await client.auth.set({ ### Eventi -| Metodo | Descrizione | Response | +| Metodo | Descrizione | Risposta | | ------------------- | ---------------------------- | ---------------------------- | | `event.subscribe()` | Stream di server-sent events | Stream di server-sent events | diff --git a/packages/web/src/content/docs/it/troubleshooting.mdx b/packages/web/src/content/docs/it/troubleshooting.mdx index 37800c60f1..db3052874d 100644 --- a/packages/web/src/content/docs/it/troubleshooting.mdx +++ b/packages/web/src/content/docs/it/troubleshooting.mdx @@ -269,7 +269,7 @@ Questo forzera opencode a scaricare le versioni piu recenti dei pacchetti provid --- -### Copy/paste not working on Linux +### Copia/incolla non funziona su Linux Su Linux e necessario avere installata una delle seguenti utility per gli appunti affinche copia/incolla funzioni: diff --git a/packages/web/src/content/docs/ja/1-0.mdx b/packages/web/src/content/docs/ja/1-0.mdx index 310454be3c..89689f2810 100644 --- a/packages/web/src/content/docs/ja/1-0.mdx +++ b/packages/web/src/content/docs/ja/1-0.mdx @@ -46,22 +46,22 @@ $ opencode upgrade 0.15.31 ### キーバインドの名前が変更されました -- メッセージを元に戻す -> メッセージを元に戻す -- スイッチエージェント -> エージェントサイクル -- スイッチ*エージェント*リバース -> エージェント*サイクル*リバース -- スイッチモード -> エージェントサイクル -- スイッチモードリバース -> エージェントサイクルリバース +- messages_revert -> messages_undo +- switch_agent -> agent_cycle +- switch_agent_reverse -> agent_cycle_reverse +- switch_mode -> agent_cycle +- switch_mode_reverse -> agent_cycle_reverse ### キーバインドが削除されました -- メッセージ*レイアウト*トグル -- メッセージ\_次 -- メッセージ\_前 +- messages_layout_toggle +- messages_next +- messages_previous - file_diff_toggle -- ファイル検索 -- ファイル\_閉じる -- ファイルリスト -- アプリヘルプ -- プロジェクト初期化 -- ツールの詳細 -- 思考ブロック +- file_search +- file_close +- file_list +- app_help +- project_init +- tool_details +- thinking_blocks diff --git a/packages/web/src/content/docs/ja/acp.mdx b/packages/web/src/content/docs/ja/acp.mdx index 283074b7a7..a3893824d2 100644 --- a/packages/web/src/content/docs/ja/acp.mdx +++ b/packages/web/src/content/docs/ja/acp.mdx @@ -22,7 +22,7 @@ ACP 経由で OpenCode を使用するには、`opencode acp` コマンドを実 --- -### ゼッド +### Zed [Zed](https://zed.dev) 構成 (`~/.config/zed/settings.json`) に追加します。 @@ -68,7 +68,7 @@ ACP 経由で OpenCode を使用するには、`opencode acp` コマンドを実 ### JetBrains IDE -[documentation](https://www.jetbrains.com/help/ai-assistant/acp.html):] に従って、[JetBrains IDE](https://www.jetbrains.com/) acp.json] に追加します。 +[documentation](https://www.jetbrains.com/help/ai-assistant/acp.html) に従って、[JetBrains IDE](https://www.jetbrains.com/) acp.json に追加します: ```json title="acp.json" { @@ -85,7 +85,7 @@ ACP 経由で OpenCode を使用するには、`opencode acp` コマンドを実 --- -### アバンテ.nvim +### Avante.nvim [Avante.nvim](https://github.com/yetone/avante.nvim) 設定に追加: @@ -137,7 +137,7 @@ require("codecompanion").setup({ この構成は、OpenCode をチャットの ACP エージェントとして使用するように CodeCompanion をセットアップします。 -環境変数 (`OPENCODE_API_KEY` など) を渡す必要がある場合、詳細については、CodeCompanion.nvim ドキュメントの「アダプターの構成: 環境変数 ](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)」を参照してください。 +環境変数 (`OPENCODE_API_KEY` など) を渡す必要がある場合、詳細については、CodeCompanion.nvim ドキュメントの「[アダプターの構成: 環境変数](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)」を参照してください。 ## サポート diff --git a/packages/web/src/content/docs/ja/agents.mdx b/packages/web/src/content/docs/ja/agents.mdx index 1cff43fde2..946d9bc418 100644 --- a/packages/web/src/content/docs/ja/agents.mdx +++ b/packages/web/src/content/docs/ja/agents.mdx @@ -8,7 +8,7 @@ description: 特殊なエージェントを構成して使用します。 :::tip プラン エージェントを使用すると、コードを変更せずにコードを分析し、提案を確認できます。 ::: -You メンションを使用してエージェントを呼び出すこともできます。 +You can switch between agents during a session or invoke them with the `@` mention. --- @@ -25,8 +25,7 @@ OpenCode には 2 種類のエージェントがあります。プライマリ :::tip **Tab** キーを使用して、セッション中にプライマリ エージェントを切り替えることができます。 ::: -OpenCode には、**Build** と **Plan** という 2 つの組み込みプライマリ エージェントが付属しています。良い -以下を見てください。 +OpenCode には、**Build** と **Plan** という 2 つの組み込みプライマリ エージェントが付属しています。これらについて以下で説明します。 --- @@ -68,7 +67,7 @@ _モード_: `primary` ### 一般的な使用 -_モード_: `primary` +_モード_: `subagent` 複雑な質問を調査し、複数ステップのタスクを実行するための汎用エージェント。完全なツール アクセス権 (todo を除く) があるため、必要に応じてファイルを変更できます。これを使用して、複数の作業単位を並行して実行します。 @@ -76,7 +75,7 @@ _モード_: `primary` ### 探索を使用する -_モード_: `primary` +_モード_: `subagent` コードベースを探索するための高速な読み取り専用エージェント。ファイルを変更できません。これは、パターンでファイルをすばやく検索したり、コードでキーワードを検索したり、コードベースに関する質問に答えたりする必要がある場合に使用します。 @@ -539,7 +538,7 @@ Only analyze code and suggest changes. ### 隠れた -`hidden: true` を使用して、`@` オートコンプリート メニューからサブエージェントを非表示にします。他のエージェントによってタスク ツールを介してプログラム的にのみ呼び出す必要がある内部サブエージェントに役立ちます。 +`@` を使用して、`hidden: true` オートコンプリート メニューからサブエージェントを非表示にします。他のエージェントによってタスク ツールを介してプログラム的にのみ呼び出す必要がある内部サブエージェントに役立ちます。 ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/ja/cli.mdx b/packages/web/src/content/docs/ja/cli.mdx index d0580a0be5..090deae289 100644 --- a/packages/web/src/content/docs/ja/cli.mdx +++ b/packages/web/src/content/docs/ja/cli.mdx @@ -19,7 +19,7 @@ opencode run "Explain how closures work in JavaScript" --- -### トゥイ +### tui OpenCode terminal ユーザー インターフェイスを開始します。 @@ -27,18 +27,18 @@ OpenCode terminal ユーザー インターフェイスを開始します。 opencode [project] ``` -#### フラグ +#### Flags -| 旗 | ショート | 説明 | -| ------------ | -------- | --------------------------------------------------------------------- | -| `--continue` | `-c` | 最後のセッションを続行 | -| `--fork` | | 続行時にセッションをフォーク (`--continue` または `--session` と併用) | -| `--session` | `-s` | 続行するセッション ID | -| `--prompt` | | 使用のプロンプト | -| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | -| `--agent` | | 使用するエージェント | -| `--port` | | リッスンするポート | -| `--hostname` | | リッスンするホスト名 | +| Flag | Short | Description | +| ------------ | ----- | --------------------------------------------------------------------- | +| `--continue` | `-c` | 最後のセッションを続行 | +| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | +| `--continue` | `--session` | 続行するセッション ID | +| `--prompt` | | 使用のプロンプト | +| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | +| `--agent` | | 使用するエージェント | +| `--port` | | リッスンするポート | +| `--hostname` | | リッスンするホスト名 | --- @@ -48,7 +48,7 @@ OpenCode CLI には次のコマンドもあります。 --- -### エージェント +### agent OpenCode のエージェントを管理します。 @@ -58,7 +58,7 @@ opencode agent [command] --- -### 付ける +### attach `serve` または `web` コマンドを使用して起動された、すでに実行中の OpenCode バックエンド サーバーにterminal を接続します。 @@ -76,16 +76,16 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### フラグ +#### Flags -| 旗 | ショート | 説明 | -| ----------- | -------- | ------------------------------ | -| `--dir` | | TUI を開始する作業ディレクトリ | -| `--session` | `-s` | 続行するセッション ID | +| Flag | Short | Description | +| ----------- | ----- | ------------------------------ | +| `--dir` | | TUI を開始する作業ディレクトリ | +| `--session` | `-s` | 続行するセッション ID | --- -#### 作成する +#### create カスタム構成で新しいエージェントを作成します。 @@ -97,7 +97,7 @@ opencode agent create --- -#### リスト +#### list 利用可能なエージェントをすべてリストします。 @@ -107,7 +107,7 @@ opencode agent list --- -### 認証 +### auth プロバイダーの資格情報とログインを管理するコマンド。 @@ -117,7 +117,7 @@ opencode auth [command] --- -#### ログイン +#### login OpenCode は [Models.dev](https://models.dev) のプロバイダー リストを利用しているため、`opencode auth login` を使用して、使用したいプロバイダーの API キーを構成できます。これは`~/.local/share/opencode/auth.json`に保存されます。 @@ -129,7 +129,7 @@ OpenCode が起動すると、認証情報ファイルからプロバイダー --- -#### リスト +#### list 認証情報ファイルに保存されているすべての認証されたプロバイダーをリストします。 @@ -145,7 +145,7 @@ opencode auth ls --- -#### ログアウト +#### logout 資格情報ファイルからプロバイダーをクリアすることで、プロバイダーからログアウトします。 @@ -155,7 +155,7 @@ opencode auth logout --- -### GitHub +### github リポジトリ自動化のための GitHub エージェントを管理します。 @@ -165,7 +165,7 @@ opencode github [command] --- -#### インストール +#### install GitHub エージェントをリポジトリにインストールします。 @@ -177,7 +177,7 @@ opencode github install --- -#### 走る +#### run GitHub エージェントを実行します。これは通常、GitHub Actions で使用されます。 @@ -185,9 +185,9 @@ GitHub エージェントを実行します。これは通常、GitHub Actions opencode github run ``` -##### フラグ +##### Flags -| 旗 | 説明 | +| Flag | Description | | --------- | --------------------------------------------------- | | `--event` | エージェントを実行するための GitHub モック イベント | | `--token` | GitHub個人アクセストークン | @@ -204,7 +204,7 @@ opencode mcp [command] --- -#### 追加 +#### add MCP サーバーを構成に追加します。 @@ -216,7 +216,7 @@ opencode mcp add --- -#### リスト +#### list 構成されているすべての MCP サーバーとその接続ステータスをリストします。 @@ -232,7 +232,7 @@ opencode mcp ls --- -#### 認証 +#### auth OAuth 対応の MCP サーバーで認証します。 @@ -256,7 +256,7 @@ opencode mcp auth ls --- -#### ログアウト +#### logout MCP サーバーの OAuth 資格情報を削除します。 @@ -266,7 +266,7 @@ opencode mcp logout [name] --- -#### デバッグ +#### debug MCP サーバーの OAuth 接続の問題をデバッグします。 @@ -276,7 +276,7 @@ opencode mcp debug --- -### モデル +### models 構成されたプロバイダーから利用可能なすべてのモデルをリストします。 @@ -294,9 +294,9 @@ opencode models [provider] opencode models anthropic ``` -#### フラグ +#### Flags -| 旗 | 説明 | +| Flag | Description | | ----------- | --------------------------------------------------------------- | | `--refresh` | models.dev からモデル キャッシュを更新します。 | | `--verbose` | より詳細なモデル出力を使用します (コストなどのメタデータを含む) | @@ -309,7 +309,7 @@ opencode models --refresh --- -### 走る +### run プロンプトを直接渡して、非対話モードでopencodeを実行します。 @@ -333,26 +333,26 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### フラグ +#### Flags -| 旗 | ショート | 説明 | -| ------------ | -------- | ----------------------------------------------------------------------------------------- | -| `--command` | | 実行するコマンド。引数には message を使用します。 | -| `--continue` | `-c` | 最後のセッションを続行 | -| `--fork` | | 続行時にセッションをフォーク (`--continue` または `--session` と併用) | -| `--session` | `-s` | 続行するセッション ID | -| `--share` | | セッションを共有する | -| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | -| `--agent` | | 使用するエージェント | -| `--file` | `-f` | メッセージに添付するファイル | -| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) | -| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) | -| `--attach` | | 実行中のopencodeサーバー (http://localhost:4096 など) に接続します。 | -| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) | +| Flag | Short | Description | +| ------------ | ----- | ----------------------------------------------------------------------------------------- | +| `--command` | | 実行するコマンド。引数には message を使用します。 | +| `--continue` | `-c` | 最後のセッションを続行 | +| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | +| `--continue` | `--session` | 続行するセッション ID | +| `--share` | | セッションを共有する | +| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | +| `--agent` | | 使用するエージェント | +| `--file` | `-f` | メッセージに添付するファイル | +| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) | +| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) | +| `--attach` | | 実行中のopencodeサーバー (http://localhost:4096 など) に接続します。 | +| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) | --- -### 仕える +### serve API アクセスのためにヘッドレス OpenCode サーバーを起動します。完全な HTTP インターフェイスについては、[server docs](/docs/server) を確認してください。 @@ -362,9 +362,9 @@ opencode serve これにより、TUI インターフェイスを使用せずにopencode機能への API アクセスを提供する HTTP サーバーが起動します。 `OPENCODE_SERVER_PASSWORD` を設定して HTTP 基本認証を有効にします (ユーザー名のデフォルトは `opencode`)。 -#### フラグ +#### Flags -| 旗 | 説明 | +| Flag | Description | | ------------ | --------------------------------------- | | `--port` | リッスンするポート | | `--hostname` | リッスンするホスト名 | @@ -373,7 +373,7 @@ opencode serve --- -### セッション +### session OpenCode セッションを管理します。 @@ -383,7 +383,7 @@ opencode session [command] --- -#### リスト +#### list すべての OpenCode セッションをリストします。 @@ -391,16 +391,16 @@ opencode session [command] opencode session list ``` -##### フラグ +##### Flags -| 旗 | ショート | 説明 | -| ------------- | -------- | ---------------------------------------- | -| `--max-count` | `-n` | 最新のセッションを N 個に制限 | -| `--format` | | 出力形式: テーブルまたは json (テーブル) | +| Flag | Short | Description | +| ------------- | ----- | ---------------------------------------- | +| `--max-count` | `-n` | 最新のセッションを N 個に制限 | +| `--format` | | 出力形式: テーブルまたは json (テーブル) | --- -### 統計 +### stats OpenCode セッションのトークンの使用状況とコストの統計を表示します。 @@ -408,7 +408,7 @@ OpenCode セッションのトークンの使用状況とコストの統計を opencode stats ``` -#### フラグ +#### Flags | Flag | Description | | ----------- | --------------------------------------------------------------------------- | @@ -419,7 +419,7 @@ opencode stats --- -### 輸出 +### export セッションデータをJSONとしてエクスポートします。 @@ -431,7 +431,7 @@ opencode export [sessionID] --- -### 輸入 +### import JSON ファイルまたは OpenCode 共有 URL からセッション データをインポートします。 @@ -448,7 +448,7 @@ opencode import https://opncd.ai/s/abc123 --- -### ウェブ +### web Web インターフェイスを使用してヘッドレス OpenCode サーバーを起動します。 @@ -458,9 +458,9 @@ opencode web これにより、HTTP サーバーが起動し、Web ブラウザが開き、Web インターフェイスを通じて OpenCode にアクセスします。 `OPENCODE_SERVER_PASSWORD` を設定して HTTP 基本認証を有効にします (ユーザー名のデフォルトは `opencode`)。 -#### フラグ +#### Flags -| 旗 | 説明 | +| Flag | Description | | ------------ | --------------------------------------- | | `--port` | リッスンするポート | | `--hostname` | リッスンするホスト名 | @@ -479,9 +479,9 @@ opencode acp このコマンドは、nd-JSON を使用して stdin/stdout 経由で通信する ACP サーバーを起動します。 -#### フラグ +#### Flags -| 旗 | 説明 | +| Flag | Description | | ------------ | -------------------- | | `--cwd` | 作業ディレクトリ | | `--port` | リッスンするポート | @@ -489,7 +489,7 @@ opencode acp --- -### アンインストールする +### uninstall OpenCode をアンインストールし、関連ファイルをすべて削除します。 @@ -497,7 +497,7 @@ OpenCode をアンインストールし、関連ファイルをすべて削除 opencode uninstall ``` -#### フラグ +#### Flags | Flag | Short | Description | | --------------- | ----- | ------------------------------------------- | @@ -508,7 +508,7 @@ opencode uninstall --- -### アップグレード +### upgrade opencodeを最新バージョンまたは特定のバージョンに更新します。 @@ -528,24 +528,24 @@ opencode upgrade opencode upgrade v0.1.48 ``` -#### フラグ +#### Flags -| 旗 | ショート | 説明 | -| ---------- | -------- | --------------------------------------------------------- | -| `--method` | `-m` | 使用されたインストール方法。カール、npm、pnpm、バン、醸造 | +| Flag | Short | Description | +| ---------- | ----- | ------------------------------------------------------ | +| `--method` | `-m` | 使用されたインストール方法。curl, npm, pnpm, bun, brew | --- -## グローバルフラグ +## Global Flags opencode CLI は次のグローバル フラグを受け取ります。 -| 旗 | ショート | 説明 | -| -------------- | -------- | -------------------------------------- | -| `--help` | `-h` | ヘルプを表示 | -| `--version` | `-v` | バージョン番号を出力 | -| `--print-logs` | | ログを標準エラー出力に出力 | -| `--log-level` | | ログ レベル (DEBUG、INFO、WARN、ERROR) | +| Flag | Short | Description | +| -------------- | ----- | -------------------------------------- | +| `--help` | `-h` | ヘルプを表示 | +| `--version` | `-v` | バージョン番号を出力 | +| `--print-logs` | | ログを標準エラー出力に出力 | +| `--log-level` | | ログ レベル (DEBUG、INFO、WARN、ERROR) | --- diff --git a/packages/web/src/content/docs/ja/commands.mdx b/packages/web/src/content/docs/ja/commands.mdx index e1da8344bd..1fe9f2f2b6 100644 --- a/packages/web/src/content/docs/ja/commands.mdx +++ b/packages/web/src/content/docs/ja/commands.mdx @@ -79,8 +79,8 @@ OpenCode で `command` オプションを使用します [config](/docs/config): Markdown ファイルを使用してコマンドを定義することもできます。それらを次の場所に置きます。 -- グローバル: `~/.config/opencode/agents/` -- プロジェクトごと: `.opencode/agents/` +- グローバル: `~/.config/opencode/commands/` +- プロジェクトごと: `.opencode/commands/` ```markdown title="~/.config/opencode/commands/test.md" --- @@ -161,7 +161,7 @@ with the following content: $3 --- -### shell出力 +### Shell 出力 _!`command`_ を使用して、[bash command](/docs/tui#bash-commands) の出力をプロンプトに挿入します。 @@ -319,4 +319,4 @@ opencode には、`/init`、`/undo`、`/redo`、`/share`、`/help` などのい :::note カスタム コマンドは組み込みコマンドをオーバーライドできます。 ::: -If コマンドを定義すると、組み込みコマンドがオーバーライドされます。 +同じ名前のカスタム コマンドを定義すると、組み込みコマンドがオーバーライドされます。 diff --git a/packages/web/src/content/docs/ja/config.mdx b/packages/web/src/content/docs/ja/config.mdx index ab79dba13c..9e840bdfa4 100644 --- a/packages/web/src/content/docs/ja/config.mdx +++ b/packages/web/src/content/docs/ja/config.mdx @@ -31,7 +31,7 @@ OpenCode は、**JSON** と **JSONC** (コメント付きの JSON) 形式の両 :::note 構成ファイルは置き換えられるのではなく、**マージ**されます。 ::: -Configuration +構成ファイルは、置き換えられるのではなく、マージされます。設定は、次の構成場所から結合されます。後続の構成は、競合するキーに対してのみ以前の構成をオーバーライドします。すべての構成の競合しない設定は保持されます。 たとえば、グローバル設定で `theme: "opencode"` と `autoupdate: true` が設定され、プロジェクト設定で `model: "anthropic/claude-sonnet-4-5"` が設定されている場合、最終的な設定には 3 つの設定がすべて含まれます。 @@ -107,7 +107,7 @@ Configuration :::tip プロジェクト固有の構成をプロジェクトのルートに配置します。 ::: -When が起動すると、現在のディレクトリで構成ファイルを検索するか、最も近い Git ディレクトリまで移動します。 +OpenCode が起動すると、現在のディレクトリで構成ファイルを検索するか、最も近い Git ディレクトリまで移動します。 これは Git に安全にチェックインでき、グローバル スキーマと同じスキーマを使用します。 @@ -150,7 +150,7 @@ opencode run "Hello world" --- -### トゥイ +### TUI `tui` オプションを使用して TUI 固有の設定を構成できます。 @@ -179,7 +179,7 @@ opencode run "Hello world" ### サーバ -`server` オプションを使用して、`opencode serve` および `opencode web` コマンドのサーバー設定を構成できます。 +`opencode serve` オプションを使用して、`opencode web` および `server` コマンドのサーバー設定を構成できます。 ```json title="opencode.json" { @@ -266,7 +266,7 @@ LLM が使用できるツールは、`tools` オプションを通じて管理 一部のプロバイダーは、一般的な `timeout` および `apiKey` 設定を超える追加の構成オプションをサポートしています。 -##### アマゾンの岩盤 +##### Amazon Bedrock Amazon Bedrock は、AWS 固有の構成をサポートしています。 @@ -413,7 +413,7 @@ Amazon Bedrock は、AWS 固有の構成をサポートしています。 } ``` -[詳細はこちら](/docs/themes)。 +[詳細はこちら](/docs/keybinds)。 --- @@ -526,7 +526,7 @@ OpenCode は起動時に新しいアップデートを自動的にダウンロ } ``` -[詳細はこちら](/docs/themes)。 +[詳細はこちら](/docs/mcp-servers)。 --- @@ -543,7 +543,7 @@ OpenCode は起動時に新しいアップデートを自動的にダウンロ } ``` -[詳細はこちら](/docs/themes)。 +[詳細はこちら](/docs/plugins)。 --- @@ -577,7 +577,7 @@ OpenCode は起動時に新しいアップデートを自動的にダウンロ :::note `disabled_providers` は `enabled_providers` よりも優先されます。 ::: -The オプションは、プロバイダー ID の配列を受け入れます。プロバイダーが無効になっている場合: +`disabled_providers` オプションは、プロバイダー ID の配列を受け入れます。プロバイダーが無効になっている場合: - 環境変数を設定してもロードされません。 - `/connect` コマンドで API キーを設定してもロードされません。 @@ -601,7 +601,7 @@ The オプションは、プロバイダー ID の配列を受け入れます。 :::note `disabled_providers` は `enabled_providers` よりも優先されます。 ::: -If `enabled_providers` と `disabled_providers` の両方に表示される場合、下位互換性のために `disabled_providers` が優先されます。 +プロバイダーが `enabled_providers` と `disabled_providers` の両方に表示される場合、下位互換性のために `disabled_providers` が優先されます。 --- diff --git a/packages/web/src/content/docs/ja/custom-tools.mdx b/packages/web/src/content/docs/ja/custom-tools.mdx index e321abee7a..9b6dbdd6b2 100644 --- a/packages/web/src/content/docs/ja/custom-tools.mdx +++ b/packages/web/src/content/docs/ja/custom-tools.mdx @@ -3,7 +3,7 @@ title: カスタムツール description: LLM がopencodeで呼び出すことができるツールを作成します。 --- -カスタム ツールは、会話中に LLM が呼び出すことができる作成した関数です。これらは、opencode の組み込みツール ](/docs/tools) (`read`、`write`、`bash` など) と連携して動作します。 +カスタム ツールは、会話中に LLM が呼び出すことができる作成した関数です。これらは、opencode の[組み込みツール](/docs/tools) (`read`、`write`、`bash` など) と連携して動作します。 --- @@ -108,7 +108,7 @@ export default { --- -### コンテクスト +### Context ツールは現在のセッションに関するコンテキストを受け取ります。 diff --git a/packages/web/src/content/docs/ja/ecosystem.mdx b/packages/web/src/content/docs/ja/ecosystem.mdx index 1d4be435e3..f3e2fa1322 100644 --- a/packages/web/src/content/docs/ja/ecosystem.mdx +++ b/packages/web/src/content/docs/ja/ecosystem.mdx @@ -1,5 +1,5 @@ --- -title: 生態系 +title: エコシステム description: OpenCode で構築されたプロジェクトと統合。 --- @@ -8,7 +8,7 @@ OpenCode に基づいて構築されたコミュニティ プロジェクトの :::note OpenCode 関連プロジェクトをこのリストに追加したいですか? PRを送信してください。 ::: -You [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) および [opencode.cafe](https://opencode.cafe) もチェックしてください。 +[awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) および [opencode.cafe](https://opencode.cafe) もチェックしてください。 --- diff --git a/packages/web/src/content/docs/ja/enterprise.mdx b/packages/web/src/content/docs/ja/enterprise.mdx index ced09bf332..fdd9e1e1c2 100644 --- a/packages/web/src/content/docs/ja/enterprise.mdx +++ b/packages/web/src/content/docs/ja/enterprise.mdx @@ -1,5 +1,5 @@ --- -title: 企業 +title: Enterprise description: 組織内で OpenCode を安全に使用します。 --- @@ -11,7 +11,7 @@ OpenCode Enterprise は、コードとデータがインフラストラクチャ :::note OpenCode は、コードやコンテキスト データを一切保存しません。 ::: -To Enterprise を始めるには: +OpenCode Enterprise を始めるには: 1. チーム内でトライアルを実施してください。 2. 価格や実装オプションについては、**お問い合わせ**ください。 @@ -140,7 +140,7 @@ OpenCode Enterprise は、コードとデータがインフラストラクチャ
-Can we use our own private NPM registry? +Can we use our own private npm registry? OpenCode は、Bun のネイティブ `.npmrc` ファイル サポートを通じてプライベート npm レジストリをサポートします。組織が JFrog Artifactory、Nexus などのプライベート レジストリを使用している場合は、OpenCode を実行する前に開発者が認証されていることを確認してください。 @@ -156,7 +156,7 @@ npm login --registry=https://your-company.jfrog.io/api/npm/npm-virtual/ :::caution OpenCode を実行する前に、プライベート レジストリにログインする必要があります。 ::: -Alternatively, ファイルを手動で構成することもできます。 +あるいは、.npmrc ファイルを手動で構成することもできます。 ```bash title="~/.npmrc" registry=https://your-company.jfrog.io/api/npm/npm-virtual/ diff --git a/packages/web/src/content/docs/ja/formatters.mdx b/packages/web/src/content/docs/ja/formatters.mdx index b238379916..bbbe01c83b 100644 --- a/packages/web/src/content/docs/ja/formatters.mdx +++ b/packages/web/src/content/docs/ja/formatters.mdx @@ -38,7 +38,7 @@ OpenCode には、一般的な言語およびフレームワーク用のいく | oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` dependency in `package.json` and an [experimental env variable flag](/docs/cli/#experimental) | | ormolu | .hs | `ormolu` command available | -したがって、プロジェクトの `package.json` に `prettier` が含まれている場合、OpenCode は自動的にそれを使用します。 +したがって、プロジェクトの `prettier` に `package.json` が含まれている場合、OpenCode は自動的にそれを使用します。 --- diff --git a/packages/web/src/content/docs/ja/github.mdx b/packages/web/src/content/docs/ja/github.mdx index e84e831553..9c958eaf7f 100644 --- a/packages/web/src/content/docs/ja/github.mdx +++ b/packages/web/src/content/docs/ja/github.mdx @@ -40,38 +40,38 @@ opencode github install 次のワークフロー ファイルをリポジトリの `.github/workflows/opencode.yml` に追加します。適切な `model` と必要な API キーを `env` に設定してください。 ```yml title=".github/workflows/opencode.yml" {24,26} -name: opencode + name: opencode -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] + on: + issue_comment: + types: [created] + pull_request_review_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@v6 - with: - fetch-depth: 1 - persist-credentials: false + 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@v6 + with: + fetch-depth: 1 + persist-credentials: false - - name: Run OpenCode - uses: anomalyco/opencode/github@latest - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - with: - model: anthropic/claude-sonnet-4-20250514 - # share: true - # github_token: xxxx -``` + - name: Run OpenCode + uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + # share: true + # github_token: xxxx + ``` 3. **API キーをシークレットに保存します** @@ -90,12 +90,12 @@ jobs: あるいは、OpenCode GitHub アプリをインストールせずに、GitHub Action ランナーの [組み込み `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) を使用することもできます。ワークフローで必要な権限を必ず付与してください。 ```yaml -permissions: - id-token: write - contents: write - pull-requests: write - issues: write -``` + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + ``` 必要に応じて、[パーソナル アクセス トークン](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) を使用することもできます。 @@ -278,8 +278,8 @@ GitHub で OpenCode を使用する方法の例をいくつか示します。 このコメントを GitHub の問題に追加します。 ``` -/opencode explain this issue -``` + /opencode explain this issue + ``` OpenCode は、すべてのコメントを含むスレッド全体を読み取り、明確な説明を返信します。 @@ -288,8 +288,8 @@ OpenCode は、すべてのコメントを含むスレッド全体を読み取 GitHub の問題で次のように言います。 ``` -/opencode fix this -``` + /opencode fix this + ``` そして、OpenCode は新しいブランチを作成し、変更を実装し、変更を含む PR を開きます。 @@ -298,8 +298,8 @@ GitHub の問題で次のように言います。 GitHub PR に次のコメントを残してください。 ``` -Delete the attachment from S3 when the note is removed /oc -``` + Delete the attachment from S3 when the note is removed /oc + ``` OpenCode は要求された変更を実装し、同じ PR にコミットします。 @@ -308,9 +308,9 @@ OpenCode は要求された変更を実装し、同じ PR にコミットしま PR の「ファイル」タブのコード行に直接コメントを残します。 OpenCode は、ファイル、行番号、および diff コンテキストを自動的に検出して、正確な応答を提供します。 ``` -[Comment on specific lines in Files tab] -/oc add error handling here -``` + [Comment on specific lines in Files tab] + /oc add error handling here + ``` 特定の行にコメントすると、OpenCode は以下を受け取ります。 diff --git a/packages/web/src/content/docs/ja/gitlab.mdx b/packages/web/src/content/docs/ja/gitlab.mdx index fab5ceff58..ab7d93ca57 100644 --- a/packages/web/src/content/docs/ja/gitlab.mdx +++ b/packages/web/src/content/docs/ja/gitlab.mdx @@ -44,7 +44,7 @@ OpenCode は通常の GitLab パイプラインで動作します。 [CI コン --- -## GitLab デュオ +## GitLab Duo OpenCode は GitLab ワークフローと統合します。 コメントで `@opencode` に言及すると、OpenCode が GitLab CI パイプライン内でタスクを実行します。 @@ -152,7 +152,7 @@ OpenCode は GitLab CI/CD パイプラインで実行されます。セットア
-詳細な手順については、「GitLab CLI エージェント docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)」を参照してください。 +詳細な手順については、[GitLab CLI エージェント docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)を参照してください。 --- @@ -169,8 +169,8 @@ GitLab で OpenCode を使用する方法の例をいくつか示します。 このコメントを GitLab の問題に追加します。 ``` -@opencode explain this issue -``` + @opencode explain this issue + ``` OpenCode は問題を読み、明確な説明を返信します。 @@ -179,8 +179,8 @@ OpenCode は問題を読み、明確な説明を返信します。 GitLab の問題では、次のように言います。 ``` -@opencode fix this -``` + @opencode fix this + ``` OpenCode は新しいブランチを作成し、変更を実装し、変更を含むマージ リクエストを開きます。 @@ -189,7 +189,7 @@ OpenCode は新しいブランチを作成し、変更を実装し、変更を GitLab マージ リクエストに次のコメントを残してください。 ``` -@opencode review this merge request -``` + @opencode review this merge request + ``` OpenCode はマージ リクエストをレビューし、フィードバックを提供します。 diff --git a/packages/web/src/content/docs/ja/ide.mdx b/packages/web/src/content/docs/ja/ide.mdx index 6e977f614f..dcced1c89a 100644 --- a/packages/web/src/content/docs/ja/ide.mdx +++ b/packages/web/src/content/docs/ja/ide.mdx @@ -20,7 +20,7 @@ OpenCode は、VS Code、Cursor、またはterminal をサポートする任意 OpenCode を VS Code および Cursor、Windsurf、VSCodium などの一般的なフォークにインストールするには: -1. VS コードを開く +1. VS Codeを開く 2. 統合terminal を開きます 3. `opencode` を実行します - 拡張機能は自動的にインストールされます diff --git a/packages/web/src/content/docs/ja/index.mdx b/packages/web/src/content/docs/ja/index.mdx index 3e845d4331..c1bfd24d28 100644 --- a/packages/web/src/content/docs/ja/index.mdx +++ b/packages/web/src/content/docs/ja/index.mdx @@ -87,7 +87,7 @@ curl -fsSL https://opencode.ai/install | bash paru -S opencode-bin ``` -#### 窓 +#### Windows :::tip[推奨: WSL を使用する] Windows で最高のエクスペリエンスを得るには、[Windows Subsystem for Linux (WSL)](/docs/windows-wsl) を使用することをお勧めします。これにより、パフォーマンスが向上し、OpenCode の機能との完全な互換性が提供されます。 @@ -99,7 +99,7 @@ Windows で最高のエクスペリエンスを得るには、[Windows Subsystem choco install opencode ``` -- **スクープの使用** +- **Using Scoop** ```bash scoop install opencode @@ -111,7 +111,7 @@ Windows で最高のエクスペリエンスを得るには、[Windows Subsystem npm install -g opencode-ai ``` -- **ミセの使い方** +- **Using Mise** ```bash mise use -g github:anomalyco/opencode @@ -223,22 +223,22 @@ OpenCode に新しい機能をプロジェクトに追加するよう依頼で 1. **計画を作成する** -OpenCode には、変更を加える機能を無効にする _Plan モード_ があり、 +OpenCode には、変更を加える機能を無効にする _Plan mode_ があり、 代わりに、その機能を*どのように*実装するかを提案してください。 **Tab** キーを使用してそれに切り替えます。右下隅にこれを示すインジケーターが表示されます。 ```bash frame="none" title="Switch to Plan mode" - -``` + + ``` では、何をしたいのかを説明しましょう。 ```txt frame="none" -When a user deletes a note, we'd like to flag it as deleted in the database. -Then create a screen that shows all the recently deleted notes. -From this screen, the user can undelete a note or permanently delete it. -``` + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. + ``` 自分が何を望んでいるのかを理解するために、OpenCode に十分な詳細を提供したいと考えています。役に立ちます チームの若手開発者と話しているように話すことができます。 @@ -253,9 +253,9 @@ want. 計画が示されたら、フィードバックを送信したり、詳細を追加したりできます。 ```txt frame="none" -We'd like to design this new screen using a design I've used before. -[Image #1] Take a look at this image and use it as a reference. -``` + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. + ``` :::tip 画像をterminal にドラッグ アンド ドロップして、プロンプトに追加します。 @@ -266,18 +266,18 @@ OpenCode は、指定された画像をスキャンしてプロンプトに追 3. **機能を構築する** -計画に慣れたら、*Build モード*に戻ります。 +計画に慣れたら、*Build mode*に戻ります。 **Tab** キーをもう一度押します。 ```bash frame="none" - -``` + + ``` そして変更を加えるように依頼します。 ```bash frame="none" -Sounds good! Go ahead and make the changes. -``` + Sounds good! Go ahead and make the changes. + ``` --- diff --git a/packages/web/src/content/docs/ja/keybinds.mdx b/packages/web/src/content/docs/ja/keybinds.mdx index d0f5f86814..30a36054e5 100644 --- a/packages/web/src/content/docs/ja/keybinds.mdx +++ b/packages/web/src/content/docs/ja/keybinds.mdx @@ -178,7 +178,7 @@ OpenCode デスクトップ アプリのプロンプト入力は、テキスト ] ``` -これをルートレベルの `actions` 配列に追加します。 +これをルートレベルの `keybindings` 配列に追加します。 ```json "keybindings": [ @@ -189,4 +189,4 @@ OpenCode デスクトップ アプリのプロンプト入力は、テキスト ] ``` -ファイルを保存し、Windows terminal を再起動するか、新しいタブを開きます。 +ファイルを保存し、Windows Terminal を再起動するか、新しいタブを開きます。 diff --git a/packages/web/src/content/docs/ja/lsp.mdx b/packages/web/src/content/docs/ja/lsp.mdx index 51c5fad9be..43af52de78 100644 --- a/packages/web/src/content/docs/ja/lsp.mdx +++ b/packages/web/src/content/docs/ja/lsp.mdx @@ -178,11 +178,11 @@ LSP サーバーの起動時に `env` プロパティを使用して環境変数 ## 追加情報 -### PHP インテリフェンス +### PHP Intelephense PHP Intelephense は、ライセンス キーを通じてプレミアム機能を提供します。ライセンス キーを指定するには、次の場所にあるテキスト ファイルにキー (のみ) を配置します。 -- macOS/Linux の場合: `$HOME/intelephense/licence.txt` -- Windows の場合: `%USERPROFILE%/intelephense/licence.txt` +- macOS/Linux の場合: `$HOME/intelephense/license.txt` +- Windows の場合: `%USERPROFILE%/intelephense/license.txt` ファイルにはライセンス キーのみが含まれており、追加のコンテンツは含まれていません。 diff --git a/packages/web/src/content/docs/ja/mcp-servers.mdx b/packages/web/src/content/docs/ja/mcp-servers.mdx index 22fcf44d6f..7282f5af9d 100644 --- a/packages/web/src/content/docs/ja/mcp-servers.mdx +++ b/packages/web/src/content/docs/ja/mcp-servers.mdx @@ -66,7 +66,7 @@ MCP サーバーは、`mcp` の下の [OpenCode Config](https://opencode.ai/docs --- -## 地元 +## Local MCP オブジェクト内の `type` から `"local"` を使用してローカル MCP サーバーを追加します。 @@ -117,8 +117,8 @@ use the mcp_everything tool to add the number 3 and 4 | オプション | タイプ | 必須 | 説明 | | ------------- | ------------ | ---- | ------------------------------------------------------------------------------------------ | -| `type` | 文字列 | や | MCP サーバー接続のタイプは、`"local"` である必要があります。 | -| `command` | 配列 | や | MCP サーバーを実行するためのコマンドと引数。 | +| `type` | 文字列 | Y | MCP サーバー接続のタイプは、`"local"` である必要があります。 | +| `command` | 配列 | Y | MCP サーバーを実行するためのコマンドと引数。 | | `environment` | オブジェクト | | サーバーの実行時に設定する環境変数。 | | `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 | | `timeout` | 番号 | | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 | @@ -153,8 +153,8 @@ use the mcp_everything tool to add the number 3 and 4 | オプション | タイプ | 必須 | 説明 | | ---------- | ------------ | ---- | ------------------------------------------------------------------------------------------ | -| `type` | 文字列 | や | MCP サーバー接続のタイプは、`"remote"` である必要があります。 | -| `url` | 文字列 | や | リモート MCP サーバーの URL。 | +| `type` | 文字列 | Y | MCP サーバー接続のタイプは、`"remote"` である必要があります。 | +| `url` | 文字列 | Y | リモート MCP サーバーの URL。 | | `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 | | `headers` | オブジェクト | | リクエストとともに送信するヘッダー。 | | `oauth` | オブジェクト | | OAuth認証構成。以下の「OAuth](#oauth)」セクションを参照してください。 | @@ -389,7 +389,7 @@ MCP サーバー ツールはサーバー名をプレフィックスとして登 "mymcpservername_*": false ``` -## ::: +::: ## 例 @@ -397,7 +397,7 @@ MCP サーバー ツールはサーバー名をプレフィックスとして登 --- -### セントリー +### Sentry [Sentry MCP サーバー ](https://mcp.sentry.dev) を追加して、Sentry プロジェクトや問題と対話します。 @@ -430,7 +430,7 @@ Show me the latest unresolved issues in my project. use sentry --- -### コンテキスト7 +### Context7 ドキュメントを検索するために [Context7 MCP server](https://github.com/upstash/context7) を追加します。 @@ -479,7 +479,7 @@ When you need to search docs, use `context7` tools. --- -### Vercel による Grep +### Grep by Vercel GitHub 上のコード スニペットを検索するには、[Grep by Vercel](https://grep.app) MCP サーバーを追加します。 diff --git a/packages/web/src/content/docs/ja/models.mdx b/packages/web/src/content/docs/ja/models.mdx index c3b1c8e892..d2617a7f8c 100644 --- a/packages/web/src/content/docs/ja/models.mdx +++ b/packages/web/src/content/docs/ja/models.mdx @@ -32,16 +32,16 @@ OpenCode は [AI SDK](https://ai-sdk.dev/) および [Models.dev](https://models :::tip 当社が推奨するモデルのいずれかの使用を検討してください。 ::: -However, +しかし、コード生成とツール呼び出しの両方に優れたものはほんのわずかしかありません。 ここでは、OpenCode で適切に動作するいくつかのモデルを順不同で示します。 (これは完全なリストではなく、必ずしも最新であるとは限りません): - GPT5.2 -- GPT 5.1 コーデックス -- クロード 作品4.5 -- クロード・ソネット 4.5 -- ミニマックス M2.1 -- ジェミニ 3 プロ +- GPT 5.1 Codex +- Claude Opus 4.5 +- Claude Sonnet 4.5 +- MiniMax M2.1 +- Gemini 3 Pro --- @@ -99,7 +99,7 @@ config を通じてモデルのオプションをグローバルに設定でき } ``` -ここでは、2 つの組み込みモデル (`openai` プロバイダー経由でアクセスする場合は `gpt-5`、`anthropic` プロバイダー経由でアクセスする場合は `claude-sonnet-4-20250514`) のグローバル設定を構成しています。 +ここでは、2 つの組み込みモデル (`gpt-5` プロバイダー経由でアクセスする場合は `openai`、`claude-sonnet-4-20250514` プロバイダー経由でアクセスする場合は `anthropic`) のグローバル設定を構成しています。 組み込みプロバイダーとモデル名は、[Models.dev](https://models.dev). 使用しているエージェントに対してこれらのオプションを構成することもできます。ここでエージェント設定はグローバル オプションをオーバーライドします。 [詳細はこちら](/docs/agents/#additional)。 @@ -142,7 +142,7 @@ config を通じてモデルのオプションをグローバルに設定でき OpenCode には、多くのプロバイダーのデフォルトのバリアントが付属しています。 -**人間的**: +**Anthropic**: - `high` - 高度な思考予算 (デフォルト) - `max` - 最大の思考予算 @@ -158,7 +158,7 @@ OpenCode には、多くのプロバイダーのデフォルトのバリアン - `high` - 高い推論努力 - `xhigh` - 非常に高い推論努力 -**グーグル**: +**Google**: - `low` - 労力/トークン予算の削減 - `high` - より高い労力/トークン予算 diff --git a/packages/web/src/content/docs/ja/modes.mdx b/packages/web/src/content/docs/ja/modes.mdx index 1287d5454f..5c7f9958d6 100644 --- a/packages/web/src/content/docs/ja/modes.mdx +++ b/packages/web/src/content/docs/ja/modes.mdx @@ -22,13 +22,13 @@ opencode には 2 つの組み込みモードが付属しています。 --- -### 建てる +### Build ビルドは、すべてのツールが有効になっている **デフォルト** モードです。これは、ファイル操作やシステム コマンドへのフル アクセスが必要な開発作業の標準モードです。 --- -### プラン +### Plan 計画と分析のために設計された制限付きモード。プラン モードでは、次のツールはデフォルトで無効になっています。 @@ -86,7 +86,7 @@ opencode には 2 つの組み込みモードが付属しています。 Markdown ファイルを使用してモードを定義することもできます。それらを次の場所に置きます。 -- グローバル: `~/.config/opencode/agents/` +- グローバル: `~/.config/opencode/modes/` - プロジェクト: `.opencode/modes/` ```markdown title="~/.config/opencode/modes/review.md" diff --git a/packages/web/src/content/docs/ja/network.mdx b/packages/web/src/content/docs/ja/network.mdx index 7a916016f6..4dd2cfb865 100644 --- a/packages/web/src/content/docs/ja/network.mdx +++ b/packages/web/src/content/docs/ja/network.mdx @@ -25,7 +25,7 @@ export NO_PROXY=localhost,127.0.0.1 :::caution TUI はローカル HTTP サーバーと通信します。ルーティング ループを防ぐには、この接続のプロキシをバイパスする必要があります。 ::: -You[CLI flags](/docs/cli#run). +[CLI flags](/docs/cli#run) を使用して、サーバーのポートとホスト名を構成できます。 --- @@ -40,7 +40,7 @@ export HTTPS_PROXY=http://username:password@proxy.example.com:8080 :::caution パスワードのハードコーディングは避けてください。環境変数または安全な認証情報ストレージを使用します。 ::: -For や Kerberos などの高度な認証を必要とするプロキシの場合は、認証方法をサポートする LLM ゲートウェイの使用を検討してください。 +NTLM や Kerberos などの高度な認証を必要とするプロキシの場合は、認証方法をサポートする LLM ゲートウェイの使用を検討してください。 --- diff --git a/packages/web/src/content/docs/ja/permissions.mdx b/packages/web/src/content/docs/ja/permissions.mdx index f39a764c72..253093d51a 100644 --- a/packages/web/src/content/docs/ja/permissions.mdx +++ b/packages/web/src/content/docs/ja/permissions.mdx @@ -186,7 +186,7 @@ OpenCode が承認を求めるプロンプトを表示すると、UI は 3 つ エージェントごとに権限をオーバーライドできます。エージェントの権限はグローバル設定とマージされ、エージェント ルールが優先されます。 [エージェントの権限について詳しくは、](/docs/agents#permissions) をご覧ください。 :::note -パターン マッチングの詳細な例については、上記の「粒度ルール (オブジェクト構文)](#granular-rules-object-syntax)」セクションを参照してください。 +パターン マッチングの詳細な例については、上記の[粒度ルール (オブジェクト構文)](#granular-rules-object-syntax)セクションを参照してください。 ::: ```json title="opencode.json" diff --git a/packages/web/src/content/docs/ja/plugins.mdx b/packages/web/src/content/docs/ja/plugins.mdx index 31fe6f2a45..f718992e5d 100644 --- a/packages/web/src/content/docs/ja/plugins.mdx +++ b/packages/web/src/content/docs/ja/plugins.mdx @@ -312,7 +312,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { ### ロギング -構造化ログには `console.log` の代わりに `client.app.log()` を使用します。 +構造化ログには `client.app.log()` の代わりに `console.log` を使用します。 ```ts title=".opencode/plugins/my-plugin.ts" export const MyPlugin = async ({ client }) => { diff --git a/packages/web/src/content/docs/ja/providers.mdx b/packages/web/src/content/docs/ja/providers.mdx index 1227539f27..91d8c5c762 100644 --- a/packages/web/src/content/docs/ja/providers.mdx +++ b/packages/web/src/content/docs/ja/providers.mdx @@ -29,7 +29,7 @@ config. --- -#### ベース URL +#### Base URL `baseURL` オプションを設定することで、任意のプロバイダーのベース URL をカスタマイズできます。これは、プロキシ サービスまたはカスタム エンドポイントを使用する場合に便利です。 @@ -122,7 +122,7 @@ OpenCode で適切に動作することがテストおよび検証されてい --- -### アマゾンの岩盤 +### Amazon Bedrock OpenCode で Amazon Bedrock を使用するには: @@ -140,40 +140,40 @@ Amazon Bedrock で必要なモデルにアクセスできる必要がありま opencode の実行中に次の環境変数のいずれかを設定します。 ```bash -# Option 1: Using AWS access keys -AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode + # Option 1: Using AWS access keys + AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode -# Option 2: Using named AWS profile -AWS_PROFILE=my-profile opencode + # Option 2: Using named AWS profile + AWS_PROFILE=my-profile opencode -# Option 3: Using Bedrock bearer token -AWS_BEARER_TOKEN_BEDROCK=XXX opencode -``` + # Option 3: Using Bedrock bearer token + AWS_BEARER_TOKEN_BEDROCK=XXX opencode + ``` または、それらを bash プロファイルに追加します。 ```bash title="~/.bash_profile" -export AWS_PROFILE=my-dev-profile -export AWS_REGION=us-east-1 -``` + export AWS_PROFILE=my-dev-profile + export AWS_REGION=us-east-1 + ``` #### 設定ファイル (推奨) プロジェクト固有の構成または永続的な構成の場合は、`opencode.json` を使用します。 ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` **利用可能なオプション:** @@ -190,19 +190,19 @@ export AWS_REGION=us-east-1 Bedrock の VPC エンドポイントを使用している場合: ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` :::note `endpoint` オプションは、AWS 固有の用語を使用した汎用の `baseURL` オプションのエイリアスです。 `endpoint` と `baseURL` の両方が指定された場合は、`endpoint` が優先されます。 @@ -255,7 +255,7 @@ Amazon Bedrock は次の認証優先度を使用します。 --- -### 人間的 +### Anthropic 1. サインアップしたら、`/connect` コマンドを実行し、[Anthropic] を選択します。 @@ -333,8 +333,8 @@ opencodeが正しく動作するには、デプロイメント名がモデル名 または、bash プロファイルに追加します。 ```bash title="~/.bash_profile" -export AZURE_RESOURCE_NAME=XXX -``` + export AZURE_RESOURCE_NAME=XXX + ``` 6. `/models` コマンドを実行して、デプロイされたモデルを選択します。 @@ -344,7 +344,7 @@ export AZURE_RESOURCE_NAME=XXX --- -### Azure コグニティブ サービス +### Azure Cognitive Services 1. [Azure portal](https://portal.azure.com/) に移動し、**Azure OpenAI** リソースを作成します。必要なものは次のとおりです。 - **リソース名**: これは API エンドポイント (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) の一部になります。 @@ -380,8 +380,8 @@ opencodeが正しく動作するには、デプロイメント名がモデル名 または、bash プロファイルに追加します。 ```bash title="~/.bash_profile" -export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX -``` + export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX + ``` 6. `/models` コマンドを実行して、デプロイされたモデルを選択します。 @@ -391,7 +391,7 @@ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX --- -### ベーステン +### Baseten 1. [Baseten](https://app.baseten.co/) に移動し、アカウントを作成し、API キーを生成します。 @@ -418,7 +418,7 @@ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX --- -### 大脳 +### Cerebras 1. [Cerebras console](https://inference.cerebras.ai/) に移動し、アカウントを作成し、API キーを生成します。 @@ -445,7 +445,7 @@ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX --- -### Cloudflare AI ゲートウェイ +### Cloudflare AI Gateway Cloudflare AI Gatewayを使用すると、統合エンドポイントを通じてOpenAI、Anthropic、Workers AIなどのモデルにアクセスできます。 [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/) を使用すると、プロバイダーごとに個別の API キーは必要ありません。 @@ -476,8 +476,8 @@ Cloudflare AI Gatewayを使用すると、統合エンドポイントを通じ または環境変数として設定します。 ```bash title="~/.bash_profile" -export CLOUDFLARE_API_TOKEN=your-api-token -``` + export CLOUDFLARE_API_TOKEN=your-api-token + ``` 5. `/models` コマンドを実行してモデルを選択します。 @@ -488,22 +488,22 @@ export CLOUDFLARE_API_TOKEN=your-api-token opencode構成を通じてモデルを追加することもできます。 ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } + } + ``` --- -### コルテックス +### Cortecs 1. [Cortecs console](https://cortecs.ai/) に移動し、アカウントを作成し、API キーを生成します。 @@ -530,7 +530,7 @@ opencode構成を通じてモデルを追加することもできます。 --- -### ディープシーク +### DeepSeek 1. [DeepSeek コンソール ](https://platform.deepseek.com/) に移動し、アカウントを作成し、**新しい API キーの作成** をクリックします。 @@ -557,7 +557,7 @@ opencode構成を通じてモデルを追加することもできます。 --- -### ディープインフラ +### Deep Infra 1. [Deep Infra ダッシュボード](https://deepinfra.com/dash) に移動し、アカウントを作成し、API キーを生成します。 @@ -584,7 +584,7 @@ opencode構成を通じてモデルを追加することもできます。 --- -### ファームウェア +### Firmware 1. [ファームウェア ダッシュボード](https://app.firmware.ai/signup) に移動し、アカウントを作成し、API キーを生成します。 @@ -611,7 +611,7 @@ opencode構成を通じてモデルを追加することもできます。 --- -### 花火AI +### Fireworks AI 1. [Fireworks AI コンソール ](https://app.fireworks.ai/) に移動し、アカウントを作成し、**API キーの作成** をクリックします。 @@ -638,7 +638,7 @@ opencode構成を通じてモデルを追加することもできます。 --- -### GitLab デュオ +### GitLab Duo GitLab Duo は、GitLab の Anthropic プロキシを介したネイティブ ツール呼び出し機能を備えた AI を活用したエージェント チャットを提供します。 @@ -673,8 +673,8 @@ GitLab Duo は、GitLab の Anthropic プロキシを介したネイティブ 6. `/models` コマンドを実行して、利用可能なモデルを確認します。 ```txt - /models - ``` + /models + ``` 3 つのクロードベースのモデルが利用可能です。 @@ -789,7 +789,7 @@ GitLab ツール (マージ リクエスト、問題、パイプライン、CI/C --- -### GitHub コパイロット +### GitHub Copilot GitHub Copilot サブスクリプションをopencodeで使用するには: @@ -826,7 +826,7 @@ subscription](https://github.com/features/copilot/plans) を使用します。 --- -### Google バーテックス AI +### Google Vertex AI OpenCode で Google Vertex AI を使用するには: @@ -847,16 +847,16 @@ Vertex AI API が有効になっている Google Cloud プロジェクトが必 opencode の実行中に設定します。 ```bash -GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode -``` + GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode + ``` または、それらを bash プロファイルに追加します。 ```bash title="~/.bash_profile" -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json -export GOOGLE_CLOUD_PROJECT=your-project-id -export VERTEX_LOCATION=global -``` + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json + export GOOGLE_CLOUD_PROJECT=your-project-id + export VERTEX_LOCATION=global + ``` :::tip `global` 領域は、追加コストなしで可用性を向上させ、エラーを削減します。データ常駐要件には、リージョン エンドポイント (`us-central1` など) を使用します。 [詳細はこちら](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -870,7 +870,7 @@ export VERTEX_LOCATION=global --- -### グロク +### Groq 1. [Groq console](https://console.groq.com/) に移動し、[**API キーの作成**] をクリックして、キーをコピーします。 @@ -897,7 +897,7 @@ export VERTEX_LOCATION=global --- -### ハグフェイス +### Hugging Face [ハグ顔推論プロバイダー ](https://huggingface.co/docs/inference-providers) は、17 を超えるプロバイダーがサポートするオープン モデルへのアクセスを提供します。 @@ -926,7 +926,7 @@ export VERTEX_LOCATION=global --- -### ヘリコン +### Helicone [Helicone](https://helicone.ai) は、AI アプリケーションのロギング、監視、分析を提供する LLM 可観測性プラットフォームです。 Helicone AI ゲートウェイは、モデルに基づいてリクエストを適切なプロバイダーに自動的にルーティングします。 @@ -1039,7 +1039,7 @@ npm install -g opencode-helicone-session --- -### ラマ.cpp +### llama.cpp [llama.cpp の s](https://github.com/ggml-org/llama.cpp) llama-server ユーティリティ] を通じて、ローカル モデルを使用するようにopencodeを構成できます。 @@ -1106,7 +1106,7 @@ IO.NET は、さまざまなユースケースに最適化された 17 のモデ --- -### LMスタジオ +### LM Studio LM Studio を通じてローカル モデルを使用するようにopencodeを構成できます。 @@ -1132,7 +1132,7 @@ LM Studio を通じてローカル モデルを使用するようにopencodeを この例では: -- `llama.cpp` はカスタムプロバイダー ID です。これには任意の文字列を指定できます。 +- `lmstudio` はカスタムプロバイダー ID です。これには任意の文字列を指定できます。 - `npm` は、このプロバイダーに使用するパッケージを指定します。ここで、`@ai-sdk/openai-compatible` は OpenAI 互換 API に使用されます。 - `name` は、UI でのプロバイダーの表示名です。 - `options.baseURL` はローカル サーバーのエンドポイントです。 @@ -1140,7 +1140,7 @@ LM Studio を通じてローカル モデルを使用するようにopencodeを --- -### ムーンショットAI +### Moonshot AI Moonshot AI の Kim K2 を使用するには: @@ -1169,7 +1169,7 @@ Moonshot AI の Kim K2 を使用するには: --- -### ミニマックス +### MiniMax 1. [MiniMax API Console](https://platform.minimax.io/login) に移動し、アカウントを作成し、API キーを生成します。 @@ -1196,7 +1196,7 @@ Moonshot AI の Kim K2 を使用するには: --- -### ネビウストークンファクトリー +### Nebius Token Factory 1. [Nebius Token Factory console](https://tokenfactory.nebius.com/) に移動し、アカウントを作成し、[**キーの追加**] をクリックします。 @@ -1228,7 +1228,7 @@ Moonshot AI の Kim K2 を使用するには: Ollama を通じてローカル モデルを使用するようにopencodeを構成できます。 :::tip -Ollama は OpenCode 用に自動的に構成できます。詳細については、「Ollama 統合 docs](https://docs.ollama.com/integrations/opencode)」を参照してください。 +Ollama は OpenCode 用に自動的に構成できます。詳細については、[Ollama 統合 docs](https://docs.ollama.com/integrations/opencode)」を参照してください。 ::: ```json title="opencode.json" "ollama" {5, 6, 8, 10-14} @@ -1253,7 +1253,7 @@ Ollama は OpenCode 用に自動的に構成できます。詳細については この例では: -- `llama.cpp` はカスタムプロバイダー ID です。これには任意の文字列を指定できます。 +- `ollama` はカスタムプロバイダー ID です。これには任意の文字列を指定できます。 - `npm` は、このプロバイダーに使用するパッケージを指定します。ここで、`@ai-sdk/openai-compatible` は OpenAI 互換 API に使用されます。 - `name` は、UI でのプロバイダーの表示名です。 - `options.baseURL` はローカル サーバーのエンドポイントです。 @@ -1265,7 +1265,7 @@ Ollama は OpenCode 用に自動的に構成できます。詳細については --- -### オラマ・クラウド +### Ollama Cloud OpenCode で Ollama Cloud を使用するには: @@ -1366,7 +1366,7 @@ OpenCode Zen は、OpenCode チームによって提供される、テストお --- -### オープンルーター +### OpenRouter 1. [OpenRouter ダッシュボード](https://openrouter.ai/settings/keys) に移動し、[**API キーの作成**] をクリックして、キーをコピーします。 @@ -1394,17 +1394,17 @@ OpenCode Zen は、OpenCode チームによって提供される、テストお opencode構成を通じて追加のモデルを追加することもできます。 ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` 5. opencode設定を通じてカスタマイズすることもできます。プロバイダーを指定する例を次に示します。 @@ -1430,7 +1430,7 @@ opencode構成を通じて追加のモデルを追加することもできます --- -### SAP AI コア +### SAP AI Core SAP AI コアは、統合プラットフォームを通じて、OpenAI、Anthropic、Google、Amazon、Meta、Mistral、AI21 の 40 以上のモデルへのアクセスを提供します。 @@ -1458,14 +1458,14 @@ SAP AI コアは、統合プラットフォームを通じて、OpenAI、Anthrop または、`AICORE_SERVICE_KEY` 環境変数を設定します。 ```bash -AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode -``` + AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode + ``` または、bash プロファイルに追加します。 ```bash title="~/.bash_profile" -export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' -``` + export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' + ``` 4. 必要に応じて、デプロイメント ID とリソース グループを設定します。 @@ -1485,7 +1485,7 @@ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","s --- -### OVHcloud AI エンドポイント +### OVHcloud AI Endpoints 1. [OVHcloud パネル](https://ovh.com/manager) に移動します。 `Public Cloud` セクション、`AI & Machine Learning` > `AI Endpoints` に移動し、`API Keys` タブで **新しい API キーの作成** をクリックします。 @@ -1512,7 +1512,7 @@ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","s --- -### スケールウェイ +### Scaleway [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) を Opencode で使用するには: @@ -1541,7 +1541,7 @@ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","s --- -### 一緒にAI +### Together AI 1. [Together AI console](https://api.together.ai) に移動し、アカウントを作成し、[**キーの追加**] をクリックします。 @@ -1568,7 +1568,7 @@ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","s --- -### ヴェニス AI +### Venice AI 1. [Venice AI console](https://venice.ai) に移動し、アカウントを作成し、API キーを生成します。 @@ -1595,7 +1595,7 @@ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","s --- -### Vercel AI ゲートウェイ +### Vercel AI Gateway Vercel AI Gateway を使用すると、統合エンドポイントを通じて OpenAI、Anthropic、Google、xAI などのモデルにアクセスできます。モデルは値上げなしの定価で提供されます。 @@ -1735,17 +1735,17 @@ opencode構成を通じてモデルをカスタマイズすることもできま opencode構成を通じて追加のモデルを追加することもできます。 ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` --- diff --git a/packages/web/src/content/docs/ja/rules.mdx b/packages/web/src/content/docs/ja/rules.mdx index 45c95641e5..b188f92a1b 100644 --- a/packages/web/src/content/docs/ja/rules.mdx +++ b/packages/web/src/content/docs/ja/rules.mdx @@ -65,7 +65,7 @@ opencode は、複数の場所からの `AGENTS.md` ファイルの読み取り これは Git にコミットされておらず、チームと共有されていないため、LLM が従うべき個人ルールを指定するためにこれを使用することをお勧めします。 -### クロードコードの互換性 +### Claude Code Compatibility Claude Code から移行するユーザーのために、OpenCode はフォールバックとして Claude Code のファイル規則をサポートしています。 @@ -129,7 +129,7 @@ opencode は `AGENTS.md` のファイル参照を自動的に解析しません ### opencode.json の使用 -推奨されるアプローチは、`opencode.json` の `instructions` フィールドを使用することです。 +推奨されるアプローチは、`instructions` の `opencode.json` フィールドを使用することです。 ```json title="opencode.json" { @@ -175,5 +175,5 @@ Read the following file immediately as it's relevant to all workflows: @rules/ge - opencode が特定のタスクに必要な場合にのみファイルをロードするようにする :::tip -モノリポジトリまたは共有標準を使用するプロジェクトの場合、グロブ パターン (`packages/*/AGENTS.md` など) で `opencode.json` を使用する方が、手動で指示するよりも保守しやすくなります。 +モノリポジトリまたは共有標準を使用するプロジェクトの場合、グロブ パターン (`opencode.json` など) で `packages/*/AGENTS.md` を使用する方が、手動で指示するよりも保守しやすくなります。 ::: diff --git a/packages/web/src/content/docs/ja/sdk.mdx b/packages/web/src/content/docs/ja/sdk.mdx index 4a5d897cbd..6ea735586d 100644 --- a/packages/web/src/content/docs/ja/sdk.mdx +++ b/packages/web/src/content/docs/ja/sdk.mdx @@ -123,7 +123,7 @@ SDK は、タイプセーフなクライアントを通じてすべてのサー --- -### グローバル +### Global | 方法 | 説明 | 応答 | | ----------------- | -------------------------------------- | ------------------------------------ | @@ -140,7 +140,7 @@ console.log(health.data.version) --- -### アプリ +### App | 方法 | 説明 | 応答 | | -------------- | ------------------------------------------ | ------------------------------------------- | @@ -167,7 +167,7 @@ const agents = await client.app.agents() --- -### プロジェクト +### Project | 方法 | 説明 | 応答 | | ------------------- | -------------------------------- | --------------------------------------------- | @@ -188,7 +188,7 @@ const currentProject = await client.project.current() --- -### パス +### Path | 方法 | 説明 | 応答 | | ------------ | ---------------- | ---------------------------------------- | @@ -205,7 +205,7 @@ const pathInfo = await client.path.get() --- -### 構成 +### Config | 方法 | 説明 | 応答 | | -------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | @@ -224,7 +224,7 @@ const { providers, default: defaults } = await client.config.providers() --- -### セッション +### Sessions | 方法 | 説明 | メモ | | ---------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -281,7 +281,7 @@ await client.session.prompt({ --- -### ファイル +### Files | Method | Description | Response | | ------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- | @@ -322,7 +322,7 @@ const content = await client.file.read({ --- -### トゥイ +### TUI | 方法 | 説明 | 応答 | | ------------------------------ | -------------------------------- | --------- | @@ -353,7 +353,7 @@ await client.tui.showToast({ --- -### 認証 +### Auth | 方法 | 説明 | 応答 | | ------------------- | ---------------------- | --------- | @@ -372,7 +372,7 @@ await client.auth.set({ --- -### イベント +### Events | 方法 | 説明 | 応答 | | ------------------- | ------------------------------- | ------------------------------- | diff --git a/packages/web/src/content/docs/ja/skills.mdx b/packages/web/src/content/docs/ja/skills.mdx index 8735fe241f..becc1bd6f5 100644 --- a/packages/web/src/content/docs/ja/skills.mdx +++ b/packages/web/src/content/docs/ja/skills.mdx @@ -37,9 +37,9 @@ OpenCode は次の場所を検索します。 次のフィールドのみが認識されます。 - `name` (必須) -- `name` (必須) -- `license` (オプション) +- `description` (必須) - `license` (オプション) +- `compatibility` (オプション) - `metadata` (オプション、文字列間のマップ) 不明なフロントマターフィールドは無視されます。 diff --git a/packages/web/src/content/docs/ja/tools.mdx b/packages/web/src/content/docs/ja/tools.mdx index 777fa9f87b..50bc8620b5 100644 --- a/packages/web/src/content/docs/ja/tools.mdx +++ b/packages/web/src/content/docs/ja/tools.mdx @@ -95,7 +95,7 @@ OpenCode で利用可能なすべての組み込みツールを次に示しま これを使用して、LLM が新しいファイルを作成できるようにします。既存のファイルがすでに存在する場合は上書きされます。 :::note -`write` ツールは、すべてのファイル変更 (`edit`、`write`、`patch`、`multiedit`) をカバーする `edit` 権限によって制御されます。 +`write` ツールは、すべてのファイル変更 (`edit`、`edit`、`write`、`patch`) をカバーする `multiedit` 権限によって制御されます。 ::: --- @@ -207,7 +207,7 @@ OpenCode で利用可能なすべての組み込みツールを次に示しま このツールは、コードベースにパッチ ファイルを適用します。さまざまなソースからの差分やパッチを適用するのに役立ちます。 :::note -`write` ツールは、すべてのファイル変更 (`edit`、`write`、`patch`、`multiedit`) をカバーする `edit` 権限によって制御されます。 +`patch` ツールは、すべてのファイル変更 (`edit`、`edit`、`write`、`patch`) をカバーする `multiedit` 権限によって制御されます。 ::: --- @@ -376,4 +376,4 @@ MCP (Model Context Protocol) サーバーを使用すると、外部ツールと !build/ ``` -たとえば、この `.ignore` ファイルを使用すると、ripgrep は、`.gitignore` にリストされている場合でも、`node_modules/`、`dist/`、および `build/` ディレクトリ内を検索できます。 +たとえば、この `.ignore` ファイルを使用すると、ripgrep は、`node_modules/` にリストされている場合でも、`dist/`、`build/`、および `.gitignore` ディレクトリ内を検索できます。 diff --git a/packages/web/src/content/docs/ko/acp.mdx b/packages/web/src/content/docs/ko/acp.mdx index dfcceeac5d..76134ed051 100644 --- a/packages/web/src/content/docs/ko/acp.mdx +++ b/packages/web/src/content/docs/ko/acp.mdx @@ -30,7 +30,7 @@ ACP를 통해 opencode를 사용하려면 `opencode acp` 명령을 실행하려 ```json title="~/.config/zed/settings.json" { "agent_servers": { - "opencode": { + "OpenCode": { "command": "opencode", "args": ["acp"] } @@ -51,7 +51,7 @@ ACP를 통해 opencode를 사용하려면 `opencode acp` 명령을 실행하려 { "agent": { "custom": { - "name": "opencode", + "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] @@ -74,7 +74,7 @@ ACP를 통해 opencode를 사용하려면 `opencode acp` 명령을 실행하려 ```json title="acp.json" { "agent_servers": { - "opencode": { + "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } diff --git a/packages/web/src/content/docs/ko/agents.mdx b/packages/web/src/content/docs/ko/agents.mdx index fc68c6c342..56c7ec27c0 100644 --- a/packages/web/src/content/docs/ko/agents.mdx +++ b/packages/web/src/content/docs/ko/agents.mdx @@ -15,48 +15,48 @@ description: Configure and use specialized agents. ## 유형 -opencode의 두 가지 유형이 있습니다; 기본 에이전트와 시약. +OpenCode의 두 가지 유형이 있습니다; 기본 에이전트와 subagents. --- ### 주요 에이전트 -주요 에이전트은 당신이 직접 상호 작용하는 주요 조수입니다. **Tab** 키 또는 설정된 `switch_agent` keybind를 사용하여 주기 할 수 있습니다. 이 에이전트은 당신의 주요 대화를 취급합니다. 도구 액세스는 권한을 통해 구성된다 — 예를 들어, 빌드는 계획이 제한되는 동안 모든 도구를 사용할 수 있습니다. +주요 에이전트은 당신이 직접 상호 작용하는 주요 조수입니다. **Tab** 키 또는 설정된 `switch_agent` keybind를 사용하여 주기 할 수 있습니다. 이 에이전트은 당신의 주요 대화를 취급합니다. 도구 액세스는 권한을 통해 구성된다 — 예를 들어, Build는 Plan이 제한되는 동안 모든 도구를 사용할 수 있습니다. :::tip 세션 중에 기본 에이전트를 전환하는 **Tab** 키를 사용할 수 있습니다. ::: -opencode는 두 개의 내장 기본 에이전트, **Build** 및 **Plan**와 함께 제공됩니다. 우리는 +OpenCode는 두 개의 내장 기본 에이전트, **Build** 및 **Plan**와 함께 제공됩니다. 우리는 아래에서 보기. --- -## # 시약 +### Subagents Subagents는 기본 에이전트가 특정 작업을 위해 호출 할 수있는 전문 보조입니다. 또한 수동으로 그들을 호출 할 수 있습니다 ** @ 언급 ** 메시지에서 그들. -opencode는 두 개의 내장 하위 시약, ** 일반 ** 및 ** 익스플로러 **. 아래에서 볼 수 있습니다. +OpenCode는 두 개의 내장 subagents, **General** 및 **Explore**. 아래에서 볼 수 있습니다. --- ## 내장 -opencode는 기본 에이전트와 두 개의 내장 하위 시약으로 제공됩니다. +OpenCode는 기본 에이전트와 두 개의 내장 subagents로 제공됩니다. --- -### 사용 빌드 +### 사용 Build -모드 : `primary` +_모드_: `primary` Build는 **default** 모든 도구가 활성화된 기본 에이전트입니다. 이것은 당신이 파일 가동 및 체계 명령에 가득 차있는 접근을 필요로 하는 발달 일을 위한 표준 에이전트입니다. --- -### 사용 계획 +### 사용 Plan -모드 : `primary` +_모드_: `primary` 계획 및 분석을 위해 설계된 제한된 에이전트. 우리는 더 많은 통제를 주고 무인화한 변화를 방지하기 위하여 허가 체계를 이용합니다. 기본적으로, 뒤에 오는 전부는 `ask`로 놓입니다: @@ -68,41 +68,41 @@ Build는 **default** 모든 도구가 활성화된 기본 에이전트입니다. --- -### 사용 일반 +### 사용 General -모드 : `subagent` +_모드_: `subagent` 복잡한 질문을 연구하고 다중 단계 작업을 실행하기위한 범용 에이전트. 전체 도구 액세스 (todo 제외), 그래서 필요할 때 파일 변경을 만들 수 있습니다. 평행한에 있는 일의 다수 단위를 달리기 위하여 이것을 사용하십시오. --- -### 사용 탐구 +### 사용 Explore -모드 : `subagent` +_모드_: `subagent` Codebases를 탐구하는 빠르고, 읽기 전용 에이전트. 파일을 수정할 수 없습니다. 이 작업을 사용하면 패턴, 키워드 검색 코드, 또는 codebase에 대한 질문에 신속하게 파일을 찾을 수 있습니다. --- -### 사용 컴팩트 +### 사용 Compaction -모드 : `primary` +_모드_: `primary` 더 작은 요약으로 긴 맥락을 압축하는 숨겨진 시스템 에이전트. 필요한 경우 자동으로 실행되며 UI에서 선택할 수 없습니다. --- -### 사용 제목 +### 사용 Title -모드 : `primary` +_모드_: `primary` 짧은 세션 타이틀을 생성하는 숨겨진 시스템 에이전트. 그것은 자동으로 실행하고 UI에서 선택할 수 없습니다. --- -### 사용 요약 +### 사용 Summary -모드 : `primary` +_모드_: `primary` 세션 summaries를 만드는 숨겨진 시스템 에이전트. 그것은 자동으로 실행하고 UI에서 선택할 수 없습니다. @@ -112,20 +112,19 @@ Codebases를 탐구하는 빠르고, 읽기 전용 에이전트. 파일을 수 1. 주요 에이전트을 위해, **Tab ** 열쇠를 사용하여 세션 도중 주기. 구성 된 `switch_agent` keybind도 사용할 수 있습니다. -2. 시약은 invoked 일 수 있습니다: -**Automatically** 그들의 설명에 근거를 둔 특화된 업무를 위한 주요 에이전트에 의하여. +2. Subagents은 invoked 일 수 있습니다: + - **Automatically** 그들의 설명에 근거를 둔 특화된 업무를 위한 주요 에이전트에 의하여. + - 메시지에 대한 subagents\*\*. 예를 들어. -- 메시지에 대한 하위 시약\*\*. 예를 들어. + ```txt frame="none" + @general help me search for this function + ``` - ```txt frame="none" - @general help me search for this function - ``` +3. ** 세션 간의 편차 **: subagents는 자신의 자녀 세션을 만들 때, 부모 세션과 모든 어린이 세션을 사용하여 탐색 할 수 있습니다. + - **\+Right** (또는 부모 → Child1 → Child2 →를 통해 전달하기 위해 설정된 `session_child_cycle` keybind) + - **\+Left** (또는 `session_child_cycle_reverse` keybind) 부모를 통해 돌아 가기 위해 ← child1 ← child2 ← ... ← 부모 -3. ** 세션 간의 편차 **: 하위 시약은 자신의 자녀 세션을 만들 때, 부모 세션과 모든 어린이 세션을 사용하여 탐색 할 수 있습니다. - -- **\+Right** (또는 부모 → Child1 → Child2 →를 통해 전달하기 위해 설정된 `session_child_cycle` keybind) -- **\+Left** (또는 `session_child_cycle_reverse` keybind) 부모를 통해 돌아 가기 위해 ← child1 ← child2 ← ... ← 부모 - -이로 인해 주요 대화와 특이한 시약 작업을 원활하게 전환할 수 있습니다. + 이로 인해 주요 대화와 특이한 subagent 작업을 원활하게 전환할 수 있습니다. --- @@ -135,7 +134,7 @@ Codebases를 탐구하는 빠르고, 읽기 전용 에이전트. 파일을 수 --- -### JSON 태그 +### JSON `opencode.json` config 파일에 에이전트 구성: @@ -178,7 +177,7 @@ Codebases를 탐구하는 빠르고, 읽기 전용 에이전트. 파일을 수 --- -### 마크다운 +### Markdown Markdown 파일을 사용하여 에이전트를 정의 할 수 있습니다. 그들에 게: @@ -542,7 +541,7 @@ Only analyze code and suggest changes. ## #숨겨진 -`hidden: true`를 사용해 `@` 자동 완성 메뉴에서 시약을 숨깁니다. 작업 도구를 통해 다른 에이전트에 의해 invoked programmatically 있어야하는 내부 시약에 유용합니다. +`@`를 사용해 `hidden: true` 자동 완성 메뉴에서 시약을 숨깁니다. 작업 도구를 통해 다른 에이전트에 의해 invoked programmatically 있어야하는 내부 시약에 유용합니다. ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/ko/commands.mdx b/packages/web/src/content/docs/ko/commands.mdx index 4124ce7c35..4001872d41 100644 --- a/packages/web/src/content/docs/ko/commands.mdx +++ b/packages/web/src/content/docs/ko/commands.mdx @@ -75,7 +75,7 @@ opencode [config](/docs/config)에서 `command` 옵션을 사용하십시오: --- -### 마크다운 +### Markdown Markdown 파일을 사용하여 명령을 정의할 수 있습니다. 그들에 게: diff --git a/packages/web/src/content/docs/ko/custom-tools.mdx b/packages/web/src/content/docs/ko/custom-tools.mdx index b1670b2618..8eff26669b 100644 --- a/packages/web/src/content/docs/ko/custom-tools.mdx +++ b/packages/web/src/content/docs/ko/custom-tools.mdx @@ -167,4 +167,4 @@ export default tool({ }) ``` -여기에 우리는 [`Bun.$`](https://bun.com/docs/runtime/shell) 유틸리티를 사용하여 파이썬 스크립트를 실행합니다. +여기에 우리는 [`Bun.$`](https://bun.com/docs/runtime/shell) 유틸리티를 사용하여 Python 스크립트를 실행합니다. diff --git a/packages/web/src/content/docs/ko/github.mdx b/packages/web/src/content/docs/ko/github.mdx index c88317d43f..7a6f730c59 100644 --- a/packages/web/src/content/docs/ko/github.mdx +++ b/packages/web/src/content/docs/ko/github.mdx @@ -39,38 +39,38 @@ GitHub 앱을 설치하고 워크플로를 만들고 비밀을 설정할 수 있 저장소에 `.github/workflows/opencode.yml`에 다음 작업 흐름 파일을 추가합니다. 적절한 `model`를 설정하고 `env`의 API 키가 필요합니다. ```yml title=".github/workflows/opencode.yml" {24,26} -name: opencode + name: opencode -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] + on: + issue_comment: + types: [created] + pull_request_review_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@v6 - with: - fetch-depth: 1 - persist-credentials: false + 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@v6 + with: + fetch-depth: 1 + persist-credentials: false - - name: Run opencode - uses: anomalyco/opencode/github@latest - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - with: - model: anthropic/claude-sonnet-4-20250514 - # share: true - # github_token: xxxx -``` + - name: Run OpenCode + uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + # share: true + # github_token: xxxx + ``` 3. ** 비밀의 API 키 저장 ** @@ -89,12 +89,12 @@ jobs: 대안으로, GitHub Action runner의 [붙박이 `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github token)을 사용하여 opencode GitHub 앱을 설치하지 않고 사용할 수 있습니다. 워크플로우에서 필요한 권한을 부여하는 것을 확인하십시오. ```yaml -permissions: - id-token: write - contents: write - pull-requests: write - issues: write -``` + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + ``` 또한 [개인 액세스 토큰](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT)를 사용할 수 있습니다. @@ -118,7 +118,7 @@ opencode는 다음 GitHub 이벤트에 의해 트리거 될 수 있습니다: 자동화된 작업을 수행하는 일정에 opencode를 실행: ```yaml title=".github/workflows/opencode-scheduled.yml" -name: Scheduled opencode Task +name: Scheduled OpenCode Task on: schedule: @@ -138,7 +138,7 @@ jobs: with: persist-credentials: false - - name: Run opencode + - name: Run OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} @@ -277,8 +277,8 @@ GitHub에서 opencode를 사용할 수있는 몇 가지 예입니다. GitHub 문제에서 이 의견 추가. ``` -/opencode explain this issue -``` + /opencode explain this issue + ``` opencode는 모든 코멘트를 포함하여 전체 스레드를 읽고, 명확한 설명과 대답. @@ -287,8 +287,8 @@ opencode는 모든 코멘트를 포함하여 전체 스레드를 읽고, 명확 GitHub 문제에서: ``` -/opencode fix this -``` + /opencode fix this + ``` opencode는 새로운 지점을 만들 것이며 변경 사항을 실행하고 PR을 변경합니다. @@ -297,8 +297,8 @@ opencode는 새로운 지점을 만들 것이며 변경 사항을 실행하고 P GitHub PR에 다음 댓글을 남겨주세요. ``` -Delete the attachment from S3 when the note is removed /oc -``` + Delete the attachment from S3 when the note is removed /oc + ``` opencode는 요청한 변경을 구현하고 동일한 PR에 커밋합니다. @@ -307,9 +307,9 @@ opencode는 요청한 변경을 구현하고 동일한 PR에 커밋합니다. PR의 "Files" 탭의 코드 라인에 직접 댓글을 남겨주세요. opencode는 파일, 줄 번호 및 diff 컨텍스트를 자동으로 감지하여 정확한 응답을 제공합니다. ``` -[Comment on specific lines in Files tab] -/oc add error handling here -``` + [Comment on specific lines in Files tab] + /oc add error handling here + ``` 특정 라인에 대한 의견이 있을 때, opencode는 다음과 같습니다. diff --git a/packages/web/src/content/docs/ko/gitlab.mdx b/packages/web/src/content/docs/ko/gitlab.mdx index 530e36d76a..bdf73496bc 100644 --- a/packages/web/src/content/docs/ko/gitlab.mdx +++ b/packages/web/src/content/docs/ko/gitlab.mdx @@ -35,7 +35,7 @@ opencode는 일반 GitLab 파이프라인에서 작동합니다. [CI 구성품]( - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 inputs: config_dir: ${CI_PROJECT_DIR}/opencode-config - auth_json: $OPENCODE_AUTH_JSON # The variable name for your opencode authentication JSON + auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON command: optional-custom-command message: "Your prompt here" ``` @@ -91,7 +91,7 @@ opencode는 GitLab CI/CD 파이프라인에서 실행되며, 여기서 설정해 - apt-get install --yes glab - echo "Configuring glab" - echo $GITLAB_HOST - - echo "Creating opencode auth configuration" + - echo "Creating OpenCode auth configuration" - mkdir --parents ~/.local/share/opencode - | cat > ~/.local/share/opencode/auth.json << EOF @@ -104,10 +104,10 @@ opencode는 GitLab CI/CD 파이프라인에서 실행되며, 여기서 설정해 EOF - echo "Configuring git" - git config --global user.email "opencode@gitlab.com" - - git config --global user.name "opencode" + - git config --global user.name "OpenCode" - echo "Testing glab" - glab issue list - - echo "Running opencode" + - echo "Running OpenCode" - | opencode run " You are an AI assistant helping with GitLab operations. @@ -169,8 +169,8 @@ opencode는 GitLab CI/CD 파이프라인에서 실행되며, 여기서 설정해 GitLab 문제에서이 코멘트를 추가하십시오. ``` -@opencode explain this issue -``` + @opencode explain this issue + ``` opencode는 문제와 대답을 명확하게 설명합니다. @@ -179,8 +179,8 @@ opencode는 문제와 대답을 명확하게 설명합니다. GitLab 문제에서, 말한다: ``` -@opencode fix this -``` + @opencode fix this + ``` opencode는 새로운 지점을 만들 것이며 변경 사항을 구현하고 변경 사항을 병합 요청을 엽니다. @@ -189,7 +189,7 @@ opencode는 새로운 지점을 만들 것이며 변경 사항을 구현하고 GitLab 병합 요청에 대한 다음 의견을 남겨주세요. ``` -@opencode review this merge request -``` + @opencode review this merge request + ``` opencode는 병합 요청을 검토하고 피드백을 제공합니다. diff --git a/packages/web/src/content/docs/ko/index.mdx b/packages/web/src/content/docs/ko/index.mdx index ce918cb526..4e9e484a10 100644 --- a/packages/web/src/content/docs/ko/index.mdx +++ b/packages/web/src/content/docs/ko/index.mdx @@ -7,7 +7,7 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/)는 오픈 소스 AI 코딩 에이전트입니다. terminal 기반 인터페이스, 데스크탑 앱 또는 IDE 확장으로 사용할 수 있습니다. +[**OpenCode**](/)는 오픈 소스 AI 코딩 에이전트입니다. terminal 기반 인터페이스, 데스크탑 앱 또는 IDE 확장으로 사용할 수 있습니다. ![opencode TUI with the opencode theme](../../../assets/lander/screenshot.png) @@ -17,7 +17,7 @@ export const console = config.console ### 필수품 -당신의 terminal에 있는 opencode를 사용하려면, 당신은 필요로 할 것입니다: +당신의 terminal에 있는 OpenCode를 사용하려면, 당신은 필요로 할 것입니다: 1. 현대 terminal 에뮬레이터는 좋아합니다: @@ -26,13 +26,13 @@ export const console = config.console - [Ghostty](https://ghostty.org), 리눅스 및 macOS - [Kitty](https://sw.kovidgoyal.net/kitty/), 리눅스 및 macOS -2. 사용하려는 LLM 공급자를 위한 API 열쇠. +2. 사용하려는 LLM 공급자를 위한 API 키. --- ## 설치 -opencode를 설치하는 가장 쉬운 방법은 설치 스크립트를 통해 입니다. +OpenCode를 설치하는 가장 쉬운 방법은 설치 스크립트를 통해 입니다. ```bash curl -fsSL https://opencode.ai/install | bash @@ -74,13 +74,13 @@ curl -fsSL https://opencode.ai/install | bash
-- ** macOS 및 Linux에서 홈 Brew 사용 ** +- ** macOS 및 Linux에서 Homebrew 사용 ** ```bash brew install anomalyco/tap/opencode ``` -> 최신 릴리스를 위해 opencode 탭을 사용하는 것이 좋습니다. 공식 `brew install opencode` 공식은 Homebrew 팀에 의해 유지되고 더 자주 업데이트됩니다. +> 최신 릴리스를 위해 OpenCode 탭을 사용하는 것이 좋습니다. 공식 `brew install opencode` 공식은 Homebrew 팀에 의해 유지되고 더 자주 업데이트됩니다. - **Ar Linux에서 Paru를 사용 ** @@ -91,10 +91,10 @@ curl -fsSL https://opencode.ai/install | bash #### 윈도우 :::tip[추천: WSL 사용] -Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)를 사용하는 것이 좋습니다. opencode의 기능으로 더 나은 성능과 전체 호환성을 제공합니다. +Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)를 사용하는 것이 좋습니다. OpenCode의 기능으로 더 나은 성능과 전체 호환성을 제공합니다. ::: -- ** 초콜릿 ** +- ** Chocolatey ** ```bash choco install opencode @@ -112,7 +112,7 @@ Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/do npm install -g opencode-ai ``` -- **mise** +- **Mise** ```bash mise use -g github:anomalyco/opencode @@ -124,7 +124,7 @@ Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/do docker run -it --rm ghcr.io/anomalyco/opencode ``` -Bun을 사용하여 Windows에서 opencode 설치 지원은 현재 진행 중입니다. +Bun을 사용하여 Windows에서 OpenCode 설치 지원은 현재 진행 중입니다. [Releases](https://github.com/anomalyco/opencode/releases)에서 이진을 할 수도 있습니다. @@ -132,10 +132,10 @@ Bun을 사용하여 Windows에서 opencode 설치 지원은 현재 진행 중입 ## 구성 -opencode를 사용하면 API 키를 구성하여 LLM 공급자를 사용할 수 있습니다. +OpenCode를 사용하면 API 키를 구성하여 LLM 공급자를 사용할 수 있습니다. LLM 공급자를 사용하는 새로운 경우, [OpenCode Zen](/docs/zen)를 사용하는 것이 좋습니다. -opencode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니다. +OpenCode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니다. 팀. 1. TUI에서 `/connect` 명령을 실행하고, opencode를 선택하고, [opencode.ai/auth](https://opencode.ai/auth)에 머리를 선택합니다. @@ -155,7 +155,7 @@ opencode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니 └ enter ``` -또는 다른 공급자 중 하나를 선택할 수 있습니다. [더 알아보기](/docs/providers#directory). +158| 또는 다른 공급자 중 하나를 선택할 수 있습니다. [더 알아보기](/docs/providers#directory). --- @@ -168,33 +168,33 @@ opencode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니 cd /path/to/project ``` -opencode를 실행합니다. +OpenCode를 실행합니다. ```bash opencode ``` -다음, 다음 명령을 실행하여 프로젝트의 opencode를 초기화합니다. +다음, 다음 명령을 실행하여 프로젝트의 OpenCode를 초기화합니다. ```bash frame="none" /init ``` -opencode를 사용하여 프로젝트를 분석하고 `AGENTS.md` 파일을 만들 수 있습니다. +OpenCode를 사용하여 프로젝트를 분석하고 `AGENTS.md` 파일을 만들 수 있습니다. 프로젝트 루트. :::tip 프로젝트의 `AGENTS.md` 파일을 Git에 투입해야 합니다. ::: -이 도움말 opencode는 프로젝트 구조와 코딩 패턴을 이해 +이 도움말 OpenCode는 프로젝트 구조와 코딩 패턴을 이해 사용. --- ## 사용법 -opencode를 사용하여 프로젝트에 작업할 준비가 되어 있습니다. 자주 묻는 질문 +OpenCode를 사용하여 프로젝트에 작업할 준비가 되어 있습니다. 자주 묻는 질문 모두! AI 코딩 에이전트를 사용하는 새로운 경우, 여기에 할 수있는 몇 가지 예입니다 @@ -204,7 +204,7 @@ AI 코딩 에이전트를 사용하는 새로운 경우, 여기에 할 수있는 ## 질문 -Codebase를 설명하기 위해 opencode를 요청할 수 있습니다. +Codebase를 설명하기 위해 OpenCode를 요청할 수 있습니다. :::tip `@` 키를 사용하여 프로젝트에서 파일을 검색합니다. @@ -220,71 +220,71 @@ How is authentication handled in @packages/functions/src/api/index.ts ### 추가 기능 -프로젝트에 새로운 기능을 추가하려면 opencode를 요청할 수 있습니다. 우리는 먼저 계획을 만들 것을 묻는 것이 좋습니다. +프로젝트에 새로운 기능을 추가하려면 OpenCode를 요청할 수 있습니다. 우리는 먼저 계획을 만들 것을 묻는 것이 좋습니다. 1. **플랜을 선택 ** -opencode는 Plan mode 로 변경할 수 있는 능력을 비활성화하고 -대신 제안 how 그것은 기능을 구현할 것입니다. + OpenCode는 Plan mode 로 변경할 수 있는 능력을 비활성화하고 + 대신 제안 how 그것은 기능을 구현할 것입니다. -**Tab** 키를 사용하여 전환합니다. 오른쪽 하단에 있는 이 지표를 볼 수 있습니다. + **Tab** 키를 사용하여 전환합니다. 오른쪽 하단에 있는 이 지표를 볼 수 있습니다. -```bash frame="none" title="Switch to Plan mode" - -``` + ```bash frame="none" title="Switch to Plan mode" + + ``` -이제 우리가해야 할 일을 설명합니다. + 이제 우리가해야 할 일을 설명합니다. -```txt frame="none" -When a user deletes a note, we'd like to flag it as deleted in the database. -Then create a screen that shows all the recently deleted notes. -From this screen, the user can undelete a note or permanently delete it. -``` + ```txt frame="none" + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. + ``` -당신이 원하는 것을 이해하기 위해 opencode를 충분히 세부 정보를 제공하려는. 그것은 도움 -팀의 주니어 개발자에게 이야기하고 싶습니다. + 당신이 원하는 것을 이해하기 위해 OpenCode를 충분히 세부 정보를 제공하려는. 그것은 도움 + 팀의 주니어 개발자에게 이야기하고 싶습니다. -:::tip -opencode를 많은 컨텍스트와 예제를 제공하여 당신이 무엇을 이해하는 데 도움이 -이름 \* -::: + :::tip + OpenCode를 많은 컨텍스트와 예제를 제공하여 당신이 무엇을 이해하는 데 도움이 + 이름 \* + ::: 2. **플랜에 대해서 ** -플랜을 제공하면 피드백을 제공하거나 자세한 내용을 추가 할 수 있습니다. + 플랜을 제공하면 피드백을 제공하거나 자세한 내용을 추가 할 수 있습니다. -```txt frame="none" -We'd like to design this new screen using a design I've used before. -[Image #1] Take a look at this image and use it as a reference. -``` + ```txt frame="none" + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. + ``` -:::tip -단말에 이미지를 드래그하고 드롭하여 프롬프트에 추가합니다. -::: + :::tip + 단말에 이미지를 드래그하고 드롭하여 프롬프트에 추가합니다. + ::: -opencode는 어떤 이미지를 스캔할 수 있습니다. 당신은 할 수 -이 작업을 수행하고 끝으로 이미지를 삭제합니다. + OpenCode는 어떤 이미지를 스캔할 수 있습니다. 당신은 할 수 + 이 작업을 수행하고 끝으로 이미지를 삭제합니다. 3. ** 기능 구축 ** -플랜으로 편안하게 느끼면 Build mode by -**Tab** 키를 다시 입력합니다. + 플랜으로 편안하게 느끼면 Build mode by + **Tab** 키를 다시 입력합니다. -```bash frame="none" - -``` + ```bash frame="none" + + ``` -그리고 변경을 요청합니다. + 그리고 변경을 요청합니다. -```bash frame="none" -Sounds good! Go ahead and make the changes. -``` + ```bash frame="none" + Sounds good! Go ahead and make the changes. + ``` --- ### 변경 -더 똑바른 변화를 위해, 당신은 opencode를 직접 그것을 건설할 수 있습니다 +더 똑바른 변화를 위해, 당신은 OpenCode를 직접 그것을 건설할 수 있습니다 첫 플랜을 검토하지 않고. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" @@ -293,14 +293,14 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` -좋은 양의 세부 사항을 제공 하려면 opencode가 올바른 +좋은 양의 세부 사항을 제공 하려면 OpenCode가 올바른 이름 \* --- ### Undo 변경 -opencode를 호출하면 변경 사항을 만들 수 있습니다. +OpenCode를 호출하면 변경 사항을 만들 수 있습니다. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? @@ -313,14 +313,14 @@ Can you refactor the function in @packages/functions/src/api/index.ts? /undo ``` -opencode는 이제 당신이 만든 변경을 반전하고 원래 메시지를 표시 +OpenCode는 이제 당신이 만든 변경을 반전하고 원래 메시지를 표시 다시. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` -여기에서 당신은 신속하고 다시 시도 opencode를 요청할 수 있습니다. +여기에서 당신은 신속하고 다시 시도 OpenCode를 요청할 수 있습니다. :::tip `/undo`를 여러 번 실행할 수 있습니다. diff --git a/packages/web/src/content/docs/ko/lsp.mdx b/packages/web/src/content/docs/ko/lsp.mdx index ba62458642..0bb5e8357d 100644 --- a/packages/web/src/content/docs/ko/lsp.mdx +++ b/packages/web/src/content/docs/ko/lsp.mdx @@ -182,7 +182,7 @@ opencode 설정에서 `lsp` 섹션을 통해 LSP 서버를 사용자 정의할 PHP를 Intelephense는 라이센스 키를 통해 프리미엄 기능을 제공합니다. 텍스트 파일에서 키 (만)를 배치하여 라이센스 키를 제공 할 수 있습니다. -- macOS/리눅스에서: `$HOME/intelephense/licence.txt` -- Windows에서: `%USERPROFILE%/intelephense/licence.txt` +- macOS/리눅스에서: `$HOME/intelephense/license.txt` +- Windows에서: `%USERPROFILE%/intelephense/license.txt` 파일에는 추가 내용이 없습니다. diff --git a/packages/web/src/content/docs/ko/mcp-servers.mdx b/packages/web/src/content/docs/ko/mcp-servers.mdx index e2bd1e0fc6..d36cd4d22c 100644 --- a/packages/web/src/content/docs/ko/mcp-servers.mdx +++ b/packages/web/src/content/docs/ko/mcp-servers.mdx @@ -400,9 +400,9 @@ MCP 서버 도구는 서버 이름으로 prefix로 등록되므로 서버의 모 --- -#### 센트리 +#### Sentry -[Sentry MCP 서버](https://mcp.sentry.dev)를 추가하여 센트리 프로젝트와 문제와 상호 작용합니다. +[Sentry MCP 서버](https://mcp.sentry.dev)를 추가하여 Sentry 프로젝트와 문제와 상호 작용합니다. ```json title="opencode.json" {4-8} { @@ -433,7 +433,7 @@ Show me the latest unresolved issues in my project. use sentry --- -### 콘텍스트7 +### Context7 [Context7 MCP 서버](https://github.com/upstash/context7)을 추가하여 문서를 검색합니다. @@ -482,7 +482,7 @@ When you need to search docs, use `context7` tools. --- -## Grep by Vercel에 의해 +## Grep by Vercel [Grep by Vercel](https://grep.app) MCP 서버를 추가하여 GitHub에서 코드 스니펫을 검색합니다. diff --git a/packages/web/src/content/docs/ko/modes.mdx b/packages/web/src/content/docs/ko/modes.mdx index 157bbe050a..fd36fcf0b4 100644 --- a/packages/web/src/content/docs/ko/modes.mdx +++ b/packages/web/src/content/docs/ko/modes.mdx @@ -36,7 +36,7 @@ opencode는 2개의 붙박이 형태로 옵니다. - `write` - 새로운 파일을 만들 수 없습니다 - `edit` - `.opencode/plans/*.md`에 위치한 파일을 제외하고 기존 파일을 수정할 수 없습니다. - `patch` - 패치 적용 -- `bash` - 포탄 명령을 실행할 수 없습니다 +- `bash` - shell 명령을 실행할 수 없습니다 이 모드는 코드를 분석하기 위해 AI를 원할 때 유용합니다. 변경 사항을 제안하거나 코드베이스에 실제 수정없이 계획을 만들 수 있습니다. @@ -226,7 +226,7 @@ Markdown 파일 이름은 모드 이름 (예 : `review.md`는 `review` 모드를 | 도구 | 설명 | | ----------- | ------------------ | -| `bash` | 쉘 명령 실행 | +| `bash` | shell 명령 실행 | | `edit` | 기존 파일 수정 | | `write` | 새 파일 만들기 | | `read` | 읽는 파일 내용 | diff --git a/packages/web/src/content/docs/ko/permissions.mdx b/packages/web/src/content/docs/ko/permissions.mdx index 1894520e3b..4dad997ab6 100644 --- a/packages/web/src/content/docs/ko/permissions.mdx +++ b/packages/web/src/content/docs/ko/permissions.mdx @@ -134,7 +134,7 @@ opencode 권한은 도구 이름에 의해 키 입력되며, 두 개의 안전 - `glob` - 파일 globbing (glob 패턴 매칭) - `grep` - 콘텐츠 검색 ( regex 패턴 매칭) - `list` - 디렉토리의 목록 파일 (폴더 경로 매칭) -- `bash` - 쉘 명령 실행 (`git status --porcelain`와 같은 팟 명령) +- `bash` - shell 명령 실행 (`git status --porcelain`와 같은 팟 명령) - `task` - 시약 출시 (미시 시약 유형) - `skill` - 기술을 로딩 (기술 이름을 매칭) - `lsp` - LSP 쿼리 실행 (현재 비 과립) diff --git a/packages/web/src/content/docs/ko/plugins.mdx b/packages/web/src/content/docs/ko/plugins.mdx index 6422e3c559..6a90c5504e 100644 --- a/packages/web/src/content/docs/ko/plugins.mdx +++ b/packages/web/src/content/docs/ko/plugins.mdx @@ -192,7 +192,7 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree - `todo.updated` -#### 포탄 사건 +#### Shell 이벤트 - `shell.env` @@ -260,7 +260,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree }) ### Inject 환경 변수 -환경 변수를 모든 쉘 실행 (AI 도구 및 사용자 terminal)로 주사하십시오. +환경 변수를 모든 shell 실행 (AI 도구 및 사용자 terminal)로 주사하십시오. ```javascript title=".opencode/plugins/inject-env.js" export const InjectEnvPlugin = async () => { @@ -312,7 +312,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { ### 로깅 -구조화된 로깅을 위한 `console.log` 대신에 `client.app.log()`를 사용하십시오: +구조화된 로깅을 위한 `client.app.log()` 대신에 `console.log`를 사용하십시오: ```ts title=".opencode/plugins/my-plugin.ts" export const MyPlugin = async ({ client }) => { diff --git a/packages/web/src/content/docs/ko/providers.mdx b/packages/web/src/content/docs/ko/providers.mdx index 8f98e81bdb..faff030dcb 100644 --- a/packages/web/src/content/docs/ko/providers.mdx +++ b/packages/web/src/content/docs/ko/providers.mdx @@ -140,40 +140,40 @@ opencode로 Amazon Bedrock을 사용하려면: opencode를 실행하는 동안 이러한 환경 변수 중 하나를 설정: ```bash -# Option 1: Using AWS access keys -AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode + # Option 1: Using AWS access keys + AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode -# Option 2: Using named AWS profile -AWS_PROFILE=my-profile opencode + # Option 2: Using named AWS profile + AWS_PROFILE=my-profile opencode -# Option 3: Using Bedrock bearer token -AWS_BEARER_TOKEN_BEDROCK=XXX opencode -``` + # Option 3: Using Bedrock bearer token + AWS_BEARER_TOKEN_BEDROCK=XXX opencode + ``` 또는 bash 프로필에 추가: ```bash title="~/.bash_profile" -export AWS_PROFILE=my-dev-profile -export AWS_REGION=us-east-1 -``` + export AWS_PROFILE=my-dev-profile + export AWS_REGION=us-east-1 + ``` #### 설정 파일 (추천) 프로젝트 별 또는 지속적 구성의 경우 `opencode.json`를 사용하십시오. ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` ** 유효한 옵션:** @@ -190,19 +190,19 @@ export AWS_REGION=us-east-1 Bedrock의 VPC 엔드포인트를 사용하는 경우: ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` :::note `endpoint` 옵션은 일반적인 `baseURL` 옵션의 별칭입니다. `endpoint`와 `baseURL` 둘 다 지정되는 경우에, `endpoint`는 전진합니다. @@ -335,8 +335,8 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 또는 bash 프로파일에 추가: ```bash title="~/.bash_profile" -export AZURE_RESOURCE_NAME=XXX -``` + export AZURE_RESOURCE_NAME=XXX + ``` 6. `/models` 명령을 실행하여 배포 된 모델을 선택하십시오. @@ -383,8 +383,8 @@ export AZURE_RESOURCE_NAME=XXX 또는 bash 프로파일에 추가: ```bash title="~/.bash_profile" -export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX -``` + export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX + ``` 6. `/models` 명령을 실행하여 배포 된 모델을 선택하십시오. @@ -479,8 +479,8 @@ Cloudflare AI 게이트웨이는 OpenAI, Anthropic, Workers AI 등의 모델에 또는 환경 변수로 설정한다. ```bash title="~/.bash_profile" -export CLOUDFLARE_API_TOKEN=your-api-token -``` + export CLOUDFLARE_API_TOKEN=your-api-token + ``` 5. 모델을 선택하려면 `/models` 명령을 실행하십시오. @@ -491,18 +491,18 @@ export CLOUDFLARE_API_TOKEN=your-api-token opencode config를 통해 모델을 추가할 수 있습니다. ```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } + } + ``` --- @@ -669,7 +669,7 @@ Select**OAuth**와 브라우저는 권한이 없습니다. 1. [GitLab User Settings > Access Tokens](https://gitlab.com/-/user settings/personal access tokens)로 이동 2. 새 토큰 추가 \*\* -3. 이름: `opencode`의 범위: `api` +3. 이름: `OpenCode`의 범위: `api` 4. 토큰 복사 (`glpat-`와 함께 시작) 5. terminal에서 그것을 입력하십시오 @@ -848,16 +848,16 @@ opencode로 Google Vertex AI를 사용하려면: opencode를 실행하면서 설정한다. ```bash -GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode -``` + GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode + ``` 또는 bash 프로파일에 추가하십시오. ```bash title="~/.bash_profile" -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json -export GOOGLE_CLOUD_PROJECT=your-project-id -export VERTEX_LOCATION=global -``` + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json + export GOOGLE_CLOUD_PROJECT=your-project-id + export VERTEX_LOCATION=global + ``` :::tip `global` 지구는 가용성을 개량하고 추가 비용 없이 과실을 감소시킵니다. 데이터 거주 요건에 대한 지역 엔드포인트(e.g., `us-central1`)를 사용하십시오. [더 알아보기](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional and global endpoints) @@ -1395,17 +1395,17 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 opencode config를 통해 추가 모델을 추가할 수 있습니다. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` 5. 당신은 또한 당신의 opencode config를 통해 그들을 주문을 받아서 만들 수 있습니다. 공급자 지정의 예입니다. @@ -1459,14 +1459,14 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ 또는 `AICORE_SERVICE_KEY` 환경 변수를 설정: ```bash -AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode -``` + AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode + ``` 또는 bash 프로파일에 추가: ```bash title="~/.bash_profile" -export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' -``` + export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' + ``` 4. 선택적으로 배치 ID 및 자원 그룹: @@ -1736,17 +1736,17 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공 opencode config를 통해 추가 모델을 추가할 수 있습니다. ```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` --- diff --git a/packages/web/src/content/docs/ko/rules.mdx b/packages/web/src/content/docs/ko/rules.mdx index 9782f5581c..5c0a4707be 100644 --- a/packages/web/src/content/docs/ko/rules.mdx +++ b/packages/web/src/content/docs/ko/rules.mdx @@ -129,7 +129,7 @@ opencode가 `AGENTS.md`에 있는 자동적으로 파스 파일 참조를 하지 ## opencode.json 사용 -`opencode.json`의 `instructions` 필드를 사용하는 것이 좋습니다. +`instructions`의 `opencode.json` 필드를 사용하는 것이 좋습니다. ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/ko/sdk.mdx b/packages/web/src/content/docs/ko/sdk.mdx index f7b7a6aa9d..d181a6f101 100644 --- a/packages/web/src/content/docs/ko/sdk.mdx +++ b/packages/web/src/content/docs/ko/sdk.mdx @@ -28,9 +28,9 @@ npm install @opencode-ai/sdk opencode의 인스턴스 만들기: ```javascript -import { createopencode } from "@opencode-ai/sdk" +import { createOpencode } from "@opencode-ai/sdk" -const { client } = await createopencode() +const { client } = await createOpencode() ``` 서버와 클라이언트 모두 시작 @@ -52,9 +52,9 @@ const { client } = await createopencode() 구성 객체를 전달할 수 있습니다. 인스턴스는 여전히 `opencode.json`를 선택하지만 구성 인라인을 추가 할 수 있습니다. ```javascript -import { createopencode } from "@opencode-ai/sdk" +import { createOpencode } from "@opencode-ai/sdk" -const opencode = await createopencode({ +const opencode = await createOpencode({ hostname: "127.0.0.1", port: 4096, config: { @@ -72,9 +72,9 @@ opencode.server.close() opencode의 실행 인스턴스가 이미 있다면 클라이언트 인스턴스를 만들 수 있습니다. ```javascript -import { createopencodeClient } from "@opencode-ai/sdk" +import { createOpencodeClient } from "@opencode-ai/sdk" -const client = createopencodeClient({ +const client = createOpencodeClient({ baseUrl: "http://localhost:4096", }) ``` @@ -243,7 +243,7 @@ const { providers, default: defaults } = await client.config.providers() | `session.message({ path })` | 메시지 상세정보 | 반품 `{ info: `Message`, parts: `Part[]`}` | | `session.prompt({ path, body })` | prompt 메시지 보내기 | `body.noReply: true` 반환 UserMessage (콘텍스트 전용). 기본 반환 AssistantMessage 에 AI 응답 | | `session.command({ path, body })` | 세션으로 명령을 전송 | `{ info: `AssistantMessage`, parts: `Part[]`}` | -| `session.shell({ path, body })` | 쉘 명령을 실행 | AssistantMessage | +| `session.shell({ path, body })` | shell 명령을 실행 | AssistantMessage | | `session.revert({ path, body })` | 메시지 다시 변환 | Session | | `session.unrevert({ path })` | 통일된 메시지 | 반품 Session | | `postSessionByIdPermissionsByPermissionId({ path, body })` | 허가 요청 대응 | 반품 `boolean` | diff --git a/packages/web/src/content/docs/ko/server.mdx b/packages/web/src/content/docs/ko/server.mdx index 2e723a03ff..f76583902f 100644 --- a/packages/web/src/content/docs/ko/server.mdx +++ b/packages/web/src/content/docs/ko/server.mdx @@ -177,7 +177,7 @@ opencode 서버는 다음과 같은 API를 노출합니다. | `GET` | `/session/:id/message/:messageID` | 메시지 보내기 | `{ info: `Message`, parts: `Part[]`}` | | `POST` | `/session/:id/prompt_async` | 비동기적으로 메시지 보내기 | 몸: `/session/:id/message`와 동일, `204 No Content`를 반환 | | `POST` | `/session/:id/command` | 슬래시 명령어 실행 | 본체: `{ messageID?, agent?, model?, command, arguments }`, 반환 `{ info: `Message`, parts: `Part[]`}` | -| `POST` | `/session/:id/shell` | 쉘 명령 실행 | 체: `{ agent, model?, command }`, 반환 `{ info: `Message`, parts: `Part[]`}` | +| `POST` | `/session/:id/shell` | shell 명령 실행 | 체: `{ agent, model?, command }`, 반환 `{ info: `Message`, parts: `Part[]`}` | --- diff --git a/packages/web/src/content/docs/ko/skills.mdx b/packages/web/src/content/docs/ko/skills.mdx index 28964692a9..36cab78c25 100644 --- a/packages/web/src/content/docs/ko/skills.mdx +++ b/packages/web/src/content/docs/ko/skills.mdx @@ -25,7 +25,7 @@ opencode 이 위치를 검색: ## 발견의 이해 Project-local paths의 경우, opencode는 git worktree에 도달 할 때까지 현재 작업 디렉토리에서 걷습니다. -그것은 `.opencode/`에 있는 어떤 어울리는 `skills/*/SKILL.md` 및 어떤 어울리는 `.claude/skills/*/SKILL.md` 또는 `.agents/skills/*/SKILL.md`를 방법 적재합니다. +그것은 `skills/*/SKILL.md`에 있는 어떤 어울리는 `.opencode/` 및 어떤 어울리는 `.claude/skills/*/SKILL.md` 또는 `.agents/skills/*/SKILL.md`를 방법 적재합니다. 세계적인 정의는 또한 `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` 및 `~/.agents/skills/*/SKILL.md`에서 적재됩니다. diff --git a/packages/web/src/content/docs/ko/themes.mdx b/packages/web/src/content/docs/ko/themes.mdx index a72f60cd5f..e396d79070 100644 --- a/packages/web/src/content/docs/ko/themes.mdx +++ b/packages/web/src/content/docs/ko/themes.mdx @@ -15,7 +15,7 @@ opencode를 사용하면 여러 내장 테마 중 하나에서 선택할 수 있 -**체크 지원**: `echo $COLORTERM` - 그것은 `truecolor` 또는 `24bit`를 출력해야 합니다 -- ** truecolor 사용 가능**: 쉘 프로파일에서 환경 변수 `COLORTERM=truecolor`를 설정 +- ** truecolor 사용 가능**: shell 프로파일에서 환경 변수 `COLORTERM=truecolor`를 설정 - **Terminal 호환성 **: terminal 에뮬레이터 지원 24 비트 색상 (iTerm2, Alacritty, Kitty, Windows Terminal 및 GNOME Terminal의 최신 버전) truecolor 지원 없이, 테마는 감소된 색깔 정확도로 나타날지도 모릅니다 또는 가장 가까운 256 색깔 대류로 뒤떨어질지도 모릅니다. diff --git a/packages/web/src/content/docs/ko/tools.mdx b/packages/web/src/content/docs/ko/tools.mdx index 630e5a26f6..44f5070770 100644 --- a/packages/web/src/content/docs/ko/tools.mdx +++ b/packages/web/src/content/docs/ko/tools.mdx @@ -47,7 +47,7 @@ description: Manage the tools an LLM can use. ###### bash -프로젝트 환경에서 쉘 명령을 실행합니다. +프로젝트 환경에서 shell 명령을 실행합니다. ```json title="opencode.json" {4} { @@ -58,7 +58,7 @@ description: Manage the tools an LLM can use. } ``` -이 도구는 `npm install`, `git status` 또는 다른 쉘 명령과 같은 terminal 명령을 실행하는 LLM을 허용합니다. +이 도구는 `npm install`, `git status` 또는 다른 shell 명령과 같은 terminal 명령을 실행하는 LLM을 허용합니다. --- diff --git a/packages/web/src/content/docs/ko/troubleshooting.mdx b/packages/web/src/content/docs/ko/troubleshooting.mdx index 0074c917c7..dd8d17b11c 100644 --- a/packages/web/src/content/docs/ko/troubleshooting.mdx +++ b/packages/web/src/content/docs/ko/troubleshooting.mdx @@ -47,7 +47,7 @@ opencode 데스크톱은 배경에서 로컬 opencode 서버 (`opencode-cli` sid - 완전히 종료하고 앱을 다시 시작. - 앱이 오류 화면을 보여 주면 ** Restart**를 클릭하고 오류 세부 정보를 복사합니다. -- macOS만: `opencode` 메뉴 -> **웹뷰 **(UI가 공백/frozen인 경우). +- macOS만: `OpenCode` 메뉴 -> **웹뷰 **(UI가 공백/frozen인 경우). --- diff --git a/packages/web/src/content/docs/ko/tui.mdx b/packages/web/src/content/docs/ko/tui.mdx index ec0dabf419..7e16f31518 100644 --- a/packages/web/src/content/docs/ko/tui.mdx +++ b/packages/web/src/content/docs/ko/tui.mdx @@ -45,7 +45,7 @@ How is auth handled in @packages/functions/src/api/index.ts? ## Bash 명령 -`!`를 사용하여 쉘 명령을 실행합니다. +`!`를 사용하여 shell 명령을 실행합니다. ```bash frame="none" !ls -la @@ -301,7 +301,7 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). export EDITOR="code --wait" ``` -영원한 만들기 위하여, 당신의 포탄 단면도에 이것을 추가하십시오; +영원한 만들기 위하여, 당신의 shell 프로파일에 이것을 추가하십시오; `~/.bashrc`, `~/.zshrc`, 등. diff --git a/packages/web/src/content/docs/nb/1-0.mdx b/packages/web/src/content/docs/nb/1-0.mdx index 9489eab39a..feb7209be5 100644 --- a/packages/web/src/content/docs/nb/1-0.mdx +++ b/packages/web/src/content/docs/nb/1-0.mdx @@ -3,7 +3,7 @@ title: Migrerer til 1.0 description: Hva er nytt i opencode 1.0. --- -opencode 1.0 er en fullstendig omskrivning av TUI. +OpenCode 1.0 er en fullstendig omskrivning av TUI. Vi gikk fra den go+bubbletea-baserte TUI som hadde ytelses- og kapasitetsproblemer til et internt rammeverk (OpenTUI) skrevet i zig+solidjs. @@ -14,7 +14,7 @@ Den nye TUI fungerer som den gamle siden den kobles til den samme opencode-serve ## Oppgradering Du bør ikke autooppgraderes til 1.0 hvis du bruker en tidligere -versjon. Men noen eldre versjoner av opencode henter alltid den nyeste. +versjon. Men noen eldre versjoner av OpenCode henter alltid den nyeste. For å oppgradere manuelt, kjør @@ -44,24 +44,24 @@ Vi fjernet noe funksjonalitet som vi ikke var sikre på at noen faktisk brukte. ## Brytende endringer -### Keybindings omdøpt +### Keybinds omdøpt -- meldinger_tilbake -> meldinger_angre +- messages_revert -> messages_undo - switch_agent -> agent_cycle - switch_agent_reverse -> agent_cycle_reverse - switch_mode -> agent_cycle - switch_mode_reverse -> agent_cycle_reverse -### Keybindings fjernet +### Keybinds fjernet - messages_layout_toggle -- meldinger_neste -- meldinger_forrige +- messages_next +- messages_previous - file_diff_toggle -- filsøk -- fil_lukk -- fil_liste -- app_hjelp -- prosjekt_init +- file_search +- file_close +- file_list +- app_help +- project_init - tool_details -- tenkeblokker +- thinking_blocks diff --git a/packages/web/src/content/docs/nb/acp.mdx b/packages/web/src/content/docs/nb/acp.mdx index 3f3aaef9e8..3a217d0fe8 100644 --- a/packages/web/src/content/docs/nb/acp.mdx +++ b/packages/web/src/content/docs/nb/acp.mdx @@ -3,7 +3,7 @@ title: ACP Støtte description: Bruk opencode i en hvilken som helst ACP-kompatibel editor. --- -opencode støtter [Agent Client Protocol](https://agentclientprotocol.com) eller (ACP), slik at du kan bruke den direkte i kompatible redaktører og IDE-er. +OpenCode støtter [Agent Client Protocol](https://agentclientprotocol.com) eller (ACP), slik at du kan bruke den direkte i kompatible redaktører og IDE-er. :::tip For en liste over redaktører og verktøy som støtter ACP, sjekk ut [ACP fremdriftsrapport](https://zed.dev/blog/acp-progress-report#available-now). @@ -15,9 +15,9 @@ ACP er en åpen protokoll som standardiserer kommunikasjon mellom koderedigerere ## Konfigurer -For å bruke opencode via ACP, konfigurer redigeringsprogrammet til å kjøre kommandoen `opencode acp`. +For å bruke OpenCode via ACP, konfigurer redigeringsprogrammet til å kjøre kommandoen `opencode acp`. -Kommandoen starter opencode som en ACP-kompatibel underprosess som kommuniserer med redaktøren din over JSON-RPC via stdio. +Kommandoen starter OpenCode som en ACP-kompatibel underprosess som kommuniserer med redaktøren din over JSON-RPC via stdio. Nedenfor er eksempler på populære redaktører som støtter ACP. @@ -82,7 +82,7 @@ Legg til [JetBrains IDE](https://www.jetbrains.com/) acp.json i henhold til [dok } ``` -For å åpne den, bruk den nye 'opencode'-agenten i AI Chat-agentvelgeren. +For å åpne den, bruk den nye 'OpenCode'-agenten i AI Chat-agentvelgeren. --- @@ -121,7 +121,7 @@ Hvis du trenger å sende miljøvariabler: ### CodeCompanion.nvim -For å bruke opencode som en ACP-agent i [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), legg til følgende i Neovim-konfigurasjonen: +For å bruke OpenCode som en ACP-agent i [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), legg til følgende i Neovim-konfigurasjonen: ```lua require("codecompanion").setup({ @@ -136,21 +136,21 @@ require("codecompanion").setup({ }) ``` -Denne konfigurasjonen setter opp CodeCompanion.nvim til å bruke opencode som ACP-agent for chat. +Denne konfigurasjonen setter opp CodeCompanion.nvim til å bruke OpenCode som ACP-agent for chat. Hvis du trenger å sende miljøvariabler (som `OPENCODE_API_KEY`), se [Konfigurere adaptere: miljøvariabler](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) i CodeCompanion.nvim-dokumentasjonen for fullstendige detaljer. ## Støtte -opencode fungerer på samme måte via ACP som i terminalen. Alle funksjoner støttes: +OpenCode fungerer på samme måte via ACP som i terminalen. Alle funksjoner støttes: :::note -Noen innebygde skråstrekkommandoer som `/undo` og `/redo` støttes for øyeblikket ikke. +Noen innebygde slash-kommandoer som `/undo` og `/redo` støttes for øyeblikket ikke. ::: - Innebygde verktøy (filoperasjoner, terminalkommandoer, etc.) -- Egendefinerte verktøy og skråstrekkommandoer -- MCP servere konfigurert i opencode-konfigurasjonen +- Egendefinerte verktøy og slash-kommandoer +- MCP servere konfigurert i OpenCode-konfigurasjonen - Prosjektspesifikke regler fra `AGENTS.md` - Tilpassede formatere og linters - Agenter og tillatelsessystem diff --git a/packages/web/src/content/docs/nb/agents.mdx b/packages/web/src/content/docs/nb/agents.mdx index cb43229eeb..c794a401d5 100644 --- a/packages/web/src/content/docs/nb/agents.mdx +++ b/packages/web/src/content/docs/nb/agents.mdx @@ -15,7 +15,7 @@ Du kan bytte mellom agenter under en økt eller påkalle dem med `@`-omtalen. ## Typer -Det er to typer agenter i opencode; primære agenter og subagenter. +Det er to typer agenter i OpenCode; primære agenter og subagenter. --- @@ -27,8 +27,7 @@ Primæragenter er de viktigste assistentene du samhandler direkte med. Du kan bl Du kan bruke **Tab**-tasten for å bytte mellom primære agenter under en økt. ::: -opencode kommer med to innebygde primære agenter, **Build** og **Plan**. Godt -se på disse nedenfor. +OpenCode kommer med to innebygde primære agenter, **Build** og **Plan**. Vi ser nærmere på disse nedenfor. --- @@ -36,17 +35,17 @@ se på disse nedenfor. Subagenter er spesialiserte assistenter som primære agenter kan påkalle for spesifikke oppgaver. Du kan også starte dem manuelt ved å **@ nevne** dem i meldingene dine. -opencode kommer med to innebygde subagenter, **General** og **Explore**. Vi skal se på dette nedenfor. +OpenCode kommer med to innebygde subagenter, **General** og **Explore**. Vi skal se på dette nedenfor. --- ## Innebygd -opencode kommer med to innebygde primære agenter og to innebygde subagenter. +OpenCode kommer med to innebygde primære agenter og to innebygde subagenter. --- -### Bruk build +### Bruk Build _Modus_: `primary` @@ -54,7 +53,7 @@ Bygg er **standard** primæragent med alle verktøy aktivert. Dette er standarda --- -### Bruk plan +### Bruk Plan _Modus_: `primary` @@ -68,7 +67,7 @@ Denne agenten er nyttig når du vil at LLM skal analysere kode, foreslå endring --- -### Bruk generelt +### Bruk General _Modus_: `subagent` @@ -76,7 +75,7 @@ En generell agent for å undersøke komplekse spørsmål og utføre flertrinnsop --- -### Bruk utforske +### Bruk Explore _Modus_: `subagent` @@ -84,7 +83,7 @@ En rask, skrivebeskyttet agent for å utforske kodebaser. Kan ikke endre filer. --- -### Bruk komprimering +### Bruk Compaction _Modus_: `primary` @@ -92,7 +91,7 @@ Skjult systemagent som komprimerer lang kontekst til et mindre sammendrag. Den k --- -### Bruk tittel +### Bruk Title _Modus_: `primary` @@ -100,7 +99,7 @@ Skjult systemagent som genererer korte økttitler. Den kjører automatisk og kan --- -### Bruk sammendrag +### Bruk Summary _Modus_: `primary` @@ -121,8 +120,8 @@ Skjult systemagent som lager øktsammendrag. Den kjører automatisk og kan ikke ``` 3. **Navigering mellom økter**: Når underagenter oppretter sine egne underordnede økter, kan du navigere mellom overordnede økter og alle underordnede økter ved å bruke: - - **\+Høyre** (eller din konfigurerte `session_child_cycle`-tastebinding) for å gå videre gjennom forelder → barn1 → barn2 → ... → forelder - - **\+Venstre** (eller din konfigurerte `session_child_cycle_reverse`-tastebinding) for å gå bakover gjennom forelder ← barn1 ← barn2 ← ... ← forelder + - **\+Right** (eller din konfigurerte `session_child_cycle`-tastebinding) for å gå videre gjennom forelder → barn1 → barn2 → ... → forelder + - **\+Left** (eller din konfigurerte `session_child_cycle_reverse`-tastebinding) for å gå bakover gjennom forelder ← barn1 ← barn2 ← ... ← forelder Dette lar deg sømløst bytte mellom hovedsamtalen og spesialisert underagentarbeid. @@ -277,7 +276,7 @@ Temperaturverdier varierer vanligvis fra 0,0 til 1,0: } ``` -Hvis ingen temperatur er spesifisert, bruker opencode modellspesifikke standardinnstillinger; typisk 0 for de fleste modeller, 0,55 for Qwen-modeller. +Hvis ingen temperatur er spesifisert, bruker OpenCode modellspesifikke standardinnstillinger; typisk 0 for de fleste modeller, 0,55 for Qwen-modeller. --- @@ -337,7 +336,7 @@ Spesifiser en tilpasset systemmeldingsfil for denne agenten med `prompt`-konfigu } ``` -Denne banen er i forhold til hvor konfigurasjonsfilen er plassert. Så dette fungerer for både den globale opencode-konfigurasjonen og den prosjektspesifikke konfigurasjonen. +Denne banen er i forhold til hvor konfigurasjonsfilen er plassert. Så dette fungerer for både den globale OpenCode-konfigurasjonen og den prosjektspesifikke konfigurasjonen. --- @@ -359,7 +358,7 @@ Hvis du ikke spesifiserer en modell, bruker primæragenter [modell globalt konfi } ``` -Modellen ID i opencode-konfigurasjonen din bruker formatet `provider/model-id`. For eksempel, hvis du bruker [OpenCode Zen](/docs/zen), vil du bruke `opencode/gpt-5.1-codex` for GPT 5.1 Codex. +Modellen ID i OpenCode-konfigurasjonen din bruker formatet `provider/model-id`. For eksempel, hvis du bruker [OpenCode Zen](/docs/zen), vil du bruke `opencode/gpt-5.1-codex` for GPT 5.1 Codex. --- diff --git a/packages/web/src/content/docs/nb/cli.mdx b/packages/web/src/content/docs/nb/cli.mdx index d25a095a67..eb106ff5e3 100644 --- a/packages/web/src/content/docs/nb/cli.mdx +++ b/packages/web/src/content/docs/nb/cli.mdx @@ -5,13 +5,13 @@ description: opencode CLI alternativer og kommandoer. import { Tabs, TabItem } from "@astrojs/starlight/components" -opencode CLI starter som standard [TUI](/docs/tui) når den kjøres uten noen argumenter. +OpenCode CLI starter som standard [TUI](/docs/tui) når den kjøres uten noen argumenter. ```bash opencode ``` -Men den godtar også kommandoer som dokumentert på denne siden. Dette lar deg samhandle med opencode programmatisk. +Men den godtar også kommandoer som dokumentert på denne siden. Dette lar deg samhandle med OpenCode programmatisk. ```bash opencode run "Explain how closures work in JavaScript" @@ -21,7 +21,7 @@ opencode run "Explain how closures work in JavaScript" ### tui -Start opencode-terminalbrukergrensesnittet. +Start OpenCode-terminalbrukergrensesnittet. ```bash opencode [project] @@ -34,8 +34,8 @@ opencode [project] | `--continue` | `-c` | Fortsett siste økt | | `--session` | `-s` | Økt ID for å fortsette | | `--fork` | | Forgren økten ved fortsettelse (bruk med `--continue` eller `--session`) | -| `--prompt` | | Spør om å bruke | -| `--model` | `-m` | Modell å bruke i form av tilbyder/modell | +| `--prompt` | | Ledetekst som skal brukes | +| `--model` | `-m` | Modell å bruke i form av leverandør/modell | | `--agent` | | Agent å bruke | | `--port` | | Port å lytte på | | `--hostname` | | Vertsnavn å lytte på | @@ -44,13 +44,13 @@ opencode [project] ## Kommandoer -opencode CLI har også følgende kommandoer. +OpenCode CLI har også følgende kommandoer. --- ### agent -Administrer agenter for opencode. +Administrer agenter for OpenCode. ```bash opencode agent [command] @@ -60,13 +60,13 @@ opencode agent [command] ### attach -Koble en terminal til en allerede kjørende opencode-backend-server startet via `serve` eller `web` kommandoer. +Koble en terminal til en allerede kjørende OpenCode-backend-server startet via `serve` eller `web` kommandoer. ```bash opencode attach [url] ``` -Dette gjør det mulig å bruke TUI med en ekstern opencode-backend. For eksempel: +Dette gjør det mulig å bruke TUI med en ekstern OpenCode-backend. For eksempel: ```bash # Start the backend server for web/mobile access @@ -119,13 +119,13 @@ opencode auth [command] #### login -opencode drives av leverandørlisten på [Models.dev](https://models.dev), så du kan bruke `opencode auth login` til å konfigurere API-nøkler for enhver leverandør du vil bruke. Dette er lagret i `~/.local/share/opencode/auth.json`. +OpenCode drives av leverandørlisten på [Models.dev](https://models.dev), så du kan bruke `opencode auth login` til å konfigurere API-nøkler for enhver leverandør du vil bruke. Dette er lagret i `~/.local/share/opencode/auth.json`. ```bash opencode auth login ``` -Når opencode starter opp, laster den leverandørene fra legitimasjonsfilen. Og hvis det er noen nøkler definert i miljøene dine eller en `.env`-fil i prosjektet ditt. +Når OpenCode starter opp, laster den leverandørene fra legitimasjonsfilen. Og hvis det er noen nøkler definert i miljøene dine eller en `.env`-fil i prosjektet ditt. --- @@ -187,10 +187,10 @@ opencode github run ##### Flagg -| Flagg | Beskrivelse | -| --------- | ----------------------------------------- | -| `--event` | GitHub mock event for å kjøre agenten for | -| `--token` | GitHub personlig tilgangstoken | +| Flagg | Beskrivelse | +| --------- | ---------------------------------------- | +| `--event` | GitHub mock-hendelse å kjøre agenten for | +| `--token` | GitHub personlig tilgangstoken | --- @@ -301,7 +301,7 @@ opencode models anthropic | `--refresh` | Oppdater modellbufferen fra models.dev | | `--verbose` | Bruk mer detaljert modellutdata (inkluderer metadata som kostnader) | -Bruk `--refresh`-flagget for å oppdatere den bufrede modelllisten. Dette er nyttig når nye modeller er lagt til en leverandør og du vil se dem i opencode. +Bruk `--refresh`-flagget for å oppdatere den bufrede modelllisten. Dette er nyttig når nye modeller er lagt til en leverandør og du vil se dem i OpenCode. ```bash opencode models --refresh @@ -311,7 +311,7 @@ opencode models --refresh ### run -Kjør opencode i ikke-interaktiv modus ved å sende en melding direkte. +Kjør OpenCode i ikke-interaktiv modus ved å sende en melding direkte. ```bash opencode run [message..] @@ -342,25 +342,25 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" | `--session` | `-s` | Økt ID for å fortsette | | `--fork` | | Forgren økten ved fortsettelse (bruk med `--continue` eller `--session`) | | `--share` | | Del økten | -| `--model` | `-m` | Modell å bruke i form av tilbyder/modell | +| `--model` | `-m` | Modell å bruke i form av leverandør/modell | | `--agent` | | Agent å bruke | | `--file` | `-f` | Fil(er) som skal legges ved melding | | `--format` | | Format: standard (formatert) eller json (rå JSON hendelser) | | `--title` | | Tittel for økten (bruker avkortet ledetekst hvis ingen verdi er oppgitt) | -| `--attach` | | Koble til en kjørende opencode-server (f.eks. http://localhost:4096) | +| `--attach` | | Koble til en kjørende OpenCode-server (f.eks. http://localhost:4096) | | `--port` | | Port for den lokale serveren (standard til tilfeldig port) | --- ### serve -Start en hodeløs opencode-server for API-tilgang. Sjekk ut [server-dokumentene](/docs/server) for hele HTTP-grensesnittet. +Start en hodeløs OpenCode-server for API-tilgang. Sjekk ut [server-dokumentene](/docs/server) for hele HTTP-grensesnittet. ```bash opencode serve ``` -Dette starter en HTTP-server som gir API tilgang til opencode-funksjonalitet uten TUI-grensesnittet. Sett `OPENCODE_SERVER_PASSWORD` for å aktivere HTTP grunnleggende autentisering (brukernavn er standard til `opencode`). +Dette starter en HTTP-server som gir API tilgang til OpenCode-funksjonalitet uten TUI-grensesnittet. Sett `OPENCODE_SERVER_PASSWORD` for å aktivere HTTP grunnleggende autentisering (brukernavn er standard til `opencode`). #### Flagg @@ -375,7 +375,7 @@ Dette starter en HTTP-server som gir API tilgang til opencode-funksjonalitet ute ### session -Administrer opencode-økter. +Administrer OpenCode-økter. ```bash opencode session [command] @@ -385,7 +385,7 @@ opencode session [command] #### list -List opp alle opencode-økter. +List opp alle OpenCode-økter. ```bash opencode session list @@ -402,7 +402,7 @@ opencode session list ### stats -Vis tokenbruk og kostnadsstatistikk for opencode-øktene dine. +Vis tokenbruk og kostnadsstatistikk for OpenCode-øktene dine. ```bash opencode stats @@ -433,13 +433,13 @@ Hvis du ikke gir en økt ID, blir du bedt om å velge fra tilgjengelige økter. ### import -Importer øktdata fra en JSON-fil eller en opencode share-URL. +Importer øktdata fra en JSON-fil eller en OpenCode share-URL. ```bash opencode import ``` -Du kan importere fra en lokal fil eller en opencode share-URL. +Du kan importere fra en lokal fil eller en OpenCode share-URL. ```bash opencode import session.json @@ -450,13 +450,13 @@ opencode import https://opncd.ai/s/abc123 ### web -Start en hodeløs opencode-server med et webgrensesnitt. +Start en hodeløs OpenCode-server med et webgrensesnitt. ```bash opencode web ``` -Dette starter en HTTP-server og åpner en nettleser for å få tilgang til opencode via et nettgrensesnitt. Sett `OPENCODE_SERVER_PASSWORD` for å aktivere HTTP grunnleggende autentisering (brukernavn er standard til `opencode`). +Dette starter en HTTP-server og åpner en nettleser for å få tilgang til OpenCode via et nettgrensesnitt. Sett `OPENCODE_SERVER_PASSWORD` for å aktivere HTTP grunnleggende autentisering (brukernavn er standard til `opencode`). #### Flagg @@ -491,7 +491,7 @@ Denne kommandoen starter en ACP-server som kommuniserer via stdin/stdout ved å ### uninstall -Avinstaller opencode og fjern alle relaterte filer. +Avinstaller OpenCode og fjern alle relaterte filer. ```bash opencode uninstall @@ -510,7 +510,7 @@ opencode uninstall ### upgrade -Oppdaterer opencode til siste versjon eller en spesifikk versjon. +Oppdaterer OpenCode til siste versjon eller en spesifikk versjon. ```bash opencode upgrade [target] @@ -538,12 +538,12 @@ opencode upgrade v0.1.48 ## Globale flagg -opencode CLI bruker følgende globale flagg. +OpenCode CLI bruker følgende globale flagg. | Flagg | Kort | Beskrivelse | | -------------- | ---- | ----------------------------------- | | `--help` | `-h` | Vis hjelp | -| `--version` | `-v` | Utskriftsnummer | +| `--version` | `-v` | Skriv ut versjonsnummer | | `--print-logs` | | Skriv ut logger til stderr | | `--log-level` | | Loggnivå (DEBUG, INFO, WARN, ERROR) | @@ -551,9 +551,9 @@ opencode CLI bruker følgende globale flagg. ## Miljøvariabler -opencode kan konfigureres ved hjelp av miljøvariabler. +OpenCode kan konfigureres ved hjelp av miljøvariabler. -| Variabel | Skriv | Beskrivelse | +| Variabel | Type | Beskrivelse | | ------------------------------------- | ------ | --------------------------------------------------------------------- | | `OPENCODE_AUTO_SHARE` | boolsk | Del økter automatisk | | `OPENCODE_GIT_BASH_PATH` | streng | Bane til Git Bash-kjørbar på Windows | @@ -586,7 +586,7 @@ opencode kan konfigureres ved hjelp av miljøvariabler. Disse miljøvariablene muliggjør eksperimentelle funksjoner som kan endres eller fjernes. -| Variabel | Skriv | Beskrivelse | +| Variabel | Type | Beskrivelse | | ----------------------------------------------- | ------ | --------------------------------------------- | | `OPENCODE_EXPERIMENTAL` | boolsk | Aktiver alle eksperimentelle funksjoner | | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolsk | Aktiver ikonoppdagelse | diff --git a/packages/web/src/content/docs/nb/commands.mdx b/packages/web/src/content/docs/nb/commands.mdx index 037a6b03d5..e77cb77630 100644 --- a/packages/web/src/content/docs/nb/commands.mdx +++ b/packages/web/src/content/docs/nb/commands.mdx @@ -42,13 +42,13 @@ Bruk kommandoen ved å skrive `/` etterfulgt av kommandonavnet. ## Konfigurer -Du kan legge til egendefinerte kommandoer gjennom opencode-konfigurasjonen eller ved å lage markdown-filer i katalogen `commands/`. +Du kan legge til egendefinerte kommandoer gjennom OpenCode-konfigurasjonen eller ved å lage markdown-filer i katalogen `commands/`. --- ### JSON -Bruk alternativet `command` i opencode [config](/docs/config): +Bruk alternativet `command` i OpenCode [config](/docs/config): ```json title="opencode.jsonc" {4-12} { @@ -94,7 +94,7 @@ Focus on the failing tests and suggest fixes. ``` Markdown-filnavnet blir kommandonavnet. For eksempel lar `test.md` -du løper: +deg kjøre: ```bash frame="none" /test @@ -102,9 +102,9 @@ du løper: --- -## Spør config +## Ledetekst-konfigurasjon -Spørringene for de egendefinerte kommandoene støtter flere spesielle plassholdere og syntaks. +Ledetekstene for de egendefinerte kommandoene støtter flere spesielle plassholdere og syntaks. --- @@ -270,13 +270,13 @@ For å deaktivere denne virkemåten, sett `subtask` til `false`. } ``` -Dette er et **valgfritt** konfigurasjonsalternativ. Hvis det ikke er spesifisert, brukes din nåværende agent som standard. +Denne kommandoen vil veilede deg gjennom å lage en ny agent med en tilpasset systemmelding og verktøykonfigurasjon. --- -### Deloppgave +### Subtask -Bruk `subtask` boolsk for å tvinge kommandoen til å utløse en [subagent](/docs/agents/#subagents) påkalling. +Bruk `subtask` boolean for å tvinge kommandoen til å utløse en [subagent](/docs/agents/#subagents) påkalling. Dette er nyttig hvis du vil at kommandoen ikke skal forurense din primære kontekst og vil **tvinge** agenten til å fungere som en underagent, selv om `mode` er satt til `primary` på [agent](/docs/agents) konfigurasjonen. @@ -314,7 +314,7 @@ Dette er et **valgfritt** konfigurasjonsalternativ. ## Innebygd -opencode inkluderer flere innebygde kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`; [finn ut mer](/docs/tui#commands). +OpenCode inkluderer flere innebygde kommandoer som `/init`, `/undo`, `/redo`, `/share`, `/help`; [finn ut mer](/docs/tui#commands). :::note Egendefinerte kommandoer kan overstyre innebygde kommandoer. diff --git a/packages/web/src/content/docs/nb/config.mdx b/packages/web/src/content/docs/nb/config.mdx index b3c8a618fa..0d90baebd8 100644 --- a/packages/web/src/content/docs/nb/config.mdx +++ b/packages/web/src/content/docs/nb/config.mdx @@ -3,13 +3,13 @@ title: Konfig description: Ved å bruke opencode JSON-konfigurasjonen. --- -Du kan konfigurere opencode ved å bruke en JSON konfigurasjonsfil. +Du kan konfigurere OpenCode ved å bruke en JSON konfigurasjonsfil. --- ## Format -opencode støtter både **JSON** og **JSONC** (JSON med kommentarer) formater. +OpenCode støtter både **JSON** og **JSONC** (JSON med kommentarer) formater. ```jsonc title="opencode.jsonc" { @@ -57,7 +57,7 @@ Dette betyr at prosjektkonfigurasjoner kan overstyre globale standardinnstilling --- -### Fjernkontroll +### Ekstern Organisasjoner kan gi standardkonfigurasjon via `.well-known/opencode`-endepunktet. Dette hentes automatisk når du autentiserer med en leverandør som støtter det. @@ -95,7 +95,7 @@ Du kan aktivere spesifikke servere i din lokale konfigurasjon: ### Globalt -Plasser din globale opencode-konfigurasjon i `~/.config/opencode/opencode.json`. Bruk global konfigurasjon for brukeromfattende preferanser som temaer, leverandører eller nøkkelbindinger. +Plasser din globale OpenCode-konfigurasjon i `~/.config/opencode/opencode.json`. Bruk global konfigurasjon for brukeromfattende preferanser som temaer, leverandører eller nøkkelbindinger. Global konfigurasjon overstyrer eksterne organisasjonsstandarder. @@ -109,7 +109,7 @@ Legg til `opencode.json` i prosjektroten din. Project config har den høyeste pr Plasser prosjektspesifikk konfigurasjon i roten til prosjektet ditt. ::: -Når opencode starter opp, ser den etter en konfigurasjonsfil i gjeldende katalog eller går opp til nærmeste Git-katalog. +Når OpenCode starter opp, ser den etter en konfigurasjonsfil i gjeldende katalog eller går opp til nærmeste Git-katalog. Dette er også trygt å bli sjekket inn i Git og bruker samme skjema som det globale. @@ -200,7 +200,7 @@ Tilgjengelige alternativer: - `port` - Port for å lytte på. - `hostname` - Vertsnavn å lytte på. Når `mdns` er aktivert og ingen vertsnavn er angitt, er standard `0.0.0.0`. -- `mdns` - Aktiver mDNS-tjenesteoppdagelse. Dette lar andre enheter på nettverket oppdage opencode-serveren din. +- `mdns` - Aktiver mDNS-tjenesteoppdagelse. Dette lar andre enheter på nettverket oppdage OpenCode-serveren din. - `mdnsDomain` - Egendefinert domenenavn for mDNS-tjeneste. Standard er `opencode.local`. Nyttig for å kjøre flere forekomster på samme nettverk. - `cors` - Ytterligere opprinnelser for å tillate CORS når du bruker HTTP-serveren fra en nettleserbasert klient. Verdiene må være fullstendige opprinnelser (skjema + vert + valgfri port), f.eks. `https://app.example.com`. @@ -228,7 +228,7 @@ Du kan administrere verktøyene en LLM kan bruke gjennom alternativet `tools`. ### Modeller -Du kan konfigurere leverandørene og modellene du vil bruke i opencode-konfigurasjonen gjennom alternativene `provider`, `model` og `small_model`. +Du kan konfigurere leverandørene og modellene du vil bruke i OpenCode-konfigurasjonen gjennom alternativene `provider`, `model` og `small_model`. ```json title="opencode.json" { @@ -239,7 +239,7 @@ Du kan konfigurere leverandørene og modellene du vil bruke i opencode-konfigura } ``` -Alternativet `small_model` konfigurerer en egen modell for lette oppgaver som tittelgenerering. Som standard prøver opencode å bruke en billigere modell hvis en er tilgjengelig fra leverandøren din, ellers faller den tilbake til hovedmodellen din. +Alternativet `small_model` konfigurerer en egen modell for lette oppgaver som tittelgenerering. Som standard prøver OpenCode å bruke en billigere modell hvis en er tilgjengelig fra leverandøren din, ellers faller den tilbake til hovedmodellen din. Leverandøralternativer kan inkludere `timeout` og `setCacheKey`: @@ -301,7 +301,7 @@ Bærer-tokens (`AWS_BEARER_TOKEN_BEDROCK` eller `/connect`) har forrang over pro ### Temaer -Du kan konfigurere temaet du vil bruke i opencode-konfigurasjonen gjennom alternativet `theme`. +Du kan konfigurere temaet du vil bruke i OpenCode-konfigurasjonen gjennom alternativet `theme`. ```json title="opencode.json" { @@ -351,7 +351,7 @@ Du kan angi standard agent ved å bruke alternativet `default_agent`. Dette best } ``` -Standardagenten må være en primæragent (ikke en underagent). Dette kan være en innebygd agent som `"build"` eller `"plan"`, eller en [egendefinert agent](/docs/agents) du har definert. Hvis den angitte agenten ikke eksisterer eller er en subagent, vil opencode falle tilbake til `"build"` med en advarsel. +Standardagenten må være en primæragent (ikke en underagent). Dette kan være en innebygd agent som `"build"` eller `"plan"`, eller en [egendefinert agent](/docs/agents) du har definert. Hvis den angitte agenten ikke eksisterer eller er en subagent, vil OpenCode falle tilbake til `"build"` med en advarsel. Denne innstillingen gjelder for alle grensesnitt: TUI, CLI (`opencode run`), skrivebordsapp og GitHub Action. @@ -421,7 +421,7 @@ Du kan tilpasse nøkkelbindingene dine gjennom alternativet `keybinds`. ### Autooppdatering -opencode vil automatisk laste ned eventuelle nye oppdateringer når den starter opp. Du kan deaktivere dette med alternativet `autoupdate`. +OpenCode vil automatisk laste ned eventuelle nye oppdateringer når den starter opp. Du kan deaktivere dette med alternativet `autoupdate`. ```json title="opencode.json" { @@ -463,7 +463,7 @@ Du kan konfigurere kodeformatere gjennom alternativet `formatter`. ### Tillatelser -Som standard **tillater opencode alle operasjoner** uten å kreve eksplisitt godkjenning. Du kan endre dette ved å bruke alternativet `permission`. +Som standard **tillater OpenCode alle operasjoner** uten å kreve eksplisitt godkjenning. Du kan endre dette ved å bruke alternativet `permission`. For å sikre at verktøyene `edit` og `bash` krever brukergodkjenning: @@ -534,7 +534,7 @@ Du kan konfigurere MCP-servere du vil bruke gjennom alternativet `mcp`. ### Plugins -[Plugins](/docs/plugins) utvider opencode med tilpassede verktøy, kroker og integrasjoner. +[Plugins](/docs/plugins) utvider OpenCode med tilpassede verktøy, kroker og integrasjoner. Plasser plugin-filer i `.opencode/plugins/` eller `~/.config/opencode/plugins/`. Du kan også laste inn plugins fra npm gjennom alternativet `plugin`. @@ -599,7 +599,7 @@ Du kan spesifisere en godkjenningsliste over leverandører gjennom alternativet } ``` -Dette er nyttig når du vil begrense opencode til kun å bruke spesifikke leverandører i stedet for å deaktivere dem én etter én. +Dette er nyttig når du vil begrense OpenCode til kun å bruke spesifikke leverandører i stedet for å deaktivere dem én etter én. :::note `disabled_providers` har prioritet over `enabled_providers`. diff --git a/packages/web/src/content/docs/nb/custom-tools.mdx b/packages/web/src/content/docs/nb/custom-tools.mdx index 702dd0b10b..a3dfa9f8b0 100644 --- a/packages/web/src/content/docs/nb/custom-tools.mdx +++ b/packages/web/src/content/docs/nb/custom-tools.mdx @@ -1,9 +1,9 @@ --- title: Egendefinerte verktøy -description: Lag verktøy som LLM kan kalle inn opencode. +description: Lag verktøy som LLM kan kalle inn OpenCode. --- -Egendefinerte verktøy er funksjoner du oppretter som LLM kan ringe under samtaler. De fungerer sammen med opencode sine [innebygde verktøy](/docs/tools) som `read`, `write` og `bash`. +Egendefinerte verktøy er funksjoner du oppretter som LLM kan ringe under samtaler. De fungerer sammen med OpenCode sine [innebygde verktøy](/docs/tools) som `read`, `write` og `bash`. --- diff --git a/packages/web/src/content/docs/nb/ecosystem.mdx b/packages/web/src/content/docs/nb/ecosystem.mdx index e74cf59c61..0890fbc082 100644 --- a/packages/web/src/content/docs/nb/ecosystem.mdx +++ b/packages/web/src/content/docs/nb/ecosystem.mdx @@ -1,12 +1,12 @@ --- title: Økosystem -description: Prosjekter og integrasjoner bygget med opencode. +description: Prosjekter og integrasjoner bygget med OpenCode. --- -En samling fellesskapsprosjekter bygget på opencode. +En samling fellesskapsprosjekter bygget på OpenCode. :::note -Vil du legge til ditt opencode-relaterte prosjekt til denne listen? Send inn en PR. +Vil du legge til ditt OpenCode-relaterte prosjekt til denne listen? Send inn en PR. ::: Du kan også sjekke ut [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) og [opencode.cafe](https://opencode.cafe), et fellesskap som samler økosystemet og fellesskapet. @@ -17,7 +17,7 @@ Du kan også sjekke ut [awesome-opencode](https://github.com/awesome-opencode/aw | Navn | Beskrivelse | | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Kjør opencode-økter automatisk i isolerte Daytona-sandkasser med git-synkronisering og live forhåndsvisninger | +| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Kjør OpenCode-økter automatisk i isolerte Daytona-sandkasser med git-synkronisering og live forhåndsvisninger | | [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | Injiser automatisk Helicone-økthoder for forespørselsgruppering | | [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | Auto-injiser TypeScript/Svelte-typer i fillesninger med oppslagsverktøy | | [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Bruk ChatGPT Plus/Pro-abonnementet ditt i stedet for API kreditter | @@ -29,24 +29,24 @@ Du kan også sjekke ut [awesome-opencode](https://github.com/awesome-opencode/aw | [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Legg til innebygd nettsøk-støtte for støttede leverandører med Googles jordet stil | | [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Gjør det mulig for AI-agenter å kjøre bakgrunnsprosesser i en PTY, sende interaktive input til dem. | | [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instruksjoner for ikke-interaktive shell-kommandoer - forhindrer heng fra TTY-avhengige operasjoner | -| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Spor opencode-bruk med Wakatime | +| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Spor OpenCode-bruk med Wakatime | | [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Rydd opp avslagstabeller produsert av LLMs | -| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | 10 ganger raskere koderedigering med Morph Fast Apply API og late redigeringsmarkører | +| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | 10 ganger raskere koderedigering med Morph Fast Apply API og lazy redigeringsmarkører | | [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Bakgrunnsagenter, forhåndsbygde LSP/AST/MCP verktøy, kurerte agenter, Claude Code-kompatibel | -| [opencode-notificator](https://github.com/panta82/opencode-notificator) | Skrivebordsvarsler og lydvarsler for opencode-økter | +| [opencode-notificator](https://github.com/panta82/opencode-notificator) | Skrivebordsvarsler og lydvarsler for OpenCode-økter | | [opencode-notifier](https://github.com/mohak34/opencode-notifier) | Skrivebordsvarsler og lydvarsler for tillatelse, fullføring og feilhendelser | -| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | AI-drevet automatisk Zellij-sesjonsnavn basert på opencode-kontekst | -| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Tillat opencode-agenter til late load-meldinger på forespørsel med ferdighetsoppdagelse og injeksjon | +| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | AI-drevet automatisk Zellij-sesjonsnavn basert på OpenCode-kontekst | +| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Tillat OpenCode-agenter å lazy-loade meldinger på forespørsel med ferdighetsoppdagelse og injeksjon | | [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | Vedvarende minne på tvers av økter ved hjelp av Supermemory | | [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Interaktiv plangjennomgang med visuell merknad og privat/offline deling | -| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Utvid opencode /kommandoer til et kraftig orkestreringssystem med granulær flytkontroll | +| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Utvid OpenCode /kommandoer til et kraftig orkestreringssystem med granulær flytkontroll | | [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | Planlegg gjentakende jobber ved hjelp av launchd (Mac) eller systemd (Linux) med cron-syntaks | | [micode](https://github.com/vtemian/micode) | Strukturert brainstorm → Plan → Implementer arbeidsflyt med øktkontinuitet | | [octto](https://github.com/vtemian/octto) | Interaktiv nettleser UI for AI idédugnad med flerspørsmålsskjemaer | | [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | Claude Bakgrunnsagenter i kodestil med asynkrondelegering og kontekstutholdenhet | -| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Innfødte OS-varsler for opencode – vet når oppgaver fullføres | +| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Innfødte OS-varsler for OpenCode – vet når oppgaver fullføres | | [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | Medfølgende multi-agent orkestreringssele – 16 komponenter, én installasjon | -| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | Nullfriksjon git-arbeidstre for opencode | +| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | Nullfriksjon git-arbeidstre for OpenCode | --- @@ -54,17 +54,17 @@ Du kan også sjekke ut [awesome-opencode](https://github.com/awesome-opencode/aw | Navn | Beskrivelse | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- | -| [kimaki](https://github.com/remorses/kimaki) | Discord-bot for å kontrollere opencode-økter, bygget på SDK | +| [kimaki](https://github.com/remorses/kimaki) | Discord-bot for å kontrollere OpenCode-økter, bygget på SDK | | [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Neovim-plugin for redaktørbevisste meldinger, bygget på API | -| [portal](https://github.com/hosenur/portal) | Mobile-first web UI for opencode over Tailscale/VPN | -| [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Mal for å bygge opencode-plugins | -| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Neovim-grensesnitt for opencode - en terminalbasert AI-kodingsagent | -| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Vercel AI SDK leverandør for bruk av opencode via @opencode-ai/sdk | -| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Web-/skrivebordsapp og VS Code-utvidelse for opencode | -| [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | Obsidian-plugin som bygger inn opencode i Obsidians UI | -| [OpenWork](https://github.com/different-ai/openwork) | Et åpen kildekode-alternativ til Claude Cowork, drevet av opencode | -| [ocx](https://github.com/kdcokenny/ocx) | opencode utvidelsesbehandler med bærbare, isolerte profiler. | -| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Desktop, Web, Mobile og Remote Client App for opencode | +| [portal](https://github.com/hosenur/portal) | Mobile-first web UI for OpenCode over Tailscale/VPN | +| [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Mal for å bygge OpenCode-plugins | +| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Neovim-grensesnitt for OpenCode - en terminalbasert AI-kodingsagent | +| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Vercel AI SDK leverandør for bruk av OpenCode via @opencode-ai/sdk | +| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Web-/skrivebordsapp og VS Code-utvidelse for OpenCode | +| [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | Obsidian-plugin som bygger inn OpenCode i Obsidians UI | +| [OpenWork](https://github.com/different-ai/openwork) | Et åpen kildekode-alternativ til Claude Cowork, drevet av OpenCode | +| [ocx](https://github.com/kdcokenny/ocx) | OpenCode utvidelsesbehandler med bærbare, isolerte profiler. | +| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Desktop, Web, Mobile og Remote Client App for OpenCode | --- diff --git a/packages/web/src/content/docs/nb/enterprise.mdx b/packages/web/src/content/docs/nb/enterprise.mdx index a902ec0602..09f253b0c5 100644 --- a/packages/web/src/content/docs/nb/enterprise.mdx +++ b/packages/web/src/content/docs/nb/enterprise.mdx @@ -6,13 +6,13 @@ description: Sikker bruk av opencode i din organisasjon. import config from "../../../../config.mjs" export const email = `mailto:${config.email}` -opencode Enterprise er for organisasjoner som ønsker å sikre at deres kode og data aldri forlater deres infrastruktur. Den kan gjøre dette ved å bruke en sentralisert konfigurasjon som integreres med din SSO og interne AI gateway. +OpenCode Enterprise er for organisasjoner som ønsker å sikre at deres kode og data aldri forlater deres infrastruktur. Den kan gjøre dette ved å bruke en sentralisert konfigurasjon som integreres med din SSO og interne AI gateway. :::note -opencode lagrer ingen av koden eller kontekstdataene dine. +OpenCode lagrer ingen av koden eller kontekstdataene dine. ::: -For å komme i gang med opencode Enterprise: +For å komme i gang med OpenCode Enterprise: 1. Gjør en prøveversjon internt med teamet ditt. 2. **Kontakt oss** for å diskutere priser og implementeringsalternativer. @@ -21,16 +21,16 @@ For å komme i gang med opencode Enterprise: ## Prøve -opencode er åpen kildekode og lagrer ingen av koden eller kontekstdataene dine, så utviklerne dine kan ganske enkelt [komme i gang](/docs/) og utføre en prøveversjon. +OpenCode er åpen kildekode og lagrer ingen av koden eller kontekstdataene dine, så utviklerne dine kan ganske enkelt [komme i gang](/docs/) og utføre en prøveversjon. --- ### Datahåndtering -**opencode lagrer ikke koden eller kontekstdataene dine.** All behandling skjer lokalt eller gjennom direkte API-anrop til AI-leverandøren din. +**OpenCode lagrer ikke koden eller kontekstdataene dine.** All behandling skjer lokalt eller gjennom direkte API-anrop til AI-leverandøren din. Dette betyr at så lenge du bruker en leverandør du stoler på, eller en intern -AI gateway, kan du bruke opencode sikkert. +AI gateway, kan du bruke OpenCode sikkert. Det eneste forbeholdet her er den valgfrie `/share`-funksjonen. @@ -57,19 +57,19 @@ Vi anbefaler at du deaktiverer dette for prøveversjonen. ### Kodeeierskap -**Du eier all kode produsert av opencode.** Det er ingen lisensieringsbegrensninger eller eierskapskrav. +**Du eier all kode produsert av OpenCode.** Det er ingen lisensieringsbegrensninger eller eierskapskrav. --- ## Priser -Vi bruker en per-sete-modell for opencode Enterprise. Hvis du har din egen LLM-gateway, tar vi ikke betalt for tokens som brukes. For mer informasjon om priser og implementeringsalternativer, **kontakt oss**. +Vi bruker en per-sete-modell for OpenCode Enterprise. Hvis du har din egen LLM-gateway, tar vi ikke betalt for tokens som brukes. For mer informasjon om priser og implementeringsalternativer, **kontakt oss**. --- ## Implementering -Når du har fullført prøveversjonen og du er klar til å bruke opencode på +Når du har fullført prøveversjonen og du er klar til å bruke OpenCode på organisasjonen din, kan du **kontakte oss** for å diskutere prissetting og implementeringsalternativer. @@ -77,7 +77,7 @@ prissetting og implementeringsalternativer. ### Sentral konfig -Vi kan sette opp opencode for å bruke en enkelt sentral konfigurasjon for hele organisasjonen din. +Vi kan sette opp OpenCode for å bruke en enkelt sentral konfigurasjon for hele organisasjonen din. Denne sentraliserte konfigurasjonen kan integreres med SSO-leverandøren din og sikrer at alle brukere kun får tilgang til din interne AI-gateway. @@ -85,15 +85,15 @@ Denne sentraliserte konfigurasjonen kan integreres med SSO-leverandøren din og ### SSO integrasjon -Gjennom den sentrale konfigurasjonen kan opencode integreres med organisasjonens SSO-leverandør for autentisering. +Gjennom den sentrale konfigurasjonen kan OpenCode integreres med organisasjonens SSO-leverandør for autentisering. -Dette lar opencode få legitimasjon for din interne AI-gateway gjennom ditt eksisterende identitetsadministrasjonssystem. +Dette lar OpenCode få legitimasjon for din interne AI-gateway gjennom ditt eksisterende identitetsadministrasjonssystem. --- ### Intern AI gateway -Med den sentrale konfigurasjonen kan opencode også konfigureres til kun å bruke din interne AI-gateway. +Med den sentrale konfigurasjonen kan OpenCode også konfigureres til kun å bruke din interne AI-gateway. Du kan også deaktivere alle andre AI-leverandører, og sikre at alle forespørsler går gjennom organisasjonens godkjente infrastruktur. @@ -111,39 +111,39 @@ Dette er nå på veikartet vårt. Hvis du er interessert, **gi o ## FAQ
-What is opencode Enterprise? +Hva er OpenCode Enterprise? -opencode Enterprise er for organisasjoner som ønsker å sikre at deres kode og data aldri forlater deres infrastruktur. Den kan gjøre dette ved å bruke en sentralisert konfigurasjon som integreres med din SSO og interne AI gateway. +OpenCode Enterprise er for organisasjoner som ønsker å sikre at deres kode og data aldri forlater deres infrastruktur. Den kan gjøre dette ved å bruke en sentralisert konfigurasjon som integreres med din SSO og interne AI gateway.
-How do I get started with opencode Enterprise? +Hvordan kommer jeg i gang med OpenCode Enterprise? -Bare start med en intern prøveversjon med teamet ditt. opencode lagrer som standard ikke koden eller kontekstdataene dine, noe som gjør det enkelt å komme i gang. +Bare start med en intern prøveversjon med teamet ditt. OpenCode lagrer som standard ikke koden eller kontekstdataene dine, noe som gjør det enkelt å komme i gang. Så **kontakt oss** for å diskutere priser og implementeringsalternativer.
-How does enterprise pricing work? +Hvordan fungerer bedriftsprising? Vi tilbyr bedriftspriser per sete. Hvis du har din egen LLM-gateway, tar vi ikke betalt for tokens som brukes. For ytterligere detaljer, **kontakt oss** for et tilpasset tilbud basert på organisasjonens behov.
-Is my data secure with opencode Enterprise? +Er dataene mine trygge med OpenCode Enterprise? -Ja. opencode lagrer ikke koden eller kontekstdataene dine. All behandling skjer lokalt eller gjennom direkte API-anrop til AI-leverandøren din. Med sentral konfigurasjon og SSO-integrasjon forblir dataene dine sikre i organisasjonens infrastruktur. +Ja. OpenCode lagrer ikke koden eller kontekstdataene dine. All behandling skjer lokalt eller gjennom direkte API-anrop til AI-leverandøren din. Med sentral konfigurasjon og SSO-integrasjon forblir dataene dine sikre i organisasjonens infrastruktur.
-Can we use our own private NPM registry? +Kan vi bruke vårt eget private NPM-register? -opencode støtter private npm-registre gjennom Buns opprinnelige `.npmrc`-filstøtte. Hvis organisasjonen din bruker et privat register, som JFrog Artifactory, Nexus eller lignende, sørg for at utviklerne er autentisert før du kjører opencode. +OpenCode støtter private npm-registre gjennom Buns innebygde `.npmrc`-filstøtte. Hvis organisasjonen din bruker et privat register, som JFrog Artifactory, Nexus eller lignende, sørg for at utviklerne er autentisert før du kjører OpenCode. Slik setter du opp autentisering med ditt private register: @@ -151,11 +151,11 @@ Slik setter du opp autentisering med ditt private register: npm login --registry=https://your-company.jfrog.io/api/npm/npm-virtual/ ``` -Dette oppretter `~/.npmrc` med autentiseringsdetaljer. opencode vil automatisk -plukke opp dette. +Dette oppretter `~/.npmrc` med autentiseringsdetaljer. OpenCode vil automatisk +oppdage dette. :::caution -Du må være logget inn i det private registeret før du kjører opencode. +Du må være logget inn i det private registeret før du kjører OpenCode. ::: Alternativt kan du konfigurere en `.npmrc`-fil manuelt: @@ -165,6 +165,6 @@ registry=https://your-company.jfrog.io/api/npm/npm-virtual/ //your-company.jfrog.io/api/npm/npm-virtual/:_authToken=${NPM_AUTH_TOKEN} ``` -Utviklere må være logget på det private registeret før de kjører opencode for å sikre at pakker kan installeres fra bedriftsregisteret. +Utviklere må være logget på det private registeret før de kjører OpenCode for å sikre at pakker kan installeres fra bedriftsregisteret.
diff --git a/packages/web/src/content/docs/nb/formatters.mdx b/packages/web/src/content/docs/nb/formatters.mdx index 0fdac499d0..d26cc19711 100644 --- a/packages/web/src/content/docs/nb/formatters.mdx +++ b/packages/web/src/content/docs/nb/formatters.mdx @@ -3,22 +3,22 @@ title: Formatere description: opencode bruker språkspesifikke formatere. --- -opencode formaterer automatisk filer etter at de er skrevet eller redigert ved hjelp av språkspesifikke formatere. Dette sikrer at koden som genereres følger kodestilene til prosjektet ditt. +OpenCode formaterer automatisk filer etter at de er skrevet eller redigert ved hjelp av språkspesifikke formatere. Dette sikrer at koden som genereres følger kodestilene til prosjektet ditt. --- ## Innebygd -opencode kommer med flere innebygde formatere for populære språk og rammeverk. Nedenfor er en liste over formatere, støttede filutvidelser og kommandoer eller konfigurasjonsalternativer den trenger. +OpenCode kommer med flere innebygde formatere for populære språk og rammeverk. Nedenfor er en liste over formatere, støttede filutvidelser og kommandoer eller konfigurasjonsalternativer den trenger. | Formater | Utvidelser | Krav | | ---------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | gofmt | .go | `gofmt` kommando tilgjengelig | -| blande | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` kommando tilgjengelig | -| penere | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og [mer](https://prettier.io/docs/en/index.html) | `prettier` avhengighet i `package.json` | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` kommando tilgjengelig | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og [mer](https://prettier.io/docs/en/index.html) | `prettier` avhengighet i `package.json` | | biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og [mer](https://biomejs.dev/) | `biome.json(c)` konfigurasjonsfil | -| sikk | .zig, .zon | `zig` kommando tilgjengelig | -| klang-format | .c, .cpp, .h, .hpp, .ino og [mer](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` konfigurasjonsfil | +| zig | .zig, .zon | `zig` kommando tilgjengelig | +| clang-format | .c, .cpp, .h, .hpp, .ino og [mer](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` konfigurasjonsfil | | ktlint | .kt, .kts | `ktlint` kommando tilgjengelig | | ruff | .py, .pyi | `ruff` kommando tilgjengelig med config | | rustfmt | .rs | `rustfmt` kommando tilgjengelig | @@ -27,24 +27,24 @@ opencode kommer med flere innebygde formatere for populære språk og rammeverk. | rubocop | .rb, .rake, .gemspec, .ru | `rubocop` kommando tilgjengelig | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` kommando tilgjengelig | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` kommando tilgjengelig | -| luft | .R | `air` kommando tilgjengelig | +| air | .R | `air` kommando tilgjengelig | | dart | .dart | `dart` kommando tilgjengelig | | ocamlformat | .ml, .mli | `ocamlformat` kommando tilgjengelig og `.ocamlformat` konfigurasjonsfil | | terraform | .tf, .tfvars | `terraform` kommando tilgjengelig | -| glimt | .gleam | `gleam` kommando tilgjengelig | +| gleam | .gleam | `gleam` kommando tilgjengelig | | nixfmt | .nix | `nixfmt` kommando tilgjengelig | | shfmt | .sh, .bash | `shfmt` kommando tilgjengelig | -| halvliter | .php | `laravel/pint` avhengighet i `composer.json` | +| pint | .php | `laravel/pint` avhengighet i `composer.json` | | oxfmt (Eksperimentell) | .js, .jsx, .ts, .tsx | `oxfmt` avhengighet i `package.json` og et [eksperimentelt env variabel flagg](/docs/cli/#experimental) | | ormolu | .hs | `ormolu` kommando tilgjengelig | -Så hvis prosjektet ditt har `prettier` i `package.json`, vil opencode automatisk bruke det. +Så hvis prosjektet ditt har `prettier` i `package.json`, vil OpenCode automatisk bruke det. --- ## Slik fungerer det -Når opencode skriver eller redigerer en fil, gjør den: +Når OpenCode skriver eller redigerer en fil, gjør den: 1. Kontrollerer filtypen mot alle aktiverte formatere. 2. Kjører riktig formateringskommando på filen. @@ -56,7 +56,7 @@ Denne prosessen skjer i bakgrunnen, og sikrer at kodestilene dine opprettholdes ## Konfigurer -Du kan tilpasse formatere gjennom `formatter`-delen i opencode-konfigurasjonen. +Du kan tilpasse formatere gjennom `formatter`-delen i OpenCode-konfigurasjonen. ```json title="opencode.json" { @@ -67,12 +67,12 @@ Du kan tilpasse formatere gjennom `formatter`-delen i opencode-konfigurasjonen. Hver formateringskonfigurasjon støtter følgende: -| Eiendom | Skriv | Beskrivelse | +| Property | Type | Beskrivelse | | ------------- | -------- | ----------------------------------------------------------------- | -| `disabled` | boolsk | Sett dette til `true` for å deaktivere formatereren | -| `command` | streng[] | Kommandoen som skal kjøres for formatering | -| `environment` | objekt | Miljøvariabler som skal angis når du kjører formateringsverktøyet | -| `extensions` | streng[] | Filutvidelser denne formatereren skal håndtere | +| `disabled` | boolean | Sett dette til `true` for å deaktivere formatereren | +| `command` | string[] | Kommandoen som skal kjøres for formatering | +| `environment` | object | Miljøvariabler som skal angis når du kjører formateringsverktøyet | +| `extensions` | string[] | Filutvidelser denne formatereren skal håndtere | La oss se på noen eksempler. diff --git a/packages/web/src/content/docs/nb/github.mdx b/packages/web/src/content/docs/nb/github.mdx index 011e45e49d..8c3a8c9be7 100644 --- a/packages/web/src/content/docs/nb/github.mdx +++ b/packages/web/src/content/docs/nb/github.mdx @@ -3,15 +3,15 @@ title: GitHub description: Bruk opencode i GitHub-problemer og pull-forespørsler. --- -opencode integreres med GitHub-arbeidsflyten din. Nevn `/opencode` eller `/oc` i kommentaren din, og opencode vil utføre oppgaver i din GitHub Actions-løper. +OpenCode integreres med GitHub-arbeidsflyten din. Nevn `/opencode` eller `/oc` i kommentaren din, og OpenCode vil utføre oppgaver i din GitHub Actions-løper. --- ## Funksjoner -- **Triage-problemer**: Be opencode se på et problem og forklare det for deg. -- **Fiks og implementer**: Be opencode om å fikse et problem eller implementere en funksjon. Og den vil fungere i en ny gren og sender inn en PR med alle endringene. -- **Sikkert**: opencode kjører inne i GitHubs løpere. +- **Triage-problemer**: Be OpenCode se på et problem og forklare det for deg. +- **Fiks og implementer**: Be OpenCode om å fikse et problem eller implementere en funksjon. Og den vil fungere i en ny gren og sender inn en PR med alle endringene. +- **Sikkert**: OpenCode kjører inne i GitHubs løpere. --- @@ -81,13 +81,13 @@ Eller du kan sette den opp manuelt. ## Konfigurasjon -- `model`: Modellen som skal brukes med opencode. Tar formatet `provider/model`. Dette er **obligatorisk**. +- `model`: Modellen som skal brukes med OpenCode. Tar formatet `provider/model`. Dette er **obligatorisk**. - `agent`: Agenten som skal brukes. Må være en primær agent. Faller tilbake til `default_agent` fra config eller `"build"` hvis ikke funnet. -- `share`: Om opencode-økten skal deles. Standard er **true** for offentlige depoter. -- `prompt`: Valgfri egendefinert melding for å overstyre standard oppførsel. Bruk dette til å tilpasse hvordan opencode behandler forespørsler. -- `token`: Valgfritt GitHub-tilgangstoken for å utføre operasjoner som å lage kommentarer, foreta endringer og åpne pull-forespørsler. Som standard bruker opencode installasjonstilgangstokenet fra opencode GitHub-appen, så forpliktelser, kommentarer og pull-forespørsler ser ut til å komme fra appen. +- `share`: Om OpenCode-økten skal deles. Standard er **true** for offentlige depoter. +- `prompt`: Valgfri egendefinert melding for å overstyre standard oppførsel. Bruk dette til å tilpasse hvordan OpenCode behandler forespørsler. +- `token`: Valgfritt GitHub-tilgangstoken for å utføre operasjoner som å lage kommentarer, foreta endringer og åpne pull-forespørsler. Som standard bruker OpenCode installasjonstilgangstokenet fra OpenCode GitHub-appen, så forpliktelser, kommentarer og pull-forespørsler ser ut til å komme fra appen. - Alternativt kan du bruke GitHub Action-løperens [innebygde `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) uten å installere opencode GitHub-appen. Bare sørg for å gi de nødvendige tillatelsene i arbeidsflyten din: + Alternativt kan du bruke GitHub Action-løperens [innebygde `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) uten å installere OpenCode GitHub-appen. Bare sørg for å gi de nødvendige tillatelsene i arbeidsflyten din: ```yaml permissions: @@ -103,20 +103,20 @@ Eller du kan sette den opp manuelt. ## Støttede hendelser -opencode kan utløses av følgende GitHub-hendelser: +OpenCode kan utløses av følgende GitHub-hendelser: | Hendelsestype | Utløst av | Detaljer | | ----------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| `issue_comment` | Kommenter et problem eller PR | Nevn `/opencode` eller `/oc` i kommentaren din. opencode leser kontekst og kan opprette grener, åpne PR-er eller svare. | -| `pull_request_review_comment` | Kommenter spesifikke kodelinjer i en PR | Nevn `/opencode` eller `/oc` mens du ser gjennom koden. opencode mottar filbane, linjenummer og diff-kontekst. | -| `issues` | Utgave åpnet eller redigert | Utløs opencode automatisk når problemer opprettes eller endres. Krever `prompt` inngang. | -| `pull_request` | PR åpnet eller oppdatert | Utløs opencode automatisk når PR-er åpnes, synkroniseres eller gjenåpnes. Nyttig for automatiserte anmeldelser. | -| `schedule` | Cron-basert tidsplan | Kjør opencode etter en tidsplan. Krever `prompt` inngang. Utdata går til logger og PR (ingen problem å kommentere). | -| `workflow_dispatch` | Manuell utløser fra GitHub UI | Utløs opencode på forespørsel via fanen Handlinger. Krever `prompt` inngang. Utdata går til logger og PR-er. | +| `issue_comment` | Kommenter et problem eller PR | Nevn `/opencode` eller `/oc` i kommentaren din. OpenCode leser kontekst og kan opprette grener, åpne PR-er eller svare. | +| `pull_request_review_comment` | Kommenter spesifikke kodelinjer i en PR | Nevn `/opencode` eller `/oc` mens du ser gjennom koden. OpenCode mottar filbane, linjenummer og diff-kontekst. | +| `issues` | Utgave åpnet eller redigert | Utløs OpenCode automatisk når problemer opprettes eller endres. Krever `prompt` inngang. | +| `pull_request` | PR åpnet eller oppdatert | Utløs OpenCode automatisk når PR-er åpnes, synkroniseres eller gjenåpnes. Nyttig for automatiserte anmeldelser. | +| `schedule` | Cron-basert tidsplan | Kjør OpenCode etter en tidsplan. Krever `prompt` inngang. Utdata går til logger og PR (ingen problem å kommentere). | +| `workflow_dispatch` | Manuell utløser fra GitHub UI | Utløs OpenCode på forespørsel via fanen Handlinger. Krever `prompt` inngang. Utdata går til logger og PR-er. | ### Tidsplan Eksempel -Kjør opencode på en tidsplan for å utføre automatiserte oppgaver: +Kjør OpenCode på en tidsplan for å utføre automatiserte oppgaver: ```yaml title=".github/workflows/opencode-scheduled.yml" name: Scheduled OpenCode Task @@ -150,7 +150,7 @@ jobs: If you find issues worth addressing, open an issue to track them. ``` -For planlagte arrangementer er `prompt`-inngangen **påkrevd** siden det ikke er noen kommentarer å trekke ut instruksjoner fra. Planlagte arbeidsflyter kjører uten brukerkontekst for tillatelsessjekking, så arbeidsflyten må gi `contents: write` og `pull-requests: write` hvis du forventer at opencode oppretter grener eller PR-er. +For planlagte arrangementer er `prompt`-inngangen **påkrevd** siden det ikke er noen kommentarer å trekke ut instruksjoner fra. Planlagte arbeidsflyter kjører uten brukerkontekst for tillatelsessjekking, så arbeidsflyten må gi `contents: write` og `pull-requests: write` hvis du forventer at OpenCode oppretter grener eller PR-er. --- @@ -191,7 +191,7 @@ jobs: - Suggest improvements ``` -For `pull_request`-hendelser, hvis ingen `prompt` er oppgitt, går opencode som standard gjennom pull-forespørselen. +For `pull_request`-hendelser, hvis ingen `prompt` er oppgitt, går OpenCode som standard gjennom pull-forespørselen. --- @@ -250,9 +250,9 @@ For `issues`-hendelser er `prompt`-inngangen **påkrevd** siden det ikke er noen --- -## Egendefinerte meldinger +## Egendefinerte ledetekster -Overstyr standardmeldingen for å tilpasse oppførselen til opencode for arbeidsflyten din. +Overstyr standardledeteksten for å tilpasse oppførselen til OpenCode for arbeidsflyten din. ```yaml title=".github/workflows/opencode.yml" - uses: anomalyco/opencode/github@latest @@ -271,7 +271,11 @@ Dette er nyttig for å håndheve spesifikke vurderingskriterier, kodestandarder ## Eksempler -Her er noen eksempler på hvordan du kan bruke opencode i GitHub. +Her er noen eksempler på hvordan du kan bruke OpenCode i GitHub. + +:::tip +Du kan konfigurere til å bruke en annen triggerfrase enn `@opencode`. +::: - **Forklar et problem** @@ -281,7 +285,7 @@ Her er noen eksempler på hvordan du kan bruke opencode i GitHub. /opencode explain this issue ``` - opencode vil lese hele tråden, inkludert alle kommentarer, og svare med en tydelig forklaring. + OpenCode vil lese hele tråden, inkludert alle kommentarer, og svare med en tydelig forklaring. - **Fiks et problem** @@ -291,7 +295,7 @@ Her er noen eksempler på hvordan du kan bruke opencode i GitHub. /opencode fix this ``` - Og opencode vil opprette en ny gren, implementere endringene og åpne en PR med endringene. + Og OpenCode vil opprette en ny gren, implementere endringene og åpne en PR med endringene. - **Gjennomgå PR-er og gjør endringer** @@ -301,21 +305,21 @@ Her er noen eksempler på hvordan du kan bruke opencode i GitHub. Delete the attachment from S3 when the note is removed /oc ``` - opencode vil implementere den forespurte endringen og forplikte den til samme PR. + OpenCode vil implementere den forespurte endringen og forplikte den til samme PR. - **Se gjennom spesifikke kodelinjer** - Legg igjen en kommentar direkte på kodelinjer i PRs "Filer"-fane. opencode oppdager automatisk filen, linjenumrene og diff-konteksten for å gi presise svar. + Legg igjen en kommentar direkte på kodelinjer i PRs "Filer"-fane. OpenCode oppdager automatisk filen, linjenumrene og diff-konteksten for å gi presise svar. ``` [Comment on specific lines in Files tab] /oc add error handling here ``` - Når du kommenterer spesifikke linjer, mottar opencode: + Når du kommenterer spesifikke linjer, mottar OpenCode: - Den nøyaktige filen blir gjennomgått - De spesifikke kodelinjene - - Den ulik konteksten rundt + - Den omkringliggende diff-konteksten - Linjenummerinformasjon Dette gir mulighet for mer målrettede forespørsler uten å måtte spesifisere filstier eller linjenumre manuelt. diff --git a/packages/web/src/content/docs/nb/gitlab.mdx b/packages/web/src/content/docs/nb/gitlab.mdx index 4222b409c4..dd0077c812 100644 --- a/packages/web/src/content/docs/nb/gitlab.mdx +++ b/packages/web/src/content/docs/nb/gitlab.mdx @@ -3,31 +3,31 @@ title: GitLab description: Bruk opencode i GitLab-problemer og sammenslåingsforespørsler. --- -opencode integreres med GitLab arbeidsflyten gjennom GitLab CI/CD pipeline eller med GitLab Duo. +OpenCode integreres med GitLab arbeidsflyten gjennom GitLab CI/CD pipeline eller med GitLab Duo. -I begge tilfeller vil opencode kjøre på GitLab-løperne dine. +I begge tilfeller vil OpenCode kjøre på GitLab-løperne dine. --- ## GitLab CI -opencode fungerer i en vanlig GitLab-pipeline. Du kan bygge den inn i en pipeline som en [CI komponent](https://docs.gitlab.com/ee/ci/components/) +OpenCode fungerer i en vanlig GitLab-pipeline. Du kan bygge den inn i en pipeline som en [CI komponent](https://docs.gitlab.com/ee/ci/components/) -Her bruker vi en fellesskapsskapt CI/CD-komponent for opencode — [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode). +Her bruker vi en fellesskapsskapt CI/CD-komponent for OpenCode — [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode). --- ### Funksjoner -- **Bruk tilpasset konfigurasjon per jobb**: Konfigurer opencode med en tilpasset konfigurasjonskatalog, for eksempel `./config/#custom-directory` for å aktivere eller deaktivere funksjonalitet per opencode-anrop. -- **Minimalt oppsett**: CI-komponenten setter opp opencode i bakgrunnen, du trenger bare å lage opencode-konfigurasjonen og den første ledeteksten. +- **Bruk tilpasset konfigurasjon per jobb**: Konfigurer OpenCode med en tilpasset konfigurasjonskatalog, for eksempel `./config/#custom-directory` for å aktivere eller deaktivere funksjonalitet per OpenCode-anrop. +- **Minimalt oppsett**: CI-komponenten setter opp OpenCode i bakgrunnen, du trenger bare å lage OpenCode-konfigurasjonen og den første ledeteksten. - **Fleksibel**: CI-komponenten støtter flere innganger for å tilpasse virkemåten --- ### Oppsett -1. Lagre opencode-autentiseringen JSON som en filtype CI miljøvariabler under **Innstillinger** > **CI/CD** > **Variabler**. Sørg for å merke dem som "Masket og skjult". +1. Lagre OpenCode-autentiseringen JSON som en filtype CI miljøvariabler under **Innstillinger** > **CI/CD** > **Variabler**. Sørg for å merke dem som "Masket og skjult". 2. Legg til følgende i `.gitlab-ci.yml`-filen. ```yaml title=".gitlab-ci.yml" @@ -46,23 +46,23 @@ For flere inndata og brukstilfeller [sjekk ut dokumentene](https://gitlab.com/ex ## GitLab Duo -opencode integreres med din GitLab arbeidsflyt. -Nevn `@opencode` i en kommentar, og opencode vil utføre oppgaver innenfor din GitLab CI pipeline. +OpenCode integreres med din GitLab arbeidsflyt. +Nevn `@opencode` i en kommentar, og OpenCode vil utføre oppgaver innenfor din GitLab CI pipeline. --- ### Funksjoner -- **Triage-problemer**: Be opencode se på et problem og forklare det for deg. -- **Fiks og implementer**: Be opencode om å fikse et problem eller implementere en funksjon. - Det vil opprette en ny filial og sende en sammenslåingsforespørsel med endringene. -- **Sikkert**: opencode kjører på GitLab-løperne dine. +- **Triage-problemer**: Be OpenCode se på et problem og forklare det for deg. +- **Fiks og implementer**: Be OpenCode om å fikse et problem eller implementere en funksjon. + Det vil opprette en ny gren og sende en sammenslåingsforespørsel med endringene. +- **Sikkert**: OpenCode kjører på GitLab-løperne dine. --- ### Oppsett -opencode kjører i GitLab CI/CD pipeline, her er det du trenger for å sette den opp: +OpenCode kjører i GitLab CI/CD pipeline, her er det du trenger for å sette den opp: :::tip Sjekk ut [**GitLab-dokumentene**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) for oppdaterte instruksjoner. @@ -158,7 +158,7 @@ Du kan se [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platfo ### Eksempler -Her er noen eksempler på hvordan du kan bruke opencode i GitLab. +Her er noen eksempler på hvordan du kan bruke OpenCode i GitLab. :::tip Du kan konfigurere til å bruke en annen triggerfrase enn `@opencode`. @@ -166,23 +166,23 @@ Du kan konfigurere til å bruke en annen triggerfrase enn `@opencode`. - **Forklar et problem** - Legg til denne kommentaren i en GitLab-utgave. + Legg til denne kommentaren i en GitLab-sak. ``` @opencode explain this issue ``` - opencode vil lese problemet og svare med en klar forklaring. + OpenCode vil lese problemet og svare med en klar forklaring. - **Fiks et problem** - I en GitLab-utgave, si: + I en GitLab-sak, si: ``` @opencode fix this ``` - opencode vil opprette en ny gren, implementere endringene og åpne en sammenslåingsforespørsel med endringene. + OpenCode vil opprette en ny gren, implementere endringene og åpne en sammenslåingsforespørsel med endringene. - **Gjennomgå sammenslåingsforespørsler** @@ -192,4 +192,4 @@ Du kan konfigurere til å bruke en annen triggerfrase enn `@opencode`. @opencode review this merge request ``` - opencode vil gjennomgå sammenslåingsforespørselen og gi tilbakemelding. + OpenCode vil gjennomgå sammenslåingsforespørselen og gi tilbakemelding. diff --git a/packages/web/src/content/docs/nb/ide.mdx b/packages/web/src/content/docs/nb/ide.mdx index c8945e257b..002bf7ee62 100644 --- a/packages/web/src/content/docs/nb/ide.mdx +++ b/packages/web/src/content/docs/nb/ide.mdx @@ -1,24 +1,24 @@ --- title: IDE -description: opencode-utvidelsen for VS Code, markør og andre IDE-er +description: OpenCode-utvidelsen for VS Code, Cursor og andre IDE-er --- -opencode integreres med VS Code, markør eller en hvilken som helst IDE som støtter en terminal. Bare kjør `opencode` i terminalen for å komme i gang. +OpenCode integreres med VS Code, Cursor eller en hvilken som helst IDE som støtter en terminal. Bare kjør `opencode` i terminalen for å komme i gang. --- ## Bruk -- **Hurtigstart**: Bruk `Cmd+Esc` (Mac) eller `Ctrl+Esc` (Windows/Linux) for å åpne opencode i en delt terminalvisning, eller fokuser en eksisterende terminaløkt hvis en allerede kjører. -- **Ny økt**: Bruk `Cmd+Shift+Esc` (Mac) eller `Ctrl+Shift+Esc` (Windows/Linux) for å starte en ny opencode-terminaløkt, selv om en allerede er åpen. Du kan også klikke på opencode-knappen i UI. -- **Kontekstbevissthet**: Del automatisk ditt nåværende valg eller fane med opencode. +- **Hurtigstart**: Bruk `Cmd+Esc` (Mac) eller `Ctrl+Esc` (Windows/Linux) for å åpne OpenCode i en delt terminalvisning, eller fokuser en eksisterende terminaløkt hvis en allerede kjører. +- **Ny økt**: Bruk `Cmd+Shift+Esc` (Mac) eller `Ctrl+Shift+Esc` (Windows/Linux) for å starte en ny OpenCode-terminaløkt, selv om en allerede er åpen. Du kan også klikke på OpenCode-knappen i UI. +- **Kontekstbevissthet**: Del automatisk ditt nåværende valg eller fane med OpenCode. - **Snarveier for filreferanse**: Bruk `Cmd+Option+K` (Mac) eller `Alt+Ctrl+K` (Linux/Windows) for å sette inn filreferanser. For eksempel `@File#L37-42`. --- ## Installasjon -For å installere opencode på VS Code og populære gafler som Cursor, Windsurf, VSCodium: +For å installere OpenCode på VS Code og populære forgreninger som Cursor, Windsurf, VSCodium: 1. Åpne VS Code 2. Åpne den integrerte terminalen @@ -30,7 +30,7 @@ Hvis du derimot vil bruke din egen IDE når du kjører `/editor` eller `/export` ### Manuell installasjon -Søk etter **opencode** i Extension Marketplace og klikk på **Install**. +Søk etter **OpenCode** i Extension Marketplace og klikk på **Install**. --- @@ -41,7 +41,7 @@ Hvis utvidelsen ikke kan installeres automatisk: - Sørg for at du kjører `opencode` i den integrerte terminalen. - Bekreft at CLI for IDE er installert: - For VS Code: `code` kommando - - For markør: `cursor` kommando + - For Cursor: `cursor` kommando - For Windsurf: `windsurf` kommando - For VSCodium: `codium` kommando - Hvis ikke, kjør `Cmd+Shift+P` (Mac) eller `Ctrl+Shift+P` (Windows/Linux) og søk etter "Shell Command: Install 'code' command in PATH" (eller tilsvarende for din IDE) diff --git a/packages/web/src/content/docs/nb/index.mdx b/packages/web/src/content/docs/nb/index.mdx index 259135e329..e07e57ded5 100644 --- a/packages/web/src/content/docs/nb/index.mdx +++ b/packages/web/src/content/docs/nb/index.mdx @@ -1,15 +1,15 @@ --- title: Intro -description: Kom i gang med opencode. +description: Kom i gang med OpenCode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/) er en åpen kildekode AI kodeagent. Den er tilgjengelig som et terminalbasert grensesnitt, skrivebordsapp eller IDE-utvidelse. +[**OpenCode**](/) er en åpen kildekode AI kodeagent. Den er tilgjengelig som et terminalbasert grensesnitt, skrivebordsapp eller IDE-utvidelse. -![opencode TUI med opencode-temaet](../../../assets/lander/screenshot.png) +![OpenCode TUI med opencode-temaet](../../../assets/lander/screenshot.png) La oss komme i gang. @@ -17,7 +17,7 @@ La oss komme i gang. #### Forutsetninger -For å bruke opencode i terminalen din trenger du: +For å bruke OpenCode i terminalen din trenger du: 1. En moderne terminalemulator som: - [WezTerm](https://wezterm.org), på tvers av plattformer @@ -31,7 +31,7 @@ For å bruke opencode i terminalen din trenger du: ## Installer -Den enkleste måten å installere opencode på er gjennom installasjonsskriptet. +Den enkleste måten å installere OpenCode på er gjennom installasjonsskriptet. ```bash curl -fsSL https://opencode.ai/install | bash @@ -79,7 +79,7 @@ Du kan også installere den med følgende kommandoer: brew install anomalyco/tap/opencode ``` - > Vi anbefaler å bruke opencode-tappen for de mest oppdaterte utgivelsene. Den offisielle `brew install opencode`-formelen vedlikeholdes av Homebrew-teamet og oppdateres sjeldnere. + > Vi anbefaler å bruke OpenCode-tappen for de mest oppdaterte utgivelsene. Den offisielle `brew install opencode`-formelen vedlikeholdes av Homebrew-teamet og oppdateres sjeldnere. - **Bruke Paru på Arch Linux** @@ -90,10 +90,10 @@ Du kan også installere den med følgende kommandoer: #### Windows :::tip[Anbefalt: Bruk WSL] -For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Det gir bedre ytelse og full kompatibilitet med funksjonene i opencode. +For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Det gir bedre ytelse og full kompatibilitet med funksjonene i OpenCode. ::: -- **Bruker sjokolade** +- **Bruke Chocolatey** ```bash choco install opencode @@ -105,13 +105,13 @@ For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem f scoop install opencode ``` -- **Bruker NPM** +- **Bruke NPM** ```bash npm install -g opencode-ai ``` -- **Bruker Mise** +- **Bruke Mise** ```bash mise use -g github:anomalyco/opencode @@ -123,7 +123,7 @@ For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem f docker run -it --rm ghcr.io/anomalyco/opencode ``` -Støtte for å installere opencode på Windows med Bun pågår for øyeblikket. +Støtte for å installere OpenCode på Windows med Bun pågår for øyeblikket. Du kan også hente binæren fra [Releases](https://github.com/anomalyco/opencode/releases). @@ -131,10 +131,10 @@ Du kan også hente binæren fra [Releases](https://github.com/anomalyco/opencode ## Konfigurer -Med opencode kan du bruke hvilken som helst LLM-leverandør ved å konfigurere deres API-nøkler. +Med OpenCode kan du bruke hvilken som helst LLM-leverandør ved å konfigurere deres API-nøkler. Hvis du er ny til å bruke LLM-leverandører, anbefaler vi å bruke [OpenCode Zen](/docs/zen). -Det er en kuratert liste over modeller som har blitt testet og verifisert av opencode +Det er en kuratert liste over modeller som har blitt testet og verifisert av OpenCode team. 1. Kjør kommandoen `/connect` i TUI, velg opencode og gå til [opencode.ai/auth](https://opencode.ai/auth). @@ -167,33 +167,33 @@ du vil jobbe med. cd /path/to/project ``` -Og kjør opencode. +Og kjør OpenCode. ```bash opencode ``` -Deretter initialiserer du opencode for prosjektet ved å kjøre følgende kommando. +Deretter initialiserer du OpenCode for prosjektet ved å kjøre følgende kommando. ```bash frame="none" /init ``` -Dette vil få opencode til å analysere prosjektet ditt og opprette en `AGENTS.md`-fil i +Dette vil få OpenCode til å analysere prosjektet ditt og opprette en `AGENTS.md`-fil i prosjektroten. :::tip Du bør overgi prosjektets `AGENTS.md`-fil til Git. ::: -Dette hjelper opencode med å forstå prosjektstrukturen og kodingsmønstrene +Dette hjelper OpenCode med å forstå prosjektstrukturen og kodingsmønstrene brukt. --- ## Bruk -Du er nå klar til å bruke opencode for å jobbe med prosjektet ditt. Spør det gjerne +Du er nå klar til å bruke OpenCode for å jobbe med prosjektet ditt. Spør det gjerne noe! Hvis du er ny til å bruke en AI kodeagent, her er noen eksempler som kan @@ -203,7 +203,7 @@ hjelp. ### Still spørsmål -Du kan be opencode forklare kodebasen for deg. +Du kan be OpenCode forklare kodebasen for deg. :::tip Bruk `@`-tasten for uklart søk etter filer i prosjektet. @@ -219,11 +219,11 @@ Dette er nyttig hvis det er en del av kodebasen du ikke har jobbet med. ### Legg til funksjoner -Du kan be opencode legge til nye funksjoner i prosjektet ditt. Selv om vi først anbefaler å be den om å lage en plan. +Du kan be OpenCode legge til nye funksjoner i prosjektet ditt. Selv om vi først anbefaler å be den om å lage en plan. 1. **Lag en plan** - opencode har en _Plan-modus_ som deaktiverer evnen til å gjøre endringer og + OpenCode har en _Plan-modus_ som deaktiverer evnen til å gjøre endringer og foreslå i stedet _hvordan_ det vil implementere funksjonen. Bytt til den ved å bruke **Tab**-tasten. Du vil se en indikator for dette i nedre høyre hjørne. @@ -240,11 +240,11 @@ Du kan be opencode legge til nye funksjoner i prosjektet ditt. Selv om vi først From this screen, the user can undelete a note or permanently delete it. ``` - Du vil gi opencode nok detaljer til å forstå hva du ønsker. Det hjelper + Du vil gi OpenCode nok detaljer til å forstå hva du ønsker. Det hjelper å snakke med det som om du snakker med en juniorutvikler på laget ditt. :::tip - Gi opencode mye kontekst og eksempler for å hjelpe den å forstå hva du gjør + Gi OpenCode mye kontekst og eksempler for å hjelpe den å forstå hva du gjør ønsker. ::: @@ -261,7 +261,7 @@ Du kan be opencode legge til nye funksjoner i prosjektet ditt. Selv om vi først Dra og slipp bilder i terminalen for å legge dem til ledeteksten. ::: - opencode kan skanne alle bilder du gir den og legge dem til i ledeteksten. Du kan + OpenCode kan skanne alle bilder du gir den og legge dem til i ledeteksten. Du kan gjør dette ved å dra og slippe et bilde inn i terminalen. 3. **Bygg funksjonen** @@ -283,7 +283,7 @@ Du kan be opencode legge til nye funksjoner i prosjektet ditt. Selv om vi først ### Gjør endringer -For mer enkle endringer kan du be opencode om å bygge den direkte +For mer enkle endringer kan du be OpenCode om å bygge den direkte uten å måtte gjennomgå planen først. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" @@ -292,14 +292,14 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` -Du vil sørge for at du gir en god mengde detaljer, slik at opencode gjør det rette +Du vil sørge for at du gir en god mengde detaljer, slik at OpenCode gjør det rette endringer. --- ### Angre endringer -La oss si at du ber opencode om å gjøre noen endringer. +La oss si at du ber OpenCode om å gjøre noen endringer. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? @@ -312,14 +312,14 @@ ved å bruke kommandoen `/undo`. /undo ``` -opencode vil nå tilbakestille endringene du har gjort og vise den opprinnelige meldingen +OpenCode vil nå tilbakestille endringene du har gjort og vise den opprinnelige meldingen igjen. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` -Herfra kan du justere ledeteksten og be opencode om å prøve igjen. +Herfra kan du justere ledeteksten og be OpenCode om å prøve igjen. :::tip Du kan kjøre `/undo` flere ganger for å angre flere endringer. @@ -335,7 +335,7 @@ Eller du **kan gjøre om** endringene ved å bruke `/redo`-kommandoen. ## Del -Samtalene du har med opencode kan [deles med din +Samtalene du har med OpenCode kan [deles med din team](/docs/share). ```bash frame="none" @@ -348,12 +348,12 @@ Dette vil opprette en kobling til den gjeldende samtalen og kopiere den til utkl Samtaler deles ikke som standard. ::: -Her er en [eksempelsamtale](https://opencode.ai/s/4XP1fce5) med opencode. +Her er en [eksempelsamtale](https://opencode.ai/s/4XP1fce5) med OpenCode. --- ## Tilpass -Og det er det! Du er nå en proff på å bruke opencode. +Og det er det! Du er nå en proff på å bruke OpenCode. -For å gjøre det til ditt eget anbefaler vi å [velge et tema](/docs/themes), [tilpasse nøkkelbindingene](/docs/keybinds), [konfigurere kodeformatere](/docs/formatters), [opprette egendefinerte kommandoer](/docs/commands) eller leke med [opencode-konfigurasjonen](/docs/config). +For å gjøre det til ditt eget anbefaler vi å [velge et tema](/docs/themes), [tilpasse nøkkelbindingene](/docs/keybinds), [konfigurere kodeformatere](/docs/formatters), [opprette egendefinerte kommandoer](/docs/commands) eller leke med [OpenCode-konfigurasjonen](/docs/config). diff --git a/packages/web/src/content/docs/nb/keybinds.mdx b/packages/web/src/content/docs/nb/keybinds.mdx index dc934a366c..25d15de556 100644 --- a/packages/web/src/content/docs/nb/keybinds.mdx +++ b/packages/web/src/content/docs/nb/keybinds.mdx @@ -3,7 +3,7 @@ title: Keybinds description: Tilpass tastebindingene dine. --- -opencode har en liste over nøkkelbindinger som du kan tilpasse gjennom opencode-konfigurasjonen. +OpenCode har en liste over nøkkelbindinger som du kan tilpasse gjennom OpenCode-konfigurasjonen. ```json title="opencode.json" { @@ -105,9 +105,9 @@ opencode har en liste over nøkkelbindinger som du kan tilpasse gjennom opencode --- -## Ledernøkkel +## Ledertast -opencode bruker en `leader`-nøkkel for de fleste nøkkelbindinger. Dette unngår konflikter i terminalen din. +OpenCode bruker en `leader`-nøkkel for de fleste nøkkelbindinger. Dette unngår konflikter i terminalen din. Som standard er `ctrl+x` ledertasten, og de fleste handlinger krever at du først trykker på ledertasten og deretter snarveien. For å starte en ny økt, trykker du for eksempel først `ctrl+x` og deretter `n`. @@ -132,7 +132,7 @@ Du kan deaktivere en nøkkelbinding ved å legge til nøkkelen til konfigurasjon ## Snarveier på skrivebordet -Spørringsinngangen for opencode-skrivebordsappen støtter vanlige snarveier i Readline/Emacs-stil for redigering av tekst. Disse er innebygd og foreløpig ikke konfigurerbare via `opencode.json`. +Ledetekstinngangen for OpenCode-skrivebordsappen støtter vanlige snarveier i Readline/Emacs-stil for redigering av tekst. Disse er innebygd og foreløpig ikke konfigurerbare via `opencode.json`. | Snarvei | Handling | | -------- | ---------------------------------------- | @@ -143,10 +143,10 @@ Spørringsinngangen for opencode-skrivebordsappen støtter vanlige snarveier i R | `alt+b` | Flytt markøren ett ord tilbake | | `alt+f` | Flytt markøren ett ord fremover | | `ctrl+d` | Slett tegn under markøren | -| `ctrl+k` | Drep til slutten av linjen | -| `ctrl+u` | Drep til starten av linjen | -| `ctrl+w` | Drep forrige ord | -| `alt+d` | Drep neste ord | +| `ctrl+k` | Slett til slutten av linjen | +| `ctrl+u` | Slett til starten av linjen | +| `ctrl+w` | Slett forrige ord | +| `alt+d` | Slett neste ord | | `ctrl+t` | Transponere tegn | | `ctrl+g` | Avbryt popovers / avbryt kjøring av svar | diff --git a/packages/web/src/content/docs/nb/lsp.mdx b/packages/web/src/content/docs/nb/lsp.mdx index dc26af7b56..3847106529 100644 --- a/packages/web/src/content/docs/nb/lsp.mdx +++ b/packages/web/src/content/docs/nb/lsp.mdx @@ -3,13 +3,13 @@ title: LSP Servere description: opencode integreres med LSP-serverne dine. --- -opencode integreres med din Language Server Protocol (LSP) for å hjelpe LLM med å samhandle med kodebasen din. Den bruker diagnostikk for å gi tilbakemelding til LLM. +OpenCode integreres med din Language Server Protocol (LSP) for å hjelpe LLM med å samhandle med kodebasen din. Den bruker diagnostikk for å gi tilbakemelding til LLM. --- ## Innebygd -opencode kommer med flere innebygde LSP-servere for populære språk: +OpenCode kommer med flere innebygde LSP-servere for populære språk: | LSP Server | Utvidelser | Krav | | ------------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | @@ -23,7 +23,7 @@ opencode kommer med flere innebygde LSP-servere for populære språk: | elixir-ls | .ex, .exs | `elixir` kommando tilgjengelig | | eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` avhengighet i prosjekt | | fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` installert | -| glimt | .gleam | `gleam` kommando tilgjengelig | +| gleam | .gleam | `gleam` kommando tilgjengelig | | gopls | .go | `go` kommando tilgjengelig | | hls | .hs, .lhs | `haskell-language-server-wrapper` kommando tilgjengelig | | jdtls | .java | `Java SDK (version 21+)` installert | @@ -34,14 +34,14 @@ opencode kommer med flere innebygde LSP-servere for populære språk: | oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` avhengighet i prosjekt | | php intelephense | .php | Autoinstallasjoner for PHP-prosjekter | | prisma | .prisma | `prisma` kommando tilgjengelig | -| opphavsrett | .py, .pyi | `pyright` avhengighet installert | +| pyright | .py, .pyi | `pyright` avhengighet installert | | ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` og `gem` kommandoer tilgjengelig | | rust | .rs | `rust-analyzer` kommando tilgjengelig | | sourcekit-lsp | .swift, .objc, .objcpp | `swift` installert (`xcode` på macOS) | | svelte | .svelte | Autoinstallasjoner for Svelte-prosjekter | | terraform | .tf, .tfvars | Automatiske installasjoner fra GitHub-utgivelser | | tinymist | .typ, .typc | Automatiske installasjoner fra GitHub-utgivelser | -| maskinskrift | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` avhengighet i prosjekt | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` avhengighet i prosjekt | | vue | .vue | Autoinstallasjoner for Vue-prosjekter | | yaml-ls | .yaml, .yml | Autoinstallerer Red Hat yaml-language-server | | zls | .zig, .zon | `zig` kommando tilgjengelig | @@ -65,7 +65,7 @@ Når opencode åpner en fil, gjør den: ## Konfigurer -Du kan tilpasse LSP-servere gjennom `lsp`-delen i opencode-konfigurasjonen. +Du kan tilpasse LSP-servere gjennom `lsp`-delen i OpenCode-konfigurasjonen. ```json title="opencode.json" { @@ -76,13 +76,13 @@ Du kan tilpasse LSP-servere gjennom `lsp`-delen i opencode-konfigurasjonen. Hver LSP-server støtter følgende: -| Eiendom | Skriv | Beskrivelse | +| Property | Type | Beskrivelse | | ---------------- | -------- | -------------------------------------------------------- | -| `disabled` | boolsk | Sett dette til `true` for å deaktivere LSP-serveren | -| `command` | streng[] | Kommandoen for å starte LSP-serveren | -| `extensions` | streng[] | Filutvidelser denne LSP-serveren skal håndtere | -| `env` | objekt | Miljøvariabler som skal angis når serveren startes | -| `initialization` | objekt | Initialiseringsalternativer for å sende til LSP-serveren | +| `disabled` | boolean | Sett dette til `true` for å deaktivere LSP-serveren | +| `command` | string[] | Kommandoen for å starte LSP-serveren | +| `extensions` | string[] | Filutvidelser denne LSP-serveren skal håndtere | +| `env` | object | Miljøvariabler som skal angis når serveren startes | +| `initialization` | object | Initialiseringsalternativer for å sende til LSP-serveren | La oss se på noen eksempler. @@ -182,7 +182,7 @@ Du kan legge til egendefinerte LSP-servere ved å spesifisere kommandoen og filt PHP Intelephense tilbyr førsteklasses funksjoner gjennom en lisensnøkkel. Du kan oppgi en lisensnøkkel ved å plassere (bare) nøkkelen i en tekstfil på: -- På macOS/Linux: `$HOME/intelephense/licence.txt` -- På Windows: `%USERPROFILE%/intelephense/licence.txt` +- På macOS/Linux: `$HOME/intelephense/license.txt` +- På Windows: `%USERPROFILE%/intelephense/license.txt` Filen skal bare inneholde lisensnøkkelen uten ekstra innhold. diff --git a/packages/web/src/content/docs/nb/mcp-servers.mdx b/packages/web/src/content/docs/nb/mcp-servers.mdx index a8301eb5ac..dfb3e1ad54 100644 --- a/packages/web/src/content/docs/nb/mcp-servers.mdx +++ b/packages/web/src/content/docs/nb/mcp-servers.mdx @@ -3,7 +3,7 @@ title: MCP servere description: Legg til lokale og eksterne MCP-verktøy. --- -Du kan legge til eksterne verktøy i opencode ved å bruke _Model Context Protocol_ eller MCP. opencode støtter både lokale og eksterne servere. +Du kan legge til eksterne verktøy i OpenCode ved å bruke _Model Context Protocol_ eller MCP. OpenCode støtter både lokale og eksterne servere. Når de er lagt til, er MCP-verktøy automatisk tilgjengelige for LLM sammen med innebygde verktøy. @@ -23,7 +23,7 @@ Enkelte MCP-servere, som GitHub MCP-serveren, har en tendens til å legge til ma ## Aktiver -Du kan definere MCP-servere i [opencode Config](https://opencode.ai/docs/config/) under `mcp`. Legg til hver MCP med et unikt navn. Du kan referere til den MCP ved navn når du ber om LLM. +Du kan definere MCP-servere i [OpenCode Config](https://opencode.ai/docs/config/) under `mcp`. Legg til hver MCP med et unikt navn. Du kan referere til den MCP ved navn når du ber om LLM. ```jsonc title="opencode.jsonc" {6} { @@ -116,17 +116,17 @@ use the mcp_everything tool to add the number 3 and 4 Her er alle alternativene for å konfigurere en lokal MCP-server. -| Alternativ | Skriv | Påkrevd | Beskrivelse | -| ------------- | ------ | ------- | ---------------------------------------------------------------------------------------- | -| `type` | String | Y | Type MCP servertilkobling, må være `"local"`. | -| `command` | Array | Y | Kommando og argumenter for å kjøre MCP-serveren. | -| `environment` | Objekt | | Miljøvariabler som skal angis når serveren kjøres. | -| `enabled` | Boolsk | | Aktiver eller deaktiver MCP-serveren ved oppstart. | -| `timeout` | Nummer | | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). | +| Alternativ | Type | Påkrevd | Beskrivelse | +| ------------- | ------- | ------- | ---------------------------------------------------------------------------------------- | +| `type` | String | Y | Type MCP servertilkobling, må være `"local"`. | +| `command` | Array | Y | Kommando og argumenter for å kjøre MCP-serveren. | +| `environment` | Object | | Miljøvariabler som skal angis når serveren kjøres. | +| `enabled` | Boolean | | Aktiver eller deaktiver MCP-serveren ved oppstart. | +| `timeout` | Number | | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). | --- -## Fjernkontroll +## Ekstern Legg til eksterne MCP-servere ved å sette `type` til `"remote"`. @@ -152,20 +152,20 @@ Legg til eksterne MCP-servere ved å sette `type` til `"remote"`. #### Alternativer -| Alternativ | Skriv | Påkrevd | Beskrivelse | -| ---------- | ------ | ------- | ---------------------------------------------------------------------------------------- | -| `type` | String | Y | Type MCP servertilkobling, må være `"remote"`. | -| `url` | String | Y | URL av den eksterne MCP-serveren. | -| `enabled` | Boolsk | | Aktiver eller deaktiver MCP-serveren ved oppstart. | -| `headers` | Objekt | | Overskrifter å sende med forespørselen. | -| `oauth` | Objekt | | OAuth-autentiseringskonfigurasjon. Se delen [OAuth](#oauth) nedenfor. | -| `timeout` | Nummer | | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). | +| Alternativ | Type | Påkrevd | Beskrivelse | +| ---------- | ------- | ------- | ---------------------------------------------------------------------------------------- | +| `type` | String | Y | Type MCP servertilkobling, må være `"remote"`. | +| `url` | String | Y | URL av den eksterne MCP-serveren. | +| `enabled` | Boolean | | Aktiver eller deaktiver MCP-serveren ved oppstart. | +| `headers` | Object | | Overskrifter å sende med forespørselen. | +| `oauth` | Object | | OAuth-autentiseringskonfigurasjon. Se delen [OAuth](#oauth) nedenfor. | +| `timeout` | Number | | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). | --- ## OAuth -opencode håndterer automatisk OAuth-autentisering for eksterne MCP-servere. Når en server krever autentisering, vil opencode: +OpenCode håndterer automatisk OAuth-autentisering for eksterne MCP-servere. Når en server krever autentisering, vil OpenCode: 1. Oppdag 401-svaret og start OAuth-flyten 2. Bruk **Dynamisk klientregistrering (RFC 7591)** hvis det støttes av serveren @@ -189,7 +189,7 @@ For de fleste OAuth-aktiverte MCP-servere er ingen spesiell konfigurasjon nødve } ``` -Hvis serveren krever autentisering, vil opencode be deg om å autentisere når du prøver å bruke den for første gang. Hvis ikke, kan du [utløse flyten manuelt](#authenticating) med `opencode mcp auth `. +Hvis serveren krever autentisering, vil OpenCode be deg om å autentisere når du prøver å bruke den for første gang. Hvis ikke, kan du [utløse flyten manuelt](#authenticating) med `opencode mcp auth `. --- @@ -238,7 +238,7 @@ Fjern lagret legitimasjon: opencode mcp logout my-oauth-server ``` -Kommandoen `mcp auth` åpner nettleseren din for autorisasjon. Etter at du har godkjent, vil opencode lagre tokens sikkert i `~/.local/share/opencode/mcp-auth.json`. +Kommandoen `mcp auth` åpner nettleseren din for autorisasjon. Etter at du har godkjent, vil OpenCode lagre tokens sikkert i `~/.local/share/opencode/mcp-auth.json`. --- @@ -266,9 +266,9 @@ Hvis du vil deaktivere automatisk OAuth for en server (f.eks. for servere som br #### OAuth-alternativer -| Alternativ | Skriv inn | Beskrivelse | +| Alternativ | Type | Beskrivelse | | -------------- | --------------- | -------------------------------------------------------------------------------------- | -| `oauth` | Objekt \| usant | OAuth-konfigurasjonsobjekt, eller `false` for å deaktivere automatisk OAuth-deteksjon. | +| `oauth` | Object \| false | OAuth-konfigurasjonsobjekt, eller `false` for å deaktivere automatisk OAuth-deteksjon. | | `clientId` | String | OAuth-klient ID. Hvis ikke oppgitt, vil dynamisk klientregistrering bli forsøkt. | | `clientSecret` | String | OAuth-klienthemmelighet, hvis det kreves av autorisasjonsserveren. | | `scope` | String | OAuth-omfang å be om under autorisasjon. | @@ -291,7 +291,7 @@ Kommandoen `mcp debug` viser gjeldende autentiseringsstatus, tester HTTP-tilkobl ## Administrer -MCP-ene dine er tilgjengelige som verktøy i opencode, sammen med innebygde verktøy. Så du kan administrere dem gjennom opencode-konfigurasjonen som alle andre verktøy. +MCP-ene dine er tilgjengelige som verktøy i OpenCode, sammen med innebygde verktøy. Så du kan administrere dem gjennom OpenCode-konfigurasjonen som alle andre verktøy. --- @@ -400,7 +400,7 @@ Nedenfor er eksempler på noen vanlige MCP-servere. Du kan sende inn en PR hvis --- -### Vaktvakt +### Sentry Legg til [Sentry MCP-serveren](https://mcp.sentry.dev) for å samhandle med Sentry-prosjektene og problemene dine. @@ -423,7 +423,7 @@ Etter å ha lagt til konfigurasjonen, autentiser med Sentry: opencode mcp auth sentry ``` -Dette åpner et nettleservindu for å fullføre OAuth-flyten og koble opencode til Sentry-kontoen din. +Dette åpner et nettleservindu for å fullføre OAuth-flyten og koble OpenCode til Sentry-kontoen din. Når du er autentisert, kan du bruke Sentry-verktøy i ledetekstene dine for å spørre etter problemer, prosjekter og feildata. @@ -482,7 +482,7 @@ When you need to search docs, use `context7` tools. --- -### Grep av Vercel +### Grep by Vercel Legg til [Grep by Vercel](https://grep.app) MCP-serveren for å søke gjennom kodebiter på GitHub. diff --git a/packages/web/src/content/docs/nb/models.mdx b/packages/web/src/content/docs/nb/models.mdx index 42cedfaa93..7a9138d0da 100644 --- a/packages/web/src/content/docs/nb/models.mdx +++ b/packages/web/src/content/docs/nb/models.mdx @@ -3,13 +3,13 @@ title: Modeller description: Konfigurere en LLM leverandør og modell. --- -opencode bruker [AI SDK](https://ai-sdk.dev/) og [Models.dev](https://models.dev) for å støtte **75+ LLM leverandører** og den støtter kjøring av lokale modeller. +OpenCode bruker [AI SDK](https://ai-sdk.dev/) og [Models.dev](https://models.dev) for å støtte **75+ LLM leverandører** og den støtter kjøring av lokale modeller. --- ## Leverandører -De fleste populære leverandørene er forhåndslastet som standard. Hvis du har lagt til legitimasjonen for en leverandør gjennom kommandoen `/connect`, vil den være tilgjengelig når du starter opencode. +De fleste populære leverandørene er forhåndslastet som standard. Hvis du har lagt til legitimasjonen for en leverandør gjennom kommandoen `/connect`, vil den være tilgjengelig når du starter OpenCode. Finn ut mer om [leverandører](/docs/providers). @@ -35,7 +35,7 @@ Vurder å bruke en av modellene vi anbefaler. Imidlertid er det bare noen få av dem som er gode til både å generere kode og verktøykalling. -Her er flere modeller som fungerer godt med opencode, uten spesiell rekkefølge. (Dette er ikke en uttømmende liste og er heller ikke nødvendigvis oppdatert): +Her er flere modeller som fungerer godt med OpenCode, uten spesiell rekkefølge. (Dette er ikke en uttømmende liste og er heller ikke nødvendigvis oppdatert): - GPT 5.2 - GPT 5.1 Codex @@ -49,7 +49,7 @@ Her er flere modeller som fungerer godt med opencode, uten spesiell rekkefølge. ## Angi en standard For å angi en av disse som standardmodell, kan du angi `model`-tasten i din -opencode-konfigurasjon. +OpenCode-konfigurasjon. ```json title="opencode.json" {3} { @@ -141,11 +141,11 @@ Mange modeller støtter flere varianter med forskjellige konfigurasjoner. openco ### Innebygde varianter -opencode leveres med standardvarianter for mange leverandører: +OpenCode leveres med standardvarianter for mange leverandører: **Anthropic**: -- `high` - Høyt budsjett (standard) +- `high` - High thinking budget (standard) - `max` - Maksimalt tenkebudsjett **OpenAI**: @@ -203,11 +203,11 @@ Bruk tastebindingen `variant_cycle` for raskt å bytte mellom varianter. [Finn u ## Laster modeller -Når opencode starter opp, ser den etter modeller i følgende prioriterte rekkefølge: +Når OpenCode starter opp, ser den etter modeller i følgende prioriterte rekkefølge: 1. Kommandolinjeflagget `--model` eller `-m`. Formatet er det samme som i konfigurasjonsfilen: `provider_id/model_id`. -2. Modelllisten i opencode-konfigurasjonen. +2. Modelllisten i OpenCode-konfigurasjonen. ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/nb/modes.mdx b/packages/web/src/content/docs/nb/modes.mdx index 31147185fa..b3c159bb9a 100644 --- a/packages/web/src/content/docs/nb/modes.mdx +++ b/packages/web/src/content/docs/nb/modes.mdx @@ -4,14 +4,14 @@ description: Ulike moduser for forskjellige brukstilfeller. --- :::caution -Modi er nå konfigurert gjennom alternativet `agent` i opencode-konfigurasjonen. De +Modi er nå konfigurert gjennom alternativet `agent` i OpenCode-konfigurasjonen. De Alternativet `mode` er nå utdatert. [Finn ut mer](/docs/agents). ::: -Moduser i opencode lar deg tilpasse oppførselen, verktøyene og ledetekstene for ulike brukstilfeller. +Moduser i OpenCode lar deg tilpasse oppførselen, verktøyene og ledetekstene for ulike brukstilfeller. Den kommer med to innebygde moduser: **bygg** og **plan**. Du kan tilpasse -disse eller konfigurer din egen gjennom opencode-konfigurasjonen. +disse eller konfigurer din egen gjennom OpenCode-konfigurasjonen. Du kan bytte mellom moduser under en økt eller konfigurere dem i konfigurasjonsfilen. @@ -19,7 +19,7 @@ Du kan bytte mellom moduser under en økt eller konfigurere dem i konfigurasjons ## Innebygd -opencode kommer med to innebygde moduser. +OpenCode kommer med to innebygde moduser. --- @@ -173,13 +173,13 @@ Temperaturverdier varierer vanligvis fra 0,0 til 1,0: } ``` -Hvis ingen temperatur er spesifisert, bruker opencode modellspesifikke standarder (vanligvis 0 for de fleste modeller, 0,55 for Qwen-modeller). +Hvis ingen temperatur er spesifisert, bruker OpenCode modellspesifikke standarder (vanligvis 0 for de fleste modeller, 0,55 for Qwen-modeller). --- -### Spør +### Ledetekst -Spesifiser en tilpasset systemmeldingsfil for denne modusen med `prompt`-konfigurasjonen. Spørrefilen skal inneholde instruksjoner som er spesifikke for modusens formål. +Spesifiser en tilpasset systemmeldingsfil for denne modusen med `prompt`-konfigurasjonen. Ledetekstfilen skal inneholde instruksjoner som er spesifikke for modusens formål. ```json title="opencode.json" { @@ -192,7 +192,7 @@ Spesifiser en tilpasset systemmeldingsfil for denne modusen med `prompt`-konfigu ``` Denne banen er i forhold til hvor konfigurasjonsfilen er plassert. Så dette fungerer for -både den globale opencode-konfigurasjonen og den prosjektspesifikke konfigurasjonen. +både den globale OpenCode-konfigurasjonen og den prosjektspesifikke konfigurasjonen. --- @@ -322,10 +322,10 @@ Priorities: Her er noen vanlige brukstilfeller for forskjellige moduser. -- **Byggemodus**: Fullt utviklingsarbeid med alle verktøy aktivert -- **Planmodus**: Analyse og planlegging uten å gjøre endringer -- **Gjennomgangsmodus**: Kodegjennomgang med skrivebeskyttet tilgang pluss dokumentasjonsverktøy -- **Feilsøkingsmodus**: Fokusert på etterforskning med bash- og leseverktøy aktivert -- **Dokumentmodus**: Dokumentasjonsskriving med filoperasjoner, men ingen systemkommandoer +- **Build-modus**: Fullt utviklingsarbeid med alle verktøy aktivert +- **Plan-modus**: Analyse og planlegging uten å gjøre endringer +- **Review-modus**: Kodegjennomgang med skrivebeskyttet tilgang pluss dokumentasjonsverktøy +- **Debug-modus**: Fokusert på etterforskning med bash- og leseverktøy aktivert +- **Docs-modus**: Dokumentasjonsskriving med filoperasjoner, men ingen systemkommandoer Du kan også finne at forskjellige modeller er gode for forskjellige brukstilfeller. diff --git a/packages/web/src/content/docs/nb/network.mdx b/packages/web/src/content/docs/nb/network.mdx index cc3323bd33..1d075524ac 100644 --- a/packages/web/src/content/docs/nb/network.mdx +++ b/packages/web/src/content/docs/nb/network.mdx @@ -3,13 +3,13 @@ title: Nettverk description: Konfigurer proxyer og tilpassede sertifikater. --- -opencode støtter standard proxy-miljøvariabler og tilpassede sertifikater for bedriftsnettverksmiljøer. +OpenCode støtter standard proxy-miljøvariabler og tilpassede sertifikater for bedriftsnettverksmiljøer. --- ## Proxy -opencode respekterer standard proxy-miljøvariabler. +OpenCode respekterer standard proxy-miljøvariabler. ```bash # HTTPS proxy (recommended) @@ -32,7 +32,7 @@ Du kan konfigurere serverens port og vertsnavn ved å bruke [CLI flagg](/docs/cl ### Autentiser -Hvis proxyen din krever grunnleggende autentisering, inkluderer legitimasjon i URL. +Hvis proxyen din krever grunnleggende autentisering, inkluder legitimasjon i URL. ```bash export HTTPS_PROXY=http://username:password@proxy.example.com:8080 @@ -48,7 +48,7 @@ For proxyer som krever avansert autentisering som NTLM eller Kerberos, bør du v ## Egendefinerte sertifikater -Hvis bedriften din bruker egendefinerte CA-er for HTTPS-tilkoblinger, konfigurer opencode til å stole på dem. +Hvis bedriften din bruker egendefinerte CA-er for HTTPS-tilkoblinger, konfigurer OpenCode til å stole på dem. ```bash export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem diff --git a/packages/web/src/content/docs/nb/permissions.mdx b/packages/web/src/content/docs/nb/permissions.mdx index 2d8632e5fd..47c7cf2960 100644 --- a/packages/web/src/content/docs/nb/permissions.mdx +++ b/packages/web/src/content/docs/nb/permissions.mdx @@ -3,7 +3,7 @@ title: Tillatelser description: Kontroller hvilke handlinger som krever godkjenning for å kjøre. --- -opencode bruker `permission`-konfigurasjonen for å bestemme om en gitt handling skal kjøres automatisk, spørre deg eller blokkeres. +OpenCode bruker `permission`-konfigurasjonen for å bestemme om en gitt handling skal kjøres automatisk, spørre deg eller blokkeres. Fra og med `v1.1.1` er den eldre `tools` boolske konfigurasjonen avviklet og har blitt slått sammen til `permission`. Den gamle `tools`-konfigurasjonen støttes fortsatt for bakoverkompatibilitet. @@ -88,7 +88,7 @@ Du kan bruke `~` eller `$HOME` i starten av et mønster for å referere til hjem ### Eksterne kataloger -Bruk `external_directory` for å tillate verktøyanrop som berører stier utenfor arbeidskatalogen der opencode ble startet. Dette gjelder alle verktøy som tar en bane som input (for eksempel `read`, `edit`, `list`, `glob`, `grep` og mange `bash`-kommandoer). +Bruk `external_directory` for å tillate verktøyanrop som berører stier utenfor arbeidskatalogen der OpenCode ble startet. Dette gjelder alle verktøy som tar en bane som input (for eksempel `read`, `edit`, `list`, `glob`, `grep` og mange `bash`-kommandoer). Hjemmeutvidelse (som `~/...`) påvirker bare hvordan et mønster skrives. Den gjør ikke en ekstern bane til en del av det gjeldende arbeidsområdet, så stier utenfor arbeidskatalogen må fortsatt tillates via `external_directory`. @@ -127,7 +127,7 @@ Hold listen fokusert på klarerte baner, og lag ekstra tillat eller avslå regle ## Tilgjengelige tillatelser -opencode-tillatelser tastes inn etter verktøynavn, pluss et par sikkerhetsvakter: +OpenCode-tillatelser tastes inn etter verktøynavn, pluss et par sikkerhetsvakter: - `read` — lesing av en fil (tilsvarer filbanen) - `edit` — alle filendringer (dekker `edit`, `write`, `patch`, `multiedit`) @@ -148,7 +148,7 @@ opencode-tillatelser tastes inn etter verktøynavn, pluss et par sikkerhetsvakte ## Standard -Hvis du ikke spesifiserer noe, starter opencode fra tillatte standardinnstillinger: +Hvis du ikke spesifiserer noe, starter OpenCode fra tillatte standardinnstillinger: - De fleste tillatelser er `"allow"` som standard. - `doom_loop` og `external_directory` er standard til `"ask"`. @@ -169,12 +169,12 @@ Hvis du ikke spesifiserer noe, starter opencode fra tillatte standardinnstilling --- -## Hva "Spør" gjør +## Hva "ask" gjør -Når opencode ber om godkjenning, gir UI tre utfall: +Når OpenCode ber om godkjenning, gir UI tre utfall: - `once` — godkjenne nettopp denne forespørselen -- `always` — godkjenn fremtidige forespørsler som samsvarer med de foreslåtte mønstrene (for resten av den nåværende opencode-økten) +- `always` — godkjenn fremtidige forespørsler som samsvarer med de foreslåtte mønstrene (for resten av den nåværende OpenCode-økten) - `reject` — avslå forespørselen Settet med mønstre som `always` vil godkjenne, leveres av verktøyet (for eksempel, bash-godkjenninger hvitlister vanligvis et trygt kommandoprefiks som `git status*`). diff --git a/packages/web/src/content/docs/nb/plugins.mdx b/packages/web/src/content/docs/nb/plugins.mdx index 2f7cf6eb7d..811141b7fe 100644 --- a/packages/web/src/content/docs/nb/plugins.mdx +++ b/packages/web/src/content/docs/nb/plugins.mdx @@ -3,7 +3,7 @@ title: Plugins description: Skriv dine egne plugins for å utvide opencode. --- -Plugins lar deg utvide opencode ved å koble til ulike arrangementer og tilpasse atferd. Du kan lage plugins for å legge til nye funksjoner, integrere med eksterne tjenester eller endre standardoppførselen til opencode. +Plugins lar deg utvide OpenCode ved å koble til ulike arrangementer og tilpasse atferd. Du kan lage plugins for å legge til nye funksjoner, integrere med eksterne tjenester eller endre standardoppførselen til OpenCode. For eksempler, sjekk ut [plugins](/docs/ecosystem#plugins) opprettet av fellesskapet. @@ -51,7 +51,7 @@ Bla gjennom tilgjengelige plugins i [økosystemet](/docs/ecosystem#plugins). --- -### Last inn ordre +### Lasterekkefølge Plugins lastes inn fra alle kilder og alle kroker kjøres i rekkefølge. Lastrekkefølgen er: @@ -83,7 +83,7 @@ Lokale plugins og tilpassede verktøy kan bruke eksterne npm-pakker. Legg til en } ``` -opencode kjører `bun install` ved oppstart for å installere disse. Programtilleggene og verktøyene dine kan deretter importere dem. +OpenCode kjører `bun install` ved oppstart for å installere disse. Programtilleggene og verktøyene dine kan deretter importere dem. ```ts title=".opencode/plugins/my-plugin.ts" import { escape } from "shescape" @@ -118,7 +118,7 @@ Plugin-funksjonen mottar: - `project`: Gjeldende prosjektinformasjon. - `directory`: Gjeldende arbeidskatalog. - `worktree`: Git-arbeidstrebanen. -- `client`: En opencode SDK klient for samhandling med AI. +- `client`: En OpenCode SDK klient for samhandling med AI. - `$`: Buns [shell API](https://bun.com/docs/runtime/shell) for å utføre kommandoer. --- @@ -211,7 +211,7 @@ Plugins kan abonnere på arrangementer som vist nedenfor i Eksempler-delen. Her ## Eksempler -Her er noen eksempler på plugins du kan bruke for å utvide opencode. +Her er noen eksempler på plugins du kan bruke for å utvide OpenCode. --- @@ -235,14 +235,14 @@ export const NotificationPlugin = async ({ project, client, $, directory, worktr Vi bruker `osascript` for å kjøre AppleScript på macOS. Her bruker vi den til å sende varsler. :::note -Hvis du bruker opencode-skrivebordsappen, kan den sende systemvarsler automatisk når et svar er klart eller når en økt feiler. +Hvis du bruker OpenCode-skrivebordsappen, kan den sende systemvarsler automatisk når et svar er klart eller når en økt feiler. ::: --- ### .env-beskyttelse -Hindre opencode fra å lese `.env` filer: +Hindre OpenCode fra å lese `.env` filer: ```javascript title=".opencode/plugins/env-protection.js" export const EnvProtection = async ({ project, client, $, directory, worktree }) => { @@ -277,7 +277,7 @@ export const InjectEnvPlugin = async () => { ### Egendefinerte verktøy -Plugins kan også legge til egendefinerte verktøy til opencode: +Plugins kan også legge til egendefinerte verktøy til OpenCode: ```ts title=".opencode/plugins/custom-tools.ts" import { type Plugin, tool } from "@opencode-ai/plugin" @@ -300,13 +300,13 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { } ``` -`tool`-hjelperen lager et tilpasset verktøy som opencode kan kalle. Den tar en Zod-skjemafunksjon og returnerer en verktøydefinisjon med: +`tool`-hjelperen lager et tilpasset verktøy som OpenCode kan kalle. Den tar en Zod-skjemafunksjon og returnerer en verktøydefinisjon med: - `description`: Hva verktøyet gjør - `args`: Zod-skjema for verktøyets argumenter - `execute`: Funksjon som kjører når verktøyet kalles -Dine egendefinerte verktøy vil være tilgjengelige for å opencode sammen med innebygde verktøy. +Dine egendefinerte verktøy vil være tilgjengelige for å OpenCode sammen med innebygde verktøy. --- diff --git a/packages/web/src/content/docs/nb/providers.mdx b/packages/web/src/content/docs/nb/providers.mdx index e5c4737423..5fdf263d3f 100644 --- a/packages/web/src/content/docs/nb/providers.mdx +++ b/packages/web/src/content/docs/nb/providers.mdx @@ -1,17 +1,17 @@ --- title: Leverandører -description: Bruke en hvilken som helst LLM-leverandør i opencode. +description: Bruke en hvilken som helst LLM-leverandør i OpenCode. --- import config from "../../../../config.mjs" export const console = config.console -opencode bruker [AI SDK](https://ai-sdk.dev/) og [Models.dev](https://models.dev) for å støtte **75+ LLM leverandører** og den støtter kjøring av lokale modeller. +OpenCode bruker [AI SDK](https://ai-sdk.dev/) og [Models.dev](https://models.dev) for å støtte **75+ LLM leverandører** og den støtter kjøring av lokale modeller. For å legge til en leverandør må du: 1. Legg til API-nøklene for leverandøren ved å bruke kommandoen `/connect`. -2. Konfigurer leverandøren i opencode-konfigurasjonen. +2. Konfigurer leverandøren i OpenCode-konfigurasjonen. --- @@ -24,7 +24,7 @@ i `~/.local/share/opencode/auth.json`. ### Konfig -Du kan tilpasse leverandørene gjennom `provider`-delen i opencode +Du kan tilpasse leverandørene gjennom `provider`-delen i OpenCode konfig. --- @@ -50,8 +50,8 @@ Du kan tilpasse basen URL for enhver leverandør ved å angi alternativet `baseU ## OpenCode Zen -OpenCode Zen er en liste over modeller levert av opencode-teamet som har vært -testet og verifisert for å fungere godt med opencode. [Finn ut mer](/docs/zen). +OpenCode Zen er en liste over modeller levert av OpenCode-teamet som har vært +testet og verifisert for å fungere godt med OpenCode. [Finn ut mer](/docs/zen). :::tip Hvis du er ny, anbefaler vi å starte med OpenCode Zen. @@ -80,7 +80,7 @@ Hvis du er ny, anbefaler vi å starte med OpenCode Zen. /models ``` -Det fungerer som alle andre leverandører i opencode og er helt valgfritt å bruke. +Det fungerer som alle andre leverandører i OpenCode og er helt valgfritt å bruke. --- @@ -124,7 +124,7 @@ Ser du ikke en leverandør her? Send inn en PR. ### Amazon Bedrock -Slik bruker du Amazon Bedrock med opencode: +Slik bruker du Amazon Bedrock med OpenCode: 1. Gå over til **modellkatalogen** i Amazon Bedrock-konsollen og be om tilgang til modellene du ønsker. @@ -137,7 +137,7 @@ Slik bruker du Amazon Bedrock med opencode: #### Miljøvariabler (hurtigstart) - Angi en av disse miljøvariablene mens du kjører opencode: + Angi en av disse miljøvariablene mens du kjører OpenCode: ```bash # Option 1: Using AWS access keys @@ -303,7 +303,7 @@ Hvis du støter på «Beklager, men jeg kan ikke hjelpe med den forespørselen» 2. Gå til [Azure AI Foundry](https://ai.azure.com/) og distribuer en modell. :::note - Distribusjonsnavnet må samsvare med modellnavnet for at opencode skal fungere skikkelig. + Distribusjonsnavnet må samsvare med modellnavnet for at OpenCode skal fungere skikkelig. ::: 3. Kjør kommandoen `/connect` og søk etter **Azure**. @@ -350,7 +350,7 @@ Hvis du støter på «Beklager, men jeg kan ikke hjelpe med den forespørselen» 2. Gå til [Azure AI Foundry](https://ai.azure.com/) og distribuer en modell. :::note - Distribusjonsnavnet må samsvare med modellnavnet for at opencode skal fungere skikkelig. + Distribusjonsnavnet må samsvare med modellnavnet for at OpenCode skal fungere skikkelig. ::: 3. Kjør kommandoen `/connect` og søk etter **Azure Cognitive Services**. @@ -482,7 +482,7 @@ Cloudflare AI Gateway lar deg få tilgang til modeller fra OpenAI, Anthropic, Wo /models ``` - Du kan også legge til modeller gjennom opencode-konfigurasjonen. + Du kan også legge til modeller gjennom OpenCode-konfigurasjonen. ```json title="opencode.json" { @@ -679,14 +679,14 @@ GitLab Duo gir AI-drevet agentchat med native verktøyoppringingsfunksjoner gjen :::note Du kan også spesifisere 'GITLAB_TOKEN' miljøvariabel hvis du ikke vil -for å lagre token i opencode auth-lagring. +for å lagre token i OpenCode auth-lagring. ::: ##### Selvhostet GitLab :::note[compliance note] -opencode bruker en liten modell for noen AI oppgaver som å generere økttittelen. -Den er konfigurert til å bruke gpt-5-nano som standard, hostet av Zen. For å låse opencode +OpenCode bruker en liten modell for noen AI oppgaver som å generere økttittelen. +Den er konfigurert til å bruke gpt-5-nano som standard, hostet av Zen. For å låse OpenCode for kun å bruke din egen GitLab-hostede forekomst, legg til følgende i din `opencode.json` fil. Det anbefales også å deaktivere øktdeling. @@ -786,7 +786,7 @@ Denne plugin-en gir omfattende GitLab-repository-administrasjonsfunksjoner, inkl ### GitHub Copilot -Slik bruker du GitHub Copilot-abonnementet med opencode: +Slik bruker du GitHub Copilot-abonnementet med OpenCode: :::note Noen modeller kan trenge en [Pro+ @@ -823,7 +823,7 @@ Noen modeller må aktiveres manuelt i [GitHub Copilot-innstillingene](https://do ### Google Vertex AI -Slik bruker du Google Vertex AI med opencode: +Slik bruker du Google Vertex AI med OpenCode: 1. Gå over til **Model Garden** i Google Cloud Console og sjekk modeller tilgjengelig i din region. @@ -839,7 +839,7 @@ Slik bruker du Google Vertex AI med opencode: - `GOOGLE_APPLICATION_CREDENTIALS`: Bane til tjenestekontoen JSON nøkkelfil - Autentiser med gcloud CLI: `gcloud auth application-default login` - Sett dem mens du kjører opencode. + Sett dem mens du kjører OpenCode. ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode @@ -952,7 +952,7 @@ For flere leverandører og avanserte funksjoner som bufring og hastighetsbegrens #### Valgfrie konfigurasjoner -I tilfelle du ser en funksjon eller modell fra Helicone som ikke konfigureres automatisk gjennom opencode, kan du alltid konfigurere den selv. +I tilfelle du ser en funksjon eller modell fra Helicone som ikke konfigureres automatisk gjennom OpenCode, kan du alltid konfigurere den selv. Her er [Helicone's Model Directory](https://helicone.ai/models), du trenger denne for å hente ID-ene til modellene du vil legge til. @@ -1005,7 +1005,7 @@ Helicone støtter tilpassede overskrifter for funksjoner som bufring, brukerspor ##### Sesjonssporing -Helicones [Sessions](https://docs.helicone.ai/features/sessions) funksjon lar deg gruppere relaterte LLM forespørsler sammen. Bruk [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) plugin for automatisk å logge hver opencode-samtale som en økt i Helicone. +Helicones [Sessions](https://docs.helicone.ai/features/sessions) funksjon lar deg gruppere relaterte LLM forespørsler sammen. Bruk [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) plugin for automatisk å logge hver OpenCode-samtale som en økt i Helicone. ```bash npm install -g opencode-helicone-session @@ -1019,7 +1019,7 @@ Legg den til i konfigurasjonen din. } ``` -Programtillegget injiserer `Helicone-Session-Id` og `Helicone-Session-Name` overskrifter i forespørslene dine. På Helicones Sessions-side vil du se hver opencode-samtale oppført som en separat økt. +Programtillegget injiserer `Helicone-Session-Id` og `Helicone-Session-Name` overskrifter i forespørslene dine. På Helicones Sessions-side vil du se hver OpenCode-samtale oppført som en separat økt. ##### Vanlige helikonhoder @@ -1036,7 +1036,7 @@ Se [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header- ### llama.cpp -Du kan konfigurere opencode for å bruke lokale modeller gjennom [llama.cpp](https://github.com/ggml-org/llama.cpp) llama-server-verktøyet. +Du kan konfigurere OpenCode for å bruke lokale modeller gjennom [llama.cpp](https://github.com/ggml-org/llama.cpp) llama-server-verktøyet. ```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15} { @@ -1103,7 +1103,7 @@ IO.NET tilbyr 17 modeller optimert for ulike brukstilfeller: ### LM Studio -Du kan konfigurere opencode for å bruke lokale modeller gjennom LM Studio. +Du kan konfigurere OpenCode for å bruke lokale modeller gjennom LM Studio. ```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14} { @@ -1220,10 +1220,10 @@ Slik bruker du Kimi K2 fra Moonshot AI: ### Ollama -Du kan konfigurere opencode for å bruke lokale modeller gjennom Ollama. +Du kan konfigurere OpenCode for å bruke lokale modeller gjennom Ollama. :::tip -Ollama kan automatisk konfigurere seg selv for opencode. Se [Ollama-integrasjonsdokumentene](https://docs.ollama.com/integrations/opencode) for detaljer. +Ollama kan automatisk konfigurere seg selv for OpenCode. Se [Ollama-integrasjonsdokumentene](https://docs.ollama.com/integrations/opencode) for detaljer. ::: ```json title="opencode.json" "ollama" {5, 6, 8, 10-14} @@ -1262,13 +1262,13 @@ Hvis verktøykall ikke fungerer, prøv å øke `num_ctx` i Ollama. Start rundt 1 ### Ollama Cloud -Slik bruker du Ollama Cloud med opencode: +Slik bruker du Ollama Cloud med OpenCode: 1. Gå over til [https://ollama.com/](https://ollama.com/) og logg på eller opprett en konto. 2. Naviger til **Innstillinger** > **Nøkler** og klikk på **Legg til API nøkkel** for å generere en ny API nøkkel. -3. Kopier API-nøkkelen for bruk i opencode. +3. Kopier API-nøkkelen for bruk i OpenCode. 4. Kjør kommandoen `/connect` og søk etter **Ollama Cloud**. @@ -1285,7 +1285,7 @@ Slik bruker du Ollama Cloud med opencode: └ enter ``` -6. **Viktig**: Før du bruker skymodeller i opencode, må du hente modellinformasjonen lokalt: +6. **Viktig**: Før du bruker skymodeller i OpenCode, må du hente modellinformasjonen lokalt: ```bash ollama pull gpt-oss:20b-cloud @@ -1334,7 +1334,7 @@ Hvis du allerede har en API-nøkkel, kan du velge **Angi API-nøkkel manuelt** o ### OpenCode Zen -OpenCode Zen er en liste over testede og verifiserte modeller levert av opencode-teamet. [Finn ut mer](/docs/zen). +OpenCode Zen er en liste over testede og verifiserte modeller levert av OpenCode-teamet. [Finn ut mer](/docs/zen). 1. Logg på **OpenCode Zen** og klikk på **Create API Key**. @@ -1344,7 +1344,7 @@ OpenCode Zen er en liste over testede og verifiserte modeller levert av opencode /connect ``` -3. Skriv inn opencode API-nøkkelen. +3. Skriv inn OpenCode API-nøkkelen. ```txt ┌ API key @@ -1386,7 +1386,7 @@ OpenCode Zen er en liste over testede og verifiserte modeller levert av opencode /models ``` - Du kan også legge til flere modeller gjennom opencode-konfigurasjonen. + Du kan også legge til flere modeller gjennom OpenCode-konfigurasjonen. ```json title="opencode.json" {6} { @@ -1401,7 +1401,7 @@ OpenCode Zen er en liste over testede og verifiserte modeller levert av opencode } ``` -5. Du kan også tilpasse dem gjennom opencode-konfigurasjonen. Her er et eksempel på å spesifisere en leverandør +5. Du kan også tilpasse dem gjennom OpenCode-konfigurasjonen. Her er et eksempel på å spesifisere en leverandør ```json title="opencode.json" { @@ -1432,7 +1432,7 @@ SAP AI Core gir tilgang til 40+ modeller fra OpenAI, Anthropic, Google, Amazon, 1. Gå til din [SAP BTP Cockpit](https://account.hana.ondemand.com/), naviger til din SAP AI kjernetjenesteforekomst, og lag en tjenestenøkkel. :::tip - Tjenestenøkkelen er et JSON-objekt som inneholder `clientid`, `clientsecret`, `url` og `serviceurls.AI_API_URL`. Du finner AI kjerneforekomsten din under **Tjenester** > **Forekomster og abonnementer** i BTP cockpiten. + Tjenestenøkkelen er et JSON-objekt som inneholder `clientid`, `clientsecret`, `url` og `serviceurls.AI_API_URL`. Du finner AI kjerneforekomsten din under **Tjenester** > **Forekomster og abonnementer** i BTP Cockpit. ::: 2. Kjør kommandoen `/connect` og søk etter **SAP AI Core**. @@ -1509,7 +1509,7 @@ SAP AI Core gir tilgang til 40+ modeller fra OpenAI, Anthropic, Google, Amazon, ### Scaleway -Slik bruker du [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) med opencode: +Slik bruker du [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) med OpenCode: 1. Gå over til [Scaleway Console IAM innstillinger](https://console.scaleway.com/iam/api-keys) for å generere en ny API nøkkel. @@ -1617,7 +1617,7 @@ Vercel AI Gateway lar deg få tilgang til modeller fra OpenAI, Anthropic, Google /models ``` -Du kan også tilpasse modeller gjennom opencode-konfigurasjonen. Her er et eksempel på spesifisering av leverandørrutingsrekkefølge. +Du kan også tilpasse modeller gjennom OpenCode-konfigurasjonen. Her er et eksempel på spesifisering av leverandørrutingsrekkefølge. ```json title="opencode.json" { @@ -1727,7 +1727,7 @@ Noen nyttige rutealternativer: /models ``` - Du kan også legge til flere modeller gjennom opencode-konfigurasjonen. + Du kan også legge til flere modeller gjennom OpenCode-konfigurasjonen. ```json title="opencode.json" {6} { @@ -1749,7 +1749,7 @@ Noen nyttige rutealternativer: Slik legger du til en **OpenAI-kompatibel**-leverandør som ikke er oppført i `/connect`-kommandoen: :::tip -Du kan bruke hvilken som helst OpenAI-kompatibel leverandør med opencode. De fleste moderne AI-leverandører tilbyr OpenAI-kompatible APIer. +Du kan bruke hvilken som helst OpenAI-kompatibel leverandør med OpenCode. De fleste moderne AI-leverandører tilbyr OpenAI-kompatible APIer. ::: 1. Kjør kommandoen `/connect` og rull ned til **Annet**. @@ -1870,7 +1870,7 @@ Konfigurasjonsdetaljer: - **limit.context**: Maksimalt inndatatoken som modellen godtar. - **limit.output**: Maksimalt antall tokens modellen kan generere. -`limit`-feltene lar opencode forstå hvor mye kontekst du har igjen. Standardleverandører henter disse automatisk fra models.dev. +`limit`-feltene lar OpenCode forstå hvor mye kontekst du har igjen. Standardleverandører henter disse automatisk fra models.dev. --- @@ -1883,7 +1883,7 @@ Hvis du har problemer med å konfigurere en leverandør, sjekk følgende: Dette gjelder ikke leverandører som Amazon Bedrock, som er avhengige av miljøvariabler for godkjenning. -2. For tilpassede leverandører, sjekk opencode-konfigurasjonen og: - - Sørg for at leverandøren ID som brukes i `/connect`-kommandoen samsvarer med ID i opencode-konfigurasjonen. - – Den riktige npm-pakken brukes for leverandøren. Bruk for eksempel `@ai-sdk/cerebras` for Cerebras. Og for alle andre OpenAI-kompatible leverandører, bruk `@ai-sdk/openai-compatible`. +2. For tilpassede leverandører, sjekk OpenCode-konfigurasjonen og: + - Sørg for at leverandør-ID-en som brukes i `/connect`-kommandoen samsvarer med ID i OpenCode-konfigurasjonen. + - Den riktige npm-pakken brukes for leverandøren. Bruk for eksempel `@ai-sdk/cerebras` for Cerebras. Og for alle andre OpenAI-kompatible leverandører, bruk `@ai-sdk/openai-compatible`. - Kontroller at riktig API-endepunkt er brukt i `options.baseURL`-feltet. diff --git a/packages/web/src/content/docs/nb/rules.mdx b/packages/web/src/content/docs/nb/rules.mdx index 95dffff6ff..4eb16c3781 100644 --- a/packages/web/src/content/docs/nb/rules.mdx +++ b/packages/web/src/content/docs/nb/rules.mdx @@ -1,21 +1,21 @@ --- title: Regler -description: Set custom instructions for opencode. +description: Set custom instructions for OpenCode. --- -Du kan gi tilpassede instruksjoner for å opencode ved å opprette en `AGENTS.md`-fil. Dette ligner på Cursors regler. Den inneholder instruksjoner som vil bli inkludert i LLMs kontekst for å tilpasse oppførselen til ditt spesifikke prosjekt. +Du kan gi tilpassede instruksjoner for å OpenCode ved å opprette en `AGENTS.md`-fil. Dette ligner på Cursors regler. Den inneholder instruksjoner som vil bli inkludert i LLMs kontekst for å tilpasse oppførselen til ditt spesifikke prosjekt. --- ## Initialiser -For å lage en ny `AGENTS.md` fil, kan du kjøre kommandoen `/init` i opencode. +For å lage en ny `AGENTS.md` fil, kan du kjøre kommandoen `/init` i OpenCode. :::tip Du bør overgi prosjektets `AGENTS.md`-fil til Git. ::: -Dette vil skanne prosjektet og alt dets innhold for å forstå hva prosjektet handler om og generere en `AGENTS.md`-fil med det. Dette hjelper opencode å navigere i prosjektet bedre. +Dette vil skanne prosjektet og alt dets innhold for å forstå hva prosjektet handler om og generere en `AGENTS.md`-fil med det. Dette hjelper OpenCode å navigere i prosjektet bedre. Hvis du har en eksisterende `AGENTS.md`-fil, vil denne prøve å legge til den. @@ -54,7 +54,7 @@ Vi legger til prosjektspesifikke instruksjoner her, og dette vil bli delt på tv ## Typer -opencode støtter også lesing av `AGENTS.md`-filen fra flere steder. Og dette tjener forskjellige formål. +OpenCode støtter også lesing av `AGENTS.md`-filen fra flere steder. Og dette tjener forskjellige formål. ### Prosjekt @@ -62,13 +62,13 @@ Plasser en `AGENTS.md` i prosjektroten for prosjektspesifikke regler. Disse gjel ### Globalt -Du kan også ha globale regler i en `~/.config/opencode/AGENTS.md`-fil. Dette blir brukt på alle opencode-økter. +Du kan også ha globale regler i en `~/.config/opencode/AGENTS.md`-fil. Dette blir brukt på alle OpenCode-økter. Siden dette ikke er forpliktet til Git eller delt med teamet ditt, anbefaler vi å bruke dette til å spesifisere eventuelle personlige regler som LLM bør følge. -### Claude-kodekompatibilitet +### Claude Code-kompatibilitet -For brukere som migrerer fra Claude Code, støtter opencode Claude Codes filkonvensjoner som fallbacks: +For brukere som migrerer fra Claude Code, støtter OpenCode Claude Codes filkonvensjoner som fallbacks: - **Prosjektregler**: `CLAUDE.md` i prosjektkatalogen din (brukes hvis ingen `AGENTS.md` eksisterer) - **Globale regler**: `~/.claude/CLAUDE.md` (brukes hvis ingen `~/.config/opencode/AGENTS.md` eksisterer) @@ -86,7 +86,7 @@ export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills ## Forrang -Når opencode starter, ser den etter regelfiler i denne rekkefølgen: +Når OpenCode starter, ser den etter regelfiler i denne rekkefølgen: 1. **Lokale filer** ved å gå opp fra gjeldende katalog (`AGENTS.md`, `CLAUDE.md`) 2. **Global fil** på `~/.config/opencode/AGENTS.md` @@ -126,7 +126,7 @@ Alle instruksjonsfilene er kombinert med `AGENTS.md`-filene dine. ## Refererer til eksterne filer -Selv om opencode ikke automatisk analyserer filreferanser i `AGENTS.md`, kan du oppnå lignende funksjonalitet på to måter: +Selv om OpenCode ikke automatisk analyserer filreferanser i `AGENTS.md`, kan du oppnå lignende funksjonalitet på to måter: ### Bruker opencode.json @@ -141,7 +141,7 @@ Den anbefalte tilnærmingen er å bruke feltet `instructions` i `opencode.json`: ### Manuelle instruksjoner i AGENTS.md -Du kan lære opencode å lese eksterne filer ved å gi eksplisitte instruksjoner i `AGENTS.md`. Her er et praktisk eksempel: +Du kan lære OpenCode å lese eksterne filer ved å gi eksplisitte instruksjoner i `AGENTS.md`. Her er et praktisk eksempel: ```markdown title="AGENTS.md" # TypeScript Project Rules @@ -173,7 +173,7 @@ Denne tilnærmingen lar deg: - Lag modulære, gjenbrukbare regelfiler - Del regler på tvers av prosjekter via symbolkoblinger eller git-undermoduler - Hold AGENTS.md kortfattet mens du refererer til detaljerte retningslinjer -- Sørg for at opencode laster filer kun når det er nødvendig for den spesifikke oppgaven +- Sørg for at OpenCode laster filer kun når det er nødvendig for den spesifikke oppgaven :::tip For monorepos eller prosjekter med delte standarder er bruk av `opencode.json` med glob-mønstre (som `packages/*/AGENTS.md`) mer vedlikeholdbart enn manuelle instruksjoner. diff --git a/packages/web/src/content/docs/nb/sdk.mdx b/packages/web/src/content/docs/nb/sdk.mdx index 04e3816caf..b128f5b4f1 100644 --- a/packages/web/src/content/docs/nb/sdk.mdx +++ b/packages/web/src/content/docs/nb/sdk.mdx @@ -1,13 +1,13 @@ --- title: SDK -description: Typesikker JS-klient for opencode-server. +description: Typesikker JS-klient for OpenCode-server. --- import config from "../../../../config.mjs" export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` -opencode JS/TS SDK gir en typesikker klient for samhandling med serveren. -Bruk den til å bygge integrasjoner og kontrollere opencode programmatisk. +OpenCode JS/TS SDK gir en typesikker klient for samhandling med serveren. +Bruk den til å bygge integrasjoner og kontrollere OpenCode programmatisk. [Finn ut mer](/docs/server) om hvordan serveren fungerer. For eksempler, sjekk ut [prosjektene](/docs/ecosystem#projects) bygget av fellesskapet. @@ -25,7 +25,7 @@ npm install @opencode-ai/sdk ## Opprett klient -Opprett en forekomst av opencode: +Opprett en forekomst av OpenCode: ```javascript import { createOpencode } from "@opencode-ai/sdk" @@ -37,7 +37,7 @@ Dette starter både en server og en klient #### Alternativer -| Alternativ | Skriv | Beskrivelse | Standard | +| Alternativ | Type | Beskrivelse | Standard | | ---------- | ------------- | -------------------------------- | ----------- | | `hostname` | `string` | Server vertsnavn | `127.0.0.1` | | `port` | `number` | Serverport | `4096` | @@ -69,7 +69,7 @@ opencode.server.close() ## Kun klient -Hvis du allerede har en kjørende forekomst av opencode, kan du opprette en klientforekomst for å koble til den: +Hvis du allerede har en kjørende forekomst av OpenCode, kan du opprette en klientforekomst for å koble til den: ```javascript import { createOpencodeClient } from "@opencode-ai/sdk" @@ -81,7 +81,7 @@ const client = createOpencodeClient({ #### Alternativer -| Alternativ | Skriv inn | Beskrivelse | Standard | +| Alternativ | Type | Beskrivelse | Standard | | --------------- | ---------- | ---------------------------------- | ----------------------- | | `baseUrl` | `string` | URL av serveren | `http://localhost:4096` | | `fetch` | `function` | Egendefinert hentingimplementering | `globalThis.fetch` | @@ -224,7 +224,7 @@ const { providers, default: defaults } = await client.config.providers() --- -### økter +### Sesjoner | Metode | Beskrivelse | Merknader | | ---------------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/packages/web/src/content/docs/nb/server.mdx b/packages/web/src/content/docs/nb/server.mdx index 23c134a74b..16c88e60d1 100644 --- a/packages/web/src/content/docs/nb/server.mdx +++ b/packages/web/src/content/docs/nb/server.mdx @@ -1,12 +1,12 @@ --- title: Server -description: Samhandle med opencode-server over HTTP. +description: Samhandle med OpenCode-server over HTTP. --- import config from "../../../../config.mjs" export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` -Kommandoen `opencode serve` kjører en hodeløs HTTP-server som avslører et OpenAPI-endepunkt som en opencode-klient kan bruke. +Kommandoen `opencode serve` kjører en hodeløs HTTP-server som avslører et OpenAPI-endepunkt som en OpenCode-klient kan bruke. --- @@ -51,13 +51,13 @@ klient som snakker med serveren. Serveren viser en OpenAPI 3.1-spesifikasjon endepunkt. Dette endepunktet brukes også til å generere en [SDK](/docs/sdk). :::tip -Bruk opencode-serveren til å samhandle med opencode programmatisk. +Bruk OpenCode-serveren til å samhandle med OpenCode programmatisk. ::: -Denne arkitekturen lar opencode støtte flere klienter og lar deg samhandle med opencode programmatisk. +Denne arkitekturen lar OpenCode støtte flere klienter og lar deg samhandle med OpenCode programmatisk. Du kan kjøre `opencode serve` for å starte en frittstående server. Hvis du har -opencode TUI kjører, vil `opencode serve` starte en ny server. +OpenCode TUI kjører, vil `opencode serve` starte en ny server. --- @@ -65,7 +65,7 @@ opencode TUI kjører, vil `opencode serve` starte en ny server. Når du starter TUI, tildeler den tilfeldig en port og vertsnavn. Du kan i stedet sende inn `--hostname` og `--port` [flagg](/docs/cli). Bruk deretter denne til å koble til serveren. -[`/tui`](#tui) endepunktet kan brukes til å kjøre TUI gjennom serveren. Du kan for eksempel forhåndsutfylle eller kjøre en forespørsel. Dette oppsettet brukes av opencode [IDE](/docs/ide) plugins. +[`/tui`](#tui) endepunktet kan brukes til å kjøre TUI gjennom serveren. Du kan for eksempel forhåndsutfylle eller kjøre en forespørsel. Dette oppsettet brukes av OpenCode [IDE](/docs/ide) plugins. --- @@ -143,7 +143,7 @@ opencode-serveren viser følgende APIer. --- -### økter +### Sesjoner | Metode | Sti | Beskrivelse | Merknader | | -------- | ---------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------- | @@ -280,7 +280,7 @@ opencode-serveren viser følgende APIer. --- -### Dokumenter +### Dokumentasjon | Metode | Sti | Beskrivelse | Svar | | ------ | ------ | ------------------------- | ----------------------------------- | diff --git a/packages/web/src/content/docs/nb/share.mdx b/packages/web/src/content/docs/nb/share.mdx index 29dd8c58be..a6d6a67a0c 100644 --- a/packages/web/src/content/docs/nb/share.mdx +++ b/packages/web/src/content/docs/nb/share.mdx @@ -1,9 +1,9 @@ --- title: Dele -description: Del dine opencode-samtaler. +description: Del dine OpenCode-samtaler. --- -delingsfunksjonen i opencode lar deg lage offentlige lenker til dine opencode-samtaler, slik at du kan samarbeide med lagkamerater eller få hjelp fra andre. +Delingsfunksjonen i OpenCode lar deg lage offentlige lenker til dine OpenCode-samtaler, slik at du kan samarbeide med lagkamerater eller få hjelp fra andre. :::note Delte samtaler er offentlig tilgjengelige for alle med linken. @@ -13,7 +13,7 @@ Delte samtaler er offentlig tilgjengelige for alle med linken. ## Slik fungerer det -Når du deler en samtale, opencode: +Når du deler en samtale, OpenCode: 1. Oppretter en unik offentlig URL for økten din 2. Synkroniserer samtaleloggen din til serverne våre @@ -23,13 +23,13 @@ Når du deler en samtale, opencode: ## Deling -opencode støtter tre delingsmoduser som kontrollerer hvordan samtaler deles: +OpenCode støtter tre delingsmoduser som kontrollerer hvordan samtaler deles: --- ### Manuell (standard) -Som standard bruker opencode manuell delingsmodus. Økter deles ikke automatisk, men du kan dele dem manuelt ved å bruke kommandoen `/share`: +Som standard bruker OpenCode manuell delingsmodus. Økter deles ikke automatisk, men du kan dele dem manuelt ved å bruke kommandoen `/share`: ``` /share @@ -74,7 +74,7 @@ Du kan deaktivere deling helt ved å sette alternativet `share` til `"disabled"` } ``` -For å håndheve dette på tvers av teamet ditt for et gitt prosjekt, legg det til `opencode.json` i prosjektet ditt og sjekk inn i Git. +For å håndheve dette på tvers av teamet ditt for et gitt prosjekt, legg det til `opencode.json` i prosjektet ditt og sjekk det inn i Git. --- diff --git a/packages/web/src/content/docs/nb/tools.mdx b/packages/web/src/content/docs/nb/tools.mdx index 23d9de8d2d..841d44c8e4 100644 --- a/packages/web/src/content/docs/nb/tools.mdx +++ b/packages/web/src/content/docs/nb/tools.mdx @@ -3,7 +3,7 @@ title: Verktøy description: Administrer verktøyene en LLM kan bruke. --- -Verktøy lar LLM utføre handlinger i kodebasen din. opencode kommer med et sett med innebygde verktøy, men du kan utvide det med [egendefinerte verktøy](/docs/custom-tools) eller [MCP servere](/docs/mcp-servers). +Verktøy lar LLM utføre handlinger i kodebasen din. OpenCode kommer med et sett med innebygde verktøy, men du kan utvide det med [egendefinerte verktøy](/docs/custom-tools) eller [MCP servere](/docs/mcp-servers). Som standard er alle verktøy **aktivert** og trenger ikke tillatelse for å kjøre. Du kan kontrollere verktøyets oppførsel gjennom [tillatelser](/docs/permissions). @@ -41,7 +41,7 @@ Du kan også bruke jokertegn for å kontrollere flere verktøy samtidig. For eks ## Innebygd -Her er alle de innebygde verktøyene som er tilgjengelige i opencode. +Her er alle de innebygde verktøyene som er tilgjengelige i OpenCode. --- @@ -291,9 +291,9 @@ Lar LLM hente og lese nettsider. Nyttig for å slå opp dokumentasjon eller fors Søk på nettet for informasjon. :::note -Dette verktøyet er bare tilgjengelig når du bruker opencode-leverandøren eller når miljøvariabelen `OPENCODE_ENABLE_EXA` er satt til en sannverdi (f.eks. `true` eller `1`). +Dette verktøyet er bare tilgjengelig når du bruker OpenCode-leverandøren eller når miljøvariabelen `OPENCODE_ENABLE_EXA` er satt til en sannverdi (f.eks. `true` eller `1`). -Slik aktiverer du når du starter opencode: +Slik aktiverer du når du starter OpenCode: ```bash OPENCODE_ENABLE_EXA=1 opencode diff --git a/packages/web/src/content/docs/nb/troubleshooting.mdx b/packages/web/src/content/docs/nb/troubleshooting.mdx index e868fa4155..057f0db27e 100644 --- a/packages/web/src/content/docs/nb/troubleshooting.mdx +++ b/packages/web/src/content/docs/nb/troubleshooting.mdx @@ -3,7 +3,7 @@ title: Feilsøking description: Vanlige problemer og hvordan de kan løses. --- -For å feilsøke problemer med opencode, start med å sjekke loggene og lokale data den lagrer på disken. +For å feilsøke problemer med OpenCode, start med å sjekke loggene og lokale data den lagrer på disken. --- @@ -22,7 +22,7 @@ Du kan angi loggnivået med kommandolinjealternativet `--log-level` for å få m ## Lagring -opencode lagrer øktdata og andre applikasjonsdata på disken på: +OpenCode lagrer øktdata og andre applikasjonsdata på disken på: - **macOS/Linux**: `~/.local/share/opencode/` - **Windows**: Trykk `WIN+R` og lim inn `%USERPROFILE%\.local\share\opencode` @@ -39,13 +39,13 @@ Denne katalogen inneholder: ## Desktop-app -opencode Desktop kjører en lokal opencode-server (`opencode-cli` sidevognen) i bakgrunnen. De fleste problemene er forårsaket av en plugin som fungerer dårlig, en ødelagt cache eller en dårlig serverinnstilling. +OpenCode Desktop kjører en lokal OpenCode-server (`opencode-cli` sidevognen) i bakgrunnen. De fleste problemene er forårsaket av en plugin som fungerer dårlig, en ødelagt cache eller en dårlig serverinnstilling. ### Raske sjekker - Avslutt og start appen på nytt. - Hvis appen viser en feilskjerm, klikker du på **Start på nytt** og kopierer feildetaljene. -- Bare macOS: `opencode`-meny -> **Last nettvisning på nytt** (hjelper hvis UI er tom/frosset). +- Bare macOS: `OpenCode`-meny -> **Last nettvisning på nytt** (hjelper hvis UI er tom/frosset). --- @@ -72,7 +72,7 @@ Hvis du har konfigurert plugins, deaktiver dem midlertidig ved å fjerne nøkkel #### Sjekk plugin-kataloger -opencode kan også laste lokale plugins fra disken. Flytt disse midlertidig ut av veien (eller gi nytt navn til mappen) og start skrivebordsappen på nytt: +OpenCode kan også laste lokale plugins fra disken. Flytt disse midlertidig ut av veien (eller gi nytt navn til mappen) og start skrivebordsappen på nytt: - **Globale plugins** - **macOS/Linux**: `~/.config/opencode/plugins/` @@ -86,22 +86,22 @@ Hvis appen begynner å fungere igjen, aktiverer du plugins én om gangen for å ### Tøm hurtigbufferen -Hvis deaktivering av plugins ikke hjelper (eller en plugin-installasjon sitter fast), tøm hurtigbufferen slik at opencode kan gjenoppbygge den. +Hvis deaktivering av plugins ikke hjelper (eller en plugin-installasjon sitter fast), tøm hurtigbufferen slik at OpenCode kan gjenoppbygge den. -1. Avslutt opencode Desktop helt. +1. Avslutt OpenCode Desktop helt. 2. Slett hurtigbufferkatalogen: - **macOS**: Finder -> `Cmd+Shift+G` -> lim inn `~/.cache/opencode` - **Linux**: slett `~/.cache/opencode` (eller kjør `rm -rf ~/.cache/opencode`) - **Windows**: Trykk `WIN+R` og lim inn `%USERPROFILE%\.cache\opencode` -3. Start opencode Desktop på nytt. +3. Start OpenCode Desktop på nytt. --- ### Løs problemer med servertilkobling -opencode Desktop kan enten starte sin egen lokale server (standard) eller koble til en server URL du har konfigurert. +OpenCode Desktop kan enten starte sin egen lokale server (standard) eller koble til en server URL du har konfigurert. Hvis du ser en **"Tilkobling mislyktes"**-dialogboks (eller appen kommer aldri forbi splash-skjermen), se etter en tilpasset server URL. @@ -132,21 +132,21 @@ På Linux kan noen Wayland-oppsett forårsake tomme vinduer eller kompositorfeil ### Windows: WebView2 kjøretid -På Windows krever opencode Desktop Microsoft Edge **WebView2 Runtime**. Hvis appen åpnes i et tomt vindu eller ikke starter, installer/oppdater WebView2 og prøv igjen. +På Windows krever OpenCode Desktop Microsoft Edge **WebView2 Runtime**. Hvis appen åpnes i et tomt vindu eller ikke starter, installer/oppdater WebView2 og prøv igjen. --- ### Windows: Generelle ytelsesproblemer -Hvis du opplever treg ytelse, problemer med filtilgang eller terminalproblemer på Windows, kan du prøve å bruke [WSL (Windows Subsystem for Linux)](/docs/windows-wsl). WSL gir et Linux-miljø som fungerer mer sømløst med funksjonene til opencode. +Hvis du opplever treg ytelse, problemer med filtilgang eller terminalproblemer på Windows, kan du prøve å bruke [WSL (Windows Subsystem for Linux)](/docs/windows-wsl). WSL gir et Linux-miljø som fungerer mer sømløst med funksjonene til OpenCode. --- ### Varsler vises ikke -opencode Desktop viser bare systemvarsler når: +OpenCode Desktop viser bare systemvarsler når: -- varsler er aktivert for opencode i OS-innstillingene dine, og +- varsler er aktivert for OpenCode i OS-innstillingene dine, og - appvinduet er ikke fokusert. --- @@ -155,8 +155,8 @@ opencode Desktop viser bare systemvarsler når: Hvis appen ikke starter og du ikke kan slette innstillingene fra UI, tilbakestill skrivebordsappens lagrede tilstand. -1. Avslutt opencode Desktop. -2. Finn og slett disse filene (de finnes i opencode Desktop-appens datakatalog): +1. Avslutt OpenCode Desktop. +2. Finn og slett disse filene (de finnes i OpenCode Desktop-appens datakatalog): - `opencode.settings.dat` (stasjonær standardserver URL) - `opencode.global.dat` og `opencode.workspace.*.dat` (UI tilstand som nylige servere/prosjekter) @@ -171,7 +171,7 @@ Slik finner du katalogen raskt: ## Får hjelp -Hvis du opplever problemer med opencode: +Hvis du opplever problemer med OpenCode: 1. **Rapporter problemer på GitHub** @@ -195,7 +195,7 @@ Her er noen vanlige problemer og hvordan du kan løse dem. --- -### opencode vil ikke starte +### OpenCode vil ikke starte 1. Sjekk loggene for feilmeldinger 2. Prøv å kjøre med `--print-logs` for å se utdata i terminalen @@ -252,7 +252,7 @@ For å løse dette: ### AI_APICallError og leverandørpakkeproblemer -Hvis du støter på API-anropsfeil, kan dette skyldes utdaterte leverandørpakker. opencode installerer dynamisk leverandørpakker (OpenAI, Anthropic, Google, etc.) etter behov og cacher dem lokalt. +Hvis du støter på API-anropsfeil, kan dette skyldes utdaterte leverandørpakker. OpenCode installerer dynamisk leverandørpakker (OpenAI, Anthropic, Google, etc.) etter behov og cacher dem lokalt. For å løse problemer med leverandørpakke: @@ -264,9 +264,9 @@ For å løse problemer med leverandørpakke: På Windows, trykk `WIN+R` og slett: `%USERPROFILE%\.cache\opencode` -2. Start opencode på nytt for å installere de nyeste leverandørpakkene på nytt +2. Start OpenCode på nytt for å installere de nyeste leverandørpakkene på nytt -Dette vil tvinge opencode til å laste ned de nyeste versjonene av leverandørpakkene, som ofte løser kompatibilitetsproblemer med modellparametere og API-endringer. +Dette vil tvinge OpenCode til å laste ned de nyeste versjonene av leverandørpakkene, som ofte løser kompatibilitetsproblemer med modellparametere og API-endringer. --- @@ -297,4 +297,4 @@ Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & export DISPLAY=:99.0 ``` -opencode vil oppdage om du bruker Wayland og foretrekker `wl-clipboard`, ellers vil den prøve å finne utklippstavleverktøy i rekkefølgen: `xclip` og `xsel`. +OpenCode vil oppdage om du bruker Wayland og foretrekker `wl-clipboard`, ellers vil den prøve å finne utklippstavleverktøy i rekkefølgen: `xclip` og `xsel`. diff --git a/packages/web/src/content/docs/nb/web.mdx b/packages/web/src/content/docs/nb/web.mdx index e5859a8d8c..2619e385b9 100644 --- a/packages/web/src/content/docs/nb/web.mdx +++ b/packages/web/src/content/docs/nb/web.mdx @@ -1,11 +1,11 @@ --- title: Web -description: Bruke opencode i nettleseren din. +description: Bruke OpenCode i nettleseren din. --- -opencode kan kjøres som en nettapplikasjon i nettleseren din, og gir den samme kraftige AI-kodingsopplevelsen uten at du trenger en terminal. +OpenCode kan kjøres som en nettapplikasjon i nettleseren din, og gir den samme kraftige AI-kodingsopplevelsen uten at du trenger en terminal. -![opencode Web - Ny økt](../../../assets/web/web-homepage-new-session.png) +![OpenCode Web - Ny økt](../../../assets/web/web-homepage-new-session.png) ## Komme i gang @@ -15,7 +15,7 @@ Start nettgrensesnittet ved å kjøre: opencode web ``` -Dette starter en lokal server på `127.0.0.1` med en tilfeldig tilgjengelig port og åpner automatisk opencode i standard nettleser. +Dette starter en lokal server på `127.0.0.1` med en tilfeldig tilgjengelig port og åpner automatisk OpenCode i standard nettleser. :::caution Hvis `OPENCODE_SERVER_PASSWORD` ikke er satt, vil serveren være usikret. Dette er greit for lokal bruk, men bør settes for nettverkstilgang. @@ -29,11 +29,11 @@ For den beste opplevelsen, kjør `opencode web` fra [WSL](/docs/windows-wsl) i s ## Konfigurasjon -Du kan konfigurere webserveren ved å bruke kommandolinjeflagg eller i [config file](/docs/config). +Du kan konfigurere webserveren ved å bruke kommandolinjeflagg eller i [konfigurasjonsfil](/docs/config). ### Port -Som standard velger opencode en tilgjengelig port. Du kan spesifisere en port: +Som standard velger OpenCode en tilgjengelig port. Du kan spesifisere en port: ```bash opencode web --port 4096 @@ -41,13 +41,13 @@ opencode web --port 4096 ### Vertsnavn -Som standard binder serveren seg til `127.0.0.1` (kun lokal vert). Slik gjør du opencode tilgjengelig på nettverket ditt: +Som standard binder serveren seg til `127.0.0.1` (kun lokal vert). Slik gjør du OpenCode tilgjengelig på nettverket ditt: ```bash opencode web --hostname 0.0.0.0 ``` -Når du bruker `0.0.0.0`, vil opencode vise både lokale adresser og nettverksadresser: +Når du bruker `0.0.0.0`, vil OpenCode vise både lokale adresser og nettverksadresser: ``` Local access: http://localhost:4096 @@ -92,19 +92,19 @@ Brukernavnet er standard til `opencode`, men kan endres med `OPENCODE_SERVER_USE ## Bruke webgrensesnittet -Når det er startet, gir nettgrensesnittet tilgang til dine opencode-økter. +Når det er startet, gir nettgrensesnittet tilgang til dine OpenCode-økter. -### økter +### Sesjoner Se og administrer øktene dine fra hjemmesiden. Du kan se aktive økter og starte nye. -![opencode Web - Active Session](../../../assets/web/web-homepage-active-session.png) +![OpenCode Web - Active Session](../../../assets/web/web-homepage-active-session.png) ### Serverstatus Klikk "Se servere" for å se tilkoblede servere og deres status. -![opencode Web - Se servere](../../../assets/web/web-homepage-see-servers.png) +![OpenCode Web - Se servere](../../../assets/web/web-homepage-see-servers.png) --- diff --git a/packages/web/src/content/docs/nb/windows-wsl.mdx b/packages/web/src/content/docs/nb/windows-wsl.mdx index 8f3b9506df..d6f9388c57 100644 --- a/packages/web/src/content/docs/nb/windows-wsl.mdx +++ b/packages/web/src/content/docs/nb/windows-wsl.mdx @@ -1,14 +1,14 @@ --- title: Windows (WSL) -description: Kjor opencode pa Windows med WSL for best opplevelse. +description: Kjør OpenCode på Windows med WSL for best opplevelse. --- import { Steps } from "@astrojs/starlight/components" -Selv om opencode kan kjore direkte pa Windows, anbefaler vi a bruke [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) for best mulig opplevelse. WSL gir et Linux-miljo som fungerer godt med funksjonene i opencode. +Selv om OpenCode kan kjøre direkte på Windows, anbefaler vi å bruke [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) for best mulig opplevelse. WSL gir et Linux-miljø som fungerer godt med funksjonene i OpenCode. :::tip[Hvorfor WSL?] -WSL gir bedre filsystemytelse, full terminalstotte og kompatibilitet med utviklingsverktoyene opencode er avhengig av. +WSL gir bedre filsystemytelse, full terminalstøtte og kompatibilitet med utviklingsverktøyene OpenCode er avhengig av. ::: --- @@ -21,17 +21,17 @@ WSL gir bedre filsystemytelse, full terminalstotte og kompatibilitet med utvikli Hvis du ikke har gjort det ennå, [installer WSL](https://learn.microsoft.com/en-us/windows/wsl/install) med den offisielle guiden fra Microsoft. -2. **Installer opencode i WSL** +2. **Installer OpenCode i WSL** - Nar WSL er satt opp, apner du WSL-terminalen og installerer opencode med en av [installasjonsmetodene](/docs/). + Når WSL er satt opp, åpner du WSL-terminalen og installerer OpenCode med en av [installasjonsmetodene](/docs/). ```bash curl -fsSL https://opencode.ai/install | bash ``` -3. **Bruk opencode fra WSL** +3. **Bruk OpenCode fra WSL** - Gå til prosjektmappen din (Windows-filer finnes via `/mnt/c/`, `/mnt/d/` osv.) og kjør opencode. + Gå til prosjektmappen din (Windows-filer finnes via `/mnt/c/`, `/mnt/d/` osv.) og kjør OpenCode. ```bash cd /mnt/c/Users/YourName/project @@ -44,9 +44,9 @@ WSL gir bedre filsystemytelse, full terminalstotte og kompatibilitet med utvikli ## Skrivebordsapp + WSL-server -Hvis du foretrekker opencode-skrivebordsappen, men vil kjore serveren i WSL: +Hvis du foretrekker OpenCode-skrivebordsappen, men vil kjøre serveren i WSL: -1. **Start serveren i WSL** med `--hostname 0.0.0.0` for a tillate eksterne tilkoblinger: +1. **Start serveren i WSL** med `--hostname 0.0.0.0` for å tillate eksterne tilkoblinger: ```bash opencode serve --hostname 0.0.0.0 --port 4096 @@ -59,7 +59,7 @@ Hvis `localhost` ikke fungerer i oppsettet ditt, bruk WSL-IP-adressen i stedet ( ::: :::caution -Nar du bruker `--hostname 0.0.0.0`, sett `OPENCODE_SERVER_PASSWORD` for a sikre serveren. +Når du bruker `--hostname 0.0.0.0`, sett `OPENCODE_SERVER_PASSWORD` for å sikre serveren. ```bash OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 @@ -71,27 +71,27 @@ OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 ## Nettklient + WSL -For best nettopplevelse pa Windows: +For best nettopplevelse på Windows: -1. **Kjor `opencode web` i WSL-terminalen** i stedet for PowerShell: +1. **Kjør `opencode web` i WSL-terminalen** i stedet for PowerShell: ```bash opencode web --hostname 0.0.0.0 ``` -2. **Aapne i Windows-nettleseren** pa `http://localhost:` (opencode skriver ut URL-en) +2. **Åpne i Windows-nettleseren** på `http://localhost:` (OpenCode skriver ut URL-en) -Nar du kjører `opencode web` fra WSL, får du riktig filsystemtilgang og terminalintegrasjon, samtidig som det er tilgjengelig fra Windows-nettleseren din. +Når du kjører `opencode web` fra WSL, får du riktig filsystemtilgang og terminalintegrasjon, samtidig som det er tilgjengelig fra Windows-nettleseren din. --- ## Tilgang til Windows-filer -WSL kan fa tilgang til alle Windows-filer via `/mnt/`-katalogen: +WSL kan få tilgang til alle Windows-filer via `/mnt/`-katalogen: - `C:`-stasjon → `/mnt/c/` - `D:`-stasjon → `/mnt/d/` -- Og sa videre... +- Og så videre... Eksempel: @@ -101,13 +101,13 @@ opencode ``` :::tip -For en jevnere opplevelse kan du klone/kopiere repoet ditt inn i WSL-filsystemet (for eksempel under `~/code/`) og kjore opencode der. +For en jevnere opplevelse kan du klone/kopiere repoet ditt inn i WSL-filsystemet (for eksempel under `~/code/`) og kjøre OpenCode der. ::: --- ## Tips -- Kjor opencode i WSL for prosjekter lagret pa Windows-stasjoner: filtilgang fungerer smidig -- Bruk [WSL-utvidelsen i VS Code](https://code.visualstudio.com/docs/remote/wsl) sammen med opencode for en integrert utviklingsflyt -- opencode-konfigurasjon og sesjoner lagres i WSL-miljoet pa `~/.local/share/opencode/` +- Kjør OpenCode i WSL for prosjekter lagret på Windows-stasjoner: filtilgang fungerer smidig +- Bruk [WSL-utvidelsen i VS Code](https://code.visualstudio.com/docs/remote/wsl) sammen med OpenCode for en integrert utviklingsflyt +- OpenCode-konfigurasjon og sesjoner lagres i WSL-miljøet på `~/.local/share/opencode/` diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index ca50686530..9747694354 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -1,21 +1,21 @@ --- title: Zen -description: Utvalgt liste over modeller levert av opencode. +description: Utvalgt liste over modeller levert av OpenCode. --- import config from "../../../../config.mjs" export const console = config.console export const email = `mailto:${config.email}` -OpenCode Zen er en liste over testede og verifiserte modeller levert av opencode-teamet. +OpenCode Zen er en liste over testede og verifiserte modeller levert av OpenCode-teamet. :::note OpenCode Zen er for øyeblikket i beta. ::: -Zen fungerer som alle andre leverandører i opencode. Du logger på OpenCode Zen og får +Zen fungerer som alle andre leverandører i OpenCode. Du logger på OpenCode Zen og får din API nøkkel. Den er **helt valgfri** og du trenger ikke bruke den for å bruke den -opencode. +OpenCode. --- @@ -26,7 +26,7 @@ disse modellene fungerer godt som kodeagenter. I tillegg er de fleste tilbydere konfigurert veldig annerledes; slik at du får veldig forskjellig ytelse og kvalitet. :::tip -Vi testet en utvalgt gruppe modeller og leverandører som fungerer godt med opencode. +Vi testet en utvalgt gruppe modeller og leverandører som fungerer godt med OpenCode. ::: Så hvis du bruker en modell gjennom noe som OpenRouter, kan du aldri bli det @@ -47,7 +47,7 @@ OpenCode Zen er en AI gateway som gir deg tilgang til disse modellene. ## Slik fungerer det -OpenCode Zen fungerer som alle andre leverandører i opencode. +OpenCode Zen fungerer som alle andre leverandører i OpenCode. 1. Du logger på **OpenCode Zen**, legg til fakturering detaljer, og kopier API-nøkkelen. @@ -94,7 +94,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -[modell-id](/docs/config/#models) i opencode-konfigurasjonen +[modell-id](/docs/config/#models) i OpenCode-konfigurasjonen bruker formatet `opencode/`. For eksempel, for GPT 5.2 Codex, ville du bruk `opencode/gpt-5.2-codex` i konfigurasjonen din. @@ -114,41 +114,41 @@ https://opencode.ai/zen/v1/models Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1 million tokens**. -| Modell | Inngang | Utgang | Bufret Les | Bufret skriv | -| --------------------------------- | ------- | ------ | ---------- | ------------ | -| Big Pickle | Gratis | Gratis | Gratis | - | -| MiniMax M2.1 Free | Gratis | Gratis | Gratis | - | -| MiniMax M2.1 | $0,30 | $1,20 | $0,10 | - | -| GLM 4.7 Free | Gratis | Gratis | Gratis | - | -| GLM 4.7 | $0,60 | $2,20 | $0,10 | - | -| GLM 4.6 | $0,60 | $2,20 | $0,10 | - | -| Kimi K2.5 Free | Gratis | Gratis | Gratis | - | -| Kimi K2.5 | $0,60 | $3,00 | $0,08 | - | -| Kimi K2 Thinking | $0,40 | $2,50 | - | - | -| Kimi K2 | $0,40 | $2,50 | - | - | -| Qwen3 Coder 480B | $0,45 | $1,50 | - | - | -| Claude Sonnet 4.5 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 | -| Claude Sonnet 4.5 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 | -| Claude Sonnet 4 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 | -| Claude Haiku 4.5 | $1,00 | $5,00 | $0,10 | $1,25 | -| Claude Haiku 3.5 | $0,80 | $4,00 | $0,08 | $1,00 | -| Claude Opus 4.6 (≤ 200K tokens) | $5,00 | $25,00 | $0,50 | $6,25 | -| Claude Opus 4.6 (> 200K tokens) | $10,00 | $37,50 | $1,00 | $12,50 | -| Claude Opus 4.5 | $5,00 | $25,00 | $0,50 | $6,25 | -| Claude Opus 4.1 | $15,00 | $75,00 | $1,50 | $18,75 | -| Gemini 3 Pro (≤ 200K tokens) | $2,00 | $12,00 | $0,20 | - | -| Gemini 3 Pro (> 200K tokens) | $4,00 | $18,00 | $0,40 | - | -| Gemini 3 Flash | $0,50 | $3,00 | $0,05 | - | -| GPT 5.2 | $1,75 | $14,00 | $0,175 | - | -| GPT 5.2 Codex | $1,75 | $14,00 | $0,175 | - | -| GPT 5.1 | $1,07 | $8,50 | $0,107 | - | -| GPT 5.1 Codex | $1,07 | $8,50 | $0,107 | - | -| GPT 5.1 Codex Max | $1,25 | $10,00 | $0,125 | - | -| GPT 5.1 Codex Mini | $0,25 | $2,00 | $0,025 | - | -| GPT 5 | $1,07 | $8,50 | $0,107 | - | -| GPT 5 Codex | $1,07 | $8,50 | $0,107 | - | -| GPT 5 Nano | Gratis | Gratis | Gratis | - | +| Modell | Inngang | Utgang | Bufret lesing | Bufret skriving | +| --------------------------------- | ------- | ------ | ------------- | --------------- | +| Big Pickle | Gratis | Gratis | Gratis | - | +| MiniMax M2.1 Free | Gratis | Gratis | Gratis | - | +| MiniMax M2.1 | $0,30 | $1,20 | $0,10 | - | +| GLM 4.7 Free | Gratis | Gratis | Gratis | - | +| GLM 4.7 | $0,60 | $2,20 | $0,10 | - | +| GLM 4.6 | $0,60 | $2,20 | $0,10 | - | +| Kimi K2.5 Free | Gratis | Gratis | Gratis | - | +| Kimi K2.5 | $0,60 | $3,00 | $0,08 | - | +| Kimi K2 Thinking | $0,40 | $2,50 | - | - | +| Kimi K2 | $0,40 | $2,50 | - | - | +| Qwen3 Coder 480B | $0,45 | $1,50 | - | - | +| Claude Sonnet 4.5 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 | +| Claude Sonnet 4.5 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 | +| Claude Sonnet 4 (≤ 200K tokens) | $3,00 | $15,00 | $0,30 | $3,75 | +| Claude Sonnet 4 (> 200K tokens) | $6,00 | $22,50 | $0,60 | $7,50 | +| Claude Haiku 4.5 | $1,00 | $5,00 | $0,10 | $1,25 | +| Claude Haiku 3.5 | $0,80 | $4,00 | $0,08 | $1,00 | +| Claude Opus 4.6 (≤ 200K tokens) | $5,00 | $25,00 | $0,50 | $6,25 | +| Claude Opus 4.6 (> 200K tokens) | $10,00 | $37,50 | $1,00 | $12,50 | +| Claude Opus 4.5 | $5,00 | $25,00 | $0,50 | $6,25 | +| Claude Opus 4.1 | $15,00 | $75,00 | $1,50 | $18,75 | +| Gemini 3 Pro (≤ 200K tokens) | $2,00 | $12,00 | $0,20 | - | +| Gemini 3 Pro (> 200K tokens) | $4,00 | $18,00 | $0,40 | - | +| Gemini 3 Flash | $0,50 | $3,00 | $0,05 | - | +| GPT 5.2 | $1,75 | $14,00 | $0,175 | - | +| GPT 5.2 Codex | $1,75 | $14,00 | $0,175 | - | +| GPT 5.1 | $1,07 | $8,50 | $0,107 | - | +| GPT 5.1 Codex | $1,07 | $8,50 | $0,107 | - | +| GPT 5.1 Codex Max | $1,25 | $10,00 | $0,125 | - | +| GPT 5.1 Codex Mini | $0,25 | $2,00 | $0,025 | - | +| GPT 5 | $1,07 | $8,50 | $0,107 | - | +| GPT 5 Codex | $1,07 | $8,50 | $0,107 | - | +| GPT 5 Nano | Gratis | Gratis | Gratis | - | Du legger kanskje merke til _Claude Haiku 3.5_ i brukshistorikken din. Dette er en [lavprismodell](/docs/config/#models) som brukes til å generere titlene på øktene dine. @@ -158,12 +158,12 @@ Kredittkortgebyrer overføres til kostpris (4,4 % + $0,30 per transaksjon); vi b De gratis modellene: -- GLM 4.7 Free er tilgjengelig på opencode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. -- Kimi K2.5 Free er tilgjengelig på opencode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. -- MiniMax M2.1 Free er tilgjengelig på opencode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. -- Big Pickle er en stealth-modell som er gratis på opencode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. +- GLM 4.7 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. +- Kimi K2.5 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. +- MiniMax M2.1 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. +- Big Pickle er en stealth-modell som er gratis på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle tilbakemeldinger og forbedre modellen. -Contact us if you have any questions. +Kontakt oss hvis du har spørsmål. --- diff --git a/packages/web/src/content/docs/pl/agents.mdx b/packages/web/src/content/docs/pl/agents.mdx index 66c0c3f87c..e7df9b3937 100644 --- a/packages/web/src/content/docs/pl/agents.mdx +++ b/packages/web/src/content/docs/pl/agents.mdx @@ -36,7 +36,7 @@ spójrz na te poniżej. Podagenci do pomocniczych asystenci, których można przywoływać agenci główni w celu wykonania podstawowych zadań. Możesz także wytwarzać je, **@ wspominając** o nich w swoich wiadomościach. -opencode ma dwóch subagentów: **Ogólne** i **Eksploruj**. Przyjrzymy się temu poniżej. +opencode ma dwóch subagentów: **General** i **Explore**. Przyjrzymy się temu poniżej. --- @@ -46,7 +46,7 @@ opencode ma dwa główne agenty i dwa główne agenty podrzędne. --- -### korzystać z pracy +### Build _Tryb_: `primary` @@ -54,7 +54,7 @@ Kompilacja jest **domyślnym** agentem zastosowania z ukrytymi narzędziami. Jes --- -### założenie z planu +### Plan _Tryb_: `primary` @@ -68,7 +68,7 @@ Ten agent jest podłączony, gdy chcesz, aby LLM był kompatybilny z kodem, któ --- -### miejsce +### General _Tryb_: `subagent` @@ -76,7 +76,7 @@ Rozwiązanie rozwiązania złożone z zadań wieloetapowych. Pełny dostęp do n --- -### eksploracji +### Explore _Tryb_: `subagent` @@ -84,7 +84,7 @@ Szybki agent tylko do odczytu do eksploracji baz kodu. Nie można modyfikować p --- -### zagęszczanie danych +### Compaction _Tryb_: `primary` @@ -92,7 +92,7 @@ Ukryty agent systemowy, który jest kontekstem kontekstowym w dużym podsumowani --- -### jako tytuł +### Title _Tryb_: `primary` @@ -100,7 +100,7 @@ Ukryty agent systemowy, krótki tytuł sesji. Działa automatycznie i nie można --- -### Podsumowanie podsumowania +### Summary _Tryb_: `primary` @@ -302,7 +302,7 @@ Jeśli ta opcja nie zostanie skonfigurowana, agent będzie obowiązywał iteracj Po tym, jak agent limitu otrzymuje specjalny monit systemowy nakazujący podsumowanie swojej pracy i rekomendowanych do wykonywania zadań. :::caution -Starsze pole `maxSteps` jest przestarzałe. Zamiast tego nadzoru `steps`. +Starsze pole `maxSteps` jest przestarzałe. Zamiast tego użyj `steps`. ::: --- diff --git a/packages/web/src/content/docs/pl/cli.mdx b/packages/web/src/content/docs/pl/cli.mdx index 882ac91cd1..cb5e3b3fd3 100644 --- a/packages/web/src/content/docs/pl/cli.mdx +++ b/packages/web/src/content/docs/pl/cli.mdx @@ -499,12 +499,12 @@ opencode uninstall #### Flagi -| Flaga | Krótkie | Opis | -| --------------- | ------- | ----------------------------------- | -| `--keep-config` | `-c` | Zachowaj pliki konfiguracyjne | -| `--keep-data` | `-d` | Przechowuj dane sesji i szczepionek | -| `--dry-run` | | Pokaż, wykluczy bez usuwania | -| `--force` | `-f` | Pomiń monity o potwierdzenie | +| Flaga | Krótkie | Opis | +| --------------- | ------- | --------------------------------- | +| `--keep-config` | `-c` | Zachowaj pliki konfiguracyjne | +| `--keep-data` | `-d` | Przechowuj dane sesji i snapshots | +| `--dry-run` | | Pokaż, wykluczy bez usuwania | +| `--force` | `-f` | Pomiń monity o potwierdzenie | --- @@ -530,9 +530,9 @@ opencode upgrade v0.1.48 #### Flagi -| Flaga | Krótkie | Opis | -| ---------- | ------- | ---------------------------------------------------------- | -| `--method` | `-m` | Zastosowana metoda instalacji; curl, npm, pnpm, kok, napar | +| Flaga | Krótkie | Opis | +| ---------- | ------- | --------------------------------------------------------- | +| `--method` | `-m` | Zastosowana metoda instalacji; curl, npm, pnpm, bun, brew | --- @@ -540,18 +540,18 @@ opencode upgrade v0.1.48 Interfejs CLI kod opencode przyjmuje flagi globalne. -| Flaga | Krótkie | Opis | -| -------------- | ------- | --------------------------------------------- | -| `--help` | `-h` | Wyświetl pomoc | -| `--version` | `-v` | Drukuj numer wersji | -| `--print-logs` | | Wydrukuj logi na stderr | -| `--log-level` | | Poziom dziennika (DEBUG, INFO, OSTRZEŻ, BŁĄD) | +| Flaga | Krótkie | Opis | +| -------------- | ------- | ------------------------------------------- | +| `--help` | `-h` | Wyświetl pomoc | +| `--version` | `-v` | Drukuj numer wersji | +| `--print-logs` | | Wydrukuj logi na stderr | +| `--log-level` | | Poziom dziennika (DEBUG, INFO, WARN, ERROR) | --- ## Zmienne środowiskowe -opencode można wykryć za pomocą czyszczenia alternatywnych. +opencode można skonfigurować za pomocą zmiennych środowiskowych. | Zmienna | Wpisz | Opis | | ------------------------------------- | ------- | ----------------------------------------------------------------------- | @@ -599,5 +599,5 @@ Te zmienne możliwości użycia funkcji eksperymentalnych, które mogą zostać | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Wyłącz obserwatora plików | | `OPENCODE_EXPERIMENTAL_EXA` | boolean | Włącz funkcje eksperymentalne Exa | | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Włącz eksperymentalne sprawdzanie typu LSP | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Włącz funkcje eksperymentalne przecen | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Włącz funkcje eksperymentalne Markdown | | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Włącz tryb planu | diff --git a/packages/web/src/content/docs/pl/commands.mdx b/packages/web/src/content/docs/pl/commands.mdx index b3670aefb2..757959098c 100644 --- a/packages/web/src/content/docs/pl/commands.mdx +++ b/packages/web/src/content/docs/pl/commands.mdx @@ -15,7 +15,7 @@ Polecenia stanowią dodatek do dostarczonych, takich jak `/init`, `/undo`, `/red ## Utwórz źródło plikówwe -Utwórz pliki przecen w katalogu `commands/`, aby móc korzystać z usług polecanych. +Utwórz pliki Markdown w katalogu `commands/`, aby móc korzystać z usług polecanych. Utwórz `.opencode/commands/test.md`: @@ -75,7 +75,7 @@ Teraz możesz wybrać opcję w TUI: --- -### Obniżka cen +### Markdown Można także definiować polecenia za pomocą plików Markdown. Trzymaj je w: @@ -93,7 +93,7 @@ Run the full test suite with coverage report and show any failures. Focus on the failing tests and suggest fixes. ``` -Nazwa pliku przecen staje się nazwą referencyjną. Na przykład `test.md` pozwala +Nazwa pliku Markdown staje się nazwą referencyjną. Na przykład `test.md` pozwala biegniesz: ```bash frame="none" diff --git a/packages/web/src/content/docs/pl/config.mdx b/packages/web/src/content/docs/pl/config.mdx index 5a7b9beeee..327afe3687 100644 --- a/packages/web/src/content/docs/pl/config.mdx +++ b/packages/web/src/content/docs/pl/config.mdx @@ -374,7 +374,7 @@ Działaj: - `"auto"` - Automatycznie udostępniaj nowe rozmowy - `"disabled"` - Całkowicie udostępnienie -Domyślnie jest rozwiązaniem na tryb medyczny, w którym należy jawnie udostępniać rozmowy za pomocą polecenia `/share`. +Domyślnie jest rozwiązaniem na tryb manualny, w którym należy jawnie udostępniać rozmowy za pomocą polecenia `/share`. --- diff --git a/packages/web/src/content/docs/pl/index.mdx b/packages/web/src/content/docs/pl/index.mdx index f1704028fa..c89ce24ad6 100644 --- a/packages/web/src/content/docs/pl/index.mdx +++ b/packages/web/src/content/docs/pl/index.mdx @@ -223,7 +223,7 @@ Możesz zastosować opencode o nowej funkcji do Twojego projektu. Najpierw zalec 1. **Plan Stworza** - opencode ma _tryb płaski_, który umożliwia wyłączenie zmian i + opencode ma _Plan Mode_, który umożliwia wyłączenie zmian i zamiast tego zasugeruj, jak\_ zaimplementuje tę funkcję. Przejdź do niego za pomocą klawisza **Tab**. W osobnym dolnym rogu zobacz właściwy wskaźnik. @@ -266,8 +266,7 @@ Możesz zastosować opencode o nowej funkcji do Twojego projektu. Najpierw zalec 3. **Stwórz przełącza** - Kiedy już jest komfortowo z planem, przełącz się z powrotem do _trybu_ - zamknięcie na klawisza **Tab**. + Kiedy już jest komfortowo z planem, przełącz się z powrotem do _Act Mode_ na klawisza **Tab**. ```bash frame="none" diff --git a/packages/web/src/content/docs/pl/lsp.mdx b/packages/web/src/content/docs/pl/lsp.mdx index c183397f24..acdeea29d0 100644 --- a/packages/web/src/content/docs/pl/lsp.mdx +++ b/packages/web/src/content/docs/pl/lsp.mdx @@ -182,7 +182,7 @@ Serwer udostępniający serwery LSP, mechanizmy sterujące i udostępniane pliki PHP Intelephense oferuje funkcje premium poprzez klucz licencyjny. Możesz przechowywać klucz licencyjny umieszczając (tylko) klucz w pliku tekstowym pod adresem: -- W systemie macOS/Linux: `$HOME/intelephense/licence.txt` -- W systemie Windows: `%USERPROFILE%/intelephense/licence.txt` +- W systemie macOS/Linux: `$HOME/intelephense/license.txt` +- W systemie Windows: `%USERPROFILE%/intelephense/license.txt` Plik powinien zawierać wyłącznie klucz licencyjny, bez udostępniania treści. diff --git a/packages/web/src/content/docs/pl/mcp-servers.mdx b/packages/web/src/content/docs/pl/mcp-servers.mdx index 7bdf685502..6aea7a4754 100644 --- a/packages/web/src/content/docs/pl/mcp-servers.mdx +++ b/packages/web/src/content/docs/pl/mcp-servers.mdx @@ -1,5 +1,5 @@ --- -title: Serwery MPK +title: Serwery MCP description: Dodaj lokalne i zdalne narzędzie MCP. --- @@ -400,7 +400,7 @@ Poniżej znajdują się przykłady niektórych serwerów MCP. Twój prywatny PR, --- -### Wartownik +### Sentry Dodaj [serwer Sentry MCP](https://mcp.sentry.dev), aby móc wejść w interakcję z projektem i udostępnić Sentry. @@ -433,7 +433,7 @@ Show me the latest unresolved issues in my project. use sentry --- -### Kontekst7 +### Context7 Dodaj [serwer Context7 MCP](https://github.com/upstash/context7), aby przeszukać dokumenty. @@ -482,7 +482,7 @@ When you need to search docs, use `context7` tools. --- -### Grep firmy Vercel +### Grep by Vercel Dodaj serwer MCP [Grep by Vercel](https://grep.app), aby przeszukać fragmenty kodu w serwisie GitHub. diff --git a/packages/web/src/content/docs/pl/modes.mdx b/packages/web/src/content/docs/pl/modes.mdx index 636235e3cd..6cec275152 100644 --- a/packages/web/src/content/docs/pl/modes.mdx +++ b/packages/web/src/content/docs/pl/modes.mdx @@ -10,7 +10,7 @@ Opcja `mode` jest obecnie przestarzała. [Dowiedz się więcej](/docs/agents). Tryb udostępniania możliwości stosowania, narzędzie i podpowiedzi do różnych zastosowań. -Posiadanie dwa tryby: **budowanie** i **planowanie**. Można dostosować +Posiadanie dwa tryby: **Build** i **Plan**. Można dostosować te lub skonfiguruj własne za pomocą konfiguracji opencode. Można przełączać się między trybami podczas sesji lub konfigurować je w pliku konfiguracyjnym. @@ -23,9 +23,9 @@ opencode ma dwa puste tryby. --- -### Zbudować +### Build -Kompilacja jest trybem **domyślnym** z dostępnymi narzędziami. Jest to standardowy tryb pracy programistycznej, który jest dostępny z pełnym dostępem do operacji na plikach i oryginalnych systemach systemowych. +Build jest trybem **domyślnym** z dostępnymi narzędziami. Jest to standardowy tryb pracy programistycznej, który jest dostępny z pełnym dostępem do operacji na plikach i oryginalnych systemach systemowych. --- @@ -110,7 +110,7 @@ You are in code review mode. Focus on: Provide constructive feedback without making direct changes. ``` -Nazwa pliku przecen staje się kluczem trybunału (np. `review.md` tworzy tryb `review`). +Nazwa pliku przecen staje się kluczem trybu (np. `review.md` tworzy tryb `review`). Przyjrzyjmy się szczegółowo tym opcjom konfiguracji. @@ -118,7 +118,7 @@ Przyjrzyjmy się szczegółowo tym opcjom konfiguracji. ### Model -Zastosowanie konstrukcji `model`, aby zastosować domyślny model dla tego trybunału. Przydatne przy wykorzystaniu różnych modeli dostępnych w różnych zadaniach. Na przykład zastosowanie modelu, skuteczniejsze wykonanie modelu. +Zastosowanie konstrukcji `model`, aby zastosować domyślny model dla tego trybu. Przydatne przy wykorzystaniu różnych modeli dostępnych w różnych zadaniach. Na przykład zastosowanie modelu, skuteczniejsze wykonanie modelu. ```json title="opencode.json" { @@ -179,7 +179,7 @@ Jeśli nie ma wpływu na temperaturę, opencode stosuje się narzędzia badawcze ### Podpowiedź -niestandardowy plik podpowiedzi systemowych dla tej procedury za pomocą konfiguracji `prompt`. Plik informacyjny powinien zawierać instrukcje dotyczące przeznaczenia trybunału. +niestandardowy plik podpowiedzi systemowych dla tej procedury za pomocą konfiguracji `prompt`. Plik informacyjny powinien zawierać instrukcje dotyczące przeznaczenia trybu. ```json title="opencode.json" { @@ -223,7 +223,7 @@ Jeśli nie ma żadnych narzędzi, wszystkie narzędzia są wyłączone. #### Dostępne narzędzie -Oto wszystkie narzędzia, które można sterować za pomocą konfiguracji trybunałów. +Oto wszystkie narzędzia, które można sterować za pomocą konfiguracji trybów. | Narzędzie | Opis | | ----------- | ------------------------------------- | @@ -322,10 +322,10 @@ Priorities: Oto kilka typowych zastosowań dla różnych trybów. -- **Tryb stosowania**: Pełne prace programistyczne z dostępnymi narzędziami -- **Tryb planowania**: Analiza i planowanie bez zmian -- **Wypróbuj**: Przegląd kodu z możliwością odczytu i narzędzi do dokumentacji -- **Spróbuj debugowania**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu -- **Tryb Dokumenty**: Zapisywanie dokumentacji przy użyciu operacji na plikach, ale bez oryginalnych systemów systemowych +- **Build mode**: Pełne prace programistyczne z dostępnymi narzędziami +- **Plan mode**: Analiza i planowanie bez zmian +- **Review mode**: Przegląd kodu z możliwością odczytu i narzędzi do dokumentacji +- **Debug mode**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu +- **Docs mode**: Zapisywanie dokumentacji przy użyciu operacji na plikach, ale bez oryginalnych systemów systemowych Może się również zdarzyć, że różne modele są dobre w różnych wersjach użycia. diff --git a/packages/web/src/content/docs/pl/providers.mdx b/packages/web/src/content/docs/pl/providers.mdx index f8cd424116..4ed34411d1 100644 --- a/packages/web/src/content/docs/pl/providers.mdx +++ b/packages/web/src/content/docs/pl/providers.mdx @@ -583,15 +583,15 @@ Cloudflare AI Gateway umożliwia dostęp do modeli z OpenAI, Anthropic, Workers ### Firmware -1. Przejdź do [panelu oprogramowania sprzętowego](https://app.firmware.ai/signup), utwórz konto i wygeneruj klucz API. +1. Przejdź do [Firmware dashboard](https://app.firmware.ai/signup), utwórz konto i wygeneruj klucz API. -2. Uruchom polecenie `/connect` i wyszukaj **Oprogramowanie sprzętowe**. +2. Uruchom polecenie `/connect` i wyszukaj **Firmware**. ```txt /connect ``` -3. Wprowadź klucz API oprogramowania układowego. +3. Wprowadź klucz API Firmware. ```txt ┌ API key @@ -1194,7 +1194,7 @@ Aby użyć Kimi K2 z Moonshot AI: 1. Przejdź do [konsoli Nebius Token Factory](https://tokenfactory.nebius.com/), utwórz konto i kliknij **Dodaj klucz**. -2. Uruchom komendę `/connect` i wyszukaj **Fabrykę tokenów Nebius**. +2. Uruchom komendę `/connect` i wyszukaj **Nebius Token Factory**. ```txt /connect @@ -1802,7 +1802,7 @@ Możesz użyć dowolnego dostawcy kompatybilnego z OpenAI z opencode. Większoś "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "My AI Provider Display Name", + "name": "My AI ProviderDisplay Name", "options": { "baseURL": "https://api.myprovider.com/v1" }, @@ -1840,7 +1840,7 @@ Oto przykład ustawienia opcji `apiKey`, `headers` i modelu `limit`. "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "My AI Provider Display Name", + "name": "My AI ProviderDisplay Name", "options": { "baseURL": "https://api.myprovider.com/v1", "apiKey": "{env:ANTHROPIC_API_KEY}", @@ -1866,7 +1866,7 @@ Szczegóły konfiguracji: - **apiKey**: Ustaw przy użyciu składni zmiennej `env`, [dowiedz się więcej](/docs/config#env-vars). - **nagłówki**: niestandardowe nagłówki wysyłane z każdym żądaniem. -- **limit.context**: Maksymalna liczba żetonów wejściowych akceptowanych przez model. +- **limit.context**: Maksymalna liczba tokenów wejściowych akceptowanych przez model. - **limit.output**: Maksymalna liczba tokenów, które model może wygenerować. Pola `limit` pozwalają opencode zrozumieć, ile kontekstu pozostało. Standardowi dostawcy pobierają je automatycznie z models.dev. diff --git a/packages/web/src/content/docs/pl/server.mdx b/packages/web/src/content/docs/pl/server.mdx index 0fa35e858e..7c862bc0f2 100644 --- a/packages/web/src/content/docs/pl/server.mdx +++ b/packages/web/src/content/docs/pl/server.mdx @@ -176,7 +176,7 @@ Serwer opencode udostępnia następujące interfejsy API. | `POST` | `/session/:id/message` | Wyślij wiadomość i poczekaj na odpowiedź | treść: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, zwraca `{ info: `Wiadomość`, parts: `Część[]`}` | | `GET` | `/session/:id/message/:messageID` | Uzyskaj szczegóły wiadomości | Zwraca `{ info: `Wiadomość`, parts: `Część[]`}` | | `POST` | `/session/:id/prompt_async` | Wyślij wiadomość asynchronicznie (bez czekania) | treść: taka sama jak `/session/:id/message`, zwraca `204 No Content` | -| `POST` | `/session/:id/command` | Wykonaj polecenie ukośnika | treść: `{ messageID?, agent?, model?, command, arguments }`, zwraca `{ info: `Wiadomość`, parts: `Część[]`}` | +| `POST` | `/session/:id/command` | Wykonaj slash command | treść: `{ messageID?, agent?, model?, command, arguments }`, zwraca `{ info: `Wiadomość`, parts: `Część[]`}` | | `POST` | `/session/:id/shell` | Uruchom polecenie shell | treść: `{ agent, model?, command }`, zwraca `{ info: `Wiadomość`, parts: `Część[]`}` | --- @@ -250,13 +250,13 @@ Serwer opencode udostępnia następujące interfejsy API. | Method | Path | Description | Response | | ------ | ----------------------- | -------------------------------------------- | ----------------------- | -| `POST` | `/tui/append-prompt` | Dołącz tekst do zachęty | `boolean` | +| `POST` | `/tui/append-prompt` | Dołącz tekst do promptu | `boolean` | | `POST` | `/tui/open-help` | Otwórz okno pomocy | `boolean` | | `POST` | `/tui/open-sessions` | Otwórz selektor sesji | `boolean` | | `POST` | `/tui/open-themes` | Otwórz selektor motywów | `boolean` | | `POST` | `/tui/open-models` | Otwórz selektor modelu | `boolean` | -| `POST` | `/tui/submit-prompt` | Prześlij bieżący monit | `boolean` | -| `POST` | `/tui/clear-prompt` | Wyczyść monit | `boolean` | +| `POST` | `/tui/submit-prompt` | Prześlij bieżący prompt | `boolean` | +| `POST` | `/tui/clear-prompt` | Wyczyść prompt | `boolean` | | `POST` | `/tui/execute-command` | Wykonaj polecenie (`{ command }`) | `boolean` | | `POST` | `/tui/show-toast` | Pokaż toast (`{ title?, message, variant }`) | `boolean` | | `GET` | `/tui/control/next` | Poczekaj na następne żądanie kontroli | Obiekt żądania kontroli | diff --git a/packages/web/src/content/docs/pl/troubleshooting.mdx b/packages/web/src/content/docs/pl/troubleshooting.mdx index b4c1a567f3..3cded13258 100644 --- a/packages/web/src/content/docs/pl/troubleshooting.mdx +++ b/packages/web/src/content/docs/pl/troubleshooting.mdx @@ -39,7 +39,7 @@ Ten katalog zawiera: ## Desktop app -opencode Desktop uruchamia w tle lokalny serwer opencode (wózek boczny `opencode-cli`). Większość problemów jest spowodowana nieprawidłowo działającą wtyczką, uszkodzoną pamięcią podręczną lub złymi ustawieniami serwera. +opencode Desktop uruchamia w tle lokalny serwer opencode (sidecar `opencode-cli`). Większość problemów jest spowodowana nieprawidłowo działającą wtyczką, uszkodzoną pamięcią podręczną lub złymi ustawieniami serwera. ### Quick checks @@ -288,7 +288,7 @@ apt install -y xsel apt install -y wl-clipboard ``` -**Dla środowisk bezgłowych:** +**Dla środowisk headless:** ```bash apt install -y xvfb diff --git a/packages/web/src/content/docs/pl/tui.mdx b/packages/web/src/content/docs/pl/tui.mdx index 601c23d6b8..6208658353 100644 --- a/packages/web/src/content/docs/pl/tui.mdx +++ b/packages/web/src/content/docs/pl/tui.mdx @@ -65,7 +65,7 @@ Korzystając z TUI opencode, możesz wpisać `/`, po którym następuje nazwa po Większość poleceń ma również skrót klawiszowy wykorzystujący `ctrl+x` jako klucz wiodący, gdzie `ctrl+x` jest domyślnym klawiszem wiodącym. [Dowiedz się więcej](/docs/keybinds). -Oto wszystkie dostępne polecenia ukośnika: +Oto wszystkie dostępne slash commands: --- @@ -349,7 +349,7 @@ Popularne opcje edytora: Niektóre edytory, takie jak VS Code, należy uruchamiać z flagą `--wait`. ::: -Niektórzy redaktorzy potrzebują argumentów wiersza poleceń, aby działać w trybie blokowania. Flaga `--wait` blokuje proces edytora aż do jego zamknięcia. +Niektórzy edytory potrzebują argumentów wiersza poleceń, aby działać w trybie blokowania. Flaga `--wait` blokuje proces edytora aż do jego zamknięcia. --- diff --git a/packages/web/src/content/docs/pt-br/acp.mdx b/packages/web/src/content/docs/pt-br/acp.mdx index 81449d53e7..399ab1b88e 100644 --- a/packages/web/src/content/docs/pt-br/acp.mdx +++ b/packages/web/src/content/docs/pt-br/acp.mdx @@ -9,7 +9,7 @@ opencode suporta o [Agent Client Protocol](https://agentclientprotocol.com) ou ( Para uma lista de editores e ferramentas que suportam ACP, confira o [relatório de progresso do ACP](https://zed.dev/blog/acp-progress-report#available-now). ::: -ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de IA. +ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de AI. --- @@ -30,7 +30,7 @@ Adicione à sua configuração do [Zed](https://zed.dev) (`~/.config/zed/setting ```json title="~/.config/zed/settings.json" { "agent_servers": { - "opencode": { + "OpenCode": { "command": "opencode", "args": ["acp"] } @@ -51,7 +51,7 @@ Você também pode vincular um atalho de teclado editando seu `keymap.json`: { "agent": { "custom": { - "name": "opencode", + "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] @@ -74,7 +74,7 @@ Adicione ao seu acp.json do [JetBrains IDE](https://www.jetbrains.com/) de acord ```json title="acp.json" { "agent_servers": { - "opencode": { + "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } diff --git a/packages/web/src/content/docs/pt-br/agents.mdx b/packages/web/src/content/docs/pt-br/agents.mdx index 391edad0af..ddc034fad3 100644 --- a/packages/web/src/content/docs/pt-br/agents.mdx +++ b/packages/web/src/content/docs/pt-br/agents.mdx @@ -3,7 +3,7 @@ title: Agentes description: Configure e use agentes especializados. --- -Agentes são assistentes de IA especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados. +Agentes são assistentes de AI especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados. :::tip Use o agente de planejamento para analisar código e revisar sugestões sem fazer alterações no código. @@ -162,10 +162,10 @@ Configure os agentes em seu arquivo de configuração `opencode.json`: } }, "code-reviewer": { - "description": "Revisa o código em busca de melhores práticas e problemas potenciais", + "description": "Reviews code for best practices and potential issues", "mode": "subagent", "model": "anthropic/claude-sonnet-4-20250514", - "prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.", + "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", "tools": { "write": false, "edit": false @@ -186,7 +186,7 @@ Você também pode definir agentes usando arquivos markdown. Coloque-os em: ```markdown title="~/.config/opencode/agents/review.md" --- -description: Revisa o código em busca de qualidade e melhores práticas +description: Reviews code for quality and best practices mode: subagent model: anthropic/claude-sonnet-4-20250514 temperature: 0.1 @@ -196,14 +196,14 @@ tools: bash: false --- -Você está no modo de revisão de código. Foque em: +You are in code review mode. Focus on: -- Qualidade do código e melhores práticas -- Bugs potenciais e casos extremos -- Implicações de desempenho -- Considerações de segurança +- Code quality and best practices +- Potential bugs and edge cases +- Performance implications +- Security considerations -Forneça feedback construtivo sem fazer alterações diretas. +Provide constructive feedback without making direct changes. ``` O nome do arquivo markdown se torna o nome do agente. Por exemplo, `review.md` cria um agente `review`. @@ -224,7 +224,7 @@ Use a opção `description` para fornecer uma breve descrição do que o agente { "agent": { "review": { - "description": "Revisa o código em busca de melhores práticas e problemas potenciais" + "description": "Reviews code for best practices and potential issues" } } } @@ -291,8 +291,8 @@ Se isso não for definido, o agente continuará a iterar até que o modelo decid { "agent": { "quick-thinker": { - "description": "Raciocínio rápido com iterações limitadas", - "prompt": "Você é um pensador rápido. Resolva problemas com o mínimo de etapas.", + "description": "Fast reasoning with limited iterations", + "prompt": "You are a quick thinker. Solve problems with minimal steps.", "steps": 5 } } @@ -449,7 +449,7 @@ Você também pode definir permissões em agentes Markdown. ```markdown title="~/.config/opencode/agents/review.md" --- -description: Revisão de código sem edições +description: Code review without edits mode: subagent permission: edit: deny @@ -461,7 +461,7 @@ permission: webfetch: deny --- -Apenas analise o código e sugira alterações. +Only analyze code and suggest changes. ``` Você pode definir permissões para comandos bash específicos. @@ -645,7 +645,7 @@ Por exemplo, com os modelos de raciocínio da OpenAI, você pode controlar o esf { "agent": { "deep-thinker": { - "description": "Agente que usa alto esforço de raciocínio para problemas complexos", + "description": "Agent that uses high reasoning effort for complex problems", "model": "openai/gpt-5", "reasoningEffort": "high", "textVerbosity": "low" @@ -706,20 +706,20 @@ Você tem um agente que gostaria de compartilhar? [Envie um PR](https://github.c ```markdown title="~/.config/opencode/agents/docs-writer.md" --- -description: Escreve e mantém a documentação do projeto +description: Writes and maintains project documentation mode: subagent tools: bash: false --- -Você é um redator técnico. Crie documentação clara e abrangente. +You are a technical writer. Create clear, comprehensive documentation. -Foque em: +Focus on: -- Explicações claras -- Estrutura adequada -- Exemplos de código -- Linguagem amigável ao usuário +- Clear explanations +- Proper structure +- Code examples +- User-friendly language ``` --- @@ -728,20 +728,20 @@ Foque em: ```markdown title="~/.config/opencode/agents/security-auditor.md" --- -description: Realiza auditorias de segurança e identifica vulnerabilidades +description: Performs security audits and identifies vulnerabilities mode: subagent tools: write: false edit: false --- -Você é um especialista em segurança. Foque em identificar problemas potenciais de segurança. +You are a security expert. Focus on identifying potential security issues. -Procure por: +Look for: -- Vulnerabilidades de validação de entrada -- Falhas de autenticação e autorização -- Riscos de exposição de dados -- Vulnerabilidades de dependência -- Problemas de segurança de configuração +- Input validation vulnerabilities +- Authentication and authorization flaws +- Data exposure risks +- Dependency vulnerabilities +- Configuration security issues ``` diff --git a/packages/web/src/content/docs/pt-br/cli.mdx b/packages/web/src/content/docs/pt-br/cli.mdx index 1e9a766cdb..aab792a99b 100644 --- a/packages/web/src/content/docs/pt-br/cli.mdx +++ b/packages/web/src/content/docs/pt-br/cli.mdx @@ -14,7 +14,7 @@ opencode Mas também aceita comandos conforme documentado nesta página. Isso permite que você interaja com o opencode programaticamente. ```bash -opencode run "Explique como closures funcionam em JavaScript" +opencode run "Explain how closures work in JavaScript" ``` --- @@ -24,7 +24,7 @@ opencode run "Explique como closures funcionam em JavaScript" Inicie a interface de usuário do terminal do opencode. ```bash -opencode [projeto] +opencode [project] ``` #### Flags @@ -53,7 +53,7 @@ A CLI do opencode também possui os seguintes comandos. Gerencie agentes para o opencode. ```bash -opencode agent [comando] +opencode agent [command] ``` --- @@ -69,10 +69,10 @@ opencode attach [url] Isso permite usar o TUI com um backend opencode remoto. Por exemplo: ```bash -# Inicie o servidor backend para acesso web/móvel +# Start the backend server for web/mobile access opencode web --port 4096 --hostname 0.0.0.0 -# Em outro terminal, anexe o TUI ao backend em execução +# In another terminal, attach the TUI to the running backend opencode attach http://10.20.30.40:4096 ``` @@ -112,7 +112,7 @@ opencode agent list Comando para gerenciar credenciais e login para provedores. ```bash -opencode auth [comando] +opencode auth [command] ``` --- @@ -160,7 +160,7 @@ opencode auth logout Gerencie o agente do GitHub para automação de repositórios. ```bash -opencode github [comando] +opencode github [command] ``` --- @@ -199,7 +199,7 @@ opencode github run Gerencie servidores do Model Context Protocol. ```bash -opencode mcp [comando] +opencode mcp [command] ``` --- @@ -237,7 +237,7 @@ opencode mcp ls Autentique-se com um servidor MCP habilitado para OAuth. ```bash -opencode mcp auth [nome] +opencode mcp auth [name] ``` Se você não fornecer um nome de servidor, será solicitado que você selecione entre os servidores disponíveis habilitados para OAuth. @@ -261,7 +261,7 @@ opencode mcp auth ls Remova credenciais OAuth para um servidor MCP. ```bash -opencode mcp logout [nome] +opencode mcp logout [name] ``` --- @@ -271,7 +271,7 @@ opencode mcp logout [nome] Depure problemas de conexão OAuth para um servidor MCP. ```bash -opencode mcp debug +opencode mcp debug ``` --- @@ -281,7 +281,7 @@ opencode mcp debug Liste todos os modelos disponíveis dos provedores configurados. ```bash -opencode models [provedor] +opencode models [provider] ``` Este comando exibe todos os modelos disponíveis entre seus provedores configurados no formato `provider/model`. @@ -314,23 +314,23 @@ opencode models --refresh Execute o opencode em modo não interativo passando um prompt diretamente. ```bash -opencode run [mensagem..] +opencode run [message..] ``` Isso é útil para scripts, automação ou quando você deseja uma resposta rápida sem iniciar o TUI completo. Por exemplo. ```bash "opencode run" -opencode run Explique o uso de contexto em Go +opencode run Explain the use of context in Go ``` Você também pode se anexar a uma instância em execução do `opencode serve` para evitar tempos de inicialização a frio do servidor MCP em cada execução: ```bash -# Inicie um servidor sem cabeça em um terminal +# Start a headless server in one terminal opencode serve -# Em outro terminal, execute comandos que se anexam a ele -opencode run --attach http://localhost:4096 "Explique async/await em JavaScript" +# In another terminal, run commands that attach to it +opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` #### Flags @@ -378,7 +378,7 @@ Isso inicia um servidor HTTP que fornece acesso à funcionalidade do opencode se Gerencie sessões do opencode. ```bash -opencode session [comando] +opencode session [command] ``` --- @@ -436,7 +436,7 @@ Se você não fornecer um ID de sessão, será solicitado que você selecione en Importe dados da sessão de um arquivo JSON ou URL de compartilhamento do opencode. ```bash -opencode import +opencode import ``` Você pode importar de um arquivo local ou de uma URL de compartilhamento do opencode. @@ -513,7 +513,7 @@ opencode uninstall Atualiza o opencode para a versão mais recente ou uma versão específica. ```bash -opencode upgrade [alvo] +opencode upgrade [target] ``` Para atualizar para a versão mais recente. diff --git a/packages/web/src/content/docs/pt-br/commands.mdx b/packages/web/src/content/docs/pt-br/commands.mdx index 18cb9251dd..89d9655cfb 100644 --- a/packages/web/src/content/docs/pt-br/commands.mdx +++ b/packages/web/src/content/docs/pt-br/commands.mdx @@ -21,13 +21,13 @@ Crie `.opencode/commands/test.md`: ```md title=".opencode/commands/test.md" --- -description: Execute testes com cobertura +description: Run tests with coverage agent: build model: anthropic/claude-3-5-sonnet-20241022 --- -Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas. -Concentre-se nos testes que falharam e sugira correções. +Run the full test suite with coverage report and show any failures. +Focus on the failing tests and suggest fixes. ``` O frontmatter define as propriedades do comando. O conteúdo se torna o template. @@ -54,12 +54,12 @@ Use a opção `command` na sua [configuração](/docs/config) do opencode: { "$schema": "https://opencode.ai/config.json", "command": { - // Este se torna o nome do comando + // This becomes the name of the command "test": { - // Este é o prompt que será enviado ao LLM - "template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções.", - // Este é exibido como a descrição no TUI - "description": "Execute testes com cobertura", + // This is the prompt that will be sent to the LLM + "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", + // This is shown as the description in the TUI + "description": "Run tests with coverage", "agent": "build", "model": "anthropic/claude-3-5-sonnet-20241022" } @@ -84,13 +84,13 @@ Você também pode definir comandos usando arquivos markdown. Coloque-os em: ```markdown title="~/.config/opencode/commands/test.md" --- -description: Execute testes com cobertura +description: Run tests with coverage agent: build model: anthropic/claude-3-5-sonnet-20241022 --- -Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas. -Concentre-se nos testes que falharam e sugira correções. +Run the full test suite with coverage report and show any failures. +Focus on the failing tests and suggest fixes. ``` O nome do arquivo markdown se torna o nome do comando. Por exemplo, `test.md` permite que você execute: @@ -113,11 +113,11 @@ Passe argumentos para os comandos usando o espaço reservado `$ARGUMENTS`. ```md title=".opencode/commands/component.md" --- -description: Crie um novo componente +description: Create a new component --- -Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript. -Inclua tipagem adequada e estrutura básica. +Create a new React component named $ARGUMENTS with TypeScript support. +Include proper typing and basic structure. ``` Execute o comando com argumentos: @@ -139,11 +139,11 @@ Por exemplo: ```md title=".opencode/commands/create-file.md" --- -description: Crie um novo arquivo com conteúdo +description: Create a new file with content --- -Crie um arquivo chamado $1 no diretório $2 -com o seguinte conteúdo: $3 +Create a file named $1 in the directory $2 +with the following content: $3 ``` Execute o comando: @@ -162,32 +162,32 @@ Isso substitui: ### Saída do shell -Use _!`comando`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt. +Use _!`command`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt. Por exemplo, para criar um comando personalizado que analisa a cobertura de testes: ```md title=".opencode/commands/analyze-coverage.md" --- -description: Analise a cobertura de testes +description: Analyze test coverage --- -Aqui estão os resultados atuais dos testes: +Here are the current test results: !`npm test` -Com base nesses resultados, sugira melhorias para aumentar a cobertura. +Based on these results, suggest improvements to increase coverage. ``` Ou para revisar alterações recentes: ```md title=".opencode/commands/review-changes.md" --- -description: Revise alterações recentes +description: Review recent changes --- -Commits git recentes: +Recent git commits: !`git log --oneline -10` -Revise essas alterações e sugira quaisquer melhorias. +Review these changes and suggest any improvements. ``` Os comandos são executados no diretório raiz do seu projeto e sua saída se torna parte do prompt. @@ -200,11 +200,11 @@ Inclua arquivos no seu comando usando `@` seguido pelo nome do arquivo. ```md title=".opencode/commands/review-component.md" --- -description: Revise componente +description: Review component --- -Revise o componente em @src/components/Button.tsx. -Verifique problemas de desempenho e sugira melhorias. +Review the component in @src/components/Button.tsx. +Check for performance issues and suggest improvements. ``` O conteúdo do arquivo é incluído automaticamente no prompt. @@ -225,7 +225,7 @@ A opção `template` define o prompt que será enviado ao LLM quando o comando f { "command": { "test": { - "template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções." + "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes." } } } @@ -243,7 +243,7 @@ Use a opção `description` para fornecer uma breve descrição do que o comando { "command": { "test": { - "description": "Execute testes com cobertura" + "description": "Run tests with coverage" } } } diff --git a/packages/web/src/content/docs/pt-br/config.mdx b/packages/web/src/content/docs/pt-br/config.mdx index 688dc87d78..aa500a1568 100644 --- a/packages/web/src/content/docs/pt-br/config.mdx +++ b/packages/web/src/content/docs/pt-br/config.mdx @@ -14,7 +14,7 @@ O opencode suporta os formatos **JSON** e **JSONC** (JSON com Comentários). ```jsonc title="opencode.jsonc" { "$schema": "https://opencode.ai/config.json", - // Configuração do tema + // Theme configuration "theme": "opencode", "model": "anthropic/claude-sonnet-4-5", "autoupdate": true, @@ -65,7 +65,7 @@ A configuração remota é carregada primeiro, servindo como a camada base. Toda Por exemplo, se sua organização fornece servidores MCP que estão desativados por padrão: -```json title="Configuração remota de .well-known/opencode" +```json title="Remote config from .well-known/opencode" { "mcp": { "jira": { @@ -320,11 +320,11 @@ Você pode configurar agentes especializados para tarefas específicas através "$schema": "https://opencode.ai/config.json", "agent": { "code-reviewer": { - "description": "Revisa o código em busca de melhores práticas e problemas potenciais", + "description": "Reviews code for best practices and potential issues", "model": "anthropic/claude-sonnet-4-5", - "prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.", + "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", "tools": { - // Desabilitar ferramentas de modificação de arquivos para agente somente de revisão + // Disable file modification tools for review-only agent "write": false, "edit": false, }, @@ -384,14 +384,14 @@ Você pode configurar comandos personalizados para tarefas repetitivas através "$schema": "https://opencode.ai/config.json", "command": { "test": { - "template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nFoque nos testes que falharam e sugira correções.", - "description": "Executar testes com cobertura", + "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", + "description": "Run tests with coverage", "agent": "build", "model": "anthropic/claude-haiku-4-5", }, "component": { - "template": "Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.\nInclua tipagem adequada e estrutura básica.", - "description": "Criar um novo componente", + "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.", + "description": "Create a new component", }, }, } diff --git a/packages/web/src/content/docs/pt-br/custom-tools.mdx b/packages/web/src/content/docs/pt-br/custom-tools.mdx index 528e01e057..63a43df764 100644 --- a/packages/web/src/content/docs/pt-br/custom-tools.mdx +++ b/packages/web/src/content/docs/pt-br/custom-tools.mdx @@ -30,12 +30,12 @@ A maneira mais fácil de criar ferramentas é usando o helper `tool()`, que forn import { tool } from "@opencode-ai/plugin" export default tool({ - description: "Consultar o banco de dados do projeto", + description: "Query the project database", args: { - query: tool.schema.string().describe("Consulta SQL a ser executada"), + query: tool.schema.string().describe("SQL query to execute"), }, async execute(args) { - // Sua lógica de banco de dados aqui + // Your database logic here return `Executed query: ${args.query}` }, }) @@ -53,10 +53,10 @@ Você também pode exportar várias ferramentas de um único arquivo. Cada expor import { tool } from "@opencode-ai/plugin" export const add = tool({ - description: "Adicionar dois números", + description: "Add two numbers", args: { - a: tool.schema.number().describe("Primeiro número"), - b: tool.schema.number().describe("Segundo número"), + a: tool.schema.number().describe("First number"), + b: tool.schema.number().describe("Second number"), }, async execute(args) { return args.a + args.b @@ -64,10 +64,10 @@ export const add = tool({ }) export const multiply = tool({ - description: "Multiplicar dois números", + description: "Multiply two numbers", args: { - a: tool.schema.number().describe("Primeiro número"), - b: tool.schema.number().describe("Segundo número"), + a: tool.schema.number().describe("First number"), + b: tool.schema.number().describe("Second number"), }, async execute(args) { return args.a * args.b @@ -85,7 +85,7 @@ Você pode usar `tool.schema`, que é apenas [Zod](https://zod.dev), para defini ```ts "tool.schema" args: { - query: tool.schema.string().describe("Consulta SQL a ser executada") + query: tool.schema.string().describe("SQL query to execute") } ``` @@ -95,13 +95,13 @@ Você também pode importar [Zod](https://zod.dev) diretamente e retornar um obj import { z } from "zod" export default { - description: "Descrição da ferramenta", + description: "Tool description", args: { - param: z.string().describe("Descrição do parâmetro"), + param: z.string().describe("Parameter description"), }, async execute(args, context) { - // Implementação da ferramenta - return "resultado" + // Tool implementation + return "result" }, } ``` @@ -116,10 +116,10 @@ As ferramentas recebem contexto sobre a sessão atual: import { tool } from "@opencode-ai/plugin" export default tool({ - description: "Obter informações do projeto", + description: "Get project information", args: {}, async execute(args, context) { - // Acessar informações do contexto + // Access context information const { agent, sessionID, messageID, directory, worktree } = context return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}` }, @@ -154,10 +154,10 @@ import { tool } from "@opencode-ai/plugin" import path from "path" export default tool({ - description: "Adicionar dois números usando Python", + description: "Add two numbers using Python", args: { - a: tool.schema.number().describe("Primeiro número"), - b: tool.schema.number().describe("Segundo número"), + a: tool.schema.number().describe("First number"), + b: tool.schema.number().describe("Second number"), }, async execute(args, context) { const script = path.join(context.worktree, ".opencode/tools/add.py") diff --git a/packages/web/src/content/docs/pt-br/ecosystem.mdx b/packages/web/src/content/docs/pt-br/ecosystem.mdx index 3530fc8044..a405cdf62b 100644 --- a/packages/web/src/content/docs/pt-br/ecosystem.mdx +++ b/packages/web/src/content/docs/pt-br/ecosystem.mdx @@ -27,7 +27,7 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco | [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Plugin Google Antigravity OAuth, com suporte para Google Search e manuseio de API mais robusto | | [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Otimize o uso de tokens podando saídas de ferramentas obsoletas | | [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Adicione suporte nativo de pesquisa na web para provedores suportados com estilo fundamentado no Google | -| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de IA executem processos em segundo plano em um PTY, enviando entrada interativa para eles. | +| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de AI executem processos em segundo plano em um PTY, enviando entrada interativa para eles. | | [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instruções para comandos de shell não interativos - evita travamentos de operações dependentes de TTY | | [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Acompanhe o uso do opencode com Wakatime | | [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpe tabelas markdown produzidas por LLMs | @@ -35,14 +35,14 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco | [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes em segundo plano, ferramentas LSP/AST/MCP pré-construídas, agentes curados, compatível com Claude Code | | [opencode-notificator](https://github.com/panta82/opencode-notificator) | Notificações de desktop e alertas sonoros para sessões do opencode | | [opencode-notifier](https://github.com/mohak34/opencode-notifier) | Notificações de desktop e alertas sonoros para eventos de permissão, conclusão e erro | -| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de IA com base no contexto do opencode | +| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de AI com base no contexto do opencode | | [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Permite que agentes do opencode carreguem prompts sob demanda com descoberta e injeção de habilidades | | [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | Memória persistente entre sessões usando Supermemory | | [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisão de plano interativa com anotação visual e compartilhamento privado/offline | | [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Estenda opencode /commands em um poderoso sistema de orquestração com controle de fluxo granular | | [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | Agende trabalhos recorrentes usando launchd (Mac) ou systemd (Linux) com sintaxe cron | | [micode](https://github.com/vtemian/micode) | Fluxo de trabalho Estruturado Brainstorm → Planejar → Implementar com continuidade de sessão | -| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de IA com formulários de múltiplas perguntas | +| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de AI com formulários de múltiplas perguntas | | [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | Agentes em segundo plano estilo Claude Code com delegação assíncrona e persistência de contexto | | [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Notificações nativas do OS para opencode – saiba quando as tarefas são concluídas | | [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | Conjunto de orquestração multi-agente – 16 componentes, uma instalação | @@ -72,5 +72,5 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco | Nome | Descrição | | ----------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de IA modulares para desenvolvimento estruturado | +| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de AI modulares para desenvolvimento estruturado | | [opencode-agents](https://github.com/darrenhinde/opencode-agents) | Configurações, prompts, agentes e plugins para fluxos de trabalho aprimorados | diff --git a/packages/web/src/content/docs/pt-br/enterprise.mdx b/packages/web/src/content/docs/pt-br/enterprise.mdx index 385f28eea1..6ea6e5dc31 100644 --- a/packages/web/src/content/docs/pt-br/enterprise.mdx +++ b/packages/web/src/content/docs/pt-br/enterprise.mdx @@ -6,7 +6,7 @@ description: Usando opencode com segurança em sua organização. import config from "../../../../config.mjs" export const email = `mailto:${config.email}` -opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno. +opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno. :::note opencode não armazena nenhum de seus códigos ou dados de contexto. @@ -27,9 +27,9 @@ opencode é de código aberto e não armazena nenhum de seus códigos ou dados d ### Manipulação de dados -**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA. +**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI. -Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de IA interno, você pode usar o opencode com segurança. +Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de AI interno, você pode usar o opencode com segurança. A única ressalva aqui é o recurso opcional `/share`. @@ -76,7 +76,7 @@ Uma vez que você tenha concluído seu teste e esteja pronto para usar o opencod Podemos configurar o opencode para usar uma única configuração central para toda a sua organização. -Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de IA interno. +Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de AI interno. --- @@ -84,15 +84,15 @@ Essa configuração centralizada pode se integrar ao seu provedor de SSO e garan Através da configuração central, o opencode pode se integrar ao provedor de SSO de sua organização para autenticação. -Isso permite que o opencode obtenha credenciais para seu gateway de IA interno através do seu sistema de gerenciamento de identidade existente. +Isso permite que o opencode obtenha credenciais para seu gateway de AI interno através do seu sistema de gerenciamento de identidade existente. --- -### Gateway de IA Interno +### Gateway de AI Interno -Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de IA interno. +Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de AI interno. -Você também pode desativar todos os outros provedores de IA, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização. +Você também pode desativar todos os outros provedores de AI, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização. --- @@ -109,7 +109,7 @@ Isso está atualmente em nosso roadmap. Se você estiver interessado, ** O que é opencode Enterprise? -opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno. +opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno. @@ -132,7 +132,7 @@ Oferecemos preços empresariais por assento. Se você tiver seu próprio gateway
Meus dados estão seguros com opencode Enterprise? -Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização. +Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização.
diff --git a/packages/web/src/content/docs/pt-br/github.mdx b/packages/web/src/content/docs/pt-br/github.mdx index 3401c7e613..98ab1cec17 100644 --- a/packages/web/src/content/docs/pt-br/github.mdx +++ b/packages/web/src/content/docs/pt-br/github.mdx @@ -63,7 +63,7 @@ Ou você pode configurá-lo manualmente. fetch-depth: 1 persist-credentials: false - - name: Run opencode + - name: Run OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} @@ -119,11 +119,11 @@ O opencode pode ser acionado pelos seguintes eventos do GitHub: Execute o opencode em um cronograma para realizar tarefas automatizadas: ```yaml title=".github/workflows/opencode-scheduled.yml" -name: Tarefa Agendada opencode +name: Scheduled OpenCode Task on: schedule: - - cron: "0 9 * * 1" # Toda segunda-feira às 9h UTC + - cron: "0 9 * * 1" # Every Monday at 9am UTC jobs: opencode: @@ -139,15 +139,15 @@ jobs: with: persist-credentials: false - - name: Run opencode + - name: Run OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 prompt: | - Revise a base de código em busca de comentários TODO e crie um resumo. - Se você encontrar problemas que valem a pena serem abordados, abra um problema para rastreá-los. + Review the codebase for any TODO comments and create a summary. + If you find issues worth addressing, open an issue to track them. ``` Para eventos agendados, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções. Fluxos de trabalho agendados são executados sem um contexto de usuário para verificação de permissões, então o fluxo de trabalho deve conceder `contents: write` e `pull-requests: write` se você espera que o opencode crie branches ou PRs. @@ -185,10 +185,10 @@ jobs: model: anthropic/claude-sonnet-4-20250514 use_github_token: true prompt: | - Revise este pull request: - - Verifique se há problemas de qualidade de código - - Procure por bugs potenciais - - Sugira melhorias + Review this pull request: + - Check for code quality issues + - Look for potential bugs + - Suggest improvements ``` Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode padrão será revisar o pull request. @@ -200,7 +200,7 @@ Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode pad Triagem automática de novos problemas. Este exemplo filtra contas com mais de 30 dias para reduzir spam: ```yaml title=".github/workflows/opencode-triage.yml" -name: Triagem de Problemas +name: Issue Triage on: issues: @@ -215,7 +215,7 @@ jobs: pull-requests: write issues: write steps: - - name: Verificar idade da conta + - name: Check account age id: check uses: actions/github-script@v7 with: @@ -240,10 +240,10 @@ jobs: with: model: anthropic/claude-sonnet-4-20250514 prompt: | - Revise este problema. Se houver uma correção clara ou documentos relevantes: - - Forneça links de documentação - - Adicione orientações de tratamento de erros para exemplos de código - Caso contrário, não comente. + Review this issue. If there's a clear fix or relevant docs: + - Provide documentation links + - Add error handling guidance for code examples + Otherwise, do not comment. ``` Para eventos de `issues`, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções. @@ -259,10 +259,10 @@ Substitua o prompt padrão para personalizar o comportamento do opencode para se with: model: anthropic/claude-sonnet-4-5 prompt: | - Revise este pull request: - - Verifique se há problemas de qualidade de código - - Procure por bugs potenciais - - Sugira melhorias + Review this pull request: + - Check for code quality issues + - Look for potential bugs + - Suggest improvements ``` Isso é útil para impor critérios de revisão específicos, padrões de codificação ou áreas de foco relevantes para seu projeto. @@ -308,7 +308,7 @@ Aqui estão alguns exemplos de como você pode usar o opencode no GitHub. Deixe um comentário diretamente nas linhas de código na aba "Files" do PR. O opencode detecta automaticamente o arquivo, os números das linhas e o contexto do diff para fornecer respostas precisas. ``` - [Comentário sobre linhas específicas na aba Files] + [Comment on specific lines in Files tab] /oc add error handling here ``` diff --git a/packages/web/src/content/docs/pt-br/gitlab.mdx b/packages/web/src/content/docs/pt-br/gitlab.mdx index b02f104aa9..7a2ce36ea1 100644 --- a/packages/web/src/content/docs/pt-br/gitlab.mdx +++ b/packages/web/src/content/docs/pt-br/gitlab.mdx @@ -35,9 +35,9 @@ Aqui estamos usando um componente CI/CD criado pela comunidade para opencode — - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 inputs: config_dir: ${CI_PROJECT_DIR}/opencode-config - auth_json: $OPENCODE_AUTH_JSON # O nome da variável para seu JSON de autenticação do opencode + auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON command: optional-custom-command - message: "Seu prompt aqui" + message: "Your prompt here" ``` Para mais entradas e casos de uso [consulte a documentação](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) deste componente. @@ -70,7 +70,7 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent 1. Configure seu ambiente GitLab 2. Configure CI/CD -3. Obtenha uma chave de API do provedor de modelo de IA +3. Obtenha uma chave de API do provedor de modelo de AI 4. Crie uma conta de serviço 5. Configure variáveis de CI/CD 6. Crie um arquivo de configuração de fluxo, aqui está um exemplo: @@ -82,16 +82,16 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent ```yaml image: node:22-slim commands: - - echo "Instalando opencode" + - echo "Installing opencode" - npm install --global opencode-ai - - echo "Instalando glab" + - echo "Installing glab" - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/* - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash - apt-get install --yes glab - - echo "Configurando glab" + - echo "Configuring glab" - echo $GITLAB_HOST - - echo "Criando configuração de autenticação do opencode" + - echo "Creating OpenCode auth configuration" - mkdir --parents ~/.local/share/opencode - | cat > ~/.local/share/opencode/auth.json << EOF @@ -102,47 +102,47 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent } } EOF - - echo "Configurando git" + - echo "Configuring git" - git config --global user.email "opencode@gitlab.com" - - git config --global user.name "opencode" - - echo "Testando glab" + - git config --global user.name "OpenCode" + - echo "Testing glab" - glab issue list - - echo "Executando opencode" + - echo "Running OpenCode" - | opencode run " - Você é um assistente de IA ajudando com operações do GitLab. + You are an AI assistant helping with GitLab operations. - Contexto: $AI_FLOW_CONTEXT - Tarefa: $AI_FLOW_INPUT - Evento: $AI_FLOW_EVENT + Context: $AI_FLOW_CONTEXT + Task: $AI_FLOW_INPUT + Event: $AI_FLOW_EVENT - Por favor, execute a tarefa solicitada usando as ferramentas disponíveis do GitLab. - Seja minucioso em sua análise e forneça explicações claras. + Please execute the requested task using the available GitLab tools. + Be thorough in your analysis and provide clear explanations. - Por favor, use a CLI do glab para acessar dados do GitLab. A CLI do glab já foi autenticada. Você pode executar os comandos correspondentes. + Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands. - Se você for solicitado a resumir um MR ou problema ou a fornecer mais informações, então, por favor, poste uma nota de volta ao MR/Problema para que o usuário possa vê-la. - Você não precisa fazer commit ou push das alterações, isso será feito automaticamente com base nas alterações de arquivo que você fizer. + If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it. + You don't need to commit or push up changes, those will be done automatically based on the file changes you make. " - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF - - echo "Verificando alterações no git e fazendo push se existirem" + - echo "Checking for git changes and pushing if any exist" - | if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then - echo "Alterações no Git detectadas, adicionando e fazendo push..." + echo "Git changes detected, adding and pushing..." git add . if git diff --cached --quiet; then - echo "Nenhuma alteração em estágio para fazer commit" + echo "No staged changes to commit" else - echo "Fazendo commit das alterações no branch: $CI_WORKLOAD_REF" - git commit --message "Alterações do Codex" - echo "Fazendo push das alterações para $CI_WORKLOAD_REF" + echo "Committing changes to branch: $CI_WORKLOAD_REF" + git commit --message "Codex changes" + echo "Pushing changes up to $CI_WORKLOAD_REF" git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF - echo "Alterações enviadas com sucesso" + echo "Changes successfully pushed" fi else - echo "Nenhuma alteração no git detectada, pulando push" + echo "No git changes detected, skipping push" fi variables: - ANTHROPIC_API_KEY diff --git a/packages/web/src/content/docs/pt-br/index.mdx b/packages/web/src/content/docs/pt-br/index.mdx index a7c388a136..bbb951d23b 100644 --- a/packages/web/src/content/docs/pt-br/index.mdx +++ b/packages/web/src/content/docs/pt-br/index.mdx @@ -147,7 +147,7 @@ Se você é novo no uso de provedores de LLM, recomendamos usar o [OpenCode Zen] 3. Cole sua chave de API. ```txt - ┌ Chave de API + ┌ API key │ │ └ enter @@ -162,7 +162,7 @@ Alternativamente, você pode selecionar um dos outros provedores. [Saiba mais](/ Agora que você configurou um provedor, pode navegar até um projeto no qual deseja trabalhar. ```bash -cd /caminho/para/projeto +cd /path/to/project ``` E execute o opencode. @@ -204,7 +204,7 @@ Use a tecla `@` para buscar arquivos no projeto. ::: ```txt frame="none" "@packages/functions/src/api/index.ts" -Como a autenticação é tratada em @packages/functions/src/api/index.ts +How is authentication handled in @packages/functions/src/api/index.ts ``` Isso é útil se houver uma parte da base de código na qual você não trabalhou. @@ -221,16 +221,16 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor Mude para ele usando a tecla **Tab**. Você verá um indicador para isso no canto inferior direito. - ```bash frame="none" title="Mudar para o modo de plano" + ```bash frame="none" title="Switch to Plan mode" ``` Agora vamos descrever o que queremos que ele faça. ```txt frame="none" - Quando um usuário excluir uma nota, gostaríamos de marcá-la como excluída no banco de dados. - Em seguida, crie uma tela que mostre todas as notas recentemente excluídas. - A partir dessa tela, o usuário pode restaurar uma nota ou excluí-la permanentemente. + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. ``` Você quer dar ao opencode detalhes suficientes para entender o que você deseja. Ajuda conversar com ele como se você estivesse falando com um desenvolvedor júnior da sua equipe. @@ -244,8 +244,8 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor Uma vez que ele lhe der um plano, você pode dar feedback ou adicionar mais detalhes. ```txt frame="none" - Gostaríamos de projetar essa nova tela usando um design que já usei antes. - [Imagem #1] Dê uma olhada nesta imagem e use-a como referência. + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. ``` :::tip @@ -265,7 +265,7 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor E peça para ele fazer as alterações. ```bash frame="none" - Parece bom! Vá em frente e faça as alterações. + Sounds good! Go ahead and make the changes. ``` --- @@ -275,7 +275,9 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor Para alterações mais simples, você pode pedir ao opencode para construí-las diretamente sem precisar revisar o plano primeiro. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" -Precisamos adicionar autenticação à rota /settings. Dê uma olhada em como isso é tratado na rota /notes em @packages/functions/src/notes.ts e implemente a mesma lógica em @packages/functions/src/settings.ts +We need to add authentication to the /settings route. Take a look at how this is +handled in the /notes route in @packages/functions/src/notes.ts and implement +the same logic in @packages/functions/src/settings.ts ``` Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o opencode faça as alterações corretas. @@ -287,7 +289,7 @@ Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o ope Vamos supor que você peça ao opencode para fazer algumas alterações. ```txt frame="none" "@packages/functions/src/api/index.ts" -Você pode refatorar a função em @packages/functions/src/api/index.ts? +Can you refactor the function in @packages/functions/src/api/index.ts? ``` Mas você percebe que não era isso que você queria. Você **pode desfazer** as alterações usando o comando `/undo`. @@ -299,7 +301,7 @@ Mas você percebe que não era isso que você queria. Você **pode desfazer** as O opencode agora reverterá as alterações que você fez e mostrará sua mensagem original novamente. ```txt frame="none" "@packages/functions/src/api/index.ts" -Você pode refatorar a função em @packages/functions/src/api/index.ts? +Can you refactor the function in @packages/functions/src/api/index.ts? ``` A partir daqui, você pode ajustar o prompt e pedir ao opencode para tentar novamente. diff --git a/packages/web/src/content/docs/pt-br/lsp.mdx b/packages/web/src/content/docs/pt-br/lsp.mdx index 12cdf0ab26..9dab7555f2 100644 --- a/packages/web/src/content/docs/pt-br/lsp.mdx +++ b/packages/web/src/content/docs/pt-br/lsp.mdx @@ -182,7 +182,7 @@ Você pode adicionar servidores LSP personalizados especificando o comando e as PHP Intelephense oferece recursos premium através de uma chave de licença. Você pode fornecer uma chave de licença colocando (apenas) a chave em um arquivo de texto em: -- No macOS/Linux: `$HOME/intelephense/licence.txt` -- No Windows: `%USERPROFILE%/intelephense/licence.txt` +- No macOS/Linux: `$HOME/intelephense/license.txt` +- No Windows: `%USERPROFILE%/intelephense/license.txt` O arquivo deve conter apenas a chave de licença sem conteúdo adicional. diff --git a/packages/web/src/content/docs/pt-br/mcp-servers.mdx b/packages/web/src/content/docs/pt-br/mcp-servers.mdx index 9a8673f30e..5978690353 100644 --- a/packages/web/src/content/docs/pt-br/mcp-servers.mdx +++ b/packages/web/src/content/docs/pt-br/mcp-servers.mdx @@ -29,11 +29,11 @@ Você pode definir servidores MCP em sua [Configuração do opencode](https://op { "$schema": "https://opencode.ai/config.json", "mcp": { - "mcp-server-name": { + "name-of-mcp-server": { // ... "enabled": true, }, - "another-mcp-server-name": { + "name-of-other-mcp-server": { // ... }, }, @@ -77,11 +77,11 @@ Adicione servidores MCP locais usando `type` como `"local"` dentro do objeto MCP "mcp": { "my-local-mcp-server": { "type": "local", - // Ou ["bun", "x", "my-mcp-command"] + // Or ["bun", "x", "my-mcp-command"] "command": ["npx", "-y", "my-mcp-command"], "enabled": true, "environment": { - "MY_ENV_VAR": "env_var_value", + "MY_ENV_VAR": "my_env_var_value", }, }, }, @@ -183,7 +183,7 @@ Para a maioria dos servidores MCP habilitados para OAuth, nenhuma configuração "mcp": { "my-oauth-server": { "type": "remote", - "url": "https://mcp.exemplo.com/mcp" + "url": "https://mcp.example.com/mcp" } } } @@ -203,9 +203,9 @@ Se você tiver credenciais de cliente do provedor do servidor MCP, pode configur "mcp": { "my-oauth-server": { "type": "remote", - "url": "https://mcp.exemplo.com/mcp", + "url": "https://mcp.example.com/mcp", "oauth": { - "clientId": "{env:MY_MCP_CLIENT_KEY}", + "clientId": "{env:MY_MCP_CLIENT_ID}", "clientSecret": "{env:MY_MCP_CLIENT_SECRET}", "scope": "tools:read tools:execute" } @@ -252,7 +252,7 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p "mcp": { "my-api-key-server": { "type": "remote", - "url": "https://mcp.exemplo.com/mcp", + "url": "https://mcp.example.com/mcp", "oauth": false, "headers": { "Authorization": "Bearer {env:MY_API_KEY}" @@ -278,10 +278,10 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p Se um servidor MCP remoto estiver falhando na autenticação, você pode diagnosticar problemas com: ```bash -# Ver status de autenticação para todos os servidores com capacidade OAuth +# View auth status for all OAuth-capable servers opencode mcp auth list -# Depurar conexão e fluxo OAuth para um servidor específico +# Debug connection and OAuth flow for a specific server opencode mcp debug my-oauth-server ``` @@ -387,7 +387,7 @@ O padrão glob usa padrões simples de regex globbing: As ferramentas do servidor MCP são registradas com o nome do servidor como prefixo, então para desabilitar todas as ferramentas de um servidor, simplesmente use: ``` -"mynome_do_servidor_mcp_*": false +"mymcpservername_*": false ``` ::: diff --git a/packages/web/src/content/docs/pt-br/modes.mdx b/packages/web/src/content/docs/pt-br/modes.mdx index 7198f6b93f..0eea196d8b 100644 --- a/packages/web/src/content/docs/pt-br/modes.mdx +++ b/packages/web/src/content/docs/pt-br/modes.mdx @@ -36,7 +36,7 @@ Um modo restrito projetado para planejamento e análise. No modo plan, as seguin - `patch` - Não pode aplicar patches - `bash` - Não pode executar comandos de shell -Este modo é útil quando você deseja que a IA analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código. +Este modo é útil quando você deseja que a AI analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código. --- @@ -98,14 +98,14 @@ tools: bash: false --- -Você está no modo de revisão de código. Foque em: +You are in code review mode. Focus on: -- Qualidade do código e melhores práticas -- Bugs potenciais e casos extremos -- Implicações de desempenho -- Considerações de segurança +- Code quality and best practices +- Potential bugs and edge cases +- Performance implications +- Security considerations -Forneça feedback construtivo sem fazer alterações diretas. +Provide constructive feedback without making direct changes. ``` O nome do arquivo markdown se torna o nome do modo (por exemplo, `review.md` cria um modo `review`). @@ -132,7 +132,7 @@ Use a configuração `model` para substituir o modelo padrão para este modo. Ú ### Temperatura -Controle a aleatoriedade e a criatividade das respostas da IA com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade. +Controle a aleatoriedade e a criatividade das respostas da AI com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade. ```json title="opencode.json" { @@ -278,17 +278,17 @@ tools: edit: false --- -Você está no modo de depuração. Seu objetivo principal é ajudar a investigar e diagnosticar problemas. +You are in debug mode. Your primary goal is to help investigate and diagnose issues. -Foque em: +Focus on: -- Compreender o problema através de uma análise cuidadosa -- Usar comandos bash para inspecionar o estado do sistema -- Ler arquivos e logs relevantes -- Pesquisar padrões e anomalias -- Fornecer explicações claras das descobertas +- Understanding the problem through careful analysis +- Using bash commands to inspect system state +- Reading relevant files and logs +- Searching for patterns and anomalies +- Providing clear explanations of findings -Não faça alterações em arquivos. Apenas investigue e relate. +Do not make any changes to files. Only investigate and report. ``` ```markdown title="~/.config/opencode/modes/refactor.md" @@ -302,15 +302,15 @@ tools: glob: true --- -Você está no modo de refatoração. Foque em melhorar a qualidade do código sem alterar a funcionalidade. +You are in refactoring mode. Focus on improving code quality without changing functionality. -Prioridades: +Priorities: -- Melhorar a legibilidade e a manutenibilidade do código -- Aplicar convenções de nomenclatura consistentes -- Reduzir a duplicação de código -- Otimizar o desempenho onde apropriado -- Garantir que todos os testes continuem passando +- Improve code readability and maintainability +- Apply consistent naming conventions +- Reduce code duplication +- Optimize performance where appropriate +- Ensure all tests continue to pass ``` --- diff --git a/packages/web/src/content/docs/pt-br/network.mdx b/packages/web/src/content/docs/pt-br/network.mdx index 48300a7b52..25052ae122 100644 --- a/packages/web/src/content/docs/pt-br/network.mdx +++ b/packages/web/src/content/docs/pt-br/network.mdx @@ -12,13 +12,13 @@ opencode suporta variáveis de ambiente de proxy padrão e certificados personal opencode respeita variáveis de ambiente de proxy padrão. ```bash -# Proxy HTTPS (recomendado) +# HTTPS proxy (recommended) export HTTPS_PROXY=https://proxy.example.com:8080 -# Proxy HTTP (se HTTPS não estiver disponível) +# HTTP proxy (if HTTPS not available) export HTTP_PROXY=http://proxy.example.com:8080 -# Ignorar proxy para servidor local (obrigatório) +# Bypass proxy for local server (required) export NO_PROXY=localhost,127.0.0.1 ``` diff --git a/packages/web/src/content/docs/pt-br/permissions.mdx b/packages/web/src/content/docs/pt-br/permissions.mdx index 5f20b0d1d7..13299e576a 100644 --- a/packages/web/src/content/docs/pt-br/permissions.mdx +++ b/packages/web/src/content/docs/pt-br/permissions.mdx @@ -221,7 +221,7 @@ Você também pode configurar permissões de agentes em Markdown: ```markdown title="~/.config/opencode/agents/review.md" --- -description: Revisão de código sem edições +description: Code review without edits mode: subagent permission: edit: deny @@ -229,7 +229,7 @@ permission: webfetch: deny --- -Apenas analise o código e sugira alterações. +Only analyze code and suggest changes. ``` :::tip diff --git a/packages/web/src/content/docs/pt-br/plugins.mdx b/packages/web/src/content/docs/pt-br/plugins.mdx index 99b9af8191..eed62df67e 100644 --- a/packages/web/src/content/docs/pt-br/plugins.mdx +++ b/packages/web/src/content/docs/pt-br/plugins.mdx @@ -104,10 +104,10 @@ export const MyPlugin = async (ctx) => { ```js title=".opencode/plugins/example.js" export const MyPlugin = async ({ project, client, $, directory, worktree }) => { - console.log("Plugin inicializado!") + console.log("Plugin initialized!") return { - // Implementações de hooks vão aqui + // Hook implementations go here } } ``` @@ -117,7 +117,7 @@ A função do plugin recebe: - `project`: As informações do projeto atual. - `directory`: O diretório de trabalho atual. - `worktree`: O caminho do worktree do git. -- `client`: Um cliente SDK do opencode para interagir com a IA. +- `client`: Um cliente SDK do opencode para interagir com a AI. - `$`: A [API shell](https://bun.com/docs/runtime/shell) do Bun para executar comandos. --- @@ -131,7 +131,7 @@ import type { Plugin } from "@opencode-ai/plugin" export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => { return { - // Implementações de hooks seguras em tipo + // Type-safe hook implementations } } ``` @@ -222,7 +222,7 @@ Envie notificações quando certos eventos ocorrerem: export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => { return { event: async ({ event }) => { - // Enviar notificação ao concluir a sessão + // Send notification on session completion if (event.type === "session.idle") { await $`osascript -e 'display notification "Session completed!" with title "opencode"'` } @@ -248,7 +248,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree }) return { "tool.execute.before": async (input, output) => { if (input.tool === "read" && output.args.filePath.includes(".env")) { - throw new Error("Não leia arquivos .env") + throw new Error("Do not read .env files") } }, } @@ -259,13 +259,13 @@ export const EnvProtection = async ({ project, client, $, directory, worktree }) ### Injetar variáveis de ambiente -Injete variáveis de ambiente em todas as execuções de shell (ferramentas de IA e terminais de usuário): +Injete variáveis de ambiente em todas as execuções de shell (ferramentas de AI e terminais de usuário): ```javascript title=".opencode/plugins/inject-env.js" export const InjectEnvPlugin = async () => { return { "shell.env": async (input, output) => { - output.env.MY_API_KEY = "secreto" + output.env.MY_API_KEY = "secret" output.env.PROJECT_ROOT = input.cwd }, } @@ -285,7 +285,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { return { tool: { mytool: tool({ - description: "Esta é uma ferramenta personalizada", + description: "This is a custom tool", args: { foo: tool.schema.string(), }, @@ -319,7 +319,7 @@ export const MyPlugin = async ({ client }) => { body: { service: "my-plugin", level: "info", - message: "Plugin inicializado", + message: "Plugin initialized", extra: { foo: "bar" }, }, }) @@ -340,14 +340,14 @@ import type { Plugin } from "@opencode-ai/plugin" export const CompactionPlugin: Plugin = async (ctx) => { return { "experimental.session.compacting": async (input, output) => { - // Injetar contexto adicional no prompt de compactação + // Inject additional context into the compaction prompt output.context.push(` -## Contexto Personalizado +## Custom Context -Inclua qualquer estado que deve persistir entre as compactações: -- Status da tarefa atual -- Decisões importantes tomadas -- Arquivos sendo trabalhados ativamente +Include any state that should persist across compaction: +- Current task status +- Important decisions made +- Files being actively worked on `) }, } @@ -364,17 +364,17 @@ import type { Plugin } from "@opencode-ai/plugin" export const CustomCompactionPlugin: Plugin = async (ctx) => { return { "experimental.session.compacting": async (input, output) => { - // Substituir todo o prompt de compactação + // Replace the entire compaction prompt output.prompt = ` -Você está gerando um prompt de continuação para uma sessão de enxame multi-agente. +You are generating a continuation prompt for a multi-agent swarm session. -Resuma: -1. A tarefa atual e seu status -2. Quais arquivos estão sendo modificados e por quem -3. Quaisquer bloqueios ou dependências entre agentes -4. Os próximos passos para concluir o trabalho +Summarize: +1. The current task and its status +2. Which files are being modified and by whom +3. Any blockers or dependencies between agents +4. The next steps to complete the work -Formate como um prompt estruturado que um novo agente pode usar para retomar o trabalho. +Format as a structured prompt that a new agent can use to resume work. ` }, } diff --git a/packages/web/src/content/docs/pt-br/providers.mdx b/packages/web/src/content/docs/pt-br/providers.mdx index 572d8dc6ab..c07844de80 100644 --- a/packages/web/src/content/docs/pt-br/providers.mdx +++ b/packages/web/src/content/docs/pt-br/providers.mdx @@ -65,7 +65,7 @@ Se você é novo, recomendamos começar com o OpenCode Zen. 3. Cole sua chave da API. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -104,7 +104,7 @@ Não vê um provedor aqui? Envie um PR. 3. Insira sua chave da API 302.AI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -135,13 +135,13 @@ Para usar o Amazon Bedrock com o opencode: Defina uma dessas variáveis de ambiente ao executar o opencode: ```bash - # Opção 1: Usando chaves de acesso da AWS + # Option 1: Using AWS access keys AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode - # Opção 2: Usando perfil nomeado da AWS + # Option 2: Using named AWS profile AWS_PROFILE=my-profile opencode - # Opção 3: Usando token bearer do Bedrock + # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode ``` @@ -258,11 +258,11 @@ Para perfis de inferência personalizados, use o nome do modelo e do provedor na 2. Aqui você pode selecionar a opção **Claude Pro/Max** e isso abrirá seu navegador e pedirá para você se autenticar. ```txt - ┌ Selecionar método de autenticação + ┌ Select auth method │ │ Claude Pro/Max - │ Criar uma chave da API - │ Inserir chave da API manualmente + │ Create an API Key + │ Manually enter API Key └ ``` @@ -309,7 +309,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent 4. Insira sua chave da API. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -356,7 +356,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent 4. Insira sua chave da API. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -395,7 +395,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent 3. Insira sua chave da API Baseten. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -422,7 +422,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent 3. Insira sua chave da API Cerebras. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -445,8 +445,8 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 2. Defina seu ID de Conta e ID de Gateway como variáveis de ambiente. ```bash title="~/.bash_profile" - export CLOUDFLARE_ACCOUNT_ID=seu-id-de-conta-de-32-caracteres - export CLOUDFLARE_GATEWAY_ID=seu-id-de-gateway + export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id + export CLOUDFLARE_GATEWAY_ID=your-gateway-id ``` 3. Execute o comando `/connect` e procure por **Cloudflare AI Gateway**. @@ -458,7 +458,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 4. Insira seu token da API do Cloudflare. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -467,7 +467,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W Ou defina como uma variável de ambiente. ```bash title="~/.bash_profile" - export CLOUDFLARE_API_TOKEN=seu-token-da-api + export CLOUDFLARE_API_TOKEN=your-api-token ``` 5. Execute o comando `/models` para selecionar um modelo. @@ -507,7 +507,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 3. Insira sua chave da API Cortecs. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -534,7 +534,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 3. Insira sua chave da API DeepSeek. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -561,7 +561,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 3. Insira sua chave da API Deep Infra. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -588,7 +588,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 3. Insira sua chave da API Firmware. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -615,7 +615,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W 3. Insira sua chave da API Fireworks AI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -642,10 +642,10 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do 2. Escolha seu método de autenticação: ```txt - ┌ Selecionar método de autenticação + ┌ Select auth method │ - │ OAuth (Recomendado) - │ Token de Acesso Pessoal + │ OAuth (Recommended) + │ Personal Access Token └ ``` @@ -656,7 +656,7 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do #### Usando Token de Acesso Pessoal 1. Vá para [Configurações do Usuário do GitLab > Tokens de Acesso](https://gitlab.com/-/user_settings/personal_access_tokens) 2. Clique em **Adicionar novo token** - 3. Nome: `opencode`, Escopos: `api` + 3. Nome: `OpenCode`, Escopos: `api` 4. Copie o token (começa com `glpat-`) 5. Insira-o no terminal @@ -679,7 +679,7 @@ armazenar o token no armazenamento de autenticação do opencode. ##### GitLab Auto-Hospedado :::note[nota de conformidade] -opencode usa um pequeno modelo para algumas tarefas de IA, como gerar o título da sessão. +opencode usa um pequeno modelo para algumas tarefas de AI, como gerar o título da sessão. Ele está configurado para usar gpt-5-nano por padrão, hospedado pela Zen. Para bloquear o opencode para usar apenas sua própria instância hospedada do GitLab, adicione o seguinte ao seu arquivo `opencode.json`. Também é recomendado desativar o compartilhamento de sessões. @@ -737,7 +737,7 @@ URL de callback `http://127.0.0.1:8080/callback` e os seguintes escopos: Em seguida, exponha o ID do aplicativo como variável de ambiente: ```bash -export GITLAB_OAUTH_CLIENT_ID=seu_id_do_aplicativo_aqui +export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ``` Mais documentação na página [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth). @@ -797,13 +797,13 @@ Alguns modelos precisam ser habilitados manualmente nas suas [configurações do 2. Navegue até [github.com/login/device](https://github.com/login/device) e insira o código. ```txt - ┌ Login com GitHub Copilot + ┌ Login with GitHub Copilot │ │ https://github.com/login/device │ - │ Insira o código: 8F43-6FCF + │ Enter code: 8F43-6FCF │ - └ Aguardando autorização... + └ Waiting for authorization... ``` 3. Agora execute o comando `/models` para selecionar o modelo que você deseja. @@ -835,14 +835,14 @@ Para usar o Google Vertex AI com o opencode: Defina-as ao executar o opencode. ```bash - GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json GOOGLE_CLOUD_PROJECT=seu-id-do-projeto opencode + GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode ``` Ou adicione-as ao seu perfil bash. ```bash title="~/.bash_profile" - export GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json - export GOOGLE_CLOUD_PROJECT=seu-id-do-projeto + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json + export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global ``` @@ -871,7 +871,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional. 3. Insira a chave da API para o provedor. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -900,7 +900,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional. 3. Insira seu token do Hugging Face. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -916,7 +916,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional. ### Helicone -[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de IA. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo. +[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de AI. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo. 1. Acesse [Helicone](https://helicone.ai), crie uma conta e gere uma chave da API a partir do seu painel. @@ -929,7 +929,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional. 3. Insira sua chave da API Helicone. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -961,8 +961,8 @@ Aqui está o [Diretório de Modelos do Helicone](https://helicone.ai/models), vo }, "models": { "gpt-4o": { - // ID do modelo (da página do diretório de modelos do Helicone) - "name": "GPT-4o", // Seu próprio nome personalizado para o modelo + // Model ID (from Helicone's model directory page) + "name": "GPT-4o", // Your own custom name for the model }, "claude-sonnet-4-20250514": { "name": "Claude Sonnet 4", @@ -1080,7 +1080,7 @@ IO.NET oferece 17 modelos otimizados para vários casos de uso: 3. Insira sua chave da API IO.NET. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1143,7 +1143,7 @@ Para usar Kimi K2 do Moonshot AI: 3. Insira sua chave da API Moonshot. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1170,7 +1170,7 @@ Para usar Kimi K2 do Moonshot AI: 3. Insira sua chave da API MiniMax. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1197,7 +1197,7 @@ Para usar Kimi K2 do Moonshot AI: 3. Insira sua chave da API Nebius Token Factory. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1272,7 +1272,7 @@ Para usar o Ollama Cloud com o opencode: 5. Insira sua chave da API do Ollama Cloud. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1305,10 +1305,10 @@ Recomendamos se inscrever para [ChatGPT Plus ou Pro](https://chatgpt.com/pricing 2. Aqui você pode selecionar a opção **ChatGPT Plus/Pro** e isso abrirá seu navegador e pedirá para você se autenticar. ```txt - ┌ Selecionar método de autenticação + ┌ Select auth method │ │ ChatGPT Plus/Pro - │ Inserir chave da API manualmente + │ Manually enter API Key └ ``` @@ -1339,7 +1339,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi 3. Insira sua chave da API do opencode. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1366,7 +1366,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi 3. Insira a chave da API para o provedor. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1436,7 +1436,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am 3. Insira seu JSON da chave de serviço. ```txt - ┌ Chave de serviço + ┌ Service key │ │ └ enter @@ -1457,7 +1457,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am 4. Opcionalmente, defina o ID de implantação e o grupo de recursos: ```bash - AICORE_DEPLOYMENT_ID=seu-id-de-implantação AICORE_RESOURCE_GROUP=seu-grupo-de-recursos opencode + AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode ``` :::note @@ -1474,7 +1474,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am ### OVHcloud AI Endpoints -1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `Endpoints de IA` e na aba `API Keys`, clique em **Criar uma nova chave da API**. +1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` e na aba `API Keys`, clique em **Criar uma nova chave da API**. 2. Execute o comando `/connect` e procure por **OVHcloud AI Endpoints**. @@ -1485,7 +1485,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am 3. Insira sua chave da API OVHcloud AI Endpoints. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1514,7 +1514,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ 3. Insira sua chave da API Scaleway. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1541,7 +1541,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ 3. Insira sua chave da API Together AI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1568,7 +1568,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ 3. Insira sua chave da API Venice AI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1597,7 +1597,7 @@ O Vercel AI Gateway permite que você acesse modelos do OpenAI, Anthropic, Googl 3. Insira sua chave da API do Vercel AI Gateway. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1651,7 +1651,7 @@ Algumas opções de roteamento úteis: 3. Insira sua chave da API xAI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1680,7 +1680,7 @@ Algumas opções de roteamento úteis: 3. Insira sua chave da API Z.AI. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1707,7 +1707,7 @@ Algumas opções de roteamento úteis: 3. Insira a chave da API para o provedor. ```txt - ┌ Chave da API + ┌ API key │ │ └ enter @@ -1741,7 +1741,7 @@ Algumas opções de roteamento úteis: Para adicionar qualquer provedor **compatível com OpenAI** que não esteja listado no comando `/connect`: :::tip -Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de IA modernos oferece APIs compatíveis com OpenAI. +Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de AI modernos oferece APIs compatíveis com OpenAI. ::: 1. Execute o comando `/connect` e role para baixo até **Outro**. @@ -1749,11 +1749,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior ```bash $ /connect - ┌ Adicionar credencial + ┌ Add credential │ - ◆ Selecionar provedor + ◆ Select provider │ ... - │ ● Outro + │ ● Other └ ``` @@ -1762,9 +1762,9 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior ```bash $ /connect - ┌ Adicionar credencial + ┌ Add credential │ - ◇ Insira o id do provedor + ◇ Enter provider id │ myprovider └ ``` @@ -1778,11 +1778,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior ```bash $ /connect - ┌ Adicionar credencial + ┌ Add credential │ - ▲ Isso apenas armazena uma credencial para myprovider - você precisará configurá-la no opencode.json, verifique a documentação para exemplos. + ▲ This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples. │ - ◇ Insira sua chave da API + ◇ Enter your API key │ sk-... └ ``` @@ -1795,13 +1795,13 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "Nome de Exibição do Meu Provedor de IA", + "name": "My AI ProviderDisplay Name", "options": { "baseURL": "https://api.myprovider.com/v1" }, "models": { "my-model-name": { - "name": "Nome de Exibição do Meu Modelo" + "name": "My Model Display Name" } } } @@ -1810,7 +1810,7 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior ``` Aqui estão as opções de configuração: - - **npm**: Pacote do SDK de IA a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI + - **npm**: Pacote do SDK de AI a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI - **name**: Nome de exibição na interface do usuário. - **models**: Modelos disponíveis. - **options.baseURL**: URL do endpoint da API. @@ -1833,7 +1833,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "Nome de Exibição do Meu Provedor de IA", + "name": "My AI ProviderDisplay Name", "options": { "baseURL": "https://api.myprovider.com/v1", "apiKey": "{env:ANTHROPIC_API_KEY}", @@ -1843,7 +1843,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod }, "models": { "my-model-name": { - "name": "Nome de Exibição do Meu Modelo", + "name": "My Model Display Name", "limit": { "context": 200000, "output": 65536 diff --git a/packages/web/src/content/docs/pt-br/rules.mdx b/packages/web/src/content/docs/pt-br/rules.mdx index 9d60753dd2..3b0a1eda20 100644 --- a/packages/web/src/content/docs/pt-br/rules.mdx +++ b/packages/web/src/content/docs/pt-br/rules.mdx @@ -26,26 +26,26 @@ Se você já tiver um arquivo `AGENTS.md` existente, isso tentará adicionar a e Você também pode criar este arquivo manualmente. Aqui está um exemplo de algumas coisas que você pode colocar em um arquivo `AGENTS.md`. ```markdown title="AGENTS.md" -# Projeto Monorepo SST v3 +# SST v3 Monorepo Project -Este é um monorepo SST v3 com TypeScript. O projeto usa bun workspaces para gerenciamento de pacotes. +This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management. -## Estrutura do Projeto +## Project Structure -- `packages/` - Contém todos os pacotes do workspace (funções, núcleo, web, etc.) -- `infra/` - Definições de infraestrutura divididas por serviço (storage.ts, api.ts, web.ts) -- `sst.config.ts` - Configuração principal do SST com imports dinâmicos +- `packages/` - Contains all workspace packages (functions, core, web, etc.) +- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts) +- `sst.config.ts` - Main SST configuration with dynamic imports -## Padrões de Código +## Code Standards -- Use TypeScript com o modo estrito habilitado -- O código compartilhado vai em `packages/core/` com a configuração de exports adequada -- Funções vão em `packages/functions/` -- A infraestrutura deve ser dividida em arquivos lógicos em `infra/` +- Use TypeScript with strict mode enabled +- Shared code goes in `packages/core/` with proper exports configuration +- Functions go in `packages/functions/` +- Infrastructure should be split into logical files in `infra/` -## Convenções de Monorepo +## Monorepo Conventions -- Importe módulos compartilhados usando nomes de workspace: `@my-app/core/example` +- Import shared modules using workspace names: `@my-app/core/example` ``` Estamos adicionando instruções específicas do projeto aqui e isso será compartilhado entre sua equipe. @@ -77,9 +77,9 @@ Para usuários migrando do Claude Code, o opencode suporta as convenções de ar Para desabilitar a compatibilidade com Claude Code, defina uma dessas variáveis de ambiente: ```bash -export OPENCODE_DISABLE_CLAUDE_CODE=1 # Desabilitar todo suporte a .claude -export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Desabilitar apenas ~/.claude/CLAUDE.md -export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Desabilitar apenas .claude/skills +export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support +export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md +export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills ``` --- @@ -144,28 +144,28 @@ A abordagem recomendada é usar o campo `instructions` em `opencode.json`: Você pode ensinar o opencode a ler arquivos externos fornecendo instruções explícitas em seu `AGENTS.md`. Aqui está um exemplo prático: ```markdown title="AGENTS.md" -# Regras do Projeto TypeScript +# TypeScript Project Rules -## Carregamento de Arquivos Externos +## External File Loading -CRÍTICO: Quando você encontrar uma referência de arquivo (por exemplo, @rules/general.md), use sua ferramenta de Leitura para carregá-lo conforme necessário. Eles são relevantes para a TAREFA ESPECÍFICA em questão. +CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand. -Instruções: +Instructions: -- NÃO carregue todas as referências de forma preemptiva - use carregamento sob demanda com base na necessidade real -- Quando carregado, trate o conteúdo como instruções obrigatórias que substituem os padrões -- Siga referências recursivamente quando necessário +- Do NOT preemptively load all references - use lazy loading based on actual need +- When loaded, treat content as mandatory instructions that override defaults +- Follow references recursively when needed -## Diretrizes de Desenvolvimento +## Development Guidelines -Para estilo de código TypeScript e melhores práticas: @docs/typescript-guidelines.md -Para arquitetura de componentes React e padrões de hooks: @docs/react-patterns.md -Para design de API REST e tratamento de erros: @docs/api-standards.md -Para estratégias de teste e requisitos de cobertura: @test/testing-guidelines.md +For TypeScript code style and best practices: @docs/typescript-guidelines.md +For React component architecture and hooks patterns: @docs/react-patterns.md +For REST API design and error handling: @docs/api-standards.md +For testing strategies and coverage requirements: @test/testing-guidelines.md -## Diretrizes Gerais +## General Guidelines -Leia o seguinte arquivo imediatamente, pois é relevante para todos os fluxos de trabalho: @rules/general-guidelines.md. +Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md. ``` Essa abordagem permite que você: diff --git a/packages/web/src/content/docs/pt-br/sdk.mdx b/packages/web/src/content/docs/pt-br/sdk.mdx index 64533d4b8b..672b852f6b 100644 --- a/packages/web/src/content/docs/pt-br/sdk.mdx +++ b/packages/web/src/content/docs/pt-br/sdk.mdx @@ -111,7 +111,7 @@ O SDK pode lançar erros que você pode capturar e tratar: try { await client.session.get({ path: { id: "invalid-id" } }) } catch (error) { - console.error("Falha ao obter a sessão:", (error as Error).message) + console.error("Failed to get session:", (error as Error).message) } ``` @@ -152,16 +152,16 @@ console.log(health.data.version) #### Exemplos ```javascript -// Escrever uma entrada de log +// Write a log entry await client.app.log({ body: { service: "my-app", level: "info", - message: "Operação concluída", + message: "Operation completed", }, }) -// Listar agentes disponíveis +// List available agents const agents = await client.app.agents() ``` @@ -179,10 +179,10 @@ const agents = await client.app.agents() #### Exemplos ```javascript -// Listar todos os projetos +// List all projects const projects = await client.project.list() -// Obter projeto atual +// Get current project const currentProject = await client.project.current() ``` @@ -199,7 +199,7 @@ const currentProject = await client.project.current() #### Exemplos ```javascript -// Obter informações do caminho atual +// Get current path information const pathInfo = await client.path.get() ``` @@ -241,7 +241,7 @@ const { providers, default: defaults } = await client.config.providers() | `session.summarize({ path, body })` | Resumir sessão | Retorna `boolean` | | `session.messages({ path })` | Listar mensagens em uma sessão | Retorna `{ info: `
Message`, parts: `Part[]`}[]` | | `session.message({ path })` | Obter detalhes da mensagem | Retorna `{ info: `Message`, parts: `Part[]`}` | -| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna AssistantMessage com resposta da IA | +| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna AssistantMessage com resposta da AI | | `session.command({ path, body })` | Enviar comando para a sessão | Retorna `{ info: `AssistantMessage`, parts: `Part[]`}` | | `session.shell({ path, body })` | Executar um comando shell | Retorna AssistantMessage | | `session.revert({ path, body })` | Reverter uma mensagem | Retorna Session | @@ -253,28 +253,28 @@ const { providers, default: defaults } = await client.config.providers() #### Exemplos ```javascript -// Criar e gerenciar sessões +// Create and manage sessions const session = await client.session.create({ - body: { title: "Minha sessão" }, + body: { title: "My session" }, }) const sessions = await client.session.list() -// Enviar uma mensagem de prompt +// Send a prompt message const result = await client.session.prompt({ path: { id: session.id }, body: { model: { providerID: "anthropic", modelID: "claude-3-5-sonnet-20241022" }, - parts: [{ type: "text", text: "Olá!" }], + parts: [{ type: "text", text: "Hello!" }], }, }) -// Injetar contexto sem acionar resposta da IA (útil para plugins) +// Inject context without triggering AI response (useful for plugins) await client.session.prompt({ path: { id: session.id }, body: { noReply: true, - parts: [{ type: "text", text: "Você é um assistente útil." }], + parts: [{ type: "text", text: "You are a helpful assistant." }], }, }) ``` @@ -302,7 +302,7 @@ await client.session.prompt({ #### Exemplos ```javascript -// Pesquisar e ler arquivos +// Search and read files const textResults = await client.find.text({ query: { pattern: "function.*opencode" }, }) @@ -341,13 +341,13 @@ const content = await client.file.read({ #### Exemplos ```javascript -// Controlar a interface TUI +// Control TUI interface await client.tui.appendPrompt({ - body: { text: "Adicione isso ao prompt" }, + body: { text: "Add this to prompt" }, }) await client.tui.showToast({ - body: { message: "Tarefa concluída", variant: "success" }, + body: { message: "Task completed", variant: "success" }, }) ``` @@ -366,7 +366,7 @@ await client.tui.showToast({ ```javascript await client.auth.set({ path: { id: "anthropic" }, - body: { type: "api", key: "sua-chave-api" }, + body: { type: "api", key: "your-api-key" }, }) ``` @@ -383,9 +383,9 @@ await client.auth.set({ #### Exemplos ```javascript -// Ouvir eventos em tempo real +// Listen to real-time events const events = await client.event.subscribe() for await (const event of events.stream) { - console.log("Evento:", event.type, event.properties) + console.log("Event:", event.type, event.properties) } ``` diff --git a/packages/web/src/content/docs/pt-br/server.mdx b/packages/web/src/content/docs/pt-br/server.mdx index 12ebde7ab7..6d2e9eb386 100644 --- a/packages/web/src/content/docs/pt-br/server.mdx +++ b/packages/web/src/content/docs/pt-br/server.mdx @@ -13,7 +13,7 @@ O comando `opencode serve` executa um servidor HTTP sem cabeça que expõe um en ### Uso ```bash -opencode serve [--port ] [--hostname ] [--cors ] +opencode serve [--port ] [--hostname ] [--cors ] ``` #### Opções @@ -39,7 +39,7 @@ opencode serve --cors http://localhost:5173 --cors https://app.example.com Defina `OPENCODE_SERVER_PASSWORD` para proteger o servidor com autenticação básica HTTP. O nome de usuário padrão é `opencode`, ou defina `OPENCODE_SERVER_USERNAME` para substituí-lo. Isso se aplica tanto ao `opencode serve` quanto ao `opencode web`. ```bash -OPENCODE_SERVER_PASSWORD=sua-senha opencode serve +OPENCODE_SERVER_PASSWORD=your-password opencode serve ``` --- diff --git a/packages/web/src/content/docs/pt-br/skills.mdx b/packages/web/src/content/docs/pt-br/skills.mdx index 4532ac04e1..23a4497ed8 100644 --- a/packages/web/src/content/docs/pt-br/skills.mdx +++ b/packages/web/src/content/docs/pt-br/skills.mdx @@ -78,24 +78,24 @@ Crie `.opencode/skills/git-release/SKILL.md` assim: ```markdown --- name: git-release -description: Crie lançamentos e changelogs consistentes +description: Create consistent releases and changelogs license: MIT compatibility: opencode metadata: - audience: mantenedores + audience: maintainers workflow: github --- -## O que eu faço +## What I do -- Redigir notas de lançamento a partir de PRs mesclados -- Propor um aumento de versão -- Fornecer um comando `gh release create` copiável e colável +- Draft release notes from merged PRs +- Propose a version bump +- Provide a copy-pasteable `gh release create` command -## Quando me usar +## When to use me -Use isso quando estiver preparando um lançamento marcado. -Faça perguntas esclarecedoras se o esquema de versionamento alvo não estiver claro. +Use this when you are preparing a tagged release. +Ask clarifying questions if the target versioning scheme is unclear. ``` --- @@ -109,7 +109,7 @@ Cada entrada inclui o nome e a descrição da habilidade: git-release - Crie lançamentos e changelogs consistentes + Create consistent releases and changelogs ``` diff --git a/packages/web/src/content/docs/pt-br/troubleshooting.mdx b/packages/web/src/content/docs/pt-br/troubleshooting.mdx index a4d0f08782..2d00092433 100644 --- a/packages/web/src/content/docs/pt-br/troubleshooting.mdx +++ b/packages/web/src/content/docs/pt-br/troubleshooting.mdx @@ -45,7 +45,7 @@ opencode Desktop executa um servidor opencode local (o sidecar `opencode-cli`) e - Saia completamente do aplicativo e reinicie-o. - Se o aplicativo mostrar uma tela de erro, clique em **Reiniciar** e copie os detalhes do erro. -- Apenas macOS: menu `opencode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada). +- Apenas macOS: menu `OpenCode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada). --- @@ -277,7 +277,7 @@ Usuários do Linux precisam ter um dos seguintes utilitários de área de transf ```bash apt install -y xclip -# ou +# or apt install -y xsel ``` @@ -291,7 +291,7 @@ apt install -y wl-clipboard ```bash apt install -y xvfb -# e execute: +# and run: Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & export DISPLAY=:99.0 ``` diff --git a/packages/web/src/content/docs/pt-br/tui.mdx b/packages/web/src/content/docs/pt-br/tui.mdx index d3d5c77365..3199c842c5 100644 --- a/packages/web/src/content/docs/pt-br/tui.mdx +++ b/packages/web/src/content/docs/pt-br/tui.mdx @@ -16,13 +16,13 @@ opencode Ou você pode iniciá-lo para um diretório de trabalho específico. ```bash -opencode /caminho/para/projeto +opencode /path/to/project ``` Uma vez que você esteja no TUI, você pode solicitar com uma mensagem. ```text -Me dê um resumo rápido da base de código. +Give me a quick summary of the codebase. ``` --- @@ -36,7 +36,7 @@ Você também pode usar `@` para referenciar arquivos em suas mensagens. ::: ```text "@packages/functions/src/api/index.ts" -Como a autenticação é tratada em @packages/functions/src/api/index.ts? +How is auth handled in @packages/functions/src/api/index.ts? ``` O conteúdo do arquivo é adicionado à conversa automaticamente. @@ -290,12 +290,12 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v ```bash - # Exemplo para nano ou vim + # Example for nano or vim export EDITOR=nano export EDITOR=vim - # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. - # inclua --wait + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait export EDITOR="code --wait" ``` @@ -308,8 +308,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v ```bash set EDITOR=notepad - # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. - # inclua --wait + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait set EDITOR=code --wait ``` @@ -321,8 +321,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v ```powershell $env:EDITOR = "notepad" - # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. - # inclua --wait + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait $env:EDITOR = "code --wait" ``` diff --git a/packages/web/src/content/docs/pt-br/web.mdx b/packages/web/src/content/docs/pt-br/web.mdx index 621dfdcec8..3382c700a5 100644 --- a/packages/web/src/content/docs/pt-br/web.mdx +++ b/packages/web/src/content/docs/pt-br/web.mdx @@ -3,7 +3,7 @@ title: Web description: Usando opencode no seu navegador. --- -opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com IA sem precisar de um terminal. +opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com AI sem precisar de um terminal. ![opencode Web - Nova Sessão](../../../assets/web/web-homepage-new-session.png) @@ -50,8 +50,8 @@ opencode web --hostname 0.0.0.0 Ao usar `0.0.0.0`, o opencode exibirá endereços locais e de rede: ``` - Acesso local: http://localhost:4096 - Acesso à rede: http://192.168.1.100:4096 + Local access: http://localhost:4096 + Network access: http://192.168.1.100:4096 ``` ### Descoberta mDNS @@ -113,10 +113,10 @@ Clique em "Ver Servidores" para visualizar os servidores conectados e seu status Você pode anexar um terminal TUI a um servidor web em execução: ```bash -# Inicie o servidor web +# Start the web server opencode web --port 4096 -# Em outro terminal, anexe o TUI +# In another terminal, attach the TUI opencode attach http://localhost:4096 ``` diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 7acd2dd225..c472cf60f4 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -33,7 +33,7 @@ Para resolver isso, fizemos algumas coisas: 2. Trabalhamos com alguns provedores para garantir que esses modelos estivessem sendo servidos corretamente. 3. Finalmente, realizamos benchmarks da combinação modelo/provedor e elaboramos uma lista que nos sentimos bem em recomendar. -OpenCode Zen é um gateway de IA que lhe dá acesso a esses modelos. +OpenCode Zen é um gateway de AI que lhe dá acesso a esses modelos. --- diff --git a/packages/web/src/content/docs/ru/1-0.mdx b/packages/web/src/content/docs/ru/1-0.mdx index 4b3809c4f8..feb3067a0e 100644 --- a/packages/web/src/content/docs/ru/1-0.mdx +++ b/packages/web/src/content/docs/ru/1-0.mdx @@ -47,10 +47,10 @@ $ opencode upgrade 0.15.31 ### Сочетания клавиш переименованы - messages_revert -> messages_undo -- переключатель*агент -> агент*цикл -- switch_agent_reverse -> Agent_cycle_reverse -- переключатель*режим -> агент*цикл -- switch_mode_reverse -> Agent_cycle_reverse +- switch_agent -> agent_cycle +- switch_agent_reverse -> agent_cycle_reverse +- switch_mode -> agent_cycle +- switch_mode_reverse -> agent_cycle_reverse ### Привязки клавиш удалены. @@ -60,8 +60,8 @@ $ opencode upgrade 0.15.31 - file_diff_toggle - file_search - file_close -- список_файлов +- file_list - app_help - project_init -- инструмент_детали -- думающие_блоки +- tool_details +- thinking_blocks diff --git a/packages/web/src/content/docs/ru/acp.mdx b/packages/web/src/content/docs/ru/acp.mdx index 86ab61b666..f7a08b75e3 100644 --- a/packages/web/src/content/docs/ru/acp.mdx +++ b/packages/web/src/content/docs/ru/acp.mdx @@ -23,7 +23,7 @@ ACP — это открытый протокол, который стандар --- -### Зед +### Zed Добавьте в конфигурацию [Zed](https://zed.dev) (`~/.config/zed/settings.json`): @@ -86,7 +86,7 @@ ACP — это открытый протокол, который стандар --- -### Аванте.nvim +### Avante.nvim Добавьте в свою конфигурацию [Avante.nvim](https://github.com/yetone/avante.nvim): @@ -119,7 +119,7 @@ ACP — это открытый протокол, который стандар --- -### КодКомпаньон.nvim +### CodeCompanion.nvim Чтобы использовать opencode в качестве агента ACP в [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), добавьте в конфигурацию Neovim следующее: diff --git a/packages/web/src/content/docs/ru/agents.mdx b/packages/web/src/content/docs/ru/agents.mdx index a5eefea189..a12a259099 100644 --- a/packages/web/src/content/docs/ru/agents.mdx +++ b/packages/web/src/content/docs/ru/agents.mdx @@ -46,15 +46,15 @@ opencode поставляется с двумя встроенными осно --- -### Используйте сборку +### Use Build _Режим_: `primary` -Build — основной агент **по умолчанию** со всеми включенными инструментами. Это стандартный агент для разработки, где вам необходим полный доступ к файловым операциям и системным командам. +Build — основной агент **по умолчанию** со всеми включенными инструментами. Это стандартный агент для разработки, где вам необходим полный доступ к файловым операциям и системным командам. --- -### Использовать план +### Use Plan _Режим_: `primary` @@ -68,7 +68,7 @@ _Режим_: `primary` --- -### Используйте общие +### Use General _Режим_: `subagent` @@ -76,7 +76,7 @@ _Режим_: `subagent` --- -### Используйте исследование +### Use Explore _Режим_: `subagent` @@ -84,7 +84,7 @@ _Режим_: `subagent` --- -### Используйте уплотнение +### Use Compact _Режим_: `primary` @@ -92,7 +92,7 @@ _Режим_: `primary` --- -### Использовать заголовок +### Use Title _Режим_: `primary` @@ -100,7 +100,7 @@ _Режим_: `primary` --- -### Использовать сводку +### Use Summary _Режим_: `primary` @@ -177,9 +177,9 @@ _Режим_: `primary` --- -### Уценка +### Markdown -Вы также можете определить агентов, используя файлы уценки. Поместите их в: +Вы также можете определить агентов, используя файлы Markdown. Поместите их в: - Глобальный: `~/.config/opencode/agents/` - Для каждого проекта: `.opencode/agents/` @@ -206,7 +206,7 @@ You are in code review mode. Focus on: Provide constructive feedback without making direct changes. ``` -Имя файла уценки становится именем агента. Например, `review.md` создает агент `review`. +Имя Markdown файла становится именем агента. Например, `review.md` создает агент `review`. --- @@ -323,7 +323,7 @@ Provide constructive feedback without making direct changes. --- -### Быстрый +### Prompt Укажите собственный файл системных приглашений для этого агента с помощью конфигурации `prompt`. Файл подсказки должен содержать инструкции, специфичные для целей агента. @@ -482,7 +482,7 @@ Only analyze code and suggest changes. } ``` -Это может использовать шаблон глобуса. +Это может использовать glob pattern. ```json title="opencode.json" {7} { @@ -617,7 +617,7 @@ Only analyze code and suggest changes. --- -### Топ П +### Top P Управляйте разнообразием ответов с помощью опции `top_p`. Альтернатива температуре для контроля случайности. @@ -635,7 +635,7 @@ Only analyze code and suggest changes. --- -### Дополнительный +### Extra Любые другие параметры, указанные вами в конфигурации вашего агента, будут **передаваться напрямую** поставщику в качестве параметров модели. Это позволяет использовать функции и параметры, специфичные для поставщика. diff --git a/packages/web/src/content/docs/ru/cli.mdx b/packages/web/src/content/docs/ru/cli.mdx index bbdce40fec..541e4c27bf 100644 --- a/packages/web/src/content/docs/ru/cli.mdx +++ b/packages/web/src/content/docs/ru/cli.mdx @@ -42,7 +42,7 @@ opencode [project] --- -## Commands +## Команды CLI opencode также имеет следующие команды. @@ -536,7 +536,7 @@ opencode upgrade v0.1.48 --- -## Global flags +## Глобальные флаги CLI opencode принимает следующие глобальные флаги. @@ -556,14 +556,14 @@ opencode можно настроить с помощью переменных с | Переменная | Тип | Описание | | ------------------------------------- | ------------------- | -------------------------------------------------------------------------------- | | `OPENCODE_AUTO_SHARE` | логическое значение | Автоматически делиться сеансами | -| `OPENCODE_GIT_BASH_PATH` | нить | Путь к исполняемому файлу Git Bash в Windows | -| `OPENCODE_CONFIG` | нить | Путь к файлу конфигурации | -| `OPENCODE_CONFIG_DIR` | нить | Путь к каталогу конфигурации | -| `OPENCODE_CONFIG_CONTENT` | нить | Встроенное содержимое конфигурации json | +| `OPENCODE_GIT_BASH_PATH` | строка | Путь к исполняемому файлу Git Bash в Windows | +| `OPENCODE_CONFIG` | строка | Путь к файлу конфигурации | +| `OPENCODE_CONFIG_DIR` | строка | Путь к каталогу конфигурации | +| `OPENCODE_CONFIG_CONTENT` | строка | Встроенное содержимое конфигурации json | | `OPENCODE_DISABLE_AUTOUPDATE` | логическое значение | Отключить автоматическую проверку обновлений | | `OPENCODE_DISABLE_PRUNE` | логическое значение | Отключить удаление старых данных | | `OPENCODE_DISABLE_TERMINAL_TITLE` | логическое значение | Отключить автоматическое обновление заголовка terminal | -| `OPENCODE_PERMISSION` | нить | Встроенная конфигурация разрешений json | +| `OPENCODE_PERMISSION` | строка | Встроенная конфигурация разрешений json | | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | логическое значение | Отключить плагины по умолчанию | | `OPENCODE_DISABLE_LSP_DOWNLOAD` | логическое значение | Отключить автоматическую загрузку LSP-сервера | | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | логическое значение | Включить экспериментальные модели | @@ -572,13 +572,13 @@ opencode можно настроить с помощью переменных с | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | логическое значение | Отключить чтение `~/.claude/CLAUDE.md` | | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | логическое значение | Отключить загрузку `.claude/skills` | | `OPENCODE_DISABLE_MODELS_FETCH` | логическое значение | Отключить получение моделей из удаленных источников | -| `OPENCODE_FAKE_VCS` | нить | Поддельный поставщик VCS для целей тестирования | +| `OPENCODE_FAKE_VCS` | строка | Поддельный поставщик VCS для целей тестирования | | `OPENCODE_DISABLE_FILETIME_CHECK` | логическое значение | Отключить проверку времени файла для оптимизации | -| `OPENCODE_CLIENT` | нить | Идентификатор клиента (по умолчанию `cli`) | +| `OPENCODE_CLIENT` | строка | Идентификатор клиента (по умолчанию `cli`) | | `OPENCODE_ENABLE_EXA` | логическое значение | Включить инструменты веб-поиска Exa | -| `OPENCODE_SERVER_PASSWORD` | нить | Включить базовую аутентификацию для `serve`/`web` | -| `OPENCODE_SERVER_USERNAME` | нить | Переопределить имя пользователя базовой аутентификации (по умолчанию `opencode`) | -| `OPENCODE_MODELS_URL` | нить | Пользовательский URL-адрес для получения конфигурации модели | +| `OPENCODE_SERVER_PASSWORD` | строка | Включить базовую аутентификацию для `serve`/`web` | +| `OPENCODE_SERVER_USERNAME` | строка | Переопределить имя пользователя базовой аутентификации (по умолчанию `opencode`) | +| `OPENCODE_MODELS_URL` | строка | Пользовательский URL-адрес для получения конфигурации модели | --- diff --git a/packages/web/src/content/docs/ru/commands.mdx b/packages/web/src/content/docs/ru/commands.mdx index 6255dde80c..ac02911826 100644 --- a/packages/web/src/content/docs/ru/commands.mdx +++ b/packages/web/src/content/docs/ru/commands.mdx @@ -15,7 +15,7 @@ description: Создавайте собственные команды для ## Создание командных файлов -Создайте файлы уценки в каталоге `commands/` для определения пользовательских команд. +Создайте Markdown файлы в каталоге `commands/` для определения пользовательских команд. Создайте `.opencode/commands/test.md`: @@ -75,9 +75,9 @@ Focus on the failing tests and suggest fixes. --- -### Уценка +### Markdown -Вы также можете определять команды, используя файлы уценки. Поместите их в: +Вы также можете определять команды, используя Markdown файлы. Поместите их в: - Глобальный: `~/.config/opencode/commands/` - Для каждого проекта: `.opencode/commands/` @@ -93,7 +93,7 @@ Run the full test suite with coverage report and show any failures. Focus on the failing tests and suggest fixes. ``` -Имя файла уценки становится именем команды. Например, `test.md` позволяет +Имя Markdown файла становится именем команды. Например, `test.md` позволяет ты бежишь: ```bash frame="none" @@ -102,7 +102,7 @@ Focus on the failing tests and suggest fixes. --- -## Подскажите конфигурацию +## Prompt Configuration Подсказки для пользовательских команд поддерживают несколько специальных заполнителей и синтаксиса. @@ -161,7 +161,7 @@ with the following content: $3 --- -### Вывод shell +### Shell output Используйте _!`command`_, чтобы ввести вывод команды bash](/docs/tui#bash-commands) в приглашение. @@ -218,7 +218,7 @@ Check for performance issues and suggest improvements. --- -### Шаблон +### Template Параметр `template` определяет приглашение, которое будет отправлено в LLM при выполнении команды. @@ -274,7 +274,7 @@ Check for performance issues and suggest improvements. --- -### Подзадача +### Subtask Используйте логическое значение `subtask`, чтобы заставить команду инициировать вызов [subagent](/docs/agents/#subagents). Это полезно, если вы хотите, чтобы команда не загрязняла ваш основной контекст и **заставляла** агента действовать как субагент. diff --git a/packages/web/src/content/docs/ru/config.mdx b/packages/web/src/content/docs/ru/config.mdx index ad766f48e7..2a088bc818 100644 --- a/packages/web/src/content/docs/ru/config.mdx +++ b/packages/web/src/content/docs/ru/config.mdx @@ -179,7 +179,7 @@ opencode run "Hello world" --- -### Сервер +### server Вы можете настроить параметры сервера для команд `opencode serve` и `opencode web` с помощью опции `server`. @@ -208,7 +208,7 @@ opencode run "Hello world" --- -### Инструменты +### tools Вы можете управлять инструментами, которые LLM может использовать, с помощью опции `tools`. @@ -226,7 +226,7 @@ opencode run "Hello world" --- -### Модели +### Models Вы можете настроить поставщиков и модели, которые хотите использовать в своей конфигурации opencode, с помощью параметров `provider`, `model` и `small_model`. @@ -268,7 +268,7 @@ opencode run "Hello world" Некоторые поставщики поддерживают дополнительные параметры конфигурации помимо общих настроек `timeout` и `apiKey`. -##### Амазонка +##### Amazon Amazon Bedrock поддерживает конфигурацию, специфичную для AWS: @@ -299,7 +299,7 @@ Amazon Bedrock поддерживает конфигурацию, специфи --- -### Темы +### theme Вы можете настроить тему, которую хотите использовать, в конфигурации opencode с помощью опции `theme`. @@ -314,7 +314,7 @@ Amazon Bedrock поддерживает конфигурацию, специфи --- -### Агенты +### agent Вы можете настроить специализированные агенты для конкретных задач с помощью опции `agent`. @@ -336,11 +336,11 @@ Amazon Bedrock поддерживает конфигурацию, специфи } ``` -Вы также можете определить агентов, используя файлы уценки в `~/.config/opencode/agents/` или `.opencode/agents/`. [Подробнее здесь](/docs/agents). +Вы также можете определить агентов, используя файлы Markdown в `~/.config/opencode/agents/` или `.opencode/agents/`. [Подробнее здесь](/docs/agents). --- -### Агент по умолчанию +### default_agent Вы можете установить агента по умолчанию, используя опцию `default_agent`. Это определяет, какой агент используется, если ни один из них не указан явно. @@ -357,7 +357,7 @@ Amazon Bedrock поддерживает конфигурацию, специфи --- -### Совместное использование +### share Функцию [share](/docs/share) можно настроить с помощью опции `share`. @@ -378,7 +378,7 @@ Amazon Bedrock поддерживает конфигурацию, специфи --- -### Команды +### command Вы можете настроить собственные команды для повторяющихся задач с помощью опции `command`. @@ -400,11 +400,11 @@ Amazon Bedrock поддерживает конфигурацию, специфи } ``` -Вы также можете определять команды, используя файлы уценки в `~/.config/opencode/commands/` или `.opencode/commands/`. [Подробнее здесь](/docs/commands). +Вы также можете определять команды, используя файлы Markdown в `~/.config/opencode/commands/` или `.opencode/commands/`. [Подробнее здесь](/docs/commands). --- -### Сочетания клавиш +### keybinds Вы можете настроить привязки клавиш с помощью опции `keybinds`. @@ -419,7 +419,7 @@ Amazon Bedrock поддерживает конфигурацию, специфи --- -### Автообновление +### autoupdate opencode автоматически загрузит все новые обновления при запуске. Вы можете отключить это с помощью опции `autoupdate`. @@ -435,7 +435,7 @@ opencode автоматически загрузит все новые обно --- -### Форматеры +### formatter Вы можете настроить форматировщики кода с помощью опции `formatter`. @@ -461,7 +461,7 @@ opencode автоматически загрузит все новые обно --- -### Разрешения +### permission По умолчанию opencode **разрешает все операции**, не требуя явного разрешения. Вы можете изменить это, используя опцию `permission`. @@ -481,7 +481,7 @@ opencode автоматически загрузит все новые обно --- -### Уплотнение +### compaction Вы можете управлять поведением сжатия контекста с помощью опции `compaction`. @@ -500,7 +500,7 @@ opencode автоматически загрузит все новые обно --- -### наблюдатель +### watcher Вы можете настроить шаблоны игнорирования средства отслеживания файлов с помощью опции `watcher`. @@ -517,7 +517,7 @@ opencode автоматически загрузит все новые обно --- -### MCP-серверы +### mcp Вы можете настроить серверы MCP, которые хотите использовать, с помощью опции `mcp`. @@ -532,7 +532,7 @@ opencode автоматически загрузит все новые обно --- -### Плагины +### plugin [Плагины](/docs/plugins) расширяют opencode с помощью пользовательских инструментов, перехватчиков и интеграций. @@ -549,7 +549,7 @@ opencode автоматически загрузит все новые обно --- -### Инструкции +### instructions Вы можете настроить инструкции для используемой вами модели с помощью опции `instructions`. @@ -565,7 +565,7 @@ opencode автоматически загрузит все новые обно --- -### Отключенные провайдеры +### disabled_providers Вы можете отключить поставщиков, которые загружаются автоматически, с помощью опции `disabled_providers`. Это полезно, если вы хотите запретить загрузку определенных поставщиков, даже если их учетные данные доступны. @@ -588,7 +588,7 @@ opencode автоматически загрузит все новые обно --- -### Включенные провайдеры +### enabled_providers Вы можете указать белый список поставщиков с помощью опции `enabled_providers`. Если этот параметр установлен, будут включены только указанные поставщики, а все остальные будут игнорироваться. @@ -609,7 +609,7 @@ opencode автоматически загрузит все новые обно --- -### Экспериментальный +### experimental Ключ `experimental` содержит параметры, находящиеся в активной разработке. diff --git a/packages/web/src/content/docs/ru/ecosystem.mdx b/packages/web/src/content/docs/ru/ecosystem.mdx index 179f23778e..7b8af3dcc8 100644 --- a/packages/web/src/content/docs/ru/ecosystem.mdx +++ b/packages/web/src/content/docs/ru/ecosystem.mdx @@ -6,7 +6,7 @@ description: Проекты и интеграции, созданные с по Коллекция проектов сообщества, построенных на opencode. :::note -Хотите добавить свой проект, связанный с opencode, в этот список? Разместите пиар. +Хотите добавить свой проект, связанный с opencode, в этот список? Разместите PR. ::: Вы также можете посетить [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) и [opencode.cafe](https://opencode.cafe) — сообщество, объединяющее экосистему и сообщество. @@ -22,15 +22,15 @@ description: Проекты и интеграции, созданные с по | [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | Автоматическое внедрение типов TypeScript/Svelte в файлы, считываемые с помощью инструментов поиска. | | [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Используйте подписку ChatGPT Plus/Pro вместо кредитов API. | | [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | Используйте существующий план Gemini вместо выставления счетов через API. | -| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | Используйте бесплатные модели Антигравити вместо выставления счетов через API. | +| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | Используйте бесплатные модели Antigravity вместо выставления счетов через API. | | [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Многоветвевая изоляция контейнеров разработки с мелкими клонами и автоматическим назначением портов. | -| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Плагин Google Antigradity OAuth с поддержкой поиска Google и более надежной обработкой API. | +| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Плагин Google Antigravity OAuth с поддержкой поиска Google и более надежной обработкой API. | | [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Оптимизируйте использование токенов за счет сокращения выходных данных устаревших инструментов. | | [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Добавьте встроенную поддержку веб-поиска для поддерживаемых поставщиков в стиле Google. | | [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Позволяет агентам ИИ запускать фоновые процессы в PTY и отправлять им интерактивные данные. | | [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Инструкции для неинтерактивных shell-команд — предотвращают зависания из-за операций, зависящих от TTY. | | [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Отслеживайте использование opencode с помощью Wakatime | -| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Очистка таблиц уценок, созданных LLM | +| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Очистка таблиц Markdown, созданных LLM | | [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Редактирование кода в 10 раз быстрее с помощью API Morph Fast Apply и маркеров отложенного редактирования. | | [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Фоновые агенты, встроенные инструменты LSP/AST/MCP, курируемые агенты, совместимость с Claude Code | | [opencode-notificator](https://github.com/panta82/opencode-notificator) | Уведомления на рабочем столе и звуковые оповещения для сеансов opencode | diff --git a/packages/web/src/content/docs/ru/formatters.mdx b/packages/web/src/content/docs/ru/formatters.mdx index 25232365a6..771327aacf 100644 --- a/packages/web/src/content/docs/ru/formatters.mdx +++ b/packages/web/src/content/docs/ru/formatters.mdx @@ -7,54 +7,42 @@ opencode автоматически форматирует файлы после --- -## Встроенный +## Built-in opencode поставляется с несколькими встроенными форматировщиками для популярных языков и платформ. Ниже приведен список форматтеров, поддерживаемых расширений файлов, а также необходимых команд или параметров конфигурации. -| форматтер | Расширения | Требования | -| ------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| правительство | .идти | Доступна команда `gofmt` | -| смешивание | .ex, .exs, .bias, .heex, .bend, .neex, .sface | Доступна команда `mix` | -| красивее | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml и [подробнее](https://prettier.io/docs/en/index.html) | Зависимость `prettier` в `package.json` | -| биом | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml и [подробнее](https://biomejs.dev/) | Конфигурационный файл `biome.json(c)` | -| зигзаг | .zig, .zon | Доступна команда `zig` | -| clang-формат | .c, .cpp, .h, .hpp, .ino и [подробнее](https://clang.llvm.org/docs/ClangFormat.html) | Конфигурационный файл `.clang-format` | -| ктлинт | .кт, .ктс | Доступна команда `ktlint` | -| ерш | .py, .pyi | Команда `ruff` доступна в конфигурации | -| ржавчина | .rs | Доступна команда `rustfmt` | -| грузовой контейнер | .rs | Доступна команда `cargo fmt` | -| уф | .py, .pyi | Доступна команда `uv` | -| рубокоп | .rb, .rake, .gemspec, .ru | Доступна команда `rubocop` | -| стандартный RB | .rb, .rake, .gemspec, .ru | Доступна команда `standardrb` | -| htmlbeautifier | .erb, .html.erb | Доступна команда `htmlbeautifier` | -| воздух | .Р | Доступна команда `air` | -| дротик | .dart | Доступна команда `dart` | -| ocamlformat | .мл, .мли | Доступна команда `ocamlformat` и файл конфигурации `.ocamlformat`. | -| терраформировать | .tf, .tfvars | Доступна команда `terraform` | -| светиться | .блеск | Доступна команда `gleam` | -| никсфмт | .nix | Доступна команда `nixfmt` | -| шфмт | .sh, .bash | Доступна команда `shfmt` | -| пинта | .php | Зависимость `laravel/pint` в `composer.json` | -| oxfmt (экспериментальный) | .js, .jsx, .ts, .tsx | Зависимость `oxfmt` в `package.json` и [экспериментальная переменная окружения flag](/docs/cli/#experimental) | -| ормол | .hs | Доступна команда `ormolu` | +| Formatter | Расширения | Требования | +| -------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| gofmt | .go | Доступна команда `gofmt` | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Доступна команда `mix` | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml и [подробнее](https://prettier.io/docs/en/index.html) | Зависимость `prettier` в `package.json` | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml и [подробнее](https://biomejs.dev/) | Конфигурационный файл `biome.json(c)` | +| zig | .zig, .zon | Доступна команда `zig` | +| clang-format | .c, .cpp, .h, .hpp, .ino и [подробнее](https://clang.llvm.org/docs/ClangFormat.html) | Конфигурационный файл `.clang-format` | +| ktlint | .kt, .kts | Доступна команда `ktlint` | +| ruff | .py, .pyi | Команда `ruff` доступна в конфигурации | +| rustfmt | .rs | Доступна команда `rustfmt` | +| cargofmt | .rs | Доступна команда `cargo fmt` | +| uv | .py, .pyi | Доступна команда `uv` | +| rubocop | .rb, .rake, .gemspec, .ru | Доступна команда `rubocop` | +| standardrb | .rb, .rake, .gemspec, .ru | Доступна команда `standardrb` | +| htmlbeautifier | .erb, .html.erb | Доступна команда `htmlbeautifier` | +| air | .R | Доступна команда `air` | +| dart | .dart | Доступна команда `dart` | +| ocamlformat | .ml, .mli | Доступна команда `ocamlformat` и файл конфигурации `.ocamlformat`. | +| terraform | .tf, .tfvars | Доступна команда `terraform` | +| gleam | .gleam | Доступна команда `gleam` | +| nixfmt | .nix | Доступна команда `nixfmt` | +| shfmt | .sh, .bash | Доступна команда `shfmt` | +| pint | .php | Зависимость `laravel/pint` в `composer.json` | +| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Зависимость `oxfmt` в `package.json` и [экспериментальная переменная окружения flag](/docs/cli/#experimental) | +| ormolu | .hs | Доступна команда `ormolu` | Поэтому, если ваш проект имеет `prettier` в вашем `package.json`, opencode автоматически его использует. --- -## Как это работает - -Когда opencode записывает или редактирует файл, он: - -1. Проверяет расширение файла по всем включенным средствам форматирования. -2. Запускает соответствующую команду форматирования файла. -3. Автоматически применяет изменения форматирования. - -Этот процесс происходит в фоновом режиме, обеспечивая сохранение стилей кода без каких-либо действий вручную. - ---- - -## Настроить +## Configure Вы можете настроить форматтеры через раздел `formatter` в конфигурации opencode. @@ -67,18 +55,18 @@ opencode поставляется с несколькими встроенным Каждая конфигурация форматтера поддерживает следующее: -| Свойство | Тип | Описание | -| ------------- | ------------------- | ----------------------------------------------------------------------------------- | -| `disabled` | логическое значение | Установите для этого параметра значение `true`, чтобы отключить форматтер. | -| `command` | нить[] | Команда для форматирования | -| `environment` | объект | Переменные среды, которые необходимо установить при запуске средства форматирования | -| `extensions` | нить[] | Расширения файлов, которые должен обрабатывать этот форматтер | +| Свойство | Тип | Описание | +| ------------- | -------- | ----------------------------------------------------------------------------------- | +| `disabled` | boolean | Установите для этого параметра значение `true`, чтобы отключить форматтер. | +| `command` | string[] | Команда для форматирования | +| `environment` | объект | Переменные среды, которые необходимо установить при запуске средства форматирования | +| `extensions` | string[] | Расширения файлов, которые должен обрабатывать этот форматтер | Давайте посмотрим на несколько примеров. --- -### Отключение форматтеров +### Disabling Formatters Чтобы глобально отключить **все** средства форматирования, установите для `formatter` значение `false`: @@ -104,7 +92,7 @@ opencode поставляется с несколькими встроенным --- -### Пользовательские форматтеры +### Custom Formatters Вы можете переопределить встроенные средства форматирования или добавить новые, указав команду, переменные среды и расширения файлов: diff --git a/packages/web/src/content/docs/ru/github.mdx b/packages/web/src/content/docs/ru/github.mdx index 99602ac464..a61a9679b0 100644 --- a/packages/web/src/content/docs/ru/github.mdx +++ b/packages/web/src/content/docs/ru/github.mdx @@ -10,7 +10,7 @@ opencode интегрируется с вашим рабочим процесс ## Функции - **Сортировка проблем**. Попросите opencode разобраться в проблеме и объяснить ее вам. -- **Исправить и внедрить**. Попросите opencode исправить проблему или реализовать функцию. И будет работать в новой ветке и подавать ПР со всеми изменениями. +- **Исправить и внедрить**. Попросите opencode исправить проблему или реализовать функцию. И будет работать в новой ветке и подавать PR со всеми изменениями. - **Безопасность**: opencode запускается внутри бегунов вашего GitHub. --- @@ -27,7 +27,7 @@ opencode github install --- -### Ручная настройка +### Manual Setup Или вы можете настроить его вручную. @@ -79,7 +79,7 @@ opencode github install --- -## Конфигурация +## Configuration - `model`: модель для использования с opencode. Принимает формат `provider/model`. Это **обязательно**. - `agent`: используемый агент. Должен быть основным агентом. Возвращается к `default_agent` из конфигурации или к `"build"`, если не найден. @@ -101,7 +101,7 @@ opencode github install --- -## Поддерживаемые события +## Supported Events opencode может быть запущен следующими событиями GitHub: @@ -250,7 +250,7 @@ jobs: --- -## Пользовательские подсказки +## Custom Prompts Переопределите приглашение по умолчанию, чтобы настроить поведение opencode для вашего рабочего процесса. @@ -293,9 +293,9 @@ jobs: А opencode создаст новую ветку, внедрит изменения и откроет PR с изменениями. -- **Проверьте запросы на запросы и внесите изменения** +- **Проверьте Pull Requests и внесите изменения** - Оставьте следующий комментарий к пиару на GitHub. + Оставьте следующий комментарий к PR на GitHub. ``` Delete the attachment from S3 when the note is removed /oc diff --git a/packages/web/src/content/docs/ru/gitlab.mdx b/packages/web/src/content/docs/ru/gitlab.mdx index ae899156a5..7f85f27e97 100644 --- a/packages/web/src/content/docs/ru/gitlab.mdx +++ b/packages/web/src/content/docs/ru/gitlab.mdx @@ -25,7 +25,7 @@ opencode работает в обычном конвейере GitLab. Вы мо --- -### Настраивать +### Setup 1. Сохраните JSON аутентификации opencode как переменные среды CI типа файла в разделе **Настройки** > **CI/CD** > **Переменные**. Обязательно пометьте их как «Замаскированные и скрытые». 2. Добавьте следующее в файл `.gitlab-ci.yml`. @@ -44,7 +44,7 @@ opencode работает в обычном конвейере GitLab. Вы мо --- -## GitLab Дуэт +## GitLab Duo opencode интегрируется с вашим рабочим процессом GitLab. Упомяните `@opencode` в комментарии, и opencode выполнит задачи в вашем конвейере GitLab CI. @@ -60,7 +60,7 @@ opencode интегрируется с вашим рабочим процесс --- -### Настраивать +### Setup opencode работает в вашем конвейере GitLab CI/CD. Вот что вам понадобится для его настройки: @@ -152,7 +152,7 @@ opencode работает в вашем конвейере GitLab CI/CD. Вот -Подробные инструкции можно найти в документации по агентам GitLab CLI](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/). +Подробные инструкции можно найти в [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/). --- diff --git a/packages/web/src/content/docs/ru/ide.mdx b/packages/web/src/content/docs/ru/ide.mdx index f92484101a..f7f138d14d 100644 --- a/packages/web/src/content/docs/ru/ide.mdx +++ b/packages/web/src/content/docs/ru/ide.mdx @@ -40,9 +40,9 @@ opencode интегрируется с VS Code, Cursor или любой IDE, п - Убедитесь, что вы используете `opencode` во встроенном terminal. - Убедитесь, что CLI для вашей IDE установлен: - - Для кода VS: команда `code`. - - Для курсора: команда `cursor`. - - Для виндсерфинга: команда `windsurf`. + - Для Code: команда `code`. + - Для Cursor: команда `cursor`. + - Для Windsurf: команда `windsurf`. - Для VSCodium: команда `codium`. - Если нет, запустите `Cmd+Shift+P` (Mac) или `Ctrl+Shift+P` (Windows/Linux) и найдите "Shell Command: Install 'code' command in PATH" (или эквивалент для вашей IDE). - Убедитесь, что у VS Code есть разрешение на установку расширений. diff --git a/packages/web/src/content/docs/ru/lsp.mdx b/packages/web/src/content/docs/ru/lsp.mdx index bdd0cff37d..751adbdec2 100644 --- a/packages/web/src/content/docs/ru/lsp.mdx +++ b/packages/web/src/content/docs/ru/lsp.mdx @@ -182,7 +182,7 @@ opencode поставляется с несколькими встроенным PHP Intelephense предлагает дополнительные функции через лицензионный ключ. Вы можете предоставить лицензионный ключ, поместив (только) ключ в текстовый файл по адресу: -- В macOS/Linux: `$HOME/intelephense/licence.txt` -- В Windows: `%USERPROFILE%/intelephense/licence.txt` +- В macOS/Linux: `$HOME/intelephense/license.txt` +- В Windows: `%USERPROFILE%/intelephense/license.txt` Файл должен содержать только лицензионный ключ без какого-либо дополнительного содержимого. diff --git a/packages/web/src/content/docs/th/1-0.mdx b/packages/web/src/content/docs/th/1-0.mdx index 1d67da62d1..38eef6176e 100644 --- a/packages/web/src/content/docs/th/1-0.mdx +++ b/packages/web/src/content/docs/th/1-0.mdx @@ -1,22 +1,22 @@ --- -title: สำหรับสิ่งนี้ 1.0 -description: ใน OpenCode 1.0 +title: OpenCode 1.0 +description: มีอะไรใหม่ใน OpenCode 1.0 --- -OpenCode 1.0 เป็นเนื้อหา TUI ทั้งหมด +OpenCode 1.0 เป็นการเขียน TUI ใหม่ทั้งหมด -เราย้ายจาก TUI ใช้ go+bubbletea ที่มีปัญหาด้านประสิทธิภาพและความสามารถไปเป็นพวงกุญแจภายใน (OpenTUI) ที่เขียนด้วย zig+solidjs +เราย้ายจาก TUI ใช้ go+bubbletea ที่มีปัญหาด้านประสิทธิภาพและความสามารถไปเป็นเฟรมเวิร์กภายใน (OpenTUI) ที่เขียนด้วย zig+solidjs TUIล่าสุดทำงานเหมือนกับเก่าเพราะความเชื่อ Opencode เดียวกัน --- -## สู่กรุงเดลต้า +## การอัปเกรด -คุณอัปเดตอัตโนมัติเป็น 1.0 อีกครั้งและปรับปรุงอยู่ -รุ่นดังกล่าว OpenCode ผู้เล่นเก่าบางเฉียบจะคว้ารางวัลล่าสุดเสมอ +คุณไม่ควรได้รับการอัปเกรดอัตโนมัติเป็น 1.0 หากคุณใช้เวอร์ชันก่อนหน้า +อย่างไรก็ตาม OpenCode เวอร์ชันเก่าบางเวอร์ชันจะดึงเวอร์ชันล่าสุดเสมอ -อย่างต่อเนื่องไม่จำเป็นต้องจดบันทึก +หากต้องการอัปเกรดด้วยตนเอง ให้รัน ```bash $ opencode upgrade 1.0.0 @@ -32,17 +32,17 @@ $ opencode upgrade 0.15.31 ## การเปลี่ยนแปลง UX -การค้นพบที่ค้นพบโดยความเชื่อโดยแสดงเฉพาะรายละเอียดในส่วนที่แก้ไขและทุบตีเท่านั้น +ประวัติเซสชันถูกบีบอัดมากขึ้น โดยแสดงเฉพาะรายละเอียดในส่วนที่แก้ไขและ bash เท่านั้น -ขอคำสั่งซึ่งหมายถึงทุกอย่างไหลผ่านกด ctrl+p จะเรียกสิ่งนี้ถึงคำอธิบายที่อธิบายทุกอย่างที่คุณทำได้ +เราเพิ่มแถบคำสั่งซึ่งเกือบทุกอย่างไหลผ่าน กด ctrl+p เพื่อเรียกสิ่งนี้ขึ้นมาในบริบทใดก็ได้และดูทุกสิ่งที่คุณทำได้ -จักรพรรดิ์อัจฉริยะ (สามารถมีได้) พร้อมข้อมูลข่าวสาร +เพิ่มแถบด้านข้างเซสชัน (สามารถสลับได้) พร้อมข้อมูลที่เป็นประโยชน์ -เราจะลบสิ่งที่เราเชื่อว่ามีใครใช้จริงออกเลยโปรดเปิดปัญหาแล้วเราจะเพิ่มกลับอย่างรวดเร็ว +เราลบฟังก์ชันบางอย่างที่เราไม่แน่ใจว่ามีใครใช้จริงออก หากมีสิ่งที่สำคัญหายไป โปรดเปิด issue แล้วเราจะเพิ่มกลับอย่างรวดเร็ว --- -## ทำลายล้าง +## การเปลี่ยนแปลงที่สำคัญ ### เปลี่ยนชื่อแล้ว diff --git a/packages/web/src/content/docs/th/acp.mdx b/packages/web/src/content/docs/th/acp.mdx index a82457dc10..b5897a480e 100644 --- a/packages/web/src/content/docs/th/acp.mdx +++ b/packages/web/src/content/docs/th/acp.mdx @@ -1,6 +1,6 @@ --- -title: ACPสามารถช่วย -description: ใช้ OpenCode ในโปรแกรมแก้ไขที่ต้องการ ACP +title: การรองรับ ACP +description: ใช้ OpenCode ในโปรแกรมแก้ไขที่รองรับ ACP --- OpenCode ที่แสดง [Agent Client Protocol](https://agentclientprotocol.com) หรือ (ACP) ซึ่งสามารถช่วยได้โดยตรงในการแก้ไขและ IDE ที่หน่วยความจำ @@ -13,17 +13,17 @@ ACP เป็นแบบเปิดมาตรฐานการสื่อ --- -## เม็กซิโก +## การกำหนดค่า -บางครั้งใช้ OpenCode ผ่าน ACP ไม่อนุญาตให้โปรแกรมแก้ไขของคุณให้รันคำสั่ง `opencode acp` +ในการใช้ OpenCode ผ่าน ACP ให้กำหนดค่าโปรแกรมแก้ไขของคุณให้รันคำสั่ง `opencode acp` -สั่งเริ่ม OpenCode เนื่องจากต้องย่อยที่จำเป็นต้องมี ACP ซึ่งจะต้องแก้ไขโปรแกรมของคุณผ่าน JSON-RPC ผ่าน stdio +คำสั่งนี้จะเริ่ม OpenCode เป็นกระบวนการย่อยที่เข้ากันได้กับ ACP ซึ่งสื่อสารกับโปรแกรมแก้ไขของคุณผ่าน JSON-RPC ผ่าน stdio -นี่คือตัวอย่างโปรแกรมแก้ไขยอดนิยมที่รองรับ ACP +นี่คือตัวอย่างสำหรับโปรแกรมแก้ไขยอดนิยมที่รองรับ ACP --- -### เซด +### Zed อดทนต่อไป [Zed](https://zed.dev) (`~/.config/zed/settings.json`): @@ -67,9 +67,9 @@ ACP เป็นแบบเปิดมาตรฐานการสื่อ --- -### เจ็ตเบรนส์ IDE +### JetBrains IDEs -ไปที่ [JetBrains IDE](https://www.jetbrains.com/) acp.json ของคุณตาม [เอกสาร](https://www.jetbrains.com/help/ai-assistant/acp.html): +เพิ่มลงใน acp.json ของ [JetBrains IDE](https://www.jetbrains.com/) ของคุณตาม [เอกสาร](https://www.jetbrains.com/help/ai-assistant/acp.html): ```json title="acp.json" { @@ -145,7 +145,7 @@ require("codecompanion").setup({ opencode ทำงานผ่าน ACP เหมือนกับใน terminal และรองรับฟีเจอร์ทั้งหมด: :::note -คำสั่งสแลมในคำสั่งบางคำสั่งเช่น `/undo` และ `/redo` ยังไม่รองรับในขณะนี้ +คำสั่ง slash ในตัวบางคำสั่งเช่น `/undo` และ `/redo` ยังไม่รองรับในขณะนี้ ::: - เครื่องมือใน (ไฟล์ไฟล์คำสั่งอื่นๆ) diff --git a/packages/web/src/content/docs/th/agents.mdx b/packages/web/src/content/docs/th/agents.mdx index 67751f248f..83b9bb9428 100644 --- a/packages/web/src/content/docs/th/agents.mdx +++ b/packages/web/src/content/docs/th/agents.mdx @@ -48,7 +48,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้บิลด์ -\_\_ โหมด: `primary` +_Mode_: `primary` สร้างเว็บหลัก **รองรับ** พร้อมด้วยเครื่องมือทั้งหมดที่มีเอเจนต์มาตรฐานเพื่อให้มีสิทธิ์การเข้าถึงไฟล์และคำสั่งระบบโดยสมบูรณ์ @@ -56,13 +56,13 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้แผน -\_\_ โหมด: `primary` +_Mode_: `primary` ตัวแทนแบบจำกัดที่ความเชื่อถือและการควบคุมระบบของการที่แจ้งให้ทราบอย่างเป็นทางการและป้องกันการเปลี่ยนแปลงโดยเฉพาะอย่างยิ่ง ตามคำอธิบายตามลำดับทั้งหมดของระบบเป็น `ask`: - `file edits`: เนื้อหา แพตช์ และเป็นที่ทั้งหมด -- `bash`: คำสั่งทุบตีทั้งหมด +- `bash`: คำสั่ง bash ทั้งหมด เอเจนต์นี้มีประโยชน์ต้องการให้ LLM ตรวจสอบโค้ดตรวจสอบการเปลี่ยนแปลงหรือสร้างแผนว่าจะทำดีเบสของคุณจริง @@ -70,7 +70,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้ทั่วไป -\_\_ โหมด: `subagent` +_Mode_: `subagent` ตัวแทนเพื่อค้นหาคำถามที่จำเป็นและต่อเนื่องหลายขั้นตอน อนุญาตให้เข้าถึงเครื่องมือต่างๆ (ยกเว้นการตรวจสอบ) และการปรับปรุงไฟล์ได้เมื่อจำเป็นต้องใช้สิ่งนี้เพื่อรันงานหลายหน่วยพร้อมกัน @@ -78,7 +78,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้สำรวจ -\_\_ โหมด: `subagent` +_Mode_: `subagent` เอเจนต์ความเร็วสูงและอ่านอย่างเดียวสำหรับฐานพื้นฐานโค้ดและตรวจดูไฟล์ได้ใช้สิ่งนี้เมื่อคุณต้องการค้นหาไฟล์อย่างรวดเร็วรูปแบบตามค้นหาโค้ดด้วยคำสำคัญหรือแบบสอบถามเกี่ยวกับโค้ดเบส @@ -86,7 +86,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้การบดอัด -\_\_ โหมด: `primary` +_Mode_: `primary` เอเจนต์ระบบนั้นมีส่วนช่วยในการสรุปที่ยาวไปสู่บทสรุปที่เล็กลงโดยเฉพาะอย่างยิ่งเมื่อจำเป็นต้องมีและใน UI @@ -94,7 +94,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้ชื่อ -\_\_ โหมด: `primary` +_Mode_: `primary` ตัวแทนของระบบซึ่งสร้างชื่อที่ออกแบบสั้น ๆ มันทำงานได้โดยไม่ต้องใช้ UI @@ -102,7 +102,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ ### ใช้สรุป -\_\_ โหมด: `primary` +_Mode_: `primary` ตัวแทนระบบนั้นซึ่งสร้างสรุปการตรวจสอบและทำงานโดยไม่ต้องมี UI @@ -128,7 +128,7 @@ OpenCode สืบสวนเอเจนต์หลักในตัวแ --- -## เม็กซิโก +## การกำหนดค่า ปรับแต่งเอเจนต์ในหรือสร้างเอเจนต์ได้ผ่านมาได้อย่างไม่น่าเชื่อตัวแทนได้สองวิธี: @@ -210,13 +210,13 @@ Provide constructive feedback without making direct changes. --- -## ต +## ตัวเลือก มาดูรายละเอียดเพิ่มเติมที่จุดนั้นกัน --- -### คำอธิบาย +### Description ใช้ฟีเจอร์ `description` เพื่อให้คำอธิบายสีนี้ทำอะไรและแนะนำเมื่อใด @@ -234,7 +234,7 @@ Provide constructive feedback without making direct changes. --- -### นั่น +### Temperature เหตุผลของการสุ่มและการตอบกลับของ LLM ด้วย `temperature` @@ -281,7 +281,7 @@ Provide constructive feedback without making direct changes. --- -### สูงสุด +### Max steps จำนวนส่วนประกอบของการวนซ้ำของเอเจนต์ที่เอเจนต์เป็นผลสืบเนื่องด้วยข้อความเท่านั้นวิธีการที่ต้องการควบคุมต้นทุนสามารถกำหนดได้ในแนวทางที่ตัวแทนได้ @@ -307,7 +307,7 @@ Provide constructive feedback without making direct changes. --- -### ต่อไปนี้ +### Disable ตั้งค่าเป็น `true` ไปถึงสมาชิก @@ -323,7 +323,7 @@ Provide constructive feedback without making direct changes. --- -### พรอมมาน +### Prompt ระบุไฟล์พร้อมท์ระบบสำหรับเอเจนต์นี้ด้วย `prompt`ความละเอียดสูงพร้อมคำแนะนำเฉพาะสำหรับกรณีของตัวแทน @@ -341,7 +341,7 @@ Provide constructive feedback without making direct changes. --- -### อย่างอย่างนั้น +### Model ใช้ฟังก์ชัน `model` ในส่วนของโมเดลโมเดลสำหรับเอเจนต์นี้มีประโยชน์สำหรับการใช้โมเดลโมเลกุลซึ่งปรับให้เหมาะกับงานโครงสร้างเช่นโมดูลสำหรับโมดูลที่ตรวจสอบที่เก็บข้อมูลจำนวนมากสำหรับการดำเนินการ @@ -522,7 +522,7 @@ Only analyze code and suggest changes. --- -### สิ่ง +### Mode ต้นแบบโหมดของตัวแทนด้วย `mode` บันทึก `mode` บันทึกวิธีการกำหนดวิธีการใช้ตัวแทน @@ -540,7 +540,7 @@ Only analyze code and suggest changes. --- -### ส่วนนั้น +### Hidden ซ่อนตัวแทนย่อยจากเมนูเติมข้อความอัตโนมัติ `@` ด้วย `hidden: true` มีประโยชน์สำหรับตัวแทนย่อยภายในจำเป็นต้องมีโปรแกรมโดยทางอื่นตัวแทนผ่านเครื่องมืองานเท่านั้น @@ -563,7 +563,7 @@ Only analyze code and suggest changes. --- -### สิทธิ์งาน +### Task permissions ต้นแบบตัวแทนย่อยที่ตัวแทนสามารถต้องใช้เครื่องมือผ่านงานด้วย `permission.task` ใช้รูปแบบ glob ส่วนใหญ่ที่ใหญ่ขึ้น @@ -596,7 +596,7 @@ Only analyze code and suggest changes. --- -### สี +### Color ปรับแต่งความต้องการของตัวแทนใน UI ด้วยตัวเลือก `color` เพื่อดูลักษณะเฉพาะของตัวแทนในการปฏิบัติตาม @@ -617,7 +617,7 @@ Only analyze code and suggest changes. --- -### ท็อปพี +### Top P หลักการของปฏิกิริยาด้วยตัวเลือก `top_p` ทางเลือกแทนการควบคุมการสุ่ม @@ -635,7 +635,7 @@ Only analyze code and suggest changes. --- -### นั่น +### Additional ข้อมูลอื่นๆ ที่คุณระบุในบางครั้งตัวแทนของคุณไปที่ **ส่งผ่านโดยตรง** ในส่วนของโครงสร้างข้อมูล คุณจะต้องดำเนินการและตรวจสอบเฉพาะของข้อมูลเท่านั้นได้ diff --git a/packages/web/src/content/docs/th/cli.mdx b/packages/web/src/content/docs/th/cli.mdx index 1539118987..a89143c710 100644 --- a/packages/web/src/content/docs/th/cli.mdx +++ b/packages/web/src/content/docs/th/cli.mdx @@ -27,9 +27,9 @@ opencode run "Explain how closures work in JavaScript" opencode [project] ``` -#### ยอด +#### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | ------------ | ---- | ---------------------------------------------------------- | | `--continue` | `-c` | มาดูกันเป็นครั้งสุดท้าย | | `--session` | `-s` | รหัสให้ดีเพื่อเหตุการณ์ | @@ -76,9 +76,9 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### ยอด +#### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | ----------- | ---- | -------------------------------------- | | `--dir` | | ไดเร็กทอรีการทำงานเพื่อเริ่มต้น TUI ใน | | `--session` | `-s` | รหัสให้ดีเพื่อเหตุการณ์ | @@ -185,9 +185,9 @@ opencode github install opencode github run ``` -##### ยอด +##### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | --------- | -------------------------------- | | `--event` | การจำลอง GitHub เพื่อขอรับตัวแทน | | `--token` | ความเป็นส่วนตัวของ GitHub | @@ -294,9 +294,9 @@ opencode models [provider] opencode models anthropic ``` -#### ยอด +#### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | ----------- | ------------------------------------------------- | | `--refresh` | โครงสร้างแคชโมเดลจาก models.dev | | `--verbose` | ใช้โมเดลนี้เพื่อตรวจสอบ (รวมข้อมูลเมตาเช่นต้นทุน) | @@ -333,9 +333,9 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### ยอด +#### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | ------------ | ---- | --------------------------------------------------------------------- | | `--command` | | คำสั่งให้รันใช้ข้อความสำหรับ args | | `--continue` | `-c` | มาดูกันเป็นครั้งสุดท้าย | @@ -362,9 +362,9 @@ opencode serve ตัวควบคุมจะเริ่มต้นเซิร์ฟเวอร์ HTTP ให้ API เข้าถึงฟังก์ชันการทำงานของ opencode ได้อย่างมีประสิทธิภาพ TUI จัดเตรียม `OPENCODE_SERVER_PASSWORD` ประสิทธิภาพของฮาร์ดแวร์ฮาร์ดแวร์ความถูกต้องพื้นฐาน HTTP (ตัวควบคุมของฮาร์ดแวร์คือ `opencode`) -#### ยอด +#### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | ------------ | --------------------------------------- | | `--port` | ท่าเรือที่จะฟัง | | `--hostname` | ชื่อที่จะฟัง | @@ -391,9 +391,9 @@ opencode session [command] opencode session list ``` -##### ยอด +##### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | ------------- | ---- | --------------------------- | | `--max-count` | `-n` | จำกัดการควบคุม N ใหม่ล่าสุด | | `--format` | | ตารางตารางหรือ json (ตาราง) | @@ -408,9 +408,9 @@ opencode session list opencode stats ``` -#### ยอด +#### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | ----------- | ------------------------------------------------------------------------------- | | `--days` | แสดงสถิติของ N วันในอดีต (ตลอดเวลา) | | `--tools` | เครื่องมือที่มองเห็น (ทั้งหมด) | @@ -458,9 +458,9 @@ opencode web ตัวควบคุมจะเริ่มต้นเซิร์ฟเวอร์ HTTP และเปิดเว็บเองเพื่อเข้าถึง OpenCode ผ่านทางเว็บอินเตอร์เฟส จัดเตรียม `OPENCODE_SERVER_PASSWORD` สำหรับคำอธิบายคุณสมบัติความถูกต้องพื้นฐาน HTTP (ตัวยึดของฮาร์ดแวร์คือ `opencode`) -#### ยอด +#### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | ------------ | --------------------------------------- | | `--port` | ท่าเรือที่จะฟัง | | `--hostname` | ชื่อที่จะฟัง | @@ -479,9 +479,9 @@ opencode acp สั่งนี้เริ่มต้นผู้โดยสาร ACP ที่สื่อสารผ่าน stdin/stdout nd-JSON -#### ยอด +#### แฟล็ก -| ยอด | คำอธิบาย | +| แฟล็ก | คำอธิบาย | | ------------ | ------------------ | | `--cwd` | ไดเร็กทอรีการทำงาน | | `--port` | ท่าเรือที่จะฟัง | @@ -497,9 +497,9 @@ opencode acp opencode uninstall ``` -#### ยอด +#### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | --------------- | ---- | ---------------------------------- | | `--keep-config` | `-c` | เก็บไฟล์ไว้ที่นี่ | | `--keep-data` | `-d` | บางครั้งเซสชั่นและสแน็ปช็อต | @@ -528,11 +528,11 @@ opencode upgrade opencode upgrade v0.1.48 ``` -#### ยอด +#### แฟล็ก -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | ---------- | ---- | ----------------------------------------------- | -| `--method` | `-m` | วิธีการติดตั้งที่ใช้curl, npm, pnpm, ขนมปัง, ชง | +| `--method` | `-m` | วิธีการติดตั้งที่ใช้ curl, npm, pnpm, bun, brew | --- @@ -540,7 +540,7 @@ opencode upgrade v0.1.48 opencode CLI รับค่าสถานะสากลต่อไป -| ยอด | สั้น | คำอธิบาย | +| แฟล็ก | สั้น | คำอธิบาย | | -------------- | ---- | ------------------------------------------- | | `--help` | `-h` | แสดงความช่วยเหลือ | | `--version` | `-v` | หมายเลขการพิมพ์ | @@ -549,55 +549,55 @@ opencode CLI รับค่าสถานะสากลต่อไป --- -## อีกครั้งหนึ่ง +## ตัวแปรสภาพแวดล้อม -OpenCode สามารถทำได้ตามที่กล่าวมาข้างต้น +OpenCode สามารถกำหนดค่าโดยใช้ตัวแปรสภาพแวดล้อม -| ส่วนนั้น | พิมพ์ | คำอธิบาย | -| ------------------------------------- | ----- | ----------------------------------------------------------- | -| `OPENCODE_AUTO_SHARE` | บูลิน | แชร์การแจ้งเตือน | -| `OPENCODE_GIT_BASH_PATH` | เชือก | เข้าสู่ Git Bash ได้บน Windows | -| `OPENCODE_CONFIG` | เชือก | ไปยังไฟล์ฟิลม์ | -| `OPENCODE_CONFIG_DIR` | เชือก | เพื่อเป็นไดเร็กทอรีคุณสามารถดู | -| `OPENCODE_CONFIG_CONTENT` | เชือก | เนื้อหาเหมือนกับ json แบบอินไลน์ | -| `OPENCODE_DISABLE_AUTOUPDATE` | บูลิน | ตรวจสอบระบบควบคุมอัตโนมัติ | -| `OPENCODE_DISABLE_PRUNE` | บูลิน | การควบคุมการกำจัดข้อมูลเก่า | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | บูลิน | เพื่อเป็นชื่อระบบควบคุมอัตโนมัติ | -| `OPENCODE_PERMISSION` | เชือก | มีสิทธิ์ json แบบอินไลน์ | -| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | บูลิน | การติดตามผลเริ่มต้น | -| `OPENCODE_DISABLE_LSP_DOWNLOAD` | บูลิน | ค่ำคืนนี้อาหารค่ำ LSP อัตโนมัติ | -| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | บูลิน | รูปแบบการทดลอง | -| `OPENCODE_DISABLE_AUTOCOMPACT` | บูลิน | เพื่อการกระชับระบบอัตโนมัติ | -| `OPENCODE_DISABLE_CLAUDE_CODE` | บูลิน | การควบคุมดูแลจาก `.claude` (พร้อมท์ + ทักษะ) | -| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | บูลิน | การควบคุมดูแล `~/.claude/CLAUDE.md` | -| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | บูลิน | ต่อมา `.claude/skills` | -| `OPENCODE_DISABLE_MODELS_FETCH` | บูลิน | ปิดใช้การดึงโมเดลจากแหล่งที่มาของข้อมูล | -| `OPENCODE_FAKE_VCS` | เชือก | ประธานาธิบดี VCS ปลอมเพื่อการทดสอบ | -| `OPENCODE_DISABLE_FILETIME_CHECK` | บูลิน | ตรวจสอบเวลาไฟล์เพื่อตรวจสอบ | -| `OPENCODE_CLIENT` | เชือก | คนที่ระบุลูกค้า (ส่วนคือ `cli`) | -| `OPENCODE_ENABLE_EXA` | บูลิน | นอกจากนี้เรายังมีเว็บ Exa | -| `OPENCODE_SERVER_PASSWORD` | เชือก | เอกสารสิทธิ์พื้นฐานสำหรับ `serve`/`web` | -| `OPENCODE_SERVER_USERNAME` | เชือก | เมนบอร์ดระบบควบคุมคุณสมบัติความถูกต้องพื้นฐาน ( `opencode`) | -| `OPENCODE_MODELS_URL` | เชือก | ขอขอบคุณ URL สำหรับข้อมูลดึงข้อมูลโมเดล | +| ตัวแปร | ชนิด | คำอธิบาย | +| ------------------------------------- | ------- | ----------------------------------------------------------- | +| `OPENCODE_AUTO_SHARE` | Boolean | แชร์การแจ้งเตือน | +| `OPENCODE_GIT_BASH_PATH` | String | เข้าสู่ Git Bash ได้บน Windows | +| `OPENCODE_CONFIG` | String | ไปยังไฟล์ฟิลม์ | +| `OPENCODE_CONFIG_DIR` | String | เพื่อเป็นไดเร็กทอรีคุณสามารถดู | +| `OPENCODE_CONFIG_CONTENT` | String | เนื้อหาเหมือนกับ json แบบอินไลน์ | +| `OPENCODE_DISABLE_AUTOUPDATE` | Boolean | ตรวจสอบระบบควบคุมอัตโนมัติ | +| `OPENCODE_DISABLE_PRUNE` | Boolean | การควบคุมการกำจัดข้อมูลเก่า | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | Boolean | เพื่อเป็นชื่อระบบควบคุมอัตโนมัติ | +| `OPENCODE_PERMISSION` | String | มีสิทธิ์ json แบบอินไลน์ | +| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | Boolean | การติดตามผลเริ่มต้น | +| `OPENCODE_DISABLE_LSP_DOWNLOAD` | Boolean | ค่ำคืนนี้อาหารค่ำ LSP อัตโนมัติ | +| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | Boolean | รูปแบบการทดลอง | +| `OPENCODE_DISABLE_AUTOCOMPACT` | Boolean | เพื่อการกระชับระบบอัตโนมัติ | +| `OPENCODE_DISABLE_CLAUDE_CODE` | Boolean | การควบคุมดูแลจาก `.claude` (พร้อมท์ + ทักษะ) | +| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | Boolean | การควบคุมดูแล `~/.claude/CLAUDE.md` | +| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | Boolean | ต่อมา `.claude/skills` | +| `OPENCODE_DISABLE_MODELS_FETCH` | Boolean | ปิดใช้การดึงโมเดลจากแหล่งที่มาของข้อมูล | +| `OPENCODE_FAKE_VCS` | String | ประธานาธิบดี VCS ปลอมเพื่อการทดสอบ | +| `OPENCODE_DISABLE_FILETIME_CHECK` | Boolean | ตรวจสอบเวลาไฟล์เพื่อตรวจสอบ | +| `OPENCODE_CLIENT` | String | คนที่ระบุลูกค้า (ส่วนคือ `cli`) | +| `OPENCODE_ENABLE_EXA` | Boolean | นอกจากนี้เรายังมีเว็บ Exa | +| `OPENCODE_SERVER_PASSWORD` | String | เอกสารสิทธิ์พื้นฐานสำหรับ `serve`/`web` | +| `OPENCODE_SERVER_USERNAME` | String | เมนบอร์ดระบบควบคุมคุณสมบัติความถูกต้องพื้นฐาน ( `opencode`) | +| `OPENCODE_MODELS_URL` | String | ขอขอบคุณ URL สำหรับข้อมูลดึงข้อมูลโมเดล | --- -### ส่วนนั้น +### Experimental -อาจเป็นไปได้ว่าคุณสมบัติการทดลองนี้สามารถปรับเปลี่ยนหรือถูกลบออกได้ +ตัวแปรสภาพแวดล้อมเหล่านี้เปิดใช้งานฟีเจอร์ทดลองที่อาจมีการเปลี่ยนแปลงหรือถูกลบออก -| ส่วนนั้น | พิมพ์ | คำอธิบาย | -| ----------------------------------------------- | ------ | ---------------------------------------------- | -| `OPENCODE_EXPERIMENTAL` | บูลิน | ในที่สุดเราก็ทดลองทั้งหมด | -| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | บูลิน | การแจ้งเตือนการแจ้งเตือน | -| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | บูลิน | ยังไงก็ตามการเลือกที่จะเลือกใน TUI | -| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | ตัวเลข | การหมดเวลาเริ่มต้นสำหรับคำสั่ง bash ในหน่วย ms | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | ตัวเลข | เหตุผลที่สูงสุดสำหรับตอบกลับ LLM | -| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | บูลิน | เพื่อให้ตัวดูไฟล์สำหรับ dir ทั้งหมด | -| `OPENCODE_EXPERIMENTAL_OXFMT` | บูลิน | เพื่อให้เป็นไปตามแมตเตอร์ oxfmt | -| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | บูลิน | สามารถใช้เครื่องมือทดลอง LSP | -| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | บูลิน | ไม่ใช่ตัวดูไฟล์ | -| `OPENCODE_EXPERIMENTAL_EXA` | บูลิน | คุณสมบัติ Exa ทดลอง | -| `OPENCODE_EXPERIMENTAL_LSP_TY` | บูลิน | ตรวจสอบประเภท LSP แบบทดลอง | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | บูลิน | สามารถใช้ Markdown รุ่นทดลองได้ | -| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | บูลิน | เพื่อเป็นโหมด | +| ตัวแปร | ชนิด | คำอธิบาย | +| ----------------------------------------------- | ------- | ---------------------------------------------- | +| `OPENCODE_EXPERIMENTAL` | Boolean | ในที่สุดเราก็ทดลองทั้งหมด | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | Boolean | การแจ้งเตือนการแจ้งเตือน | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | Boolean | ยังไงก็ตามการเลือกที่จะเลือกใน TUI | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | ตัวเลข | การหมดเวลาเริ่มต้นสำหรับคำสั่ง bash ในหน่วย ms | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | ตัวเลข | เหตุผลที่สูงสุดสำหรับตอบกลับ LLM | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | Boolean | เพื่อให้ตัวดูไฟล์สำหรับ dir ทั้งหมด | +| `OPENCODE_EXPERIMENTAL_OXFMT` | Boolean | เพื่อให้เป็นไปตามแมตเตอร์ oxfmt | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | Boolean | สามารถใช้เครื่องมือทดลอง LSP | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | Boolean | ไม่ใช่ตัวดูไฟล์ | +| `OPENCODE_EXPERIMENTAL_EXA` | Boolean | คุณสมบัติ Exa ทดลอง | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | Boolean | ตรวจสอบประเภท LSP แบบทดลอง | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | Boolean | สามารถใช้ Markdown รุ่นทดลองได้ | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | Boolean | เพื่อเป็นโหมด | diff --git a/packages/web/src/content/docs/th/commands.mdx b/packages/web/src/content/docs/th/commands.mdx index f501aaabfc..86bf4c67a7 100644 --- a/packages/web/src/content/docs/th/commands.mdx +++ b/packages/web/src/content/docs/th/commands.mdx @@ -163,7 +163,7 @@ with the following content: $3 ### ส่วนเชล -ใช้ *!`command`*เพื่อที่จะฉีดประสิทธิภาพสูง [bash command](/docs/tui#bash-commands) ติดตั้งพรอมต์ของคุณ +ใช้ _!`command`_ เพื่อแทรกเอาต์พุตของ [คำสั่ง bash](/docs/tui#bash-commands) ใดๆ ลงในพรอมต์ของคุณ เพื่อเป็นคำสั่งสร้างความพยายามเพื่อวิเคราะห์การทดสอบของการทดสอบ: @@ -212,13 +212,13 @@ Check for performance issues and suggest improvements. --- -## ต +## ตัวเลือก มาดูรายละเอียดเพิ่มเติมกัน --- -### เทม +### Template `template` กำหนดพรอมต์ที่จะเป็นไปได้ LLM จะดำเนินการคำสั่ง @@ -294,7 +294,7 @@ Check for performance issues and suggest improvements. --- -### อย่างอย่างนั้น +### Model ใช้ `model` ไปจนถึงโมเดลเริ่มต้นสำหรับคำสั่งนี้ diff --git a/packages/web/src/content/docs/th/formatters.mdx b/packages/web/src/content/docs/th/formatters.mdx index 25b25040b3..e852cb45dc 100644 --- a/packages/web/src/content/docs/th/formatters.mdx +++ b/packages/web/src/content/docs/th/formatters.mdx @@ -11,32 +11,32 @@ OpenCode จะจัดรูปแบบไฟล์โดยอัตโน OpenCode มาพร้อมกับฟอร์แมตเตอร์ในตัวหลายตัวสำหรับภาษาและเฟรมเวิร์กยอดนิยม ด้านล่างนี้คือรายการฟอร์แมตเตอร์ นามสกุลไฟล์ที่รองรับ และคำสั่งหรือตัวเลือกการกำหนดค่าที่ต้องการ -| ฟอร์แมตเตอร์ | ส่วนขยาย | ความต้องการ | -| ------------------ | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | -| กอฟท์ | .ไป | `gofmt` คำสั่งใช้ได้ | -| ผสม | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` คำสั่งใช้ได้ | -| สวยกว่า | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ [เพิ่มเติม](https://prettier.io/docs/en/index.html) | `prettier` การพึ่งพาใน `package.json` | -| ชีวนิเวศน์ | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ [เพิ่มเติม](https://biomejs.dev/) | `biome.json(c)` ไฟล์ปรับแต่ง | -| ซิกซิก | .ซิก, .ซอน | `zig` คำสั่งใช้ได้ | -| เสียงดังกราวรูปแบบ | .c, .cpp, .h, .hpp, .ino และ [เพิ่มเติม](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` ไฟล์ปรับแต่ง | -| เคทลินท์ | .kt, .kts | `ktlint` คำสั่งใช้ได้ | -| สร้อย | .py, .pyi | คำสั่ง `ruff` ใช้ได้กับ config | -| สนิม | .อาร์เอส | `rustfmt` คำสั่งใช้ได้ | -| สินค้าfmt | .อาร์เอส | `cargo fmt` คำสั่งใช้ได้ | -| ยูวี | .py, .pyi | `uv` คำสั่งใช้ได้ | -| รูโบคอป | .rb, .rake, .gemspec, .ru | `rubocop` คำสั่งใช้ได้ | -| มาตรฐานrb | .rb, .rake, .gemspec, .ru | `standardrb` คำสั่งใช้ได้ | -| htmlเสริมสวย | .erb, .html.erb | `htmlbeautifier` คำสั่งใช้ได้ | -| อากาศ | .ร | `air` คำสั่งใช้ได้ | -| โผ | .โผ | `dart` คำสั่งใช้ได้ | -| ocamlformat | .มล., .มลิ | มีคำสั่ง `ocamlformat` และไฟล์ปรับแต่ง `.ocamlformat` | -| ภูมิประเทศ | .tf, .tfvars | `terraform` คำสั่งใช้ได้ | -| เปล่งประกาย | .แวววาว | `gleam` คำสั่งใช้ได้ | -| ห้าม | .ห้าม | `nixfmt` คำสั่งใช้ได้ | -| สับเปลี่ยน | .sh, .ทุบตี | `shfmt` คำสั่งใช้ได้ | -| ไพน์ | .php | `laravel/pint` การพึ่งพาใน `composer.json` | -| oxfmt (ทดลอง) | .js, .jsx, .ts, .tsx | `oxfmt` การพึ่งพาใน `package.json` และ [แฟล็กตัวแปร env ทดลอง](/docs/cli/#experimental) | -| ออร์โมลู | .hs | `ormolu` คำสั่งใช้ได้ | +| ฟอร์แมตเตอร์ | ส่วนขยาย | ความต้องการ | +| -------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | +| gofmt | .go | `gofmt` คำสั่งใช้ได้ | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` คำสั่งใช้ได้ | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ [เพิ่มเติม](https://prettier.io/docs/en/index.html) | `prettier` การพึ่งพาใน `package.json` | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml และ [เพิ่มเติม](https://biomejs.dev/) | `biome.json(c)` ไฟล์ปรับแต่ง | +| zig | .zig, .zon | `zig` คำสั่งใช้ได้ | +| clang-format | .c, .cpp, .h, .hpp, .ino และ [เพิ่มเติม](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` ไฟล์ปรับแต่ง | +| ktlint | .kt, .kts | `ktlint` คำสั่งใช้ได้ | +| ruff | .py, .pyi | คำสั่ง `ruff` ใช้ได้กับ config | +| rust | .rs | `rustfmt` คำสั่งใช้ได้ | +| cargo fmt | .rs | `cargo fmt` คำสั่งใช้ได้ | +| uv | .py, .pyi | `uv` คำสั่งใช้ได้ | +| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` คำสั่งใช้ได้ | +| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` คำสั่งใช้ได้ | +| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` คำสั่งใช้ได้ | +| air | .r | `air` คำสั่งใช้ได้ | +| dart | .dart | `dart` คำสั่งใช้ได้ | +| ocamlformat | .ml, .mli | มีคำสั่ง `ocamlformat` และไฟล์ปรับแต่ง `.ocamlformat` | +| terraform | .tf, .tfvars | `terraform` คำสั่งใช้ได้ | +| gleam | .gleam | `gleam` คำสั่งใช้ได้ | +| nix | .nix | `nixfmt` คำสั่งใช้ได้ | +| shfmt | .sh, .bash | `shfmt` คำสั่งใช้ได้ | +| pint | .php | `laravel/pint` การพึ่งพาใน `composer.json` | +| oxfmt (ทดลอง) | .js, .jsx, .ts, .tsx | `oxfmt` การพึ่งพาใน `package.json` และ [แฟล็กตัวแปร env ทดลอง](/docs/cli/#experimental) | +| ormolu | .hs | `ormolu` คำสั่งใช้ได้ | ดังนั้นหากโปรเจ็กต์ของคุณมี `prettier` ใน `package.json` OpenCode จะใช้มันโดยอัตโนมัติ diff --git a/packages/web/src/content/docs/th/github.mdx b/packages/web/src/content/docs/th/github.mdx index 858a8e8e93..45a4fa84e7 100644 --- a/packages/web/src/content/docs/th/github.mdx +++ b/packages/web/src/content/docs/th/github.mdx @@ -9,7 +9,7 @@ OpenCode ผสานรวมกับเวิร์กโฟลว์ GitHub ## คุณสมบัติ -- **ปัญหาการคัดแยก**: ขอให้ OpenCode ตรวจสอบปัญหาและอธิบายให้คุณทราบ +- **Issue Triage**: ขอให้ OpenCode ตรวจสอบปัญหาและอธิบายให้คุณทราบ - **แก้ไขและนำไปใช้**: ขอให้ OpenCode แก้ไขปัญหาหรือใช้ฟีเจอร์ และมันจะทำงานในสาขาใหม่และส่ง PR พร้อมการเปลี่ยนแปลงทั้งหมด - **ปลอดภัย**: OpenCode ทำงานภายในรันเนอร์ของ GitHub ของคุณ diff --git a/packages/web/src/content/docs/th/gitlab.mdx b/packages/web/src/content/docs/th/gitlab.mdx index 48d89ef5cd..44bee1ddac 100644 --- a/packages/web/src/content/docs/th/gitlab.mdx +++ b/packages/web/src/content/docs/th/gitlab.mdx @@ -44,7 +44,7 @@ OpenCode ทำงานในไปป์ไลน์ GitLab ปกติ ค --- -## GitLab ดูโอ +## GitLab Duo OpenCode ทำงานร่วมกับเวิร์กโฟลว์ GitLab ของคุณ พูดถึง `@opencode` ในความคิดเห็น แล้ว OpenCode จะดำเนินการงานภายในไปป์ไลน์ GitLab CI ของคุณ @@ -53,7 +53,7 @@ OpenCode ทำงานร่วมกับเวิร์กโฟลว์ G ### คุณสมบัติ -- **ปัญหาการคัดแยก**: ขอให้ OpenCode ตรวจสอบปัญหาและอธิบายให้คุณทราบ +- **Issue Triage**: ขอให้ OpenCode ตรวจสอบปัญหาและอธิบายให้คุณทราบ - **แก้ไขและนำไปใช้**: ขอให้ OpenCode แก้ไขปัญหาหรือใช้ฟีเจอร์ มันจะสร้างสาขาใหม่และขอรวมการเปลี่ยนแปลง - **ปลอดภัย**: OpenCode ทำงานบนนักวิ่ง GitLab ของคุณ diff --git a/packages/web/src/content/docs/th/ide.mdx b/packages/web/src/content/docs/th/ide.mdx index 9138a3c0d8..5668048231 100644 --- a/packages/web/src/content/docs/th/ide.mdx +++ b/packages/web/src/content/docs/th/ide.mdx @@ -20,7 +20,7 @@ OpenCode ทำงานร่วมกับ VS Code, Cursor หรือ IDE วิธีติดตั้ง OpenCode บน VS Code และทางแยกยอดนิยม เช่น Cursor, Windsurf, VSCodium: -1. เปิดรหัส VS +1. เปิด VS Code 2. เปิด terminal รวม 3. เรียกใช้ `opencode` - ​​ส่วนขยายจะติดตั้งโดยอัตโนมัติ @@ -40,9 +40,9 @@ OpenCode ทำงานร่วมกับ VS Code, Cursor หรือ IDE - ตรวจสอบให้แน่ใจว่าคุณใช้งาน `opencode` ใน terminal รวม - ยืนยันว่า CLI สำหรับ IDE ของคุณได้รับการติดตั้งแล้ว: - - สำหรับรหัส VS: `code` คำสั่ง - - สำหรับเคอร์เซอร์: `cursor` คำสั่ง - - สำหรับวินด์เซิร์ฟ: `windsurf` คำสั่ง + - สำหรับ VS Code: `code` คำสั่ง + - สำหรับ Cursor: `cursor` คำสั่ง + - สำหรับ Windsurf: `windsurf` คำสั่ง - สำหรับ VSCodium: `codium` คำสั่ง - ถ้าไม่เช่นนั้น ให้รัน `Cmd+Shift+P` (Mac) หรือ `Ctrl+Shift+P` (Windows/Linux) และค้นหา "Shell Command: Install 'code' command in PATH" (หรือเทียบเท่ากับ IDE ของคุณ) - ตรวจสอบให้แน่ใจว่ารหัส VS มีสิทธิ์ในการติดตั้งส่วนขยาย diff --git a/packages/web/src/content/docs/th/index.mdx b/packages/web/src/content/docs/th/index.mdx index f33b58e55d..a6e1fac2c7 100644 --- a/packages/web/src/content/docs/th/index.mdx +++ b/packages/web/src/content/docs/th/index.mdx @@ -9,7 +9,7 @@ export const console = config.console [**OpenCode**](/) คือเอเจนต์การเข้ารหัส AI แบบโอเพ่นซอร์ส มีให้บริการในรูปแบบอินเทอร์เฟซบน terminal แอปเดสก์ท็อป หรือส่วนขยาย IDE -![OpenCode TUI พร้อมธีม opencode](../../../assets/lander/screenshot.png) +![OpenCode TUI พร้อม opencode theme](../../../assets/lander/screenshot.png) มาเริ่มกันเลย @@ -22,8 +22,8 @@ export const console = config.console 1. terminal อีมูเลเตอร์ที่ทันสมัยเช่น: - [WezTerm](https://wezterm.org) ข้ามแพลตฟอร์ม - [Alacritty](https://alacritty.org) ข้ามแพลตฟอร์ม - - [โกสต์ตี้](https://ghostty.org), ลินุกซ์ และ macOS - - [คิตตี้](https://sw.kovidgoyal.net/kitty/), Linux และ macOS + - [Ghostty](https://ghostty.org), Linux และ macOS + - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux และ macOS 2. ปุ่ม API สำหรับผู้ให้บริการ LLM ที่คุณต้องการใช้ @@ -39,7 +39,7 @@ curl -fsSL https://opencode.ai/install | bash คุณยังสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้: -- **การใช้ Node.js** +- **ใช้ Node.js** @@ -73,7 +73,7 @@ curl -fsSL https://opencode.ai/install | bash -- **การใช้ Homebrew บน macOS และ Linux** +- **ใช้ Homebrew บน macOS และ Linux** ```bash brew install anomalyco/tap/opencode @@ -81,25 +81,25 @@ curl -fsSL https://opencode.ai/install | bash > เราขอแนะนำให้ใช้การแตะ OpenCode เพื่อเผยแพร่ข้อมูลล่าสุด สูตร `brew install opencode` อย่างเป็นทางการได้รับการดูแลโดยทีมงาน Homebrew และมีการอัปเดตไม่บ่อยนัก -- **การใช้ Paru บน Arch Linux** +- **ใช้ Paru บน Arch Linux** ```bash paru -S opencode-bin ``` -#### หน้าต่าง +#### Windows :::tip[แนะนำ: ใช้ WSL] เพื่อประสบการณ์ที่ดีที่สุดบน Windows เราขอแนะนำให้ใช้ [ระบบย่อย Windows สำหรับ Linux (WSL)](/docs/windows-wsl) ให้ประสิทธิภาพที่ดีขึ้นและความเข้ากันได้เต็มรูปแบบกับคุณสมบัติของ OpenCode ::: -- **ใช้ช็อคโกแลต** +- **ใช้ Chocolatey** ```bash choco install opencode ``` -- **การใช้สกู๊ป** +- **ใช้ Scoop** ```bash scoop install opencode @@ -111,13 +111,13 @@ curl -fsSL https://opencode.ai/install | bash npm install -g opencode-ai ``` -- ** การใช้ Mise ** +- **ใช้ Mise** ```bash mise use -g github:anomalyco/opencode ``` -- **การใช้นักเทียบท่า** +- **ใช้ Docker** ```bash docker run -it --rm ghcr.io/anomalyco/opencode diff --git a/packages/web/src/content/docs/th/keybinds.mdx b/packages/web/src/content/docs/th/keybinds.mdx index f5d3fc8c8d..e9973e3346 100644 --- a/packages/web/src/content/docs/th/keybinds.mdx +++ b/packages/web/src/content/docs/th/keybinds.mdx @@ -105,13 +105,13 @@ OpenCode มีรายการปุ่มลัดที่คุณปร --- -## กุญแจผู้นำ +## Leader key -OpenCode ใช้คีย์ `leader` สำหรับการเชื่อมโยงคีย์ส่วนใหญ่ วิธีนี้จะหลีกเลี่ยงความขัดแย้งใน terminal ของคุณ +OpenCode ใช้ปุ่ม `leader` สำหรับการเชื่อมโยงคีย์ส่วนใหญ่ วิธีนี้จะหลีกเลี่ยงความขัดแย้งใน terminal ของคุณ -ตามค่าเริ่มต้น `ctrl+x` จะเป็นปุ่มผู้นำ และการดำเนินการส่วนใหญ่ต้องการให้คุณกดปุ่มผู้นำก่อน จากนั้นจึงกดทางลัด ตัวอย่างเช่น หากต้องการเริ่มเซสชันใหม่ คุณต้องกด `ctrl+x` ก่อน จากนั้นจึงกด `n` +ตามค่าเริ่มต้น `ctrl+x` จะเป็นปุ่ม leader และการดำเนินการส่วนใหญ่ต้องการให้คุณกดปุ่ม leader ก่อน จากนั้นจึงกดทางลัด ตัวอย่างเช่น หากต้องการเริ่มเซสชันใหม่ คุณต้องกด `ctrl+x` ก่อน จากนั้นจึงกด `n` -คุณไม่จำเป็นต้องใช้คีย์ผู้นำสำหรับการผูกคีย์ แต่เราขอแนะนำให้ทำเช่นนั้น +คุณไม่จำเป็นต้องใช้ปุ่ม leader สำหรับการผูกคีย์ แต่เราขอแนะนำให้ทำเช่นนั้น --- @@ -143,10 +143,10 @@ OpenCode ใช้คีย์ `leader` สำหรับการเชื่ | `alt+b` | เลื่อนเคอร์เซอร์กลับไปหนึ่งคำ | | `alt+f` | เลื่อนเคอร์เซอร์ไปข้างหน้าหนึ่งคำ | | `ctrl+d` | ลบอักขระใต้เคอร์เซอร์ | -| `ctrl+k` | ฆ่าให้จบแถว | -| `ctrl+u` | ฆ่าที่จุดเริ่มต้นของบรรทัด | -| `ctrl+w` | ฆ่าคำก่อนหน้า | -| `alt+d` | ฆ่าคำถัดไป | +| `ctrl+k` | ลบจนจบแถว | +| `ctrl+u` | ลบจนถึงต้นบรรทัด | +| `ctrl+w` | ลบคำก่อนหน้า | +| `alt+d` | ลบคำถัดไป | | `ctrl+t` | ย้ายอักขระ | | `ctrl+g` | ยกเลิกป๊อปโอเวอร์ / ยกเลิกการตอบกลับที่ทำงานอยู่ | diff --git a/packages/web/src/content/docs/th/lsp.mdx b/packages/web/src/content/docs/th/lsp.mdx index 0eb1cf96ba..0e5e28c4a6 100644 --- a/packages/web/src/content/docs/th/lsp.mdx +++ b/packages/web/src/content/docs/th/lsp.mdx @@ -13,38 +13,38 @@ OpenCode มาพร้อมกับเซิร์ฟเวอร์ LSP ใ | LSP เซิร์ฟเวอร์ | ส่วนขยาย | ความต้องการ | | -------------------- | ------------------------------------------------------------------- | ------------------------------------------------------- | -| โหราศาสตร์ | .แอสโตร | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Astro | -| ทุบตี | .sh, .ทุบตี, .zsh, .ksh | ติดตั้ง bash-Language-Server โดยอัตโนมัติ | -| เสียงดังกราว | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | ติดตั้งอัตโนมัติสำหรับโครงการ C/C++ | -| ซีชาร์ป | .ซีเอส | `.NET SDK` ติดตั้งแล้ว | +| astro | .astro | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Astro | +| bash | .sh, .bash, .zsh, .ksh | ติดตั้ง bash-Language-Server โดยอัตโนมัติ | +| clang | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | ติดตั้งอัตโนมัติสำหรับโครงการ C/C++ | +| csharp | .cs | `.NET SDK` ติดตั้งแล้ว | | clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` คำสั่งใช้ได้ | -| โผ | .โผ | `dart` คำสั่งใช้ได้ | -| เดโน | .ts, .tsx, .js, .jsx, .mjs | มีคำสั่ง `deno` (ตรวจจับอัตโนมัติ deno.json/deno.jsonc) | -| น้ำอมฤต-ls | .ex, .exs | `elixir` คำสั่งใช้ได้ | -| เอสลินท์ | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` การพึ่งพาในโครงการ | -| เอฟชาร์ป | .fs, .fsi, .fsx, .fsscript | `.NET SDK` ติดตั้งแล้ว | -| เปล่งประกาย | .แวววาว | `gleam` คำสั่งใช้ได้ | -| โกปลส์ | .ไป | `go` คำสั่งใช้ได้ | -| สวัสดี | .hs, .lhs | `haskell-language-server-wrapper` คำสั่งใช้ได้ | +| dart | .dart | `dart` คำสั่งใช้ได้ | +| deno | .ts, .tsx, .js, .jsx, .mjs | มีคำสั่ง `deno` (ตรวจจับอัตโนมัติ deno.json/deno.jsonc) | +| elixir-ls | .ex, .exs | `elixir` คำสั่งใช้ได้ | +| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` การพึ่งพาในโครงการ | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` ติดตั้งแล้ว | +| gleam | .gleam | `gleam` คำสั่งใช้ได้ | +| gopls | .go | `go` คำสั่งใช้ได้ | +| haskell | .hs, .lhs | `haskell-language-server-wrapper` คำสั่งใช้ได้ | | jdtls | .java | `Java SDK (version 21+)` ติดตั้งแล้ว | | kotlin-ls | .kt, .kts | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Kotlin | | lua-ls | .lua | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Lua | -| ห้าม | .ห้าม | `nixd` คำสั่งใช้ได้ | -| ocaml-lsp | .มล., .มลิ | `ocamllsp` คำสั่งใช้ได้ | -| ออกซ์ลินท์ | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` การพึ่งพาในโครงการ | +| nix | .nix | `nixd` คำสั่งใช้ได้ | +| ocaml-lsp | .ml, .mli | `ocamllsp` คำสั่งใช้ได้ | +| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` การพึ่งพาในโครงการ | | php intelephense.php | .php | ติดตั้งอัตโนมัติสำหรับโครงการ PHP | -| ปริซึม | .ปริซึม | `prisma` คำสั่งใช้ได้ | -| ไพไรท์ | .py, .pyi | `pyright` ติดตั้งการพึ่งพาแล้ว | -| ทับทิม-lsp (rubocop) | .rb, .rake, .gemspec, .ru | มีคำสั่ง `ruby` และ `gem` | -| สนิม | .อาร์เอส | `rust-analyzer` คำสั่งใช้ได้ | -| ซอร์สคิท-lsp | .สวิฟท์, .objc, .objcpp | ติดตั้ง `swift` (`xcode` บน macOS) | -| เก๋ไก๋ | .svelte | ติดตั้งอัตโนมัติสำหรับโครงการ Svelte | -| ภูมิประเทศ | .tf, .tfvars | ติดตั้งอัตโนมัติจากรุ่น GitHub | -| คนตัวเล็ก | .พิมพ์, .พิมพ์ | ติดตั้งอัตโนมัติจากรุ่น GitHub | -| ตัวพิมพ์ดีด | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` การพึ่งพาในโครงการ | -| วิว | .vue | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Vue | +| prisma | .prisma | `prisma` คำสั่งใช้ได้ | +| pyright | .py, .pyi | `pyright` ติดตั้งการพึ่งพาแล้ว | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | มีคำสั่ง `ruby` และ `gem` | +| rust | .rs | `rust-analyzer` คำสั่งใช้ได้ | +| sourcekit-lsp | .swift, .objc, .objcpp | ติดตั้ง `swift` (`xcode` บน macOS) | +| svelte | .svelte | ติดตั้งอัตโนมัติสำหรับโครงการ Svelte | +| terraform | .tf, .tfvars | ติดตั้งอัตโนมัติจากรุ่น GitHub | +| tinymist | .typ, .typst | ติดตั้งอัตโนมัติจากรุ่น GitHub | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` การพึ่งพาในโครงการ | +| vue | .vue | ติดตั้งอัตโนมัติสำหรับโปรเจ็กต์ Vue | | yaml-ls | .yaml, .yml | ติดตั้งเซิร์ฟเวอร์ภาษา Red Hat yaml โดยอัตโนมัติ | -| zls | .ซิก, .ซอน | `zig` คำสั่งใช้ได้ | +| zls | .zig, .zon | `zig` คำสั่งใช้ได้ | เซิร์ฟเวอร์ LSP จะถูกเปิดใช้งานโดยอัตโนมัติเมื่อตรวจพบนามสกุลไฟล์ใดนามสกุลหนึ่งข้างต้นและเป็นไปตามข้อกำหนด @@ -182,7 +182,7 @@ You can customize LSP servers through the `lsp` section in your opencode config. PHP Intelephense นำเสนอคุณสมบัติระดับพรีเมียมผ่านรหัสลิขสิทธิ์ คุณสามารถระบุรหัสสัญญาอนุญาตได้โดยการวาง (เท่านั้น) รหัสในไฟล์ข้อความที่: -- บน macOS/Linux: `$HOME/intelephense/licence.txt` -- บน Windows: `%USERPROFILE%/intelephense/licence.txt` +- บน macOS/Linux: `$HOME/intelephense/license.txt` +- บน Windows: `%USERPROFILE%/intelephense/license.txt` ไฟล์ควรมีเฉพาะรหัสลิขสิทธิ์โดยไม่มีเนื้อหาเพิ่มเติม diff --git a/packages/web/src/content/docs/th/mcp-servers.mdx b/packages/web/src/content/docs/th/mcp-servers.mdx index f25ed8c783..4fb641a874 100644 --- a/packages/web/src/content/docs/th/mcp-servers.mdx +++ b/packages/web/src/content/docs/th/mcp-servers.mdx @@ -9,7 +9,7 @@ description: เพิ่มเครื่องมือ MCP ในพื้ --- -#### คำเตือน +#### Warning เมื่อคุณใช้เซิร์ฟเวอร์ MCP เซิร์ฟเวอร์ดังกล่าวจะเพิ่มบริบท สิ่งนี้สามารถเพิ่มขึ้นได้อย่างรวดเร็วหากคุณมีเครื่องมือมากมาย ดังนั้นเราขอแนะนำให้ระมัดระวังเซิร์ฟเวอร์ MCP ที่คุณใช้ @@ -400,7 +400,7 @@ MCP เครื่องมือเซิร์ฟเวอร์ได้ร --- -### ยาม +### Sentry เพิ่ม [เซิร์ฟเวอร์ Sentry MCP](https://mcp.sentry.dev) เพื่อโต้ตอบกับโครงการและปัญหา Sentry ของคุณ @@ -433,7 +433,7 @@ Show me the latest unresolved issues in my project. use sentry --- -### บริบท7 +### Context7 เพิ่ม [Context7 MCP server](https://github.com/upstash/context7) เพื่อค้นหาในเอกสาร @@ -482,7 +482,7 @@ When you need to search docs, use `context7` tools. --- -### Grep โดย Vercel +### Grep by Vercel เพิ่มเซิร์ฟเวอร์ [Grep by Vercel](https://grep.app) MCP เพื่อค้นหาผ่านข้อมูลโค้ดบน GitHub diff --git a/packages/web/src/content/docs/th/models.mdx b/packages/web/src/content/docs/th/models.mdx index 0c800b31d8..d5789b0243 100644 --- a/packages/web/src/content/docs/th/models.mdx +++ b/packages/web/src/content/docs/th/models.mdx @@ -38,11 +38,11 @@ OpenCode ใช้ [AI SDK](https://ai-sdk.dev/) และ [Models.dev](https:// ต่อไปนี้เป็นโมเดลหลายรุ่นที่ทำงานได้ดีกับ OpenCode โดยไม่เรียงลำดับเป็นพิเศษ (นี่ไม่ใช่รายการที่ครอบคลุมและไม่จำเป็นต้องเป็นข้อมูลล่าสุด): - GPT 5.2 -- GPT 5.1 โคเด็กซ์ -- คลอดด์บทประพันธ์ 4.5 -- คล็อด ซอนเน็ต 4.5 -- มินิแม็กซ์ M2.1 -- เจมินี่ 3 โปร +- GPT 5.1 Codex +- Claude Opus 4.5 +- Claude Sonnet 4.5 +- MiniMax M2.1 +- Gemini 3 Pro --- @@ -143,7 +143,7 @@ ID แบบเต็มคือ `provider_id/model_id` ตัวอย่า OpenCode มาพร้อมกับตัวแปรเริ่มต้นสำหรับผู้ให้บริการหลายราย: -**มานุษยวิทยา**: +**Anthropic**: - `high` - ​​งบประมาณการคิดสูง (ค่าเริ่มต้น) - `max` - ​​งบประมาณการคิดสูงสุด diff --git a/packages/web/src/content/docs/th/modes.mdx b/packages/web/src/content/docs/th/modes.mdx index 674070051b..c9f9fe28f2 100644 --- a/packages/web/src/content/docs/th/modes.mdx +++ b/packages/web/src/content/docs/th/modes.mdx @@ -23,13 +23,13 @@ opencode มาพร้อมกับโหมดในตัวสองโ --- -### สร้าง +### Build Build เป็นโหมด **ค่าเริ่มต้น** โดยที่เครื่องมือทั้งหมดเปิดใช้งานอยู่ นี่คือโหมดมาตรฐานสำหรับงานพัฒนาที่คุณต้องการสิทธิ์เข้าถึงการทำงานของไฟล์และคำสั่งระบบโดยสมบูรณ์ --- -### วางแผน +### Plan โหมดจำกัดที่ออกแบบมาเพื่อการวางแผนและการวิเคราะห์ ในโหมดแผน เครื่องมือต่อไปนี้จะถูกปิดใช้งานตามค่าเริ่มต้น: @@ -116,7 +116,7 @@ Provide constructive feedback without making direct changes. --- -### แบบอย่าง +### Model ใช้การกำหนดค่า `model` เพื่อแทนที่โมเดลเริ่มต้นสำหรับโหมดนี้ มีประโยชน์สำหรับการใช้โมเดลที่แตกต่างกันซึ่งปรับให้เหมาะกับงานที่แตกต่างกัน ตัวอย่างเช่น โมเดลสำหรับการวางแผนที่เร็วขึ้น โมเดลที่มีความสามารถมากขึ้นสำหรับการนำไปปฏิบัติ @@ -322,10 +322,10 @@ Priorities: ต่อไปนี้เป็นกรณีการใช้งานทั่วไปสำหรับโหมดต่างๆ -- **โหมดสร้าง**: งานพัฒนาเต็มรูปแบบโดยเปิดใช้งานเครื่องมือทั้งหมด -- **โหมดแผน**: วิเคราะห์และวางแผนโดยไม่ทำการเปลี่ยนแปลง -- **โหมดการตรวจสอบ**: การตรวจสอบโค้ดพร้อมการเข้าถึงแบบอ่านอย่างเดียวพร้อมเครื่องมือเอกสารประกอบ -- **โหมดแก้ไขข้อบกพร่อง**: มุ่งเน้นไปที่การตรวจสอบโดยเปิดใช้งานเครื่องมือทุบตีและอ่าน -- **โหมดเอกสาร**: การเขียนเอกสารด้วยการทำงานของไฟล์ แต่ไม่มีคำสั่งระบบ +- **Build mode**: งานพัฒนาเต็มรูปแบบโดยเปิดใช้งานเครื่องมือทั้งหมด +- **Plan mode**: วิเคราะห์และวางแผนโดยไม่ทำการเปลี่ยนแปลง +- **Review mode**: การตรวจสอบโค้ดพร้อมการเข้าถึงแบบอ่านอย่างเดียวพร้อมเครื่องมือเอกสารประกอบ +- **Debug mode**: มุ่งเน้นไปที่การตรวจสอบโดยเปิดใช้งานเครื่องมือ bash และอ่าน +- **Docs mode**: การเขียนเอกสารด้วยการทำงานของไฟล์ แต่ไม่มีคำสั่งระบบ คุณอาจพบว่ารุ่นต่างๆ นั้นดีสำหรับกรณีการใช้งานที่แตกต่างกัน diff --git a/packages/web/src/content/docs/th/network.mdx b/packages/web/src/content/docs/th/network.mdx index 4a71441619..78bcbea72f 100644 --- a/packages/web/src/content/docs/th/network.mdx +++ b/packages/web/src/content/docs/th/network.mdx @@ -7,7 +7,7 @@ OpenCode รองรับตัวแปรสภาพแวดล้อม --- -## หนังสือมอบฉันทะ +## Proxy OpenCode เคารพตัวแปรสภาพแวดล้อมพร็อกซีมาตรฐาน @@ -30,7 +30,7 @@ TUI สื่อสารกับเซิร์ฟเวอร์ HTTP ใน --- -### ตรวจสอบสิทธิ์ +### Authentication หากพร็อกซีของคุณต้องการการรับรองความถูกต้องขั้นพื้นฐาน ให้ใส่ข้อมูลรับรองใน URL diff --git a/packages/web/src/content/docs/th/permissions.mdx b/packages/web/src/content/docs/th/permissions.mdx index 479bd7352d..c81ee5b337 100644 --- a/packages/web/src/content/docs/th/permissions.mdx +++ b/packages/web/src/content/docs/th/permissions.mdx @@ -127,7 +127,7 @@ OpenCode ใช้การกำหนดค่า `permission` เพื่อ ## สิทธิ์ที่มีอยู่ -สิทธิ์ของ OpenCode จะกำหนดไว้ตามชื่อเครื่องมือ พร้อมด้วยเจ้าหน้าที่รักษาความปลอดภัยอีก 2-3 คน: +สิทธิ์ของ OpenCode จะกำหนดไว้ตามชื่อเครื่องมือ พร้อมด้วย guardrails อีก 2-3 คน: - `read` — อ่านไฟล์ (ตรงกับเส้นทางของไฟล์) - `edit` — การแก้ไขไฟล์ทั้งหมด (ครอบคลุมถึง `edit`, `write`, `patch`, `multiedit`) @@ -177,7 +177,7 @@ OpenCode ใช้การกำหนดค่า `permission` เพื่อ - `always` — อนุมัติคำขอในอนาคตที่ตรงกับรูปแบบที่แนะนำ (สำหรับส่วนที่เหลือของเซสชัน OpenCode ปัจจุบัน) - `reject` — ปฏิเสธคำขอ -ชุดรูปแบบที่ `always` จะอนุมัตินั้นมาจากเครื่องมือ (เช่น โดยทั่วไปการอนุมัติทุบตีจะกำหนดไวท์ลิสต์คำนำหน้าคำสั่งที่ปลอดภัย เช่น `git status*`) +ชุดรูปแบบที่ `always` จะอนุมัตินั้นมาจากเครื่องมือ (เช่น โดยทั่วไปการอนุมัติ bash จะกำหนดไวท์ลิสต์คำนำหน้าคำสั่งที่ปลอดภัย เช่น `git status*`) --- diff --git a/packages/web/src/content/docs/th/plugins.mdx b/packages/web/src/content/docs/th/plugins.mdx index 1e759fdb74..1e52f01e0f 100644 --- a/packages/web/src/content/docs/th/plugins.mdx +++ b/packages/web/src/content/docs/th/plugins.mdx @@ -26,7 +26,7 @@ description: เขียนปลั๊กอินของคุณเอง --- -### ตั้งแต่เวลา 13.00 น +### From npm ระบุแพ็คเกจ npm ในไฟล์ปรับแต่งของคุณ @@ -331,7 +331,7 @@ export const MyPlugin = async ({ client }) => { --- -### ตะขอบดอัด +### Compaction hooks ปรับแต่งบริบทที่รวมไว้เมื่อมีการกระชับเซสชัน: diff --git a/packages/web/src/content/docs/th/providers.mdx b/packages/web/src/content/docs/th/providers.mdx index f43fa4c903..b3398685ff 100644 --- a/packages/web/src/content/docs/th/providers.mdx +++ b/packages/web/src/content/docs/th/providers.mdx @@ -29,7 +29,7 @@ OpenCode ใช้ [AI SDK](https://ai-sdk.dev/) และ [Models.dev](https:// --- -#### ฐาน URL +#### Base URL คุณสามารถปรับแต่งฐาน URL สำหรับผู้ให้บริการรายใดก็ได้โดยตั้งค่าตัวเลือก `baseURL` สิ่งนี้มีประโยชน์เมื่อใช้บริการพร็อกซีหรือจุดสิ้นสุดแบบกำหนดเอง @@ -48,7 +48,7 @@ OpenCode ใช้ [AI SDK](https://ai-sdk.dev/) และ [Models.dev](https:// --- -## โอเพ่นโค้ดเซน +## OpenCode Zen OpenCode Zen คือรายชื่อโมเดลที่จัดทำโดยทีมงาน OpenCode ที่ได้รับ ทดสอบและตรวจสอบแล้วว่าทำงานได้ดีกับ OpenCode [เรียนรู้เพิ่มเติม](/docs/zen) @@ -122,7 +122,7 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท --- -### อเมซอน ข้อเท็จจริง +### Amazon Bedrock วิธีใช้ Amazon Bedrock กับ OpenCode: @@ -252,7 +252,7 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท --- -### มานุษยวิทยา +### Anthropic 1. เมื่อคุณสมัครแล้ว ให้รันคำสั่ง `/connect` และเลือก Anthropic @@ -415,7 +415,7 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท --- -### สมอง +### Cerebras 1. ไปที่ [คอนโซล Cerebras](https://inference.cerebras.ai/) สร้างบัญชี และสร้างคีย์ API @@ -554,7 +554,7 @@ Cloudflare AI Gateway ช่วยให้คุณเข้าถึงโม --- -### อินฟราเรดลึก +### Deep Infra 1. ไปที่ [แดชบอร์ด Deep Infra](https://deepinfra.com/dash) สร้างบัญชี และสร้างคีย์ API @@ -581,7 +581,7 @@ Cloudflare AI Gateway ช่วยให้คุณเข้าถึงโม --- -### เฟิร์มแวร์ +### Firmware 1. ไปที่ [แดชบอร์ดเฟิร์มแวร์](https://app.firmware.ai/signup) สร้างบัญชี และสร้างคีย์ API @@ -608,7 +608,7 @@ Cloudflare AI Gateway ช่วยให้คุณเข้าถึงโม --- -### ดอกไม้ไฟเอไอ +### Fireworks AI 1. ไปที่ [คอนโซล AI ดอกไม้ไฟ](https://app.fireworks.ai/) สร้างบัญชี แล้วคลิก **สร้าง API คีย์** @@ -635,7 +635,7 @@ Cloudflare AI Gateway ช่วยให้คุณเข้าถึงโม --- -### GitLab ดูโอ +### GitLab Duo GitLab Duo ให้การแชทแบบเอเจนต์ที่ขับเคลื่อนด้วย AI พร้อมความสามารถในการเรียกใช้เครื่องมือแบบเนทีฟผ่านพร็อกซี Anthropic ของ GitLab @@ -784,7 +784,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### นักบิน GitHub +### GitHub Copilot วิธีใช้การสมัครสมาชิก GitHub Copilot ด้วย opencode: @@ -892,7 +892,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### กอดหน้า +### Hugging Face [ผู้ให้บริการการอนุมานใบหน้าแบบกอด](https://huggingface.co/docs/inference-providers) ช่วยให้สามารถเข้าถึงโมเดลแบบเปิดที่รองรับโดยผู้ให้บริการมากกว่า 17 ราย @@ -1191,7 +1191,7 @@ IO.NET มี 17 โมเดลที่ได้รับการปรับ --- -### โรงงานโทเค็นเนบิอุส +### Nebius Token Factory 1. ไปที่ [คอนโซล Nebius Token Factory](https://tokenfactory.nebius.com/) สร้างบัญชี แล้วคลิก **เพิ่มรหัส** diff --git a/packages/web/src/content/docs/th/rules.mdx b/packages/web/src/content/docs/th/rules.mdx index ba521a4057..aef600f4bc 100644 --- a/packages/web/src/content/docs/th/rules.mdx +++ b/packages/web/src/content/docs/th/rules.mdx @@ -66,7 +66,7 @@ opencode ยังรองรับการอ่านไฟล์ `AGENTS.md เนื่องจากสิ่งนี้ไม่ได้ผูกมัดกับ Git หรือแชร์กับทีมของคุณ เราขอแนะนำให้ใช้สิ่งนี้เพื่อระบุกฎส่วนบุคคลที่ LLM ควรปฏิบัติตาม -### ความเข้ากันได้ของรหัส Claude +### Claude Code Compatibility สำหรับผู้ใช้ที่ย้ายจาก Claude Code นั้น OpenCode รองรับรูปแบบไฟล์ของ Claude Code เป็นทางเลือก: @@ -90,7 +90,7 @@ export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills 1. **ไฟล์ในเครื่อง** โดยการสำรวจจากไดเรกทอรีปัจจุบัน (`AGENTS.md`, `CLAUDE.md`) 2. **ไฟล์ทั่วโลก** ที่ `~/.config/opencode/AGENTS.md` -3. **ไฟล์ Claude Code** ที่ `~/.claude/CLAUDE.md` (ยกเว้นปิดการใช้งาน) +3. **Claude Code files** ที่ `~/.claude/CLAUDE.md` (ยกเว้นปิดการใช้งาน) ไฟล์ที่ตรงกันไฟล์แรกจะชนะในแต่ละหมวดหมู่ ตัวอย่างเช่น หากคุณมีทั้ง `AGENTS.md` และ `CLAUDE.md` ระบบจะใช้เฉพาะ `AGENTS.md` ในทำนองเดียวกัน `~/.config/opencode/AGENTS.md` จะมีความสำคัญมากกว่า `~/.claude/CLAUDE.md` diff --git a/packages/web/src/content/docs/th/sdk.mdx b/packages/web/src/content/docs/th/sdk.mdx index 95fc8e6cbf..b592c1a4e4 100644 --- a/packages/web/src/content/docs/th/sdk.mdx +++ b/packages/web/src/content/docs/th/sdk.mdx @@ -37,7 +37,7 @@ const { client } = await createOpencode() #### ตัวเลือก -| ตัวเลือก | พิมพ์ | คำอธิบาย | ค่าเริ่มต้น | +| ตัวเลือก | Type | คำอธิบาย | ค่าเริ่มต้น | | ---------- | ------------- | ------------------------------------------- | ----------- | | `hostname` | `string` | ชื่อโฮสต์ของเซิร์ฟเวอร์ | `127.0.0.1` | | `port` | `number` | พอร์ตเซิร์ฟเวอร์ | `4096` | @@ -81,11 +81,11 @@ const client = createOpencodeClient({ #### ตัวเลือก -| ตัวเลือก | พิมพ์ | คำอธิบาย | ค่าเริ่มต้น | +| ตัวเลือก | Type | คำอธิบาย | ค่าเริ่มต้น | | --------------- | ---------- | ---------------------------------------- | ----------------------- | | `baseUrl` | `string` | URL ของเซิร์ฟเวอร์ | `http://localhost:4096` | | `fetch` | `function` | การใช้งานการดึงข้อมูลแบบกำหนดเอง | `globalThis.fetch` | -| `parseAs` | `string` | วิธีการแยกวิเคราะห์การตอบสนอง | `auto` | +| `parseAs` | `string` | Methodการแยกวิเคราะห์การตอบสนอง | `auto` | | `responseStyle` | `string` | รูปแบบการคืนสินค้า: `data` หรือ `fields` | `fields` | | `throwOnError` | `boolean` | โยนข้อผิดพลาดแทนการส่งคืน | `false` | @@ -125,7 +125,7 @@ SDK เปิดเผย API ของเซิร์ฟเวอร์ทั ### ทั่วโลก -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ----------------- | ------------------------------------ | ------------------------------------ | | `global.health()` | ตรวจสอบสภาพและเวอร์ชันของเซิร์ฟเวอร์ | `{ healthy: true, version: string }` | @@ -142,7 +142,7 @@ console.log(health.data.version) ### แอป -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | -------------- | ----------------------------- | -------------------------------------------- | | `app.log()` | เขียนรายการบันทึก | `boolean` | | `app.agents()` | รายชื่อตัวแทนที่มีอยู่ทั้งหมด | ตัวแทน[] | @@ -169,7 +169,7 @@ const agents = await client.app.agents() ### โครงการ -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------------- | ------------------------ | --------------------------------------------- | | `project.list()` | แสดงรายการโครงการทั้งหมด | Project[] | | `project.current()` | รับโครงการปัจจุบัน | Project | @@ -190,7 +190,7 @@ const currentProject = await client.project.current() ### เส้นทาง -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------ | ------------------ | ---------------------------------------- | | `path.get()` | รับเส้นทางปัจจุบัน | Path | @@ -207,7 +207,7 @@ const pathInfo = await client.path.get() ### การกำหนดค่า -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | -------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------- | | `config.get()` | รับข้อมูลการกำหนดค่า | กำหนดค่า | | `config.providers()` | ผู้ให้บริการรายชื่อและโมเดลเริ่มต้น | `{ providers: `ผู้ให้บริการ[]`, default: { [key: string]: string } }` | @@ -226,7 +226,7 @@ const { providers, default: defaults } = await client.config.providers() ### เซสชัน -| วิธี | คำอธิบาย | หมายเหตุ | +| Method | คำอธิบาย | หมายเหตุ | | ---------------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | `session.list()` | แสดงรายการเซสชัน | ส่งคืน เซสชัน[] | | `session.get({ path })` | รับเซสชัน | ส่งคืน เซสชัน | @@ -283,7 +283,7 @@ await client.session.prompt({ ### ไฟล์ -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------- | | `find.text({ query })` | ค้นหาข้อความในไฟล์ | อาร์เรย์ของวัตถุที่ตรงกับ `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | | `find.files({ query })` | ค้นหาไฟล์และไดเร็กทอรีตามชื่อ | `string[]` (paths) | @@ -324,7 +324,7 @@ const content = await client.file.read({ ### TUI -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------------------------ | ------------------------------ | ---------- | | `tui.appendPrompt({ body })` | เพิ่มข้อความต่อท้ายข้อความแจ้ง | `boolean` | | `tui.openHelp()` | เปิดกล่องโต้ตอบความช่วยเหลือ | `boolean` | @@ -355,7 +355,7 @@ await client.tui.showToast({ ### การรับรองความถูกต้อง -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------------- | ----------------------------------------- | ---------- | | `auth.set({ ... })` | ตั้งค่าข้อมูลประจำตัวการรับรองความถูกต้อง | `boolean` | @@ -374,7 +374,7 @@ await client.auth.set({ ### กิจกรรม -| วิธี | คำอธิบาย | การตอบสนอง | +| Method | คำอธิบาย | การตอบสนอง | | ------------------- | ------------------------------- | ------------------------------- | | `event.subscribe()` | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง | diff --git a/packages/web/src/content/docs/th/server.mdx b/packages/web/src/content/docs/th/server.mdx index c93e085a21..610f9f228a 100644 --- a/packages/web/src/content/docs/th/server.mdx +++ b/packages/web/src/content/docs/th/server.mdx @@ -18,7 +18,7 @@ opencode serve [--port ] [--hostname ] [--cors ] #### ตัวเลือก -| ธง | คำอธิบาย | ค่าเริ่มต้น | +| Flag | คำอธิบาย | ค่าเริ่มต้น | | --------------- | ---------------------------------------- | ---------------- | | `--port` | พอร์ตที่จะฟัง | `4096` | | `--hostname` | ชื่อโฮสต์ที่จะฟัง | `127.0.0.1` | @@ -89,34 +89,34 @@ http://:/doc ### ทั่วโลก -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ---------------- | --------------------------------- | ------------------------------------ | -| `GET` | `/global/health` | รับสถานะและเวอร์ชันของเซิร์ฟเวอร์ | `{ healthy: true, version: string }` | -| `GET` | `/global/event` | รับกิจกรรมระดับโลก (SSE สตรีม) | สตรีมกิจกรรม | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ---------------- | --------------------------------- | ------------------------------------ | +| `GET` | `/global/health` | รับสถานะและเวอร์ชันของเซิร์ฟเวอร์ | `{ healthy: true, version: string }` | +| `GET` | `/global/event` | รับกิจกรรมระดับโลก (SSE สตรีม) | สตรีมกิจกรรม | --- ### โครงการ -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ------------------ | ------------------------ | --------------------------------------------- | -| `GET` | `/project` | แสดงรายการโครงการทั้งหมด | Project[] | -| `GET` | `/project/current` | รับโครงการปัจจุบัน | Project | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ------------------ | ------------------------ | --------------------------------------------- | +| `GET` | `/project` | แสดงรายการโครงการทั้งหมด | Project[] | +| `GET` | `/project/current` | รับโครงการปัจจุบัน | Project | --- ### เส้นทาง & VCS -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ------- | ----------------------------------- | ------------------------------------------- | -| `GET` | `/path` | รับเส้นทางปัจจุบัน | Path | -| `GET` | `/vcs` | รับข้อมูล VCS สำหรับโครงการปัจจุบัน | VcsInfo | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ------- | ----------------------------------- | ------------------------------------------- | +| `GET` | `/path` | รับเส้นทางปัจจุบัน | Path | +| `GET` | `/vcs` | รับข้อมูล VCS สำหรับโครงการปัจจุบัน | VcsInfo | --- ### ตัวอย่าง -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------ | ------------------- | ---------------------- | ---------- | | `POST` | `/instance/dispose` | กำจัดอินสแตนซ์ปัจจุบัน | `boolean` | @@ -124,7 +124,7 @@ http://:/doc ### การกำหนดค่า -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------- | ------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------- | | `GET` | `/config` | รับข้อมูลการกำหนดค่า | กำหนดค่า | | `PATCH` | `/config` | อัปเดตการกำหนดค่า | กำหนดค่า | @@ -134,7 +134,7 @@ http://:/doc ### ผู้ให้บริการ -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------ | -------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------- | | `GET` | `/provider` | รายชื่อผู้ให้บริการทั้งหมด | `{ all: `ผู้ให้บริการ[]`, default: {...}, connected: string[] }` | | `GET` | `/provider/auth` | รับวิธีการตรวจสอบความถูกต้องของผู้ให้บริการ | `{ [providerID: string]: `ProviderAuthMethod[]` }` | @@ -145,7 +145,7 @@ http://:/doc ### เซสชัน -| วิธี | เส้นทาง | คำอธิบาย | หมายเหตุ | +| Method | เส้นทาง | คำอธิบาย | หมายเหตุ | | -------- | ---------------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------- | | `GET` | `/session` | แสดงรายการเซสชันทั้งหมด | ส่งคืน เซสชัน[] | | `POST` | `/session` | สร้างเซสชันใหม่ | body: `{ parentID?, title? }` ส่งคืน เซสชัน | @@ -170,7 +170,7 @@ http://:/doc ### ข้อความ -| วิธี | เส้นทาง | คำอธิบาย | หมายเหตุ | +| Method | เส้นทาง | คำอธิบาย | หมายเหตุ | | ------ | --------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `GET` | `/session/:id/message` | แสดงรายการข้อความในเซสชัน | ข้อความค้นหา: `limit?` ส่งคืน `{ info: `ข้อความ`, parts: `ส่วน[]`}[]` | | `POST` | `/session/:id/message` | ส่งข้อความและรอการตอบกลับ | เนื้อความ: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }` ส่งคืน `{ info: `ข้อความ`, parts: `ส่วน[]`}` | @@ -183,22 +183,22 @@ http://:/doc ### คำสั่ง -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ---------- | ----------------------- | --------------------------------------------- | -| `GET` | `/command` | แสดงรายการคำสั่งทั้งหมด | Command[] | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ---------- | ----------------------- | --------------------------------------------- | +| `GET` | `/command` | แสดงรายการคำสั่งทั้งหมด | Command[] | --- ### ไฟล์ -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ------------------------ | ------------------------------ | ----------------------------------------------------------------------------------------- | -| `GET` | `/find?pattern=` | ค้นหาข้อความในไฟล์ | อาร์เรย์ของวัตถุที่ตรงกับ `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | -| `GET` | `/find/file?query=` | ค้นหาไฟล์และไดเร็กทอรีตามชื่อ | `string[]` (paths) | -| `GET` | `/find/symbol?query=` | ค้นหาสัญลักษณ์พื้นที่ทำงาน | Symbol[] | -| `GET` | `/file?path=` | แสดงรายการไฟล์และไดเร็กทอรี | FileNode[] | -| `GET` | `/file/content?path=

` | อ่านไฟล์ | เนื้อหาไฟล์ | -| `GET` | `/file/status` | รับสถานะสำหรับไฟล์ที่ถูกติดตาม | File[] | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ------------------------ | ------------------------------ | ----------------------------------------------------------------------------------------- | +| `GET` | `/find?pattern=` | ค้นหาข้อความในไฟล์ | อาร์เรย์ของวัตถุที่ตรงกับ `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | +| `GET` | `/find/file?query=` | ค้นหาไฟล์และไดเร็กทอรีตามชื่อ | `string[]` (paths) | +| `GET` | `/find/symbol?query=` | ค้นหาสัญลักษณ์พื้นที่ทำงาน | Symbol[] | +| `GET` | `/file?path=` | แสดงรายการไฟล์และไดเร็กทอรี | FileNode[] | +| `GET` | `/file/content?path=

` | อ่านไฟล์ | เนื้อหาไฟล์ | +| `GET` | `/file/status` | รับสถานะสำหรับไฟล์ที่ถูกติดตาม | File[] | #### `/find/file` พารามิเตอร์การสืบค้น @@ -212,16 +212,16 @@ http://:/doc ### เครื่องมือ (ทดลอง) -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------- | -| `GET` | `/experimental/tool/ids` | แสดงรายการรหัสเครื่องมือทั้งหมด | รหัสเครื่องมือ | -| `GET` | `/experimental/tool?provider=

&model=` | แสดงรายการเครื่องมือที่มีสกีมา JSON สำหรับโมเดล | รายการเครื่องมือ | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------- | +| `GET` | `/experimental/tool/ids` | แสดงรายการรหัสเครื่องมือทั้งหมด | รหัสเครื่องมือ | +| `GET` | `/experimental/tool?provider=

&model=` | แสดงรายการเครื่องมือที่มีสกีมา JSON สำหรับโมเดล | รายการเครื่องมือ | --- ### LSP, ฟอร์แมตเตอร์ & MCP -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------ | ------------ | ------------------------------- | -------------------------------------------------------- | | `GET` | `/lsp` | รับ LSP สถานะเซิร์ฟเวอร์ | LSPStatus[] | | `GET` | `/formatter` | รับสถานะฟอร์แมตเตอร์ | FormatterStatus[] | @@ -232,15 +232,15 @@ http://:/doc ### ตัวแทน -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | -------- | ----------------------------- | -------------------------------------------- | -| `GET` | `/agent` | รายชื่อตัวแทนที่มีอยู่ทั้งหมด | ตัวแทน[] | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | -------- | ----------------------------- | -------------------------------------------- | +| `GET` | `/agent` | รายชื่อตัวแทนที่มีอยู่ทั้งหมด | ตัวแทน[] | --- ### การบันทึก -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------ | ------- | ------------------------------------------------------------------ | ---------- | | `POST` | `/log` | เขียนรายการบันทึก เนื้อความ: `{ service, level, message, extra? }` | `boolean` | @@ -248,7 +248,7 @@ http://:/doc ### TUI -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | | ------ | ----------------------- | ----------------------------------------------- | --------------- | | `POST` | `/tui/append-prompt` | เพิ่มข้อความต่อท้ายข้อความแจ้ง | `boolean` | | `POST` | `/tui/open-help` | เปิดกล่องโต้ตอบความช่วยเหลือ | `boolean` | @@ -266,22 +266,22 @@ http://:/doc ### การรับรองความถูกต้อง -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ----------- | --------------------------------------------------------------------------------- | ---------- | -| `PUT` | `/auth/:id` | ตั้งค่าข้อมูลประจำตัวการรับรองความถูกต้อง เนื้อความต้องตรงกับสคีมาของผู้ให้บริการ | `boolean` | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ----------- | --------------------------------------------------------------------------------- | ---------- | +| `PUT` | `/auth/:id` | ตั้งค่าข้อมูลประจำตัวการรับรองความถูกต้อง เนื้อความต้องตรงกับสคีมาของผู้ให้บริการ | `boolean` | --- ### กิจกรรม -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | -------- | ---------------------------------------------------------------------------- | ------------------------------- | -| `GET` | `/event` | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง งานแรกคือ `server.connected` จากนั้นงานรถบัส | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | -------- | ---------------------------------------------------------------------------- | ------------------------------- | +| `GET` | `/event` | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง งานแรกคือ `server.connected` จากนั้นงานรถบัส | สตรีมเหตุการณ์ที่เซิร์ฟเวอร์ส่ง | --- ### เอกสาร -| วิธี | เส้นทาง | คำอธิบาย | การตอบสนอง | -| ----- | ------- | --------------------------- | ---------------------------------- | -| `GET` | `/doc` | ข้อมูลจำเพาะของ OpenAPI 3.1 | HTML หน้าพร้อมข้อมูลจำเพาะ OpenAPI | +| Method | เส้นทาง | คำอธิบาย | การตอบสนอง | +| ------ | ------- | --------------------------- | ---------------------------------- | +| `GET` | `/doc` | ข้อมูลจำเพาะของ OpenAPI 3.1 | HTML หน้าพร้อมข้อมูลจำเพาะ OpenAPI | diff --git a/packages/web/src/content/docs/th/share.mdx b/packages/web/src/content/docs/th/share.mdx index 40b1a66eb0..72e15912c1 100644 --- a/packages/web/src/content/docs/th/share.mdx +++ b/packages/web/src/content/docs/th/share.mdx @@ -27,7 +27,7 @@ OpenCode รองรับโหมดการแชร์สามโหม --- -### คู่มือ (ค่าเริ่มต้น) +### Manual (ค่าเริ่มต้น) ตามค่าเริ่มต้น OpenCode จะใช้โหมดการแชร์ด้วยตนเอง เซสชันจะไม่ถูกแชร์โดยอัตโนมัติ แต่คุณสามารถแชร์ได้ด้วยตนเองโดยใช้คำสั่ง `/share`: @@ -63,7 +63,7 @@ OpenCode รองรับโหมดการแชร์สามโหม --- -### พิการ +### Disabled คุณสามารถปิดการแชร์ทั้งหมดได้โดยตั้งค่าตัวเลือก `share` เป็น `"disabled"` ใน [ไฟล์กำหนดค่า](/docs/config): diff --git a/packages/web/src/content/docs/th/skills.mdx b/packages/web/src/content/docs/th/skills.mdx index 3337875cd4..29ed9f6f46 100644 --- a/packages/web/src/content/docs/th/skills.mdx +++ b/packages/web/src/content/docs/th/skills.mdx @@ -1,5 +1,5 @@ --- -title: “ทักษะตัวแทน” +title: Agent Skills description: "กำหนดพฤติกรรมที่นำมาใช้ซ้ำได้ผ่านคำจำกัดความ SKILL.md" --- @@ -100,7 +100,7 @@ Ask clarifying questions if the target versioning scheme is unclear. --- -## รู้จักคำอธิบายเครื่องมือ +## Tool Description Discovery OpenCode แสดงรายการทักษะที่มีอยู่ในคำอธิบายเครื่องมือ `skill` แต่ละรายการจะมีชื่อทักษะและคำอธิบาย: @@ -122,7 +122,7 @@ skill({ name: "git-release" }) --- -## กำหนดค่าสิทธิ์ +## Configure Permissions ควบคุมว่าตัวแทนทักษะใดสามารถเข้าถึงโดยใช้สิทธิ์ตามรูปแบบใน `opencode.json`: @@ -149,7 +149,7 @@ skill({ name: "git-release" }) --- -## แทนที่ต่อตัวแทน +## Override per Agent ให้สิทธิ์แก่ตัวแทนเฉพาะเจาะจงที่แตกต่างจากค่าเริ่มต้นทั่วไป diff --git a/packages/web/src/content/docs/th/themes.mdx b/packages/web/src/content/docs/th/themes.mdx index b9aafecf69..2244c3dcf1 100644 --- a/packages/web/src/content/docs/th/themes.mdx +++ b/packages/web/src/content/docs/th/themes.mdx @@ -34,7 +34,7 @@ OpenCode มาพร้อมกับธีมในตัวหลายธ | `catppuccin` | อิงตามธีม [Catppuccin](https://github.com/catppuccin) | | `catppuccin-macchiato` | อิงตามธีม [Catppuccin](https://github.com/catppuccin) | | `gruvbox` | อิงตามธีม [Gruvbox](https://github.com/morhetz/gruvbox) | -| `kanagawa` | อิงตามธีมของ [คานากาว่า](https://github.com/rebelot/kanagawa.nvim) | +| `kanagawa` | อิงตามธีมของ [Kanagawa](https://github.com/rebelot/kanagawa.nvim) | | `nord` | อิงตามธีม [Nord](https://github.com/nordtheme/nord) | | `matrix` | ธีมสีเขียวสไตล์แฮ็กเกอร์บนสีดำ | | `one-dark` | อิงตามธีม [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) Dark | diff --git a/packages/web/src/content/docs/th/tools.mdx b/packages/web/src/content/docs/th/tools.mdx index 4665a0cb8c..780aaf7d7b 100644 --- a/packages/web/src/content/docs/th/tools.mdx +++ b/packages/web/src/content/docs/th/tools.mdx @@ -168,7 +168,7 @@ description: จัดการเครื่องมือที่ LLM ส --- -### lsp (ทดลอง) +### lsp (Experimental) โต้ตอบกับเซิร์ฟเวอร์ LSP ที่กำหนดค่าของคุณเพื่อรับฟีเจอร์อัจฉริยะด้านโค้ด เช่น คำจำกัดความ การอ้างอิง ข้อมูลโฮเวอร์ และลำดับชั้นการโทร diff --git a/packages/web/src/content/docs/th/troubleshooting.mdx b/packages/web/src/content/docs/th/troubleshooting.mdx index cf6136d447..f73bdd3085 100644 --- a/packages/web/src/content/docs/th/troubleshooting.mdx +++ b/packages/web/src/content/docs/th/troubleshooting.mdx @@ -99,7 +99,7 @@ OpenCode ยังสามารถโหลดปลั๊กอินใน --- -### Fix server connection issues +### แก้ไขปัญหาการเชื่อมต่อเซิร์ฟเวอร์ OpenCode Desktop สามารถเริ่มต้นเซิร์ฟเวอร์ภายในเครื่องของตนเองได้ (ค่าเริ่มต้น) หรือเชื่อมต่อกับเซิร์ฟเวอร์ URL ที่คุณกำหนดค่าไว้ @@ -121,7 +121,7 @@ OpenCode Desktop สามารถเริ่มต้นเซิร์ฟเ --- -### Linux: ปัญหา Wayland / X11 +### Linux: Wayland / X11 issues บน Linux การตั้งค่า Wayland บางอย่างอาจทำให้เกิดหน้าต่างว่างหรือข้อผิดพลาดของตัวประกอบ @@ -130,7 +130,7 @@ OpenCode Desktop สามารถเริ่มต้นเซิร์ฟเ --- -### Windows: รันไทม์ WebView2 +### Windows: WebView2 Runtime บน Windows OpenCode Desktop ต้องใช้ Microsoft Edge **WebView2 Runtime** หากแอปเปิดเป็นหน้าต่างว่างหรือไม่เริ่มทำงาน ให้ติดตั้ง/update WebView2 แล้วลองอีกครั้ง @@ -231,7 +231,7 @@ OpenCode Desktop จะแสดงการแจ้งเตือนของ --- -### ผู้ให้บริการInitError +### ProviderInitError หากคุณพบ ProviderInitError คุณอาจมีการกำหนดค่าที่ไม่ถูกต้องหรือเสียหาย @@ -250,7 +250,7 @@ OpenCode Desktop จะแสดงการแจ้งเตือนของ --- -### ปัญหา AI_APICallError และแพ็คเกจผู้ให้บริการ +### AI_APICallError and provider package issues หากคุณพบข้อผิดพลาดในการโทร API อาจเนื่องมาจากแพ็คเกจผู้ให้บริการที่ล้าสมัย opencode จะติดตั้งแพ็คเกจของผู้ให้บริการแบบไดนามิก (OpenAI, Anthropic, Google ฯลฯ) ตามความจำเป็น และแคชไว้ในเครื่อง diff --git a/packages/web/src/content/docs/th/tui.mdx b/packages/web/src/content/docs/th/tui.mdx index 84ae70f4f8..d8d6c46c2a 100644 --- a/packages/web/src/content/docs/th/tui.mdx +++ b/packages/web/src/content/docs/th/tui.mdx @@ -43,7 +43,7 @@ How is auth handled in @packages/functions/src/api/index.ts? --- -## คำสั่งทุบตี +## bash commands เริ่มข้อความด้วย `!` เพื่อรันคำสั่ง shell @@ -386,5 +386,5 @@ How is auth handled in @packages/functions/src/api/index.ts? สลับว่าจะให้ชื่อผู้ใช้ของคุณปรากฏในข้อความแชทหรือไม่ เข้าถึงสิ่งนี้ผ่าน: -- จานคำสั่ง: ค้นหา "ชื่อผู้ใช้" หรือ "ซ่อนชื่อผู้ใช้" +- Command Palette: ค้นหา "ชื่อผู้ใช้" หรือ "ซ่อนชื่อผู้ใช้" - การตั้งค่าจะคงอยู่โดยอัตโนมัติและจะถูกจดจำตลอดเซสชัน TUI diff --git a/packages/web/src/content/docs/th/web.mdx b/packages/web/src/content/docs/th/web.mdx index 13aa2393fa..b1b3786d77 100644 --- a/packages/web/src/content/docs/th/web.mdx +++ b/packages/web/src/content/docs/th/web.mdx @@ -31,7 +31,7 @@ opencode web คุณสามารถกำหนดค่าเว็บเซิร์ฟเวอร์ได้โดยใช้แฟล็กบรรทัดคำสั่งหรือใน [ไฟล์กำหนดค่า](/docs/config) -### ท่าเรือ +### Port ตามค่าเริ่มต้น OpenCode จะเลือกพอร์ตที่พร้อมใช้งาน คุณสามารถระบุพอร์ต: diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 63849f5ef3..81143c1527 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -19,7 +19,7 @@ Zen ทำงานเหมือนกับผู้ให้บริกา --- -## พื้นหลัง +## ภูมิหลัง มีหลายรุ่นครับ แต่มีเพียงไม่กี่รุ่นเท่านั้น โมเดลเหล่านี้ทำงานได้ดีในฐานะตัวแทนการเข้ารหัส นอกจากนี้ผู้ให้บริการส่วนใหญ่ก็มี @@ -62,37 +62,37 @@ OpenCode Zen ทำงานเหมือนกับผู้ให้บร คุณยังสามารถเข้าถึงโมเดลของเราผ่านทางจุดสิ้นสุด API ต่อไปนี้ -| แบบอย่าง | รหัสรุ่น | จุดสิ้นสุด | แพ็คเกจ AI SDK | -| ---------------------- | ---------------------- | -------------------------------------------------- | --------------------------- | -| GPT 5.2 | GPT-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 โคเด็กซ์ | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | GPT-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 โคเด็กซ์ | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 โคเด็กซ์สูงสุด | gpt-5.1-codex-สูงสุด | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 โคเด็กซ์มินิ | gpt-5.1-codex-mini.php | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | GPT-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 โคเด็กซ์ | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5นาโน | gpt-5-นาโน | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| คล็อด ซอนเน็ต 4.5 | คลอด-โคลง-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คลอดด์ ซอนเน็ต 4 | คลอด-โคลง-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คล็อด ไฮกุ 4.5 | คลอดด์-ไฮกุ-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คล็อด ไฮกุ 3.5 | คลอด-3-5-ไฮกุ | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คลอดด์บทประพันธ์ 4.6 | คลอด-บทประพันธ์-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คลอดด์บทประพันธ์ 4.5 | คลอด-บทประพันธ์-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| คลอดด์บทประพันธ์ 4.1 | คลอด-บทประพันธ์-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| เจมินี่ 3 โปร | ราศีเมถุน-3-โปร | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` | -| ราศีเมถุน 3 แฟลช | ราศีเมถุน-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | -| มินิแม็กซ์ M2.1 | มินิแม็กซ์-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| MiniMax M2.1 ฟรี | minimax-m2.1-ฟรี | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| GLM 4.7 ฟรี | ปราศจาก glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| คิมิ K2.5 | คิมิ-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Kimi K2.5 ฟรี | คิมิ-k2.5-ฟรี | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| คิมิ K2 กำลังคิด | kimi-k2-คิด | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| คิมิ K2 | คิมิ-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| คิวเวน3 โคเดอร์ 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| บิ๊กดอง | ดองใหญ่ | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | แพ็คเกจ AI SDK | +| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- | +| GPT 5.2 | GPT-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | GPT-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | GPT-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Haiku 3.5 | claude-haiku-3-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` | +| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | +| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) ในการกำหนดค่า OpenCode ของคุณ ใช้รูปแบบ `opencode/` ตัวอย่างเช่น สำหรับ GPT 5.2 Codex คุณจะต้อง @@ -114,7 +114,7 @@ https://opencode.ai/zen/v1/models เราสนับสนุนรูปแบบการจ่ายเงินตามการใช้งาน ด้านล่างนี้คือราคา **ต่อโทเค็น 1M** -| แบบอย่าง | ป้อนข้อมูล | เอาท์พุต | แคชอ่าน | เขียนในแคช | +| Model | ป้อนข้อมูล | เอาท์พุต | แคชอ่าน | เขียนในแคช | | --------------------------------------- | ------------ | ------------ | ------------- | ---------- | | บิ๊กดอง | ฟรี | ฟรี | ฟรี | - | | MiniMax M2.1 ฟรี | ฟรี | ฟรี | ฟรี | - | diff --git a/packages/web/src/content/docs/tr/1-0.mdx b/packages/web/src/content/docs/tr/1-0.mdx index 9949a513a6..31f1e99d92 100644 --- a/packages/web/src/content/docs/tr/1-0.mdx +++ b/packages/web/src/content/docs/tr/1-0.mdx @@ -36,7 +36,7 @@ Oturum geçmişi daha sıkıştırılmıştır ve yalnızca düzenleme ve bash a Neredeyse onun içinden aktığı bir komut çubuğu ekledik. Her şeyi görmek için ctrl+p tuşlarına basın. -Yararlı bilgileri içeren bir kayıt kenarı sürüklenebilir (değiştirilebilir). +Yararlı bilgileri içeren bir oturum kenar çubuğu eklendi (açılıp kapanabilir). Kimsenin gerçekten çalıştığından emin olmadığımız bazı şeyleri kaldırabildik. Önemli bir şeyin eksik olması durumunda lütfen bir konuyu açın; biz de hızla geri ekleyelim. diff --git a/packages/web/src/content/docs/tr/agents.mdx b/packages/web/src/content/docs/tr/agents.mdx index a73a95a199..bb3dd7e5e8 100644 --- a/packages/web/src/content/docs/tr/agents.mdx +++ b/packages/web/src/content/docs/tr/agents.mdx @@ -1,15 +1,15 @@ --- -title: Temsilciler -description: Özel araçları yapılandırın ve kullanın. +title: Agents +description: Özel agent'ları yapılandırın ve kullanın. --- -Aracılar, belirli görevler ve iş akışları için yapılandırılabilen uzmanlaşmış yapay zeka asistanlarıdır. Özel istemler, modeller ve araç erişimiyle odaklanmış araçlar oluşturmanıza olanak tanır. +Agent'lar, belirli görevler ve iş akışları için yapılandırılabilen uzmanlaşmış AI asistanlarıdır. Özel prompt'lar, modeller ve araç erişimiyle odaklanmış araçlar oluşturmanıza olanak tanır. :::tip -Herhangi bir kod değişikliği yapmadan kodu analiz etmek ve önerileri gözden geçirmek için plan aracısını kullanın. +Herhangi bir kod değişikliği yapmadan kodu analiz etmek ve önerileri gözden geçirmek için Plan agent'ını kullanın. ::: -Bir oturum sırasında temsilciler arasında geçiş yapabilir veya onları `@` ifadesi ile çağırabilirsiniz. +Bir oturum sırasında agent'lar arasında geçiş yapabilir veya onları `@` ifadesi ile çağırabilirsiniz. --- @@ -19,124 +19,124 @@ opencode'da iki tür aracı vardır; birincil ajanlar ve alt ajanlar. --- -### Birincil ajanlar +### Primary agent'lar -Birincil aracılar, doğrudan etkileşim kurduğunuz ana yardımcılardır. **Sekme** tuşunu veya yapılandırılmış `switch_agent` tuş atamanızı kullanarak bunlar arasında geçiş yapabilirsiniz. Bu temsilciler ana görüşmenizi yönetir. Araç erişimi, izinler aracılığıyla yapılandırılır; örneğin, Plan kısıtlıyken Build'de tüm araçlar etkindir. +Primary agent'lar, doğrudan etkileşim kurduğunuz ana yardımcılardır. **Sekme** tuşunu veya yapılandırılmış `switch_agent` tuş atamanızı kullanarak bunlar arasında geçiş yapabilirsiniz. Bu agent'lar ana görüşmenizi yönetir. Araç erişimi, izinler aracılığıyla yapılandırılır; örneğin, Plan kısıtlıyken Build'de tüm araçlar etkindir. :::tip -Bir oturum sırasında birincil aracılar arasında geçiş yapmak için **Sekme** tuşunu kullanabilirsiniz. +Bir oturum sırasında primary agent'lar arasında geçiş yapmak için **Sekme** tuşunu kullanabilirsiniz. ::: -opencode, **Build** ve **Plan** olmak üzere iki yerleşik birincil aracıyla birlikte gelir. Kuyu +opencode, **Build** ve **Plan** olmak üzere iki yerleşik primary agent ile birlikte gelir. Kuyu aşağıdakilere bakın. --- -### Subagents +### Subagent'lar -Alt temsilciler, birincil aracıların belirli görevler için çağırabileceği uzman yardımcılardır. Ayrıca mesajlarınızda **@ bahsederek** bunları manuel olarak da çağırabilirsiniz. +Subagent'lar, primary agent'ların belirli görevler için çağırabileceği uzman yardımcılardır. Ayrıca mesajlarınızda **@ bahsederek** bunları manuel olarak da çağırabilirsiniz. -opencode, **Genel** ve **Keşfet** olmak üzere iki yerleşik alt aracıyla birlikte gelir. Buna aşağıda bakacağız. +opencode, **General** ve **Explore** olmak üzere iki yerleşik subagent ile birlikte gelir. Buna aşağıda bakacağız. --- -## Yerleşik +## Built-in -opencode iki yerleşik birincil aracı ve iki yerleşik alt aracıyla birlikte gelir. +opencode iki yerleşik primary agent ve iki yerleşik subagent ile birlikte gelir. --- -### Derlemeyi kullan +### Build'i kullan _Mode_: `primary` -Build, tüm araçların etkin olduğu **varsayılan** birincil aracıdır. Bu, dosya işlemlerine ve sistem komutlarına tam erişime ihtiyaç duyduğunuz geliştirme çalışmaları için standart aracıdır. +Build, tüm araçların etkin olduğu **varsayılan** primary agent'tır. Bu, dosya işlemlerine ve sistem komutlarına tam erişime ihtiyaç duyduğunuz geliştirme çalışmaları için standart agent'tır. --- -### Planı kullan +### Plan'ı kullan -_Mod_: `primary` +_Mode_: `primary` -Planlama ve analiz için tasarlanmış kısıtlı bir aracı. Size daha fazla kontrol sağlamak ve istenmeyen değişiklikleri önlemek için bir izin sistemi kullanıyoruz. +Planlama ve analiz için tasarlanmış kısıtlı bir agent. Size daha fazla kontrol sağlamak ve istenmeyen değişiklikleri önlemek için bir izin sistemi kullanıyoruz. Varsayılan olarak aşağıdakilerin tümü `ask` olarak ayarlanmıştır: - `file edits`: Tüm yazmalar, yamalar ve düzenler - `bash`: Tüm bash komutları -Bu aracı, LLM'ın kodu analiz etmesini, değişiklik önermesini veya kod tabanınızda herhangi bir gerçek değişiklik yapmadan plan oluşturmasını istediğinizde kullanışlıdır. +Bu agent, LLM'ın kodu analiz etmesini, değişiklik önermesini veya kod tabanınızda herhangi bir gerçek değişiklik yapmadan plan oluşturmasını istediğinizde kullanışlıdır. --- -### Genel kullan +### General'ı kullan _Mode_: `subagent` -Karmaşık soruları araştırmak ve çok adımlı görevleri yürütmek için genel amaçlı bir aracı. Tam araç erişimine sahiptir (yapılacaklar hariç), böylece gerektiğinde dosya değişiklikleri yapabilir. Birden fazla iş birimini paralel olarak çalıştırmak için bunu kullanın. +Karmaşık soruları araştırmak ve çok adımlı görevleri yürütmek için genel amaçlı bir agent. Tam araç erişimine sahiptir (yapılacaklar hariç), böylece gerektiğinde dosya değişiklikleri yapabilir. Birden fazla iş birimini paralel olarak çalıştırmak için bunu kullanın. --- -### Keşfet'i kullan +### Explore'u kullan -_Mod_: `subagent` +_Mode_: `subagent` -Kod tabanlarını keşfetmeye yönelik hızlı, salt okunur bir aracı. Dosyalar değiştirilemiyor. Dosyaları kalıplara göre hızla bulmanız, anahtar sözcükler için kod aramanız veya kod tabanıyla ilgili soruları yanıtlamanız gerektiğinde bunu kullanın. +Kod tabanlarını keşfetmeye yönelik hızlı, salt okunur bir agent. Dosyalar değiştirilemiyor. Dosyaları kalıplara göre hızla bulmanız, anahtar sözcükler için kod aramanız veya kod tabanıyla ilgili soruları yanıtlamanız gerektiğinde bunu kullanın. --- -### Sıkıştırmayı kullanın +### Compact'i kullan _Mode_: `primary` -Uzun bağlamı daha küçük bir özete sıkıştıran gizli sistem aracısı. Gerektiğinde otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. +Uzun bağlamı daha küçük bir özete sıkıştıran gizli sistem agent'ı. Gerektiğinde otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. --- -### Başlığı kullan - -_Mod_: `primary` - -Kısa oturum başlıkları oluşturan gizli sistem aracısı. Otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. - ---- - -### Özeti kullan +### Title'ı kullan _Mode_: `primary` -Oturum özetleri oluşturan gizli sistem aracısı. Otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. +Kısa oturum başlıkları oluşturan gizli sistem agent'ı. Otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. + +--- + +### Summary'yi kullan + +_Mode_: `primary` + +Oturum özetleri oluşturan gizli sistem agent'ı. Otomatik olarak çalışır ve kullanıcı arayüzünde seçilemez. --- ## Kullanım -1. Birincil aracılar için, oturum sırasında bunlar arasında geçiş yapmak için **Sekme** tuşunu kullanın. Yapılandırılmış `switch_agent` tuş bağınızı da kullanabilirsiniz. +1. Primary agent'lar için, oturum sırasında bunlar arasında geçiş yapmak için **Sekme** tuşunu kullanın. Yapılandırılmış `switch_agent` tuş bağınızı da kullanabilirsiniz. -2. Alt aracılar çağrılabilir: - - Açıklamalarına göre özel görevler için birincil temsilciler tarafından **otomatik olarak**. - - Mesajınızda bir alt temsilciden **@ bahsederek** manuel olarak. Örneğin. +2. Subagent'lar çağrılabilir: + - Açıklamalarına göre özel görevler için primary agent'lar tarafından **otomatik olarak**. + - Mesajınızda bir subagent'tan **@ bahsederek** manuel olarak. Örneğin. ```txt frame="none" @general help me search for this function ``` -3. **Oturumlar arasında gezinme**: Alt aracılar kendi alt oturumlarını oluşturduğunda, aşağıdakileri kullanarak ana oturum ile tüm alt oturumlar arasında gezinebilirsiniz: +3. **Oturumlar arasında gezinme**: Subagent'lar kendi alt oturumlarını oluşturduğunda, aşağıdakileri kullanarak ana oturum ile tüm alt oturumlar arasında gezinebilirsiniz: - **\+Right** (veya yapılandırılmış `session_child_cycle` tuş atamanız) ebeveyn → çocuk1 → çocuk2 → ... → ebeveyn arasında ileri doğru geçiş yapmak için - **\+Left** (veya yapılandırılmış `session_child_cycle_reverse` tuş atamanız) ebeveyn ← çocuk1 ← çocuk2 ← ... ← ebeveyn arasında geriye doğru geçiş yapmak için - Bu, ana görüşme ile özel alt temsilci çalışması arasında sorunsuz bir şekilde geçiş yapmanıza olanak tanır. + Bu, ana görüşme ile özel subagent çalışması arasında sorunsuz bir şekilde geçiş yapmanıza olanak tanır. --- ## Yapılandır -Yerleşik aracıları özelleştirebilir veya yapılandırma yoluyla kendinizinkini oluşturabilirsiniz. Aracılar iki şekilde yapılandırılabilir: +Yerleşik agent'ları özelleştirebilir veya yapılandırma yoluyla kendinizinkini oluşturabilirsiniz. Agent'lar iki şekilde yapılandırılabilir: --- ### JSON -Aracıları `opencode.json` yapılandırma dosyanızda yapılandırın: +Agent'ları `opencode.json` yapılandırma dosyanızda yapılandırın: ```json title="opencode.json" { @@ -179,7 +179,7 @@ Aracıları `opencode.json` yapılandırma dosyanızda yapılandırın: ### Markdown -Ayrıca aracıları işaretleme dosyalarını kullanarak da tanımlayabilirsiniz. Bunları şuraya yerleştirin: +Ayrıca agent'ları Markdown dosyalarını kullanarak da tanımlayabilirsiniz. Bunları şuraya yerleştirin: - Global: `~/.config/opencode/agents/` - Per-project: `.opencode/agents/` @@ -206,7 +206,7 @@ You are in code review mode. Focus on: Provide constructive feedback without making direct changes. ``` -Markdown dosyasının adı aracının adı olur. Örneğin, `review.md` bir `review` aracısı oluşturur. +Markdown dosyasının adı agent'ın adı olur. Örneğin, `review.md` bir `review` agent'ı oluşturur. --- @@ -216,9 +216,9 @@ Bu yapılandırma seçeneklerine ayrıntılı olarak bakalım. --- -### Tanım +### Description -Aracının ne yaptığına ve ne zaman kullanılacağına ilişkin kısa bir açıklama sağlamak için `description` seçeneğini kullanın. +Agent'ın ne yaptığına ve ne zaman kullanılacağına ilişkin kısa bir açıklama sağlamak için `description` seçeneğini kullanın. ```json title="opencode.json" { @@ -234,7 +234,7 @@ Bu **gerekli** bir yapılandırma seçeneğidir. --- -### Sıcaklık +### Temperature LLM'nin yanıtlarının rastgeleliğini ve yaratıcılığını `temperature` yapılandırmasıyla kontrol edin. @@ -283,9 +283,9 @@ Sıcaklık belirtilmezse opencode modeline özgü varsayılanları kullanır; ç ### Max steps -Bir aracının yalnızca metinle yanıt vermeye zorlanmadan önce gerçekleştirebileceği maksimum aracı yineleme sayısını kontrol edin. Bu, maliyetleri kontrol etmek isteyen kullanıcıların aracılık eylemlerine bir sınır koymasına olanak tanır. +Bir agent'ın yalnızca metinle yanıt vermeye zorlanmadan önce gerçekleştirebileceği maksimum agent yineleme sayısını kontrol edin. Bu, maliyetleri kontrol etmek isteyen kullanıcıların agent eylemlerine bir sınır koymasına olanak tanır. -Bu ayarlanmazsa, model durmayı seçene veya kullanıcı oturumu kesene kadar aracı yinelemeye devam edecektir. +Bu ayarlanmazsa, model durmayı seçene veya kullanıcı oturumu kesene kadar agent yinelemeye devam edecektir. ```json title="opencode.json" { @@ -299,7 +299,7 @@ Bu ayarlanmazsa, model durmayı seçene veya kullanıcı oturumu kesene kadar ar } ``` -Sınıra ulaşıldığında, aracı, işinin özeti ve önerilen kalan görevlerin bir özetiyle yanıt vermesi talimatını veren özel bir sistem istemi alır. +Sınıra ulaşıldığında, agent, işinin özeti ve önerilen kalan görevlerin bir özetiyle yanıt vermesi talimatını veren özel bir sistem prompt'u alır. :::caution Eski `maxSteps` alanı kullanımdan kaldırıldı. Bunun yerine `steps` kullanın. @@ -307,9 +307,9 @@ Eski `maxSteps` alanı kullanımdan kaldırıldı. Bunun yerine `steps` kullanı --- -### Devre dışı bırakmak +### Disable -Aracıyı devre dışı bırakmak için `true` olarak ayarlayın. +Agent'ı devre dışı bırakmak için `true` olarak ayarlayın. ```json title="opencode.json" { @@ -323,9 +323,9 @@ Aracıyı devre dışı bırakmak için `true` olarak ayarlayın. --- -### Çabuk +### Prompt -Bu aracı için `prompt` yapılandırmasıyla özel bir sistem bilgi istemi dosyası belirtin. Bilgi istemi dosyası, aracının amacına özel talimatlar içermelidir. +Bu agent için `prompt` yapılandırmasıyla özel bir sistem prompt dosyası belirtin. Prompt dosyası, agent'ın amacına özel talimatlar içermelidir. ```json title="opencode.json" { @@ -341,12 +341,12 @@ Bu yol, yapılandırma dosyasının bulunduğu yere göredir. Yani bu hem global --- -### Modeli +### Model -Bu aracın kodu geçersiz için `model` ayarını kullanın. Farklı bölümler için optimize edilmiş farklı modelleri kullanmak için kullanışlıdır. Örneğin planlama için daha hızlı bir model, uygulama için daha yetenekli bir model. +Bu agent'ın kodu geçersiz için `model` ayarını kullanın. Farklı bölümler için optimize edilmiş farklı modelleri kullanmak için kullanışlıdır. Örneğin planlama için daha hızlı bir model, uygulama için daha yetenekli bir model. :::tip -Bir model belirtmezseniz, birincil araçlar [model globally configured](/docs/config#models)'yi kullanırken alt araçlar, alt aracı çağıran birincil aracın kullanıcı adını kullanır. +Bir model belirtmezseniz, primary agent'lar [model globally configured](/docs/config#models)'yi kullanırken subagent'lar, subagent'ı çağıran primary agent'ın kullanıcı adını kullanır. ::: ```json title="opencode.json" @@ -365,7 +365,7 @@ opencode hesabınızdaki model kimliğini `provider/model-id` biçimini kullanı ### Tools -`tools` yapılandırmasıyla bu aracıda hangi araçların mevcut olduğunu kontrol edin. Belirli araçları `true` veya `false` olarak ayarlayarak etkinleştirebilir veya devre dışı bırakabilirsiniz. +`tools` yapılandırmasıyla bu agent'ta hangi araçların mevcut olduğunu kontrol edin. Belirli araçları `true` veya `false` olarak ayarlayarak etkinleştirebilir veya devre dışı bırakabilirsiniz. ```json title="opencode.json" {3-6,9-12} { @@ -386,7 +386,7 @@ opencode hesabınızdaki model kimliğini `provider/model-id` biçimini kullanı ``` :::note -Aracıya özgü yapılandırma, genel yapılandırmayı geçersiz kılar. +Agent'a özgü yapılandırma, genel yapılandırmayı geçersiz kılar. ::: Aynı anda birden fazla aracı kontrol etmek için joker karakterleri de kullanabilirsiniz. Örneğin, bir MCP sunucusundaki tüm araçları devre dışı bırakmak için: @@ -410,13 +410,13 @@ Aynı anda birden fazla aracı kontrol etmek için joker karakterleri de kullana --- -### İzinler +### Permissions -Bir aracının gerçekleştirebileceği eylemleri yönetmek için izinleri yapılandırabilirsiniz. Şu anda `edit`, `bash` ve `webfetch` araçlarının izinleri şu şekilde yapılandırılabilir: +Bir agent'ın gerçekleştirebileceği eylemleri yönetmek için izinleri yapılandırabilirsiniz. Şu anda `edit`, `bash` ve `webfetch` araçlarının izinleri şu şekilde yapılandırılabilir: -- `"ask"` — Aracı çalıştırmadan önce onay iste +- `"ask"` — Agent çalıştırmadan önce onay iste - `"allow"` — Onay olmadan tüm işlemlere izin ver -- `"deny"` — Aracı devre dışı bırakır +- `"deny"` — Agent'ı devre dışı bırakır ```json title="opencode.json" { @@ -427,7 +427,7 @@ Bir aracının gerçekleştirebileceği eylemleri yönetmek için izinleri yapı } ``` -Bu izinleri aracı başına geçersiz kılabilirsiniz. +Bu izinleri agent başına geçersiz kılabilirsiniz. ```json title="opencode.json" {3-5,8-10} { @@ -445,7 +445,7 @@ Bu izinleri aracı başına geçersiz kılabilirsiniz. } ``` -İzinleri Markdown aracılarında da ayarlayabilirsiniz. +İzinleri Markdown agent'larında da ayarlayabilirsiniz. ```markdown title="~/.config/opencode/agents/review.md" --- @@ -524,7 +524,7 @@ Son eşleşen kural öncelikli olduğundan, `*` joker karakterini ilk sıraya ve ### Mode -Aracının modunu `mode` yapılandırmasıyla kontrol edin. `mode` seçeneği aracının nasıl kullanılabileceğini belirlemek için kullanılır. +Agent'ın modunu `mode` yapılandırmasıyla kontrol edin. `mode` seçeneği agent'ın nasıl kullanılabileceğini belirlemek için kullanılır. ```json title="opencode.json" { @@ -540,9 +540,9 @@ Aracının modunu `mode` yapılandırmasıyla kontrol edin. `mode` seçeneği ar --- -### Gizlenmiş +### Hidden -`@` otomatik tamamlama menüsünden bir alt aracıyı `hidden: true` ile gizleyin. Yalnızca diğer aracılar tarafından Görev aracı aracılığıyla programlı olarak çağrılması gereken dahili alt aracılar için kullanışlıdır. +`@` otomatik tamamlama menüsünden bir subagent'ı `hidden: true` ile gizleyin. Yalnızca diğer agent'lar tarafından Task aracı aracılığıyla programlı olarak çağrılması gereken dahili subagent'lar için kullanışlıdır. ```json title="opencode.json" { @@ -555,17 +555,17 @@ Aracının modunu `mode` yapılandırmasıyla kontrol edin. `mode` seçeneği ar } ``` -Bu yalnızca otomatik menüdeki kullanıcının görünümlerinin etkileri. İzinler izin vermesine, gizli araçlar modeli tarafından Görev aracı aracılığıyla çağrılmaya devam edilebilir. +Bu yalnızca otomatik menüdeki kullanıcının görünümlerinin etkileri. İzinler izin vermesine, gizli agent'lar modeli tarafından Task aracı aracılığıyla çağrılmaya devam edilebilir. :::note -Yalnızca `mode: subagent` acenteleri için geçerlidir. +Yalnızca `mode: subagent` agent'ları için geçerlidir. ::: --- ### Task permissions -`permission.task` ile bir aracının Görev aracı aracılığıyla hangi alt aracıları çağırabileceğini kontrol edin. Esnek eşleştirme için küresel desenleri kullanır. +`permission.task` ile bir agent'ın Task aracı aracılığıyla hangi subagent'ları çağırabileceğini kontrol edin. Esnek eşleştirme için küresel desenleri kullanır. ```json title="opencode.json" { @@ -584,21 +584,21 @@ Yalnızca `mode: subagent` acenteleri için geçerlidir. } ``` -`deny` olarak ayarlandığında, alt aracı Görev aracı açıklamasından tamamen kaldırılır, böylece model onu çağırmaya çalışmaz. +`deny` olarak ayarlandığında, subagent Task aracı açıklamasından tamamen kaldırılır, böylece model onu çağırmaya çalışmaz. :::tip Kurallar sırayla değerlendirilir ve **son eşleşen kural kazanır**. Yukarıdaki örnekte `orchestrator-planner`, hem `*` (reddet) hem de `orchestrator-*` (izin ver) ile eşleşir, ancak `orchestrator-*`, `*`'den sonra geldiğinden sonuç `allow` olur. ::: :::tip -Kullanıcılar, aracının görev izinleri bunu reddetse bile, her zaman herhangi bir alt aracıyı `@` otomatik tamamlama menüsü aracılığıyla doğrudan çağırabilir. +Kullanıcılar, agent'ın görev izinleri bunu reddetse bile, her zaman herhangi bir subagent'ı `@` otomatik tamamlama menüsü aracılığıyla doğrudan çağırabilir. ::: --- -### Renk +### Color -Aracının kullanıcı arayüzündeki görsel görünümünü `color` seçeneğiyle özelleştirin. Bu, aracının arayüzde nasıl göründüğünü etkiler. +Agent'ın kullanıcı arayüzündeki görsel görünümünü `color` seçeneğiyle özelleştirin. Bu, agent'ın arayüzde nasıl göründüğünü etkiler. cebeli bir onaltılık renk (ör. `#FF5733`) veya tema rengini kullanın: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. @@ -635,9 +635,9 @@ Değerler 0,0 ile 1,0 arasında değişir. Düşük değerler daha odaklıdır, --- -### Ek olarak +### Additional -Temsilci yapılandırmanızdaki düzenlemeleriniz diğer seçenekler, model seçenekleri olarak **doğrudan sağlayıcıya** iletilecektir. Bu, sağlayıcıya özgü özelliklerin ve serbest bırakılmasını sağlar. +Agent yapılandırmanızdaki düzenlemeleriniz diğer seçenekler, model seçenekleri olarak **doğrudan sağlayıcıya** iletilecektir. Bu, sağlayıcıya özgü özelliklerin ve serbest bırakılmasını sağlar. Örneğin OpenAI'nin akıl yürütme modelleriyle akıl yürütme çabasını kontrol edebilirsiniz: @@ -662,9 +662,9 @@ Mevcut modellerin listesini görmek için `opencode models` komutunu çalıştı --- -## Temsilci oluştur +## Create agents -Aşağıdaki komutu kullanarak yeni aracılar oluşturabilirsiniz: +Aşağıdaki komutu kullanarak yeni agent'lar oluşturabilirsiniz: ```bash opencode agent create @@ -672,37 +672,37 @@ opencode agent create Bu etkileşimli komut şunları sağlayacaktır: -1. Temsilciyi nereye kaydedeceğinizi sorun; küresel veya projeye özel. -2. Temsilcinin ne yapması gerektiğinin açıklaması. -3. Uygun bir sistem istemi ve tanımlayıcı oluşturun. -4. Aracının hangi araçlara erişebileceğini seçmenize izin verin. -5. Son olarak aracı yapılandırmasıyla bir işaretleme dosyası oluşturun. +1. Agent'ı nereye kaydedeceğinizi sorun; küresel veya projeye özel. +2. Agent'ın ne yapması gerektiğinin açıklaması. +3. Uygun bir sistem prompt'u ve tanımlayıcı oluşturun. +4. Agent'ın hangi araçlara erişebileceğini seçmenize izin verin. +5. Son olarak agent yapılandırmasıyla bir Markdown dosyası oluşturun. --- -## Kullanım durumları +## Use cases -Farklı aracılara yönelik bazı yaygın kullanım durumları aşağıda verilmiştir. +Farklı agent'lara yönelik bazı yaygın kullanım durumları aşağıda verilmiştir. -- **Yapı aracısı**: Tüm araçların etkinleştirildiği tam geliştirme çalışması -- **Plan aracısı**: Değişiklik yapmadan analiz ve planlama -- **İnceleme aracısı**: Salt okunur erişim ve belgeleme araçlarıyla kod incelemesi -- **Hata ayıklama aracısı**: Bash ve okuma araçları etkinken araştırmaya odaklanmıştır -- **Dokümanlar aracısı**: Dosya işlemleriyle ancak sistem komutları olmadan belge yazma +- **Build agent**: Tüm araçların etkinleştirildiği tam geliştirme çalışması +- **Plan agent**: Değişiklik yapmadan analiz ve planlama +- **Review agent**: Salt okunur erişim ve belgeleme araçlarıyla kod incelemesi +- **Debug agent**: Bash ve okuma araçları etkinken araştırmaya odaklanmıştır +- **Docs agent**: Dosya işlemleriyle ancak sistem komutları olmadan belge yazma --- ## Examples -Yararlı bulabileceğiniz bazı örnek aracıları burada bulabilirsiniz. +Yararlı bulabileceğiniz bazı örnek agent'ları burada bulabilirsiniz. :::tip -Paylaşmak istediğiniz bir temsilciniz var mı? [Submit a PR](https://github.com/anomalyco/opencode). +Paylaşmak istediğiniz bir agent'ınız var mı? [Submit a PR](https://github.com/anomalyco/opencode). ::: --- -### Dokümantasyon temsilcisi +### Documentation agent ```markdown title="~/.config/opencode/agents/docs-writer.md" --- diff --git a/packages/web/src/content/docs/tr/cli.mdx b/packages/web/src/content/docs/tr/cli.mdx index 7d9bdf7192..fc8f1a431e 100644 --- a/packages/web/src/content/docs/tr/cli.mdx +++ b/packages/web/src/content/docs/tr/cli.mdx @@ -69,10 +69,10 @@ opencode attach [url] Bu, TUI öğesinin uzak bir opencode arka ucuyla kullanılmasına olanak tanır. Örneğin: ```bash -# Web/mobil erişim için backend sunucusunu başlat +# Start the backend server for web/mobile access opencode web --port 4096 --hostname 0.0.0.0 -# Başka bir terminalde çalışan backend'e TUI ile bağlan +# In another terminal, attach the TUI to the running backend opencode attach http://10.20.30.40:4096 ``` @@ -326,10 +326,10 @@ opencode run Explain the use of context in Go Ayrıca, her çalıştırmada MCP sunucusunun soğuk önyükleme sürelerini önlemek için çalışan bir `opencode serve` örneğine de ekleyebilirsiniz: ```bash -# Bir terminalde headless sunucuyu başlat +# Start a headless server in one terminal opencode serve -# Başka bir terminalde buna bağlanan komutları çalıştır +# In another terminal, run commands that attach to it opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` diff --git a/packages/web/src/content/docs/tr/formatters.mdx b/packages/web/src/content/docs/tr/formatters.mdx index b450dbfea3..f4e8182c95 100644 --- a/packages/web/src/content/docs/tr/formatters.mdx +++ b/packages/web/src/content/docs/tr/formatters.mdx @@ -35,10 +35,10 @@ opencode, popüler diller ve çerçeveler için çeşitli yerleşik biçimlendir | nixfmt | .nix | `nixfmt` komutu mevcut | | shfmt | .sh, .bash | `shfmt` komutu mevcut | | pint | .php | `laravel/pint` dependency in `composer.json` | -| oxfmt (Deneysel) | .js, .jsx, .ts, .tsx | `package.json` içindeki `oxfmt` bağımlılığı ve [experimental env variable flag](/docs/cli/#experimental) | +| oxfmt (Deneysel) | .js, .jsx, .ts, .tsx | `oxfmt` içindeki `package.json` bağımlılığı ve [experimental env variable flag](/docs/cli/#experimental) | | ormolu | .hs | `ormolu` komutu mevcut | -Yani eğer projenizin `package.json` dosyasında `prettier` varsa, opencode bunu otomatik olarak kullanacaktır. +Yani eğer projenizin `prettier` dosyasında `package.json` varsa, opencode bunu otomatik olarak kullanacaktır. --- diff --git a/packages/web/src/content/docs/tr/github.mdx b/packages/web/src/content/docs/tr/github.mdx index 2bd53f31f8..e9db5f15df 100644 --- a/packages/web/src/content/docs/tr/github.mdx +++ b/packages/web/src/content/docs/tr/github.mdx @@ -37,7 +37,7 @@ Veya manuel olarak ayarlayabilirsiniz. 2. **İş akışını ekleyin** - Aşağıdaki iş akışı dosyasını deponuzdaki `.github/workflows/opencode.yml`'a ekleyin. `env`'de uygun `model` ve gerekli API anahtarlarını ayarladığınızdan emin olun. + Aşağıdaki iş akışı dosyasını deponuzdaki `.github/workflows/opencode.yml`'a ekleyin. `model`'de uygun `env` ve gerekli API anahtarlarını ayarladığınızdan emin olun. ```yml title=".github/workflows/opencode.yml" {24,26} name: opencode diff --git a/packages/web/src/content/docs/tr/index.mdx b/packages/web/src/content/docs/tr/index.mdx index f66fcd0a21..525471995d 100644 --- a/packages/web/src/content/docs/tr/index.mdx +++ b/packages/web/src/content/docs/tr/index.mdx @@ -7,7 +7,7 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/) açık kaynaklı bir AI kodlama aracısıdır. Terminal tabanlı bir arayüz, masaüstü uygulaması veya IDE uzantısı olarak mevcuttur. +[**opencode**](/) açık kaynaklı bir AI coding agent'ıdır. Terminal tabanlı bir arayüz, masaüstü uygulaması veya IDE uzantısı olarak mevcuttur. ![opencode TUI with the opencode theme](../../../assets/lander/screenshot.png) @@ -79,7 +79,7 @@ Ayrıca aşağıdaki komutlarla da yükleyebilirsiniz: brew install anomalyco/tap/opencode ``` - > En güncel sürümler için opencode dokunuşunu kullanmanızı öneririz. Resmi `brew install opencode` formülü Homebrew ekibi tarafından korunur ve daha sık güncellenir. + > En güncel sürümler için opencode tap'ini kullanmanızı öneririz. Resmi `brew install opencode` formülü Homebrew ekibi tarafından korunur ve daha sık güncellenir. - **Paru'yu Arch Linux'ta kullanma** @@ -93,13 +93,13 @@ Ayrıca aşağıdaki komutlarla da yükleyebilirsiniz: Windows'ta en iyi deneyim için [Windows Subsystem for Linux (WSL)](/docs/windows-wsl) kullanılmasını öneririz. Daha iyi performans ve opencode'un özellikleriyle tam uyumluluğu sağlar. ::: -- **Çikolata Kullanımı** +- **Chocolatey Kullanımı** ```bash choco install opencode ``` -- **Kepçe Kullanımı** +- **Scoop Kullanımı** ```bash scoop install opencode @@ -134,8 +134,7 @@ opencode'un Bun kullanılarak Windows'a yüklenmesine yönelik destek şu anda d opencode ile herhangi bir LLM sağlayıcısının API anahtarlarını yapılandırarak kullanabilirsiniz. LLM sağlayıcılarını kullanmaya yeni başlıyorsanız, [OpenCode Zen](/docs/zen) kullanmanızı öneririz. -opencode tarafından test edilmiş ve doğrulanmış modellerin seçilmiş bir listesidir -team. +opencode team tarafından test edilmiş ve doğrulanmış modellerin seçilmiş bir listesidir. 1. TUI'de `/connect` komutunu çalıştırın, opencode'u seçin ve [opencode.ai/auth](https://opencode.ai/auth)'ye gidin. @@ -207,7 +206,7 @@ Projedeki dosyaları bulanık aramak için `@` tuşunu kullanın. ::: ```txt frame="none" "@packages/functions/src/api/index.ts" -@packages/functions/src/api/index.ts dosyasında authentication nasıl ele alınıyor? +How is authentication handled in @packages/functions/src/api/index.ts ``` Kod tabanının üzerinde çalışmadığınız bir kısmı varsa bu yararlı olur. @@ -232,9 +231,9 @@ opencode'dan projenize yeni özellikler eklemesini isteyebilirsiniz. Yine de ön Şimdi ne yapmasını istediğimizi anlatalım. ```txt frame="none" - Bir kullanıcı not sildiğinde, veritabanında bu notu silinmiş olarak işaretleyelim. - Ardından yakın zamanda silinen tüm notları gösteren bir ekran oluşturalım. - Bu ekrandan kullanıcı notu geri alabilsin veya kalıcı olarak silebilsin. + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. ``` opencode'un isteğinizi anlaması için yeterli ayrıntı verin. @@ -249,8 +248,8 @@ opencode'dan projenize yeni özellikler eklemesini isteyebilirsiniz. Yine de ön Size bir plan sunduğunda ona geri bildirimde bulunabilir veya daha fazla ayrıntı ekleyebilirsiniz. ```txt frame="none" - Bu yeni ekranı daha önce kullandığım bir tasarıma göre yapmak istiyoruz. - [Image #1] Bu görsele bakıp referans al. + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. ``` :::tip @@ -271,7 +270,7 @@ opencode'dan projenize yeni özellikler eklemesini isteyebilirsiniz. Yine de ön Ardından değişiklikleri yapmasını isteyin. ```bash frame="none" - Harika görünüyor, şimdi değişiklikleri yap. + Sounds good! Go ahead and make the changes. ``` --- @@ -281,9 +280,9 @@ opencode'dan projenize yeni özellikler eklemesini isteyebilirsiniz. Yine de ön Daha basit değişikliklerde, önce planı incelemeden opencode'dan doğrudan değişiklik yapmasını isteyebilirsiniz. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" -/settings route'una authentication eklememiz gerekiyor. -@packages/functions/src/notes.ts içindeki /notes route'unda bunun nasıl yapıldığına bak -ve aynı mantığı @packages/functions/src/settings.ts içinde uygula. +We need to add authentication to the /settings route. Take a look at how this is +handled in the /notes route in @packages/functions/src/notes.ts and implement +the same logic in @packages/functions/src/settings.ts ``` opencode'un doğru değişiklikleri yapması için yeterli ayrıntı verdiğinizden emin olun. @@ -295,7 +294,7 @@ opencode'un doğru değişiklikleri yapması için yeterli ayrıntı verdiğiniz Diyelim ki opencode'dan bazı değişiklikler yapmasını istediniz. ```txt frame="none" "@packages/functions/src/api/index.ts" -@packages/functions/src/api/index.ts içindeki fonksiyonu refactor edebilir misin? +Can you refactor the function in @packages/functions/src/api/index.ts? ``` Ama istediğinin bu olmadığını anlıyorsun. Değişiklikleri **geri alabilirsiniz** @@ -308,7 +307,7 @@ Ama istediğinin bu olmadığını anlıyorsun. Değişiklikleri **geri alabilir opencode değişiklikleri geri alır ve orijinal mesajınızı tekrar gösterir. ```txt frame="none" "@packages/functions/src/api/index.ts" -@packages/functions/src/api/index.ts içindeki fonksiyonu refactor edebilir misin? +Can you refactor the function in @packages/functions/src/api/index.ts? ``` Buradan komut isteminde ince ayar yapabilir ve opencode'dan tekrar denemesini isteyebilirsiniz. diff --git a/packages/web/src/content/docs/tr/lsp.mdx b/packages/web/src/content/docs/tr/lsp.mdx index 93e3561899..27e811ff7a 100644 --- a/packages/web/src/content/docs/tr/lsp.mdx +++ b/packages/web/src/content/docs/tr/lsp.mdx @@ -182,7 +182,7 @@ Komutu ve dosya uzantılarını belirterek özel LSP sunucuları ekleyebilirsini PHP Intelephense, bir lisans anahtarı aracılığıyla premium özellikler sunar. Anahtarı (yalnızca) şu adresteki bir metin dosyasına yerleştirerek bir lisans anahtarı sağlayabilirsiniz: -- MacOS/Linux'ta: `$HOME/intelephense/licence.txt` -- Windows'ta: `%USERPROFILE%/intelephense/licence.txt` +- MacOS/Linux'ta: `$HOME/intelephense/license.txt` +- Windows'ta: `%USERPROFILE%/intelephense/license.txt` Dosya, ek içerik olmadan yalnızca lisans anahtarını içermelidir. diff --git a/packages/web/src/content/docs/tr/models.mdx b/packages/web/src/content/docs/tr/models.mdx index 9667e4b00e..2f25bcceb5 100644 --- a/packages/web/src/content/docs/tr/models.mdx +++ b/packages/web/src/content/docs/tr/models.mdx @@ -100,7 +100,7 @@ Bir modelin seçeneklerini genel olarak yapılandırma aracılığıyla yapılan } ``` -Burada iki yerleşik model için genel ayarları yapılandırıyoruz: `openai` sağlayıcısı aracılığıyla erişildiğinde `gpt-5` ve `anthropic` sağlayıcısı aracılığıyla erişildiğinde `claude-sonnet-4-20250514`. +Burada iki yerleşik model için genel ayarları yapılandırıyoruz: `gpt-5` sağlayıcısı aracılığıyla erişildiğinde `openai` ve `claude-sonnet-4-20250514` sağlayıcısı aracılığıyla erişildiğinde `anthropic`. Yerleşik sağlayıcı ve model adları [Models.dev](https://models.dev) adresinde bulunabilir. Bu seçenekleri kullandığınız tüm aracılar için de yapılandırabilirsiniz. Aracı yapılandırması burada tüm genel seçenekleri geçersiz kılar. [Daha fazla bilgi](/docs/agents/#additional). diff --git a/packages/web/src/content/docs/tr/plugins.mdx b/packages/web/src/content/docs/tr/plugins.mdx index aaa582b04c..dd04544acd 100644 --- a/packages/web/src/content/docs/tr/plugins.mdx +++ b/packages/web/src/content/docs/tr/plugins.mdx @@ -312,7 +312,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { ### Günlüğe kaydetme -Yapılandırılmış günlük kaydı için `console.log` yerine `client.app.log()` kullanın: +Yapılandırılmış günlük kaydı için `client.app.log()` yerine `console.log` kullanın: ```ts title=".opencode/plugins/my-plugin.ts" export const MyPlugin = async ({ client }) => { diff --git a/packages/web/src/content/docs/tr/rules.mdx b/packages/web/src/content/docs/tr/rules.mdx index 2bc858d657..90ae91c9e2 100644 --- a/packages/web/src/content/docs/tr/rules.mdx +++ b/packages/web/src/content/docs/tr/rules.mdx @@ -130,7 +130,7 @@ Opencode, `AGENTS.md`'daki dosya referanslarını otomatik olarak ayrıştırmas ### opencode.json'u kullanma -Önerilen yaklaşım, `opencode.json`'deki `instructions` alanını kullanmaktır: +Önerilen yaklaşım, `instructions`'deki `opencode.json` alanını kullanmaktır: ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/tr/skills.mdx b/packages/web/src/content/docs/tr/skills.mdx index 4765b12e61..7077ed129f 100644 --- a/packages/web/src/content/docs/tr/skills.mdx +++ b/packages/web/src/content/docs/tr/skills.mdx @@ -25,7 +25,7 @@ opencode su konumlari tarar: ## Kesfi anlayin Proje yerel yollarinda opencode, mevcut calisma dizininizden baslayip git worktree kokune kadar yukari cikar. -Bu sirada `.opencode/` altindaki eslesen `skills/*/SKILL.md` dosyalarini ve `.claude/skills/*/SKILL.md` ya da `.agents/skills/*/SKILL.md` dosyalarini yukler. +Bu sirada `skills/*/SKILL.md` altindaki eslesen `.opencode/` dosyalarini ve `.claude/skills/*/SKILL.md` ya da `.agents/skills/*/SKILL.md` dosyalarini yukler. Genel tanimlar da `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` ve `~/.agents/skills/*/SKILL.md` yollarindan yuklenir. diff --git a/packages/web/src/content/docs/tr/tools.mdx b/packages/web/src/content/docs/tr/tools.mdx index b3b6f7d4b7..04a4b9f93e 100644 --- a/packages/web/src/content/docs/tr/tools.mdx +++ b/packages/web/src/content/docs/tr/tools.mdx @@ -376,4 +376,4 @@ Normalde yok sayilan dosyalari dahil etmek icin proje kokunde bir `.ignore` dosy !build/ ``` -Ornegin bu `.ignore` dosyasi, `.gitignore` icinde olsalar bile ripgrep'in `node_modules/`, `dist/` ve `build/` dizinlerinde arama yapmasina izin verir. +Ornegin bu `.ignore` dosyasi, `node_modules/` icinde olsalar bile ripgrep'in `dist/`, `build/` ve `.gitignore` dizinlerinde arama yapmasina izin verir. diff --git a/packages/web/src/content/docs/tr/troubleshooting.mdx b/packages/web/src/content/docs/tr/troubleshooting.mdx index cd6c87f567..dbf7289a9c 100644 --- a/packages/web/src/content/docs/tr/troubleshooting.mdx +++ b/packages/web/src/content/docs/tr/troubleshooting.mdx @@ -277,7 +277,7 @@ Linux kullanicilarinin kopyala/yapistir ozelliginin calismasi icin asagidaki pan ```bash apt install -y xclip -# veya +# or apt install -y xsel ``` @@ -291,7 +291,7 @@ apt install -y wl-clipboard ```bash apt install -y xvfb -# ve su komutlari calistirin: +# and run: Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & export DISPLAY=:99.0 ``` diff --git a/packages/web/src/content/docs/tr/tui.mdx b/packages/web/src/content/docs/tr/tui.mdx index a1b213b16a..2bd5db8f5d 100644 --- a/packages/web/src/content/docs/tr/tui.mdx +++ b/packages/web/src/content/docs/tr/tui.mdx @@ -22,7 +22,7 @@ opencode /path/to/project TUI icinde bir mesaj yazarak istem gonderebilirsiniz. ```text -Kod tabani icin hizli bir ozet ver. +Give me a quick summary of the codebase. ``` --- @@ -36,7 +36,7 @@ Mesajlarinizda dosyalara referans vermek icin `@` kullanabilirsiniz. ::: ```text "@packages/functions/src/api/index.ts" -@packages/functions/src/api/index.ts dosyasinda kimlik dogrulama nasil ele alinmis? +How is auth handled in @packages/functions/src/api/index.ts? ``` Dosya icerigi otomatik olarak konusmaya eklenir. @@ -45,7 +45,7 @@ Dosya icerigi otomatik olarak konusmaya eklenir. ## Bash komutlari -Bir mesaji `!` ile baslatarak kabuk komutu calistirin. +Bir mesaji `!` ile baslatarak shell komutu calistirin. ```bash frame="none" !ls -la @@ -290,12 +290,12 @@ Mevcut oturumun paylasimini kaldirir. [Daha fazla bilgi](/docs/share#paylasimi-k ```bash - # nano veya vim ornegi + # Example for nano or vim export EDITOR=nano export EDITOR=vim - # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin - # --wait ekleyin + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait export EDITOR="code --wait" ``` @@ -308,8 +308,8 @@ Mevcut oturumun paylasimini kaldirir. [Daha fazla bilgi](/docs/share#paylasimi-k ```bash set EDITOR=notepad - # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin - # --wait ekleyin + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait set EDITOR=code --wait ``` @@ -321,8 +321,8 @@ Mevcut oturumun paylasimini kaldirir. [Daha fazla bilgi](/docs/share#paylasimi-k ```powershell $env:EDITOR = "notepad" - # VS Code, Cursor, VSCodium, Windsurf, Zed vb. GUI editorler icin - # --wait ekleyin + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait $env:EDITOR = "code --wait" ``` diff --git a/packages/web/src/content/docs/tr/web.mdx b/packages/web/src/content/docs/tr/web.mdx index 31cfd071d0..ea36c9d80e 100644 --- a/packages/web/src/content/docs/tr/web.mdx +++ b/packages/web/src/content/docs/tr/web.mdx @@ -113,10 +113,10 @@ Bağlı sunucuları ve durumlarını görüntülemek için "Sunucuları Gör" se Çalışan bir web sunucusuna bir terminal TUI'si ekleyebilirsiniz: ```bash -# Web sunucusunu başlat +# Start the web server opencode web --port 4096 -# Başka bir terminalde TUI ile bağlan +# In another terminal, attach the TUI opencode attach http://localhost:4096 ``` diff --git a/packages/web/src/content/docs/zh-cn/1-0.mdx b/packages/web/src/content/docs/zh-cn/1-0.mdx index 4a649b6010..849163c0c2 100644 --- a/packages/web/src/content/docs/zh-cn/1-0.mdx +++ b/packages/web/src/content/docs/zh-cn/1-0.mdx @@ -1,28 +1,28 @@ --- -title: 遷移到 1.0 -description: opencode 1.0 中的添加内容。 +title: 迁移到 1.0 +description: opencode 1.0 中的新增内容。 --- -opencode 1.0完全重写了TUI。 +opencode 1.0 完全重写了 TUI。 -我们从存在的性能和功能问题的基于 go+bubbletea 的 TUI 迁移到使用 zig+solidjs 编写的内部框架 (OpenTUI)。 +我们从存在性能和功能问题的基于 go+bubbletea 的 TUI 迁移到使用 zig+solidjs 编写的内部框架 (OpenTUI)。 -新的 TUI 的工作方式与旧的 TUI 类似,因为它连接到相同的opencode服务器。 +新的 TUI 的工作方式与旧的 TUI 类似,因为它连接到相同的 opencode 服务器。 --- -## 升級中 +## 升级中 -如果您当前正在使用以前的版本,则不应自动升級到 1.0 +如果您当前正在使用以前的版本,则不应自动升级到 1.0 版本。然而,一些旧版本的 opencode 总是获取最新版本。 -要手动升級,请運行 +要手动升级,请运行 ```bash $ opencode upgrade 1.0.0 ``` -要降级回0.x,请运行 +要降级回 0.x,请运行 ```bash $ opencode upgrade 0.15.31 @@ -30,21 +30,21 @@ $ opencode upgrade 0.15.31 --- -## 用戶體驗變化 +## 用户体验变化 会话历史记录更加压缩,仅显示编辑和 bash 工具的完整详细信息。 -我们添加了一个命令栏,几乎所有内容都通过了它。按 ctrl+p 可以在任意上下文中调出它并查看您可以执行的所有操作。 +我们添加了一个命令栏,几乎所有内容都通过它。按 ctrl+p 可以在任意上下文中调出它并查看您可以执行的所有操作。 -添加了包含有用信息的会话側邊欄(可以切換)。 +添加了包含有用信息的会话侧边栏(可以切换)。 -我们删除了一些我们不確定是否有人實際使用的功能。如果缺少重要內容,请提出問題,我们会盡快将其添加回來。 +我们删除了一些我们不确定是否有人实际使用的功能。如果缺少重要内容,请提出 issue,我们会尽快将其添加回来。 --- -## 重大變化 +## 重大变化 -### 按鍵綁定已重命名 +### 按键绑定已重命名 - messages_revert -> messages_undo - switch_agent -> agent_cycle @@ -52,16 +52,16 @@ $ opencode upgrade 0.15.31 - switch_mode -> agent_cycle - switch_mode_reverse -> agent_cycle_reverse -### 按鍵綁定已移除 +### 按键绑定已移除 -- 消息佈局切換 +- 消息布局切换 - 下一条消息 - 上一条消息 -- 文件差異切換 +- 文件差异切换 - 文件搜索 - 文件关闭 - 文件列表 -- 应用程序幫助 -- 項目初始化 -- 工具詳細信息 -- 思維塊 +- 应用程序帮助 +- 项目初始化 +- 工具详细信息 +- 思维块 diff --git a/packages/web/src/content/docs/zh-cn/acp.mdx b/packages/web/src/content/docs/zh-cn/acp.mdx index f3791774ab..14f8981488 100644 --- a/packages/web/src/content/docs/zh-cn/acp.mdx +++ b/packages/web/src/content/docs/zh-cn/acp.mdx @@ -3,10 +3,10 @@ title: ACP 支持 description: 在任何 ACP 兼容编辑器中使用 opencode。 --- -opencode 支持[代理客户端协议](https://agentclientprotocol.com) 或 (ACP),允许您直接在兼容的编辑器和 IDE 中使用它。 +opencode 支持 [Agent Client Protocol](https://agentclientprotocol.com) (ACP),允许您直接在兼容的编辑器和 IDE 中使用它。 :::tip -有关支持 ACP 的编辑器和工具的列表,请查看[非加太进度进度报告](https://zed.dev/blog/acp-progress-report#available-now)。 +有关支持 ACP 的编辑器和工具的列表,请查看 [Zed ACP progress report](https://zed.dev/blog/acp-progress-report#available-now)。 ::: ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之间的通信。 @@ -23,9 +23,9 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 --- -### 澤德 +### Zed -添加到您的[泽德](https://zed.dev)配置(`~/.config/zed/settings.json`): +添加到您的 [Zed](https://zed.dev) 配置 (`~/.config/zed/settings.json`): ```json title="~/.config/zed/settings.json" { @@ -40,7 +40,7 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 要打开它,请使用 **命令面板** 中的 `agent: new thread` 操作。 -您还可以通过编辑`keymap.json`来绑定键盘快捷键: +您还可以通过编辑 `keymap.json` 来绑定键盘快捷键: ```json title="keymap.json" [ @@ -69,7 +69,7 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 ### JetBrains IDE -根据[文件](https://www.jetbrains.com/help/ai-assistant/acp.html)添加到你的[JetBrains IDE](https://www.jetbrains.com/) acp.json]: +根据 [docs](https://www.jetbrains.com/help/ai-assistant/acp.html) 添加到你的 [JetBrains IDE](https://www.jetbrains.com/) `acp.json`: ```json title="acp.json" { @@ -82,13 +82,13 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 } ``` -要打开它,请在 AI Chat 代理选择器中使用新的“opencode”代理。 +要打开它,请在 AI Chat 代理选择器中使用新的 "opencode" 代理。 --- -### 前衛 +### Avante.nvim -添加到您的[前卫](https://github.com/yetone/avante.nvim)配置: +添加到您的 [Avante.nvim](https://github.com/yetone/avante.nvim) 配置: ```lua { @@ -101,7 +101,7 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 } ``` -如果需要傳遞環境變量: +如果需要传递环境变量: ```lua {6-8} { @@ -119,7 +119,7 @@ ACP 是一种开放协议,用于标准化代码编辑器和 AI 编码代理之 --- -### 代码合作者.nvim +### CodeCompanion.nvim 相当于 opencode 网关 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim) 中的 ACP 代理,接下来将以下内容添加到 Neovim 配置中: @@ -136,9 +136,9 @@ require("codecompanion").setup({ }) ``` -此配置将 CodeCompanion 设置为使用 opencode 作为聊天的 ACP 代理。 +此配置将 CodeCompanion.nvim 设置为使用 opencode 作为聊天的 ACP 代理。 -如果您需要交付环境变量(如 `OPENCODE_API_KEY`),请参阅 CodeCompanion.nvim 文档中的 [配置充电器:环境变量Z](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) 了解完整信息。 +如果您需要传递环境变量(如 `OPENCODE_API_KEY`),请参阅 CodeCompanion.nvim 文档中的 [Configuration: Adapters](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) 了解完整信息。 ## 支持 @@ -149,8 +149,8 @@ opencode 通过 ACP 的工作方式与在终端中的工作方式相同。支持 ::: - 内置工具(文件操作、终端命令等) -- 自定義工具和斜杠命令 +- 自定义工具和斜杠命令 - 在 opencode 配置中配置的 MCP 服务器 - `AGENTS.md` 的项目特定规则 - 自定义程序和 linter -- 代理和权限系統 +- 代理和权限系统 diff --git a/packages/web/src/content/docs/zh-cn/agents.mdx b/packages/web/src/content/docs/zh-cn/agents.mdx index a49250f67f..c22ccb934a 100644 --- a/packages/web/src/content/docs/zh-cn/agents.mdx +++ b/packages/web/src/content/docs/zh-cn/agents.mdx @@ -1,65 +1,65 @@ --- -title: 代理商 -description: 配置和使用专門的代理。 +title: Agents +description: 配置和使用专门的代理。 --- -代理是专門的人工智能助手,可以針对特定任务和工作流程進行配置。它們允许您创建具有自定義提示、模型和工具访问权限的专用工具。 +代理是专门的人工智能助手,可以针对特定任务和工作流程进行配置。它们允许您创建具有自定义提示、模型和工具访问权限的专用工具。 :::tip -使用計劃代理來分析代碼并审查建議,而無需進行任何代碼更改。 +使用 Plan 代理来分析代码并审查建议,而无需进行任何代码更改。 ::: -您可以在会话期間在代理之間切換,或使用 `@` 提及來调用它們。 +您可以在会话期间在代理之间切换,或使用 `@` 提及来调用它们。 --- -## 類型 +## 类型 -opencode有两种类型的代理;主代理和次代理。 +OpenCode 有两种类型的代理;主代理和子代理。 --- -### 主要代理 +### Primary 代理 -主要代理是与您直接交互的主要助手。您可以使用 **Tab** 键或您配置的 `switch_agent` 键绑定循环浏览它们。这些代理处理您的主要对话。工具访问是通过权限配置的 - 例如,“构建”启用了所有工具,而“计划”则受到限制。 +Primary 代理是与您直接交互的主要助手。您可以使用 **Tab** 键或您配置的 `switch_agent` 键绑定循环浏览它们。这些代理处理您的主要对话。工具访问是通过权限配置的 - 例如,“Build”启用了所有工具,而“Plan”则受到限制。 :::tip -您可以在会话期间使用 **Tab** 键在主要代理之间进行切换。 +您可以在会话期间使用 **Tab** 键在 Primary 代理之间进行切换。 ::: -opencode附带两个内置的主要代理:**Build** 和 **Plan**。地 +OpenCode 附带两个内置的 Primary 代理:**Build** 和 **Plan**。 看看下面这些。 --- -### 子代理 +### Subagents (子代理) -子代理是主要代理可以调用​​來执行特定任务的专業助手。您还可以通过在消息中**@提及**它們來手动调用它們。 +Subagents (子代理) 是 Primary 代理可以调用​​来执行特定任务的专业助手。您还可以通过在消息中 **@提及** 它们来手动调用它们。 -opencode附带两个内置子代理:**General** 和 **Explore**。我们将在下面看看这个。 +OpenCode 附带两个内置子代理:**General** 和 **Explore**。我们将在下面看看这个。 --- -## 內建 +## 内置 -opencode附带两个内置主代理和两个内置子代理。 +OpenCode 附带两个内置主代理和两个内置子代理。 --- -### 使用構建 +### 使用 Build _模式_:`primary` -構建是启用所有工具的**默認**主要代理。这是用于需要完全访问文件操作和系統命令的開發工作的標準代理。 +Build 是启用所有工具的 **默认** Primary 代理。这是用于需要完全访问文件操作和系统命令的开发工作的标准代理。 --- -### 使用計劃 +### 使用 Plan _模式_:`primary` -专为規劃和分析而設計的受限代理。我们使用权限系統为您提供更多控制并防止意外更改。 -默认情况下,以下所有项均设置为`ask`: +专为规划和分析而设计的受限代理。我们使用权限系统为您提供更多控制并防止意外更改。 +默认情况下,以下所有项均设置为 `ask`: - `file edits`:所有书写、修复和编辑 - `bash`:所有 bash 命令 @@ -68,7 +68,7 @@ _模式_:`primary` --- -### 使用一般 +### 使用 General _模式_:`subagent` @@ -76,15 +76,15 @@ _模式_:`subagent` --- -### 使用探索 +### 使用 Explore _模式_:`subagent` -用于探索代碼庫的快速只讀代理。无法修改文件。当您需要按模式快速查找文件、搜索代碼中的關鍵字或回答有關代碼庫的問題時,请使用此功能。 +用于探索代码库的快速只读代理。无法修改文件。当您需要按模式快速查找文件、搜索代码中的关键字或回答有关代码库的问题时,请使用此功能。 --- -### 使用壓實 +### 使用 Compact _模式_:`primary` @@ -92,7 +92,7 @@ _模式_:`primary` --- -### 使用標題 +### 使用 Title _模式_:`primary` @@ -100,7 +100,7 @@ _模式_:`primary` --- -### 使用總結 +### 使用 Summary _模式_:`primary` @@ -110,27 +110,27 @@ _模式_:`primary` ## 用法 -1. 对于主要代理,请在会话期间使用 **Tab** 键循环浏览它们。您还可以使用配置的 `switch_agent` 键绑定。 +1. 对于 Primary 代理,请在会话期间使用 **Tab** 键循环浏览它们。您还可以使用配置的 `switch_agent` 键绑定。 2. 可以调用子代理: - - **自动**由主要代理根據其描述执行专門任务。 - - 通过在消息中**@提及**子代理手动進行。例如。 + - **自动**由 Primary 代理根据其描述执行专门任务。 + - 通过在消息中 **@提及** 子代理手动进行。例如。 ```txt frame="none" @general help me search for this function ``` -3. **会话之间导航**:当子代理创建自己的子会话時,您可以使用以下命令在父会话和所有子会话之间导航: - - **\+Right**(或您配置的 `session_child_cycle` 鍵綁定)向前循環父級 → 子級 1 → 子級 2 → ... → 父級 - - **\+Left**(或您配置的 `session_child_cycle_reverse` 鍵綁定)向後循環父級 ← 子級 1 ← 子級 2 ← ... ← 父級 +3. **会话之间导航**:当子代理创建自己的子会话时,您可以使用以下命令在父会话和所有子会话之间导航: + - **\+Right**(或您配置的 `session_child_cycle` 键绑定)向前循环父级 → 子级 1 → 子级 2 → ... → 父级 + - **\+Left**(或您配置的 `session_child_cycle_reverse` 键绑定)向后循环父级 ← 子级 1 ← 子级 2 ← ... ← 父级 - 这使您可以在主要对话和专門的子代理工作之間無縫切換。 + 这使您可以在主要对话和专门的子代理工作之间无缝切换。 --- ## 配置 -您可以自定義内置代理或通过配置创建您自己的代理。可以通过两种方式配置代理: +您也可以自定义内置代理或通过配置创建您自己的代理。可以通过两种方式配置代理: --- @@ -181,7 +181,7 @@ _模式_:`primary` 您还可以使用 Markdown 文件定义代理。将它们放入: -- 全球:`~/.config/opencode/agents/` +- 全局:`~/.config/opencode/agents/` - 每个项目:`.opencode/agents/` ```markdown title="~/.config/opencode/agents/review.md" @@ -206,13 +206,13 @@ You are in code review mode. Focus on: Provide constructive feedback without making direct changes. ``` -Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代理。 +Markdown 文件名成为代理名称。例如,`review.md` 创建 `review` 代理。 --- -## 選項 +## 选项 -讓我们詳細看看这些配置選項。 +让我们详细看看这些配置选项。 --- @@ -230,15 +230,15 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 } ``` -这是一个**必需的**配置選項。 +这是一个 **必需的** 配置选项。 --- -### 溫度 +### 温度 使用 `temperature` 配置控制 LLM 响应的随机性和创意。 -較低的值使響应更加集中和確定,而較高的值则增加创建力和可變性。 +较低的值使响应更加集中和确定,而较高的值则增加创造力和可变性。 ```json title="opencode.json" { @@ -277,15 +277,15 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 } ``` -如果未指定温度,opencode 将使用特定于模型的默认值;大多数模型通常为 0,Qwen 模型为 0.55。 +如果未指定温度,OpenCode 将使用特定于模型的默认值;大多数模型通常为 0,Qwen 模型为 0.55。 --- -### 最大步數 +### 最大步数 -控制代理在被迫仅使用文本響应之前可以执行的最大代理迭代次數。这允许希望控制成本的用戶对代理操作设置限制。 +控制代理在被迫仅使用文本响应之前可以执行的最大代理迭代次数。这允许希望控制成本的用户对代理操作设置限制。 -如果未设置,代理将繼續迭代,直到模型选择停止或用戶中斷会话。 +如果未设置,代理将继续迭代,直到模型选择停止或用户中断会话。 ```json title="opencode.json" { @@ -299,17 +299,17 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 } ``` -当達到限制時,代理会收到特殊的系統提示,指示其響应其工作摘要和建議的剩餘任务。 +当达到限制时,代理会收到特殊的系统提示,指示其响应其工作摘要和建议的剩余任务。 :::caution -旧版 `maxSteps` 字段已废弃。请改用`steps`。 +旧版 `maxSteps` 字段已废弃。请改用 `steps`。 ::: --- ### 禁用 -设置为`true`以取消代理。 +设置为 `true` 以取消代理。 ```json title="opencode.json" { @@ -323,7 +323,7 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 --- -### 迅速的 +### 提示 使用 `prompt` 配置为代理指定自定义系统提示文件。提示文件应包含特定于代理目的的说明。 @@ -337,7 +337,7 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 } ``` -该路径相对于文件所在位置的配置。因此,这适用于全局 opencode 配置和项目特定配置。 +该路径相对于文件所在位置的配置。因此,这适用于全局 OpenCode 配置和项目特定配置。 --- @@ -346,7 +346,7 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 使用 `model` 配置此代理的模型。对于使用针对不同任务优化的不同模型很有帮助。例如,更快的规划模型、更强大的实施模型。 :::tip -如果您不指定模型,主代理将使用[全局配置的模型](/docs/config#models),而子代理将使用调用子代理的主代理的模型。 +如果您不指定模型,Primary 代理将使用 [全局配置的模型](/docs/config#models),而子代理将使用调用子代理的 Primary 代理的模型。 ::: ```json title="opencode.json" @@ -359,7 +359,7 @@ Markdown 文件名成为代理名称。例如,`review.md` 创建`review` 代 } ``` -opencode配置中的模型ID使用格式`provider/model-id`。例如,如果您使用[OpenCode Zen](/docs/zen),则您将使用`opencode/gpt-5.1-codex`来表示GPT 5.1 Codex。 +OpenCode 配置中的模型 ID 使用格式 `provider/model-id`。例如,如果您使用 [OpenCode Zen](/docs/zen),则您将使用 `opencode/gpt-5.1-codex` 来表示 GPT 5.1 Codex。 --- @@ -482,7 +482,7 @@ Only analyze code and suggest changes. } ``` -这可以採用全局模式。 +这可以采用全局模式。 ```json title="opencode.json" {7} { @@ -499,7 +499,7 @@ Only analyze code and suggest changes. } ``` -您还可以使用`*`通配符來管理所有命令的权限。 +您还可以使用 `*` 通配符来管理所有命令的权限。 由于最后一个匹配规则优先,因此将 `*` 通配符放在前面,将特定规则放在后面。 ```json title="opencode.json" {8} @@ -524,7 +524,7 @@ Only analyze code and suggest changes. ### 模式 -使用`mode` 配置控制代理的模式。 `mode` 选项用于确定如何使用代理。 +使用 `mode` 配置控制代理的模式。 `mode` 选项用于确定如何使用代理。 ```json title="opencode.json" { @@ -536,13 +536,13 @@ Only analyze code and suggest changes. } ``` -`mode` 选项可设置为`primary`、`subagent` 或`all`。如果未指定`mode`,则默认为`all`。 +`mode` 选项可设置为 `primary`、`subagent` 或 `all`。如果未指定 `mode`,则默认为 `all`。 --- -### 隱 +### 隐藏 -使用`hidden: true`从`@`自动完成菜单隐藏子代理。对于只能由其他代理通过任务工具以编程方式调用的内部子代理很有帮助。 +使用 `hidden: true` 从 `@` 自动完成菜单隐藏子代理。对于只能由其他代理通过任务工具以编程方式调用的内部子代理很有帮助。 ```json title="opencode.json" { @@ -558,14 +558,14 @@ Only analyze code and suggest changes. 这仅影响自动完成菜单中的用户可见性。如果权限允许,模型仍然可以通过任务工具调用隐藏代理。 :::note -仅适用于`mode: subagent`代理。 +仅适用于 `mode: subagent` 代理。 ::: --- ### 任务权限 -使用`permission.task`控制代理可以通过任务工具调用哪些子代理。使用glob模式进行灵活匹配。 +使用 `permission.task` 控制代理可以通过任务工具调用哪些子代理。使用 glob 模式进行灵活匹配。 ```json title="opencode.json" { @@ -584,23 +584,23 @@ Only analyze code and suggest changes. } ``` -当设置为`deny`时,子代理社区任务工具描述中因此完全删除,模型不会尝试调用它。 +当设置为 `deny` 时,子代理社区任务工具描述中因此完全删除,模型不会尝试调用它。 :::tip -规则按顺序评估,**最后匹配的规则触发**。在上面的示例中,`orchestrator-planner` 匹配`*`(拒绝)和`orchestrator-*`(允许),但由于`orchestrator-*` 位于`*` 之后,因此结果为`allow`。 +规则按顺序评估,**最后匹配的规则触发**。在上面的示例中,`orchestrator-planner` 匹配 `*`(拒绝)和 `orchestrator-*`(允许),但由于 `orchestrator-*` 位于 `*` 之后,因此结果为 `allow`。 ::: :::tip -用戶始終可以通过 `@` 自动完成菜单直接调用任何子代理,即使代理的任务权限会拒絕它。 +用户始终可以通过 `@` 自动完成菜单直接调用任何子代理,即使代理的任务权限会拒绝它。 ::: --- -### 顏色 +### 颜色 -在UI中的界面外观中使用`color`选项自定义代理。这会影响代理在界面中的显示方式。 +在 UI 中的界面外观中使用 `color` 选项自定义代理。这会影响代理在界面中的显示方式。 -使用有效的十六进制颜色(例如`#FF5733`)或主题颜色:`primary`、`secondary`、`accent`、`success`、`warning`、`error`、`info`。 +使用有效的十六进制颜色(例如 `#FF5733`)或主题颜色:`primary`、`secondary`、`accent`、`success`、`warning`、`error`、`info`。 ```json title="opencode.json" { @@ -617,7 +617,7 @@ Only analyze code and suggest changes. --- -### 顶P +### Top P 使用 `top_p` 选项控制响应多样性。控制随机性的温度替代方案。 @@ -631,13 +631,13 @@ Only analyze code and suggest changes. } ``` -值范围從 0.0 到 1.0。較低的值更加集中,較高的值更加多樣化。 +值范围从 0.0 到 1.0。较低的值更加集中,较高的值更加多样化。 --- -### 額外的 +### 其他 -您在代理配置中指定的任何其他選項都将作为模型選項**直接**傳遞給提供商。这允许您使用特定于提供商的功能和參數。 +您在代理配置中指定的任何其他选项都将作为模型选项 **直接** 传递给提供商。这允许您使用特定于提供商的功能和参数。 例如,使用 OpenAI 的推理模型,您可以控制推理工作: @@ -654,7 +654,7 @@ Only analyze code and suggest changes. } ``` -这些附加選項是特定于模型和提供商的。检查提供商的文档以获取可用參數。 +这些附加选项是特定于模型和提供商的。检查提供商的文档以获取可用参数。 :::tip 运行 `opencode models` 查看可用模型的列表。 @@ -672,37 +672,37 @@ opencode agent create 此交互式命令将: -1. 詢問代理保存在哪裡;全局或特定項目。 -2. 描述代理应该做什麼。 -3. 生成適当的系統提示和標識符。 -4. 讓您选择代理可以访问哪些工具。 -5. 最后,使用代理配置创建一个markdown文件。 +1. 询问代理保存在哪里;全局或特定项目。 +2. 描述代理应该做什么。 +3. 生成适当的系统提示和标识符。 +4. 让您选择代理可以访问哪些工具。 +5. 最后,使用代理配置创建一个 markdown 文件。 --- ## 使用案例 -以下是不同代理的一些常見用例。 +以下是不同代理的一些常见用例。 -- **構建代理**:启用所有工具的完整開發工作 -- **規劃代理**:分析規劃,不做改動 -- **审查代理**:具有隻讀访问权限和文档工具的代碼审查 -- **调试代理**:专注于启用bash和读取工具的调查 -- **文档代理**:使用文件操作但不使用系統命令的文档編寫 +- **Build Agent**:启用所有工具的完整开发工作 +- **Plan Agent**:分析规划,不做改动 +- **Review Agent**:具有只读访问权限和文档工具的代码审查 +- **Debug Agent**:专注于启用 bash 和读取工具的调查 +- **Docs Agent**:使用文件操作但不使用系统命令的文档编写 --- ## 示例 -以下是一些您可能会覺得有用的示例代理。 +以下是一些您可能会觉得有用的示例代理。 :::tip -您有想要分享的经纪人吗? [提交 PR](https://github.com/anomalyco/opencode)。 +您有想要分享的代理吗? [提交 PR](https://github.com/anomalyco/opencode)。 ::: --- -### 文件代理 +### 文档代理 ```markdown title="~/.config/opencode/agents/docs-writer.md" --- @@ -724,7 +724,7 @@ Focus on: --- -### 安全審核員 +### 安全审计员 ```markdown title="~/.config/opencode/agents/security-auditor.md" --- diff --git a/packages/web/src/content/docs/zh-cn/cli.mdx b/packages/web/src/content/docs/zh-cn/cli.mdx index 852bb43e83..532285dde0 100644 --- a/packages/web/src/content/docs/zh-cn/cli.mdx +++ b/packages/web/src/content/docs/zh-cn/cli.mdx @@ -1,17 +1,17 @@ --- -title: 命令行界面 +title: CLI description: opencode CLI 选项和命令。 --- import { Tabs, TabItem } from "@astrojs/starlight/components" -默认情况下,opencode CLI 在不带任何参数运行时启动[途径易](/docs/tui)。 +默认情况下,opencode CLI 在不带任何参数运行时启动 [TUI](/docs/tui)。 ```bash opencode ``` -但它也接受允许本页记录的命令。这您以Smashing方式与opencode交互。 +但它也接受本页记录的命令。这允许您以编程方式与 opencode 交互。 ```bash opencode run "Explain how closures work in JavaScript" @@ -19,36 +19,36 @@ opencode run "Explain how closures work in JavaScript" --- -### 推 +### tui -启动opencode用户终端界面。 +启动 opencode 终端用户界面。 ```bash opencode [project] ``` -#### 旗幟 +#### Flags -| 旗幟 | 短 | 描述 | -| ------------ | ---- | --------------------------------------------------------- | -| `--continue` | `-c` | 继续上期 | -| `--session` | `-s` | 会话 ID 继续 | -| `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) | -| `--prompt` | | 提示使用 | -| `--model` | `-m` | 以提供商/模型形式使用的模型 | -| `--agent` | | 代理使用 | -| `--port` | | 监听端口 | -| `--hostname` | | 监听的主机名 | +| Flag | Short | Description | +| ------------ | ----- | --------------------------------------------------------- | +| `--continue` | `-c` | 继续上一个会话 | +| `--session` | `-s` | 继续的会话 ID | +| `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) | +| `--prompt` | | 使用的提示 | +| `--model` | `-m` | 使用的模型 (provider/model) | +| `--agent` | | 使用的代理 | +| `--port` | | 监听端口 | +| `--hostname` | | 监听的主机名 | --- -## 命令 +## Commands opencode CLI 还具有以下命令。 --- -### 代理人 +### agent 管理 opencode 代理。 @@ -58,15 +58,15 @@ opencode agent [command] --- -### 附 +### attach -将终端通过 `serve` 或 `web` 命令启动已运行的 opencode 耳机服务器。 +将终端附加到通过 `serve` 或 `web` 命令启动的已运行 opencode 后端服务器。 ```bash opencode attach [url] ``` -这允许将 TUI 与远程 opencode 钱包一起使用。例如: +这允许将 TUI 与远程 opencode 后端一起使用。例如: ```bash # Start the backend server for web/mobile access @@ -76,28 +76,28 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### 旗幟 +#### Flags -| 旗幟 | 短 | 描述 | -| ----------- | ---- | ------------------- | -| `--dir` | | 启动 TUI 的工作目录 | -| `--session` | `-s` | 会话 ID 继续 | +| Flag | Short | Description | +| ----------- | ----- | ------------------- | +| `--dir` | | 启动 TUI 的工作目录 | +| `--session` | `-s` | 继续的会话 ID | --- -#### 创建 +#### create -使用自定義配置创建新代理。 +使用自定义配置创建新代理。 ```bash opencode agent create ``` -此命令将指導您使用自定義系統提示和工具配置创建新代理。 +此命令将指导您使用自定义系统提示和工具配置创建新代理。 --- -#### 列表 +#### list 列出所有可用的代理。 @@ -107,9 +107,9 @@ opencode agent list --- -### 授權 +### auth -用于管理提供商的憑據和登錄的命令。 +用于管理提供商的凭据和登录的命令。 ```bash opencode auth [command] @@ -117,27 +117,27 @@ opencode auth [command] --- -#### 登录 +#### login -opencode 由 [Models.dev](https://models.dev) 上的模型列表提供支持,因此您可以使用 `opencode auth login` 来为您想要使用的任何模型配置 API 按键。它存储在 `~/.local/share/opencode/auth.json` 中。 +opencode 由 [Models.dev](https://models.dev) 上的提供商列表支持,因此您可以使用 `opencode auth login` 来为您想要使用的任何提供商配置 API 密钥。它存储在 `~/.local/share/opencode/auth.json` 中。 ```bash opencode auth login ``` -当opencode启动时,它会从auth 文件加载提供商。如果您的环境中定义了任何按键或项目中的`.env`文件。 +当 opencode 启动时,它会从凭据文件加载提供商。以及如果在您的环境或项目中的 `.env` 文件中定义了任何密钥。 --- -#### 列表 +#### list -列出憑證文件中存儲的所有經过身份验证的提供商。 +列出凭据文件中存储的所有经过身份验证的提供商。 ```bash opencode auth list ``` -或者簡短的版本。 +或者简短的版本。 ```bash opencode auth ls @@ -145,9 +145,9 @@ opencode auth ls --- -#### 註銷 +#### logout -通过從憑據文件中清除提供商,将您從提供商中註銷。 +通过从凭据文件中清除提供商,将您从提供商中注销。 ```bash opencode auth logout @@ -165,7 +165,7 @@ opencode github [command] --- -#### 安装 +#### install 在您的存储库中安装 GitHub 代理。 @@ -177,7 +177,7 @@ opencode github install --- -#### 跑步 +#### run 运行 GitHub 代理。这通常用在 GitHub Actions 中。 @@ -185,18 +185,18 @@ opencode github install opencode github run ``` -##### 旗幟 +##### Flags -| 旗幟 | 描述 | +| Flag | Description | | --------- | ------------------------------ | | `--event` | 用于运行代理的 GitHub 模拟事件 | -| `--token` | GitHub 个人访问Tokens | +| `--token` | GitHub 个人访问 Token | --- -### MCP +### mcp -管理模型上下文協議服務器。 +管理模型上下文协议 (MCP) 服务器。 ```bash opencode mcp [command] @@ -204,7 +204,7 @@ opencode mcp [command] --- -#### 添加 +#### add 将 MCP 服务器添加到您的配置中。 @@ -216,7 +216,7 @@ opencode mcp add --- -#### 列表 +#### list 列出所有已配置的 MCP 服务器及其连接状态。 @@ -224,7 +224,7 @@ opencode mcp add opencode mcp list ``` -或者使用簡短版本。 +或者使用简短版本。 ```bash opencode mcp ls @@ -232,7 +232,7 @@ opencode mcp ls --- -#### 授權 +#### auth 使用启用 OAuth 的 MCP 服务器进行身份验证。 @@ -242,13 +242,13 @@ opencode mcp auth [name] 如果您不提供服务器名称,系统将提示您从可用的支持 OAuth 的服务器中进行选择。 -您还可以开始支持 OAuth 的及其服务器身份验证状态。 +您还可以列出支持 OAuth 的服务器及其身份验证状态。 ```bash opencode mcp auth list ``` -或者使用簡短版本。 +或者使用简短版本。 ```bash opencode mcp auth ls @@ -256,9 +256,9 @@ opencode mcp auth ls --- -#### 註銷 +#### logout -删除 MCP 服务器的 OAuth 工具。 +删除 MCP 服务器的 OAuth 凭据。 ```bash opencode mcp logout [name] @@ -266,9 +266,9 @@ opencode mcp logout [name] --- -#### 偵錯 +#### debug -调试MCP服务器的OAuth连接问题。 +调试 MCP 服务器的 OAuth 连接问题。 ```bash opencode mcp debug @@ -276,7 +276,7 @@ opencode mcp debug --- -### 模型 +### models 列出已配置提供商的所有可用模型。 @@ -286,22 +286,22 @@ opencode models [provider] 此命令以 `provider/model` 格式显示您配置的提供商中可用的所有模型。 -这对于确定[你的配置](/docs/config/)中使用的意图模型名称很有帮助。 +这对于确定 [你的配置](/docs/config/) 中使用的确切模型名称很有帮助。 -您可以选择提供项目ID并按该提供项目筛选模型。 +您可以选择提供提供商 ID 并按该提供商筛选模型。 ```bash opencode models anthropic ``` -#### 旗幟 +#### Flags -| 旗幟 | 描述 | +| Flag | Description | | ----------- | ---------------------------------------- | | `--refresh` | 从 models.dev 刷新模型缓存 | | `--verbose` | 使用更详细的模型输出(包括成本等元数据) | -使用`--refresh`标志来更新服务器的模型列表。当新模型已添加到提供商并且您希望在opencode中查看它们时,这非常有用。 +使用 `--refresh` 标志来更新服务器的模型列表。当新模型已添加到提供商并且您希望在 opencode 中查看它们时,这非常有用。 ```bash opencode models --refresh @@ -309,7 +309,7 @@ opencode models --refresh --- -### 跑步 +### run 通过直接传递提示以非交互模式运行 opencode。 @@ -323,7 +323,7 @@ opencode run [message..] opencode run Explain the use of context in Go ``` -您还可以添加到正在运行的`opencode serve`实例,会员每次运行时MCP服务器冷启动时间: +您还可以附加到正在运行的 `opencode serve` 实例,以避免每次运行时 MCP 服务器冷启动时间: ```bash # Start a headless server in one terminal @@ -333,38 +333,38 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### 旗幟 +#### Flags -| 旗幟 | 短 | 描述 | -| ------------ | ---- | --------------------------------------------------------------- | -| `--command` | | 要运行的命令,使用消息作为参数 | -| `--continue` | `-c` | 继续上期 | -| `--session` | `-s` | 会话 ID 继续 | -| `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) | -| `--share` | | 分享会议 | -| `--model` | `-m` | 以提供商/模型形式使用的模型 | -| `--agent` | | 代理使用 | -| `--file` | `-f` | 要附加到消息的文件 | -| `--format` | | 格式:默认(格式化)或json(原始JSON事件) | -| `--title` | | 会话标题(如果未提供值,则使用断断的提示) | -| `--attach` | | 连接到正在运行的 opencode 服务器(例如,http://localhost:4096) | -| `--port` | | 本地服务器的端口(默认为随机端口) | +| Flag | Short | Description | +| ------------ | ----- | --------------------------------------------------------------- | +| `--command` | | 要运行的命令,使用消息作为参数 | +| `--continue` | `-c` | 继续上一个会话 | +| `--session` | `-s` | 继续的会话 ID | +| `--fork` | | 继续时分叉会话(与 `--continue` 或 `--session` 一起使用) | +| `--share` | | 分享会话 | +| `--model` | `-m` | 使用的模型 (provider/model) | +| `--agent` | | 使用的代理 | +| `--file` | `-f` | 要附加到消息的文件 | +| `--format` | | 格式:default(格式化)或 json(原始 JSON 事件) | +| `--title` | | 会话标题(如果未提供值,则使用截断的提示) | +| `--attach` | | 连接到正在运行的 opencode 服务器(例如,http://localhost:4096) | +| `--port` | | 本地服务器的端口(默认为随机端口) | --- -### 服務 +### serve -启动无头opencode服务器以进行API访问。查看[服务器文档](/docs/server)以获取完整的HTTP 接口。 +启动无头 opencode 服务器以进行 API 访问。查看 [服务器文档](/docs/server) 以获取完整的 HTTP 接口。 ```bash opencode serve ``` -这将启动一个 HTTP 服务器,该服务器提供对 opencode 功能的 API 访问,并占用 TUI 接口。设置 `OPENCODE_SERVER_PASSWORD` 以启用 HTTP 基本身份验证(用户名默认为 `opencode`)。 +这将启动一个 HTTP 服务器,该服务器提供对 opencode 功能的 API 访问,无需 TUI 界面。设置 `OPENCODE_SERVER_PASSWORD` 以启用 HTTP 基本身份验证(用户名默认为 `opencode`)。 -#### 旗幟 +#### Flags -| 旗幟 | 描述 | +| Flag | Description | | ------------ | ------------------------ | | `--port` | 监听端口 | | `--hostname` | 监听的主机名 | @@ -373,7 +373,7 @@ opencode serve --- -### 会话 +### session 管理 opencode 会话。 @@ -383,7 +383,7 @@ opencode session [command] --- -#### 列表 +#### list 列出所有 opencode 会话。 @@ -391,37 +391,37 @@ opencode session [command] opencode session list ``` -##### 旗幟 +##### Flags -| 旗幟 | 短 | 描述 | -| ------------- | ---- | ------------------------------ | -| `--max-count` | `-n` | 限制为最近的 N 个会话 | -| `--format` | | 输出格式:table 或 json(table) | +| Flag | Short | Description | +| ------------- | ----- | ------------------------------ | +| `--max-count` | `-n` | 限制为最近的 N 个会话 | +| `--format` | | 输出格式:table 或 json(table) | --- -### 統計數據 +### stats -显示opencode会话的Tokens使用情况和成本统计信息。 +显示 opencode 会话的 Token 使用情况和成本统计信息。 ```bash opencode stats ``` -#### 旗幟 +#### Flags -| 旗幟 | 描述 | +| Flag | Description | | ----------- | -------------------------------------------------------- | -| `--days` | 显示过去N天(所有时间)的统计数据 | +| `--days` | 显示过去 N 天(所有时间)的统计数据 | | `--tools` | 显示工具数量(全部) | -| `--models` | 隐藏显示模型使用情况解读(默认)。输入一个数字来显示前 N | +| `--models` | 显示模型使用情况细分(默认隐藏)。输入一个数字来显示前 N | | `--project` | 按项目过滤(所有项目,空字符串:当前项目) | --- -### 出口 +### export -将会话数据导出为JSON。 +将会话数据导出为 JSON。 ```bash opencode export [sessionID] @@ -431,7 +431,7 @@ opencode export [sessionID] --- -### 進口 +### import 从 JSON 文件或 opencode 共享 URL 导入会话数据。 @@ -448,19 +448,19 @@ opencode import https://opncd.ai/s/abc123 --- -### 網絡 +### web -使用Web界面启动无头opencode服务器。 +使用 Web 界面启动无头 opencode 服务器。 ```bash opencode web ``` -这将启动HTTP服务器并打开Web浏览器以通过Web界面访问opencode。设置`OPENCODE_SERVER_PASSWORD`以启用HTTP基本身份验证(用户名默认为`opencode`)。 +这将启动 HTTP 服务器并打开 Web 浏览器以通过 Web 界面访问 opencode。设置 `OPENCODE_SERVER_PASSWORD` 以启用 HTTP 基本身份验证(用户名默认为 `opencode`)。 -#### 旗幟 +#### Flags -| 旗幟 | 描述 | +| Flag | Description | | ------------ | ------------------------ | | `--port` | 监听端口 | | `--hostname` | 监听的主机名 | @@ -469,19 +469,19 @@ opencode web --- -### 丙烯酰胺 +### acp -启动ACP(代理客户端协议)服务器。 +启动 ACP (Agent Client Protocol) 服务器。 ```bash opencode acp ``` -此启动一个ACP服务器,该服务器使用nd-JSON通过stdin/stdout进行通信命令。 +此命令启动一个 ACP 服务器,该服务器使用 nd-JSON 通过 stdin/stdout 进行通信。 -#### 旗幟 +#### Flags -| 旗幟 | 描述 | +| Flag | Description | | ------------ | ------------ | | `--cwd` | 工作目录 | | `--port` | 监听端口 | @@ -489,26 +489,26 @@ opencode acp --- -### 解除安装 +### uninstall -卸载opencode并删除所有相关文件。 +卸载 opencode 并删除所有相关文件。 ```bash opencode uninstall ``` -#### 旗幟 +#### Flags -| 旗幟 | 短 | 描述 | -| --------------- | ---- | -------------------------------- | -| `--keep-config` | `-c` | 保留配置文件 | -| `--keep-data` | `-d` | 保留会话数据和快照 | -| `--dry-run` | | 在显示不删除的情况下将删除的内容 | -| `--force` | `-f` | 跳过确认提示 | +| Flag | Short | Description | +| --------------- | ----- | ---------------------------- | +| `--keep-config` | `-c` | 保留配置文件 | +| `--keep-data` | `-d` | 保留会话数据和快照 | +| `--dry-run` | | 显示将删除的内容但不实际删除 | +| `--force` | `-f` | 跳过确认提示 | --- -### 升級 +### upgrade 将 opencode 更新到最新版本或特定版本。 @@ -516,88 +516,88 @@ opencode uninstall opencode upgrade [target] ``` -升級到最新版本。 +升级到最新版本。 ```bash opencode upgrade ``` -升級到特定版本。 +升级到特定版本。 ```bash opencode upgrade v0.1.48 ``` -#### 旗幟 +#### Flags -| 旗幟 | 短 | 描述 | -| ---------- | ---- | ------------------------------------------ | -| `--method` | `-m` | 使用的安装方法;卷曲、npm、pnpm、bun、brew | +| Flag | Short | Description | +| ---------- | ----- | ------------------------------------------ | +| `--method` | `-m` | 使用的安装方法;curl, npm, pnpm, bun, brew | --- -## 全球旗幟 +## Global Flags -opencode CLI采用以下全局标志。 +opencode CLI 接受以下全局标志。 -| 旗幟 | 短 | 描述 | -| -------------- | ---- | ---------------------------------- | -| `--help` | `-h` | 显示帮助 | -| `--version` | `-v` | 打印版本号 | -| `--print-logs` | | 将日志打印到stderr | -| `--log-level` | | 日志级别(调试、信息、警告、错误) | +| Flag | Short | Description | +| -------------- | ----- | ----------------------------------- | +| `--help` | `-h` | 显示帮助 | +| `--version` | `-v` | 打印版本号 | +| `--print-logs` | | 将日志打印到 stderr | +| `--log-level` | | 日志级别 (DEBUG, INFO, WARN, ERROR) | --- -## 環境變量 +## Environment variables -可以使用环境变量配置opencode。 +可以使用环境变量配置 opencode。 -| 變量 | 類型 | 描述 | -| ------------------------------------- | ------ | ---------------------------------------- | -| `OPENCODE_AUTO_SHARE` | 布尔 | 自动共享会话 | -| `OPENCODE_GIT_BASH_PATH` | 字符串 | Windows 上 Git Bash 可执行文件的路径 | -| `OPENCODE_CONFIG` | 字符串 | 配置文件路径 | -| `OPENCODE_CONFIG_DIR` | 字符串 | 配置目录的路径 | -| `OPENCODE_CONFIG_CONTENT` | 字符串 | 内联 json 配置内容 | -| `OPENCODE_DISABLE_AUTOUPDATE` | 布尔 | 取消自动更新检查 | -| `OPENCODE_DISABLE_PRUNE` | 布尔 | 取消数据的裁剪 | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | 布尔 | 取消自动终端标题更新 | -| `OPENCODE_PERMISSION` | 字符串 | 内联 json 权限配置 | -| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | 布尔 | 取消默认插件 | -| `OPENCODE_DISABLE_LSP_DOWNLOAD` | 布尔 | 禁用自动 LSP 服务器下载 | -| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | 布尔 | 制作实验模型 | -| `OPENCODE_DISABLE_AUTOCOMPACT` | 布尔 | 取消自动上下文压缩 | -| `OPENCODE_DISABLE_CLAUDE_CODE` | 布尔 | 禁止从 `.claude` 读取(提示+技巧) | -| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | 布尔 | 禁用读取`~/.claude/CLAUDE.md` | -| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | 布尔 | 禁用加载`.claude/skills` | -| `OPENCODE_DISABLE_MODELS_FETCH` | 布尔 | 禁止从远程源获取模型 | -| `OPENCODE_FAKE_VCS` | 字符串 | 用于测试目的的假 VCS 成立 | -| `OPENCODE_DISABLE_FILETIME_CHECK` | 布尔 | 取消文件时间检查以进行优化 | -| `OPENCODE_CLIENT` | 字符串 | 客户端标识符(默认为`cli`) | -| `OPENCODE_ENABLE_EXA` | 布尔 | 启用 Exa 网络搜索工具 | -| `OPENCODE_SERVER_PASSWORD` | 字符串 | 为 `serve`/`web` 赠送基本身份验证 | -| `OPENCODE_SERVER_USERNAME` | 字符串 | 覆盖基本身份验证用户名(默认`opencode`) | -| `OPENCODE_MODELS_URL` | 字符串 | 用于获取模型配置的自定义 URL | +| Variable | Type | Description | +| ------------------------------------- | ------- | ----------------------------------------- | +| `OPENCODE_AUTO_SHARE` | boolean | 自动共享会话 | +| `OPENCODE_GIT_BASH_PATH` | string | Windows 上 Git Bash 可执行文件的路径 | +| `OPENCODE_CONFIG` | string | 配置文件路径 | +| `OPENCODE_CONFIG_DIR` | string | 配置目录的路径 | +| `OPENCODE_CONFIG_CONTENT` | string | 内联 json 配置内容 | +| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | 禁用自动更新检查 | +| `OPENCODE_DISABLE_PRUNE` | boolean | 禁用数据的修剪 | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | 禁用自动终端标题更新 | +| `OPENCODE_PERMISSION` | string | 内联 json 权限配置 | +| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | 禁用默认插件 | +| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | 禁用自动 LSP 服务器下载 | +| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | 启用实验模型 | +| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | 禁用自动上下文压缩 | +| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | 禁用从 `.claude` 读取(提示+技能) | +| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | 禁用读取 `~/.claude/CLAUDE.md` | +| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | 禁用加载 `.claude/skills` | +| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | 禁用从远程源获取模型 | +| `OPENCODE_FAKE_VCS` | string | 用于测试目的的伪造 VCS | +| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | 禁用文件时间检查以进行优化 | +| `OPENCODE_CLIENT` | string | 客户端标识符(默认为 `cli`) | +| `OPENCODE_ENABLE_EXA` | boolean | 启用 Exa 网络搜索工具 | +| `OPENCODE_SERVER_PASSWORD` | string | 为 `serve`/`web` 启用基本身份验证 | +| `OPENCODE_SERVER_USERNAME` | string | 覆盖基本身份验证用户名(默认 `opencode`) | +| `OPENCODE_MODELS_URL` | string | 用于获取模型配置的自定义 URL | --- -### 實驗性的 +### Experimental -这些環境變量启用可能会更改或删除的實驗性功能。 +这些环境变量启用可能会更改或删除的实验性功能。 -| 變量 | 類型 | 描述 | -| ----------------------------------------------- | ---- | ----------------------------------- | -| `OPENCODE_EXPERIMENTAL` | 布尔 | 实现所有实验性功能 | -| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | 布尔 | 添加图标发现 | -| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 布尔 | 在 TUI 中禁用选择时复制 | -| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 数量 | bash 命令的默认超时(以毫秒为单位) | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 数量 | LLM 响应的最大输出Tokens | -| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | 布尔 | 为整个目录启用文件观察器 | -| `OPENCODE_EXPERIMENTAL_OXFMT` | 布尔 | 启用 oxfmt 清理程序 | -| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 布尔 | 实现实验性 LSP 工具 | -| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | 布尔 | 禁用文件观察器 | -| `OPENCODE_EXPERIMENTAL_EXA` | 布尔 | 实现实验性Exa功能 | -| `OPENCODE_EXPERIMENTAL_LSP_TY` | 布尔 | 实现实验性 LSP 类型检查 | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | 布尔 | 实现实验性 Markdown 功能 | -| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 布尔 | 启用计划模式 | +| Variable | Type | Description | +| ----------------------------------------------- | ------- | ----------------------------------- | +| `OPENCODE_EXPERIMENTAL` | boolean | 启用所有实验性功能 | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 启用图标发现 | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | 在 TUI 中禁用选择时复制 | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | bash 命令的默认超时(以毫秒为单位) | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | LLM 响应的最大输出 Token | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 为整个目录启用文件观察器 | +| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | 启用 oxfmt 格式化程序 | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | 启用实验性 LSP 工具 | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 禁用文件观察器 | +| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 启用实验性 Exa 功能 | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | 启用实验性 LSP 类型检查 | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 启用实验性 Markdown 功能 | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | 启用计划模式 | diff --git a/packages/web/src/content/docs/zh-cn/commands.mdx b/packages/web/src/content/docs/zh-cn/commands.mdx index e7c6c3c329..5c04f638fa 100644 --- a/packages/web/src/content/docs/zh-cn/commands.mdx +++ b/packages/web/src/content/docs/zh-cn/commands.mdx @@ -1,5 +1,5 @@ --- -title: 命令 +title: Commands description: 为重复任务创建自定义命令。 --- @@ -9,15 +9,15 @@ description: 为重复任务创建自定义命令。 /my-command ``` -除了`/init`、`/undo`、`/redo`、`/share`、`/help`等内置命令之外,还有自定义命令。 [了解更多](/docs/tui#commands)。 +除了 `/init`、`/undo`、`/redo`、`/share`、`/help` 等内置命令之外,还有自定义命令。 [了解更多](/docs/tui#commands)。 --- ## 创建命令文件 -在`commands/`目录中创建markdown文件来定义自定义命令。 +在 `commands/` 目录中创建 markdown 文件来定义自定义命令。 -创建`.opencode/commands/test.md`: +创建 `.opencode/commands/test.md`: ```md title=".opencode/commands/test.md" --- @@ -32,7 +32,7 @@ Focus on the failing tests and suggest fixes. frontmatter 定义命令属性。内容成为模板。 -通过鍵入 `/` 後跟命令名称來使用该命令。 +通过键入 `/` 后跟命令名称来使用该命令。 ```bash frame="none" "/test" @@ -79,7 +79,7 @@ frontmatter 定义命令属性。内容成为模板。 您还可以使用 Markdown 文件定义命令。将它们放入: -- 全球:`~/.config/opencode/commands/` +- 全局:`~/.config/opencode/commands/` - 每个项目:`.opencode/commands/` ```markdown title="~/.config/opencode/commands/test.md" @@ -94,7 +94,7 @@ Focus on the failing tests and suggest fixes. ``` Markdown 文件名成为命令名。例如,`test.md` 让 -你運行: +你运行: ```bash frame="none" /test @@ -104,13 +104,13 @@ Markdown 文件名成为命令名。例如,`test.md` 让 ## 提示配置 -自定義命令的提示支持幾个特殊的佔位符和語法。 +自定义命令的提示支持几个特殊的占位符和语法。 --- -### 論據 +### Arguments -使用`$ARGUMENTS`占位符将参数提交给命令。 +使用 `$ARGUMENTS` 占位符将参数提交给命令。 ```md title=".opencode/commands/component.md" --- @@ -121,7 +121,7 @@ Create a new React component named $ARGUMENTS with TypeScript support. Include proper typing and basic structure. ``` -使用參數運行命令: +使用参数运行命令: ```bash frame="none" /component Button @@ -129,11 +129,11 @@ Include proper typing and basic structure. `$ARGUMENTS` 将替换为 `Button`。 -您还可以使用位置參數访问各个參數: +您还可以使用位置参数访问各个参数: -- `$1` - 第一个參數 -- `$2` - 第二个參數 -- `$3` - 第三个參數 +- `$1` - 第一个参数 +- `$2` - 第二个参数 +- `$3` - 第三个参数 - 等等... 例如: @@ -147,7 +147,7 @@ Create a file named $1 in the directory $2 with the following content: $3 ``` -運行命令: +运行命令: ```bash frame="none" /create-file config.json src "{ \"key\": \"value\" }" @@ -161,11 +161,11 @@ with the following content: $3 --- -### 外殼輸出 +### Shell Output -使用 _!`command`_ 将 [bash命令](/docs/tui#bash-commands) 输出注入到提示符中。 +使用 _!`command`_ 将 [bash 命令](/docs/tui#bash-commands) 输出注入到提示符中。 -例如,要创建分析測試覆盖率的自定義命令: +例如,要创建分析测试覆盖率的自定义命令: ```md title=".opencode/commands/analyze-coverage.md" --- @@ -191,13 +191,13 @@ Recent git commits: Review these changes and suggest any improvements. ``` -命令在項目的根目录中運行,其輸出成为提示的一部分。 +命令在项目的根目录中运行,其输出成为提示的一部分。 --- -### 文件參考 +### File Reference -使用 `@` 後跟文件名将文件包含在命令中。 +使用 `@` 后跟文件名将文件包含在命令中。 ```md title=".opencode/commands/review-component.md" --- @@ -208,17 +208,17 @@ Review the component in @src/components/Button.tsx. Check for performance issues and suggest improvements. ``` -文件內容会自动包含在提示中。 +文件内容会自动包含在提示中。 --- -## 選項 +## 选项 -讓我们詳細看看配置選項。 +让我们详细看看配置选项。 --- -### 模板 +### template `template` 选项定义执行命令时将发送到 LLM 的提示。 @@ -232,11 +232,11 @@ Check for performance issues and suggest improvements. } ``` -这是一个**必需的**配置選項。 +这是一个 **必需的** 配置选项。 --- -### 描述 +### description 使用 `description` 选项提供命令功能的简要描述。 @@ -254,11 +254,11 @@ Check for performance issues and suggest improvements. --- -### 代理人 +### agent -使用`agent`配置选择指定哪个[代理人](/docs/agents)应执行此命令。 -如果是 [子代理](/docs/agents/#subagents) 该命令将默认触发子代理调用。 -要取消此行为,则将`subtask`设置为`false`。 +使用 `agent` 配置选择指定哪个 [Agent](/docs/agents) 应执行此命令。 +如果是 [Subagents](/docs/agents/#subagents) 该命令将默认触发子代理调用。 +要取消此行为,则将 `subtask` 设置为 `false`。 ```json title="opencode.json" { @@ -270,15 +270,15 @@ Check for performance issues and suggest improvements. } ``` -这是一个**可選**配置選項。如果未指定,则默認为您当前的代理。 +这是一个 **可选** 配置选项。如果未指定,则默认为您当前的代理。 --- -### 子任务 +### subtask -使用`subtask`布尔值强制命令触发[子代理](/docs/agents/#subagents)调用。 -如果您希望命令不污染您的主要上下文并且将**強制**代理充当子代理,那麼这非常有用, -即使`mode`在[代理人](/docs/agents)配置上设置为`primary`。 +使用 `subtask` 布尔值强制命令触发 [Subagents](/docs/agents/#subagents) 调用。 +如果您希望命令不污染您的主要上下文并且将 **强制** 代理充当子代理,那么这非常有用, +即使 `mode` 在 [Agent](/docs/agents) 配置上设置为 `primary`。 ```json title="opencode.json" { @@ -290,11 +290,11 @@ Check for performance issues and suggest improvements. } ``` -这是一个**可選**配置選項。 +这是一个 **可选** 配置选项。 --- -### 模型 +### model 使用 `model` 配置覆盖此命令的默认模型。 @@ -308,16 +308,16 @@ Check for performance issues and suggest improvements. } ``` -这是一个**可選**配置選項。 +这是一个 **可选** 配置选项。 --- -## 內建 +## 内置 -opencode包含`/init`、`/undo`、`/redo`、`/share`、`/help`等内置命令;【了解更多](/docs/tui#commands)。 +opencode 包含 `/init`、`/undo`、`/redo`、`/share`、`/help` 等内置命令;[了解更多](/docs/tui#commands)。 :::note -自定義命令可以覆盖内置命令。 +自定义命令可以覆盖内置命令。 ::: -如果您定義同名的自定義命令,它将覆盖内置命令。 +如果您定义同名的自定义命令,它将覆盖内置命令。 diff --git a/packages/web/src/content/docs/zh-cn/config.mdx b/packages/web/src/content/docs/zh-cn/config.mdx index 2b30997e92..93b6c0366c 100644 --- a/packages/web/src/content/docs/zh-cn/config.mdx +++ b/packages/web/src/content/docs/zh-cn/config.mdx @@ -23,47 +23,46 @@ opencode 支持 **JSON** 和 **JSONC**(带注释的 JSON)格式。 --- -## 地點 +## 位置 -您可以将配置放置在幾个不同的位置,它們有一个 -不同的优先顺序。 +您可以将配置放置在几个不同的位置,它们有一个不同的优先顺序。 :::note -配置文件**合并在一起**,而不是替換。 +配置文件**合并在一起**,而不是替换。 ::: -配置文件被合并在一起,而不是被替換。以下配置位置的设置被合并。仅当密钥衝突時,后面的配置才会覆盖前面的配置。保留所有配置中的非衝突设置。 +配置文件被合并在一起,而不是被替换。以下配置位置的设置被合并。仅当密钥冲突时,后面的配置才会覆盖前面的配置。保留所有配置中的非冲突设置。 -例如,如果您的全局配置设置`theme: "opencode"`和`autoupdate: true`,并且您的项目配置设置`model: "anthropic/claude-sonnet-4-5"`,则最终配置将包括所有三个设置。 +例如,如果您的全局配置设置 `theme: "opencode"` 和 `autoupdate: true`,并且您的项目配置设置 `model: "anthropic/claude-sonnet-4-5"`,则最终配置将包括所有三个设置。 --- -### 优先顺序 +### 优先级 -配置源按以下顺序加載(后面的源覆盖前面的源): +配置源按以下顺序加载(后面的源覆盖前面的源): -1. **远程配置**(来自`.well-known/opencode`)-组织默认值 -2. **全局配置** (`~/.config/opencode/opencode.json`) - 用户首选项 -3. **自定义配置** (`OPENCODE_CONFIG` env var) - 自定义覆盖 -4. **项目配置**(项目中的`opencode.json`)- 项目特定的设置 +1. **Remote config** (来自 `.well-known/opencode`) - 组织默认值 +2. **Global config** (`~/.config/opencode/opencode.json`) - 用户首选项 +3. **Custom config** (`OPENCODE_CONFIG` env var) - 自定义覆盖 +4. **Project config** (项目中的 `opencode.json`) - 项目特定的设置 5. **`.opencode` 目录** - 代理、命令、插件 -6. **内联配置** (`OPENCODE_CONFIG_CONTENT` env var) - 运行时覆盖 +6. **Inline config** (`OPENCODE_CONFIG_CONTENT` env var) - 运行时覆盖 -这意味著項目配置可以覆盖全局默認值,全局配置可以覆盖遠程組織默認值。 +这意味着项目配置可以覆盖全局默认值,全局配置可以覆盖远程组织默认值。 :::note -`.opencode` 和`~/.config/opencode` 目录对子目录使用**复数名称**:`agents/`、`commands/`、`modes/`、`plugins/`、`skills/`、`tools/` 和`themes/`。为了坚固兼容,还支持单数名称(例如`agent/`)。 +`.opencode` 和 `~/.config/opencode` 目录对子目录使用 **复数名称**:`agents/`、`commands/`、`modes/`、`plugins/`、`skills/`、`tools/` 和 `themes/`。为了向后兼容,还支持单数名称(例如 `agent/`)。 ::: --- -### 偏僻的 +### Remote 组织可以通过 `.well-known/opencode` 端点提供默认配置。当您向支持的提供商进行身份验证时,会自动获取该信息。 -首先加載遠程配置,作为基礎層。所有其他配置源(全局、項目)都可以覆盖这些默認值。 +首先加载远程配置,作为基础层。所有其他配置源(全局、项目)都可以覆盖这些默认值。 -例如,如果您的组织提供默认取消的 MCP 服务器: +例如,如果您的组织提供默认禁用的 MCP 服务器: ```json title="Remote config from .well-known/opencode" { @@ -77,7 +76,7 @@ opencode 支持 **JSON** 和 **JSONC**(带注释的 JSON)格式。 } ``` -您可以在本地配置中启用特定服務器: +您可以在本地配置中启用特定服务器: ```json title="opencode.json" { @@ -93,29 +92,29 @@ opencode 支持 **JSON** 和 **JSONC**(带注释的 JSON)格式。 --- -### 全球的 +### Global 将全局 opencode 配置放在 `~/.config/opencode/opencode.json` 中。使用全局配置来实现用户范围的首选项,例如主题、提供商或按键绑定。 -全局配置覆盖遠程組織默認值。 +全局配置覆盖远程组织默认值。 --- -### 每个項目 +### Per Project -在项目根目录中添加`opencode.json`。项目配置在标准配置文件中具有最高优先级 - 它覆盖全局配置和远程配置。 +在项目根目录中添加 `opencode.json`。项目配置在标准配置文件中具有最高优先级 - 它覆盖全局配置和远程配置。 :::tip -将項目特定配置放在項目的根目录中。 +将项目特定配置放在项目的根目录中。 ::: -当opencode启动时,它会在当前目录中查找配置文件或打开到最近的Git目录。 +当 opencode 启动时,它会在当前目录中查找配置文件或向上遍历到最近的 Git 目录。 -这也可以安全地签入 Git 并使用与全局模式相同的模式。 +这也可以安全地签入 Git 并使用与全局模式相同的架构。 --- -### 自定義路徑 +### Custom Path 使用 `OPENCODE_CONFIG` 环境变量指定自定义配置文件路径。 @@ -124,35 +123,32 @@ export OPENCODE_CONFIG=/path/to/my/custom-config.json opencode run "Hello world" ``` -自定義配置按优先顺序在全局配置和項目配置之間加載。 +自定义配置按优先顺序在全局配置和项目配置之间加载。 --- -### 自定義目录 +### Custom Directory -使用`OPENCODE_CONFIG_DIR`指定自定义配置目录 -環境變量。将在该目录中搜索代理、命令、 -模式和插件类似于标准`.opencode`目录一样,并且应该 -遵循相同的結構。 +使用 `OPENCODE_CONFIG_DIR` 环境变量指定自定义配置目录。将在该目录中搜索代理、命令、模式和插件,就像标准 `.opencode` 目录一样,并且应该遵循相同的结构。 ```bash export OPENCODE_CONFIG_DIR=/path/to/my/config-directory opencode run "Hello world" ``` -自定义目录在全局配置和`.opencode`目录加载后,因此**可以覆盖**它们的设置。 +自定义目录在全局配置和 `.opencode` 目录加载后,因此 **可以覆盖** 它们的设置。 --- ## 模式 -配置文件具有在 [**`opencode.ai/config.json`**](https://opencode.ai/config.json) 中配置的架构。 +配置文件具有在 [**`opencode.ai/config.json`**](https://opencode.ai/config.json) 中定义的架构。 -您的编辑器应该能夠根據架構進行驗證和自动完成。 +您的编辑器应该能够根据架构进行验证和自动完成。 --- -### 途易 +### TUI 您可以通过 `tui` 选项配置特定于 TUI 的设置。 @@ -169,19 +165,19 @@ opencode run "Hello world" } ``` -可用選項: +可用选项: -- `scroll_acceleration.enabled` - 启用 macOS 风格的滚动加速。 **优先于`scroll_speed`。 ** -- `scroll_speed` - 自定义滚动速度倍增(默认值:`3`,简单:`1`)。如果`scroll_acceleration.enabled`是`true`,则忽略。 -- `diff_style` - 控制差异渲染。 `"auto"` 适应宽度,`"stacked"` 始终显示单列。 +- `scroll_acceleration.enabled` - 启用 macOS 风格的滚动加速。 **优先于 `scroll_speed`。** +- `scroll_speed` - 自定义滚动速度倍增(默认值:`3`,最小值:`1`)。如果 `scroll_acceleration.enabled` 是 `true`,则忽略。 +- `diff_style` - 控制差异渲染。 `"auto"` 适应终端宽度,`"stacked"` 始终显示单列。 [在此处了解有关使用 TUI 的更多信息](/docs/tui)。 --- -### 服务器 +### Server -您可以通过`server` 选项为`opencode serve` 和`opencode web` 命令配置服务器设置。 +您可以通过 `opencode serve` 选项为 `opencode web` 和 `server` 命令配置服务器设置。 ```json title="opencode.json" { @@ -196,21 +192,21 @@ opencode run "Hello world" } ``` -可用選項: +可用选项: -- Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. -- Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. +- `port` - 监听端口。 +- `hostname` - 监听的主机名。当 `mdns` 启用且未设置主机名时,默认为 `0.0.0.0`。 - `mdns` - 启用 mDNS 服务发现。这允许网络上的其他设备发现您的 opencode 服务器。 - `mdnsDomain` - mDNS 服务的自定义域名。默认为 `opencode.local`。对于在同一个网络上运行多个实例很有帮助。 -- `cors` - 从基于浏览器的客户端使用 HTTP 服务器时允许 CORS 的其他来源。值必须是完整来源(方案+主机+任选端口),例如 `https://app.example.com`。 +- `cors` - 从基于浏览器的客户端使用 HTTP 服务器时允许 CORS 的其他来源。值必须是完整来源(协议+主机+可选端口),例如 `https://app.example.com`。 [在此处了解有关服务器的更多信息](/docs/server)。 --- -### 工具 +### Tools -您可以通过 `tools` 选项管理LLM可以使用的工具。 +您可以通过 `tools` 选项管理 LLM 可以使用的工具。 ```json title="opencode.json" { @@ -226,9 +222,9 @@ opencode run "Hello world" --- -### 模型 +### Models -您可以通过 `provider`、`model` 和 `small_model` 选项来配置要在 opencode 配置中使用的提供的程序和模型。 +您可以通过 `provider`、`model` 和 `small_model` 选项来配置要在 opencode 配置中使用的提供商和模型。 ```json title="opencode.json" { @@ -241,7 +237,7 @@ opencode run "Hello world" `small_model` 选项为标题生成等轻量级任务配置单独的模型。默认情况下,如果您的提供商可以提供更便宜的模型,opencode 会尝试使用更便宜的模型,否则它会退回到您的主模型。 -提供商选项可以包括`timeout`和`setCacheKey`: +提供商选项可以包括 `timeout` 和 `setCacheKey`: ```json title="opencode.json" { @@ -258,17 +254,17 @@ opencode run "Hello world" ``` - `timeout` - 请求超时以毫秒为单位(默认值:300000)。设置为 `false` 以禁用。 -- `setCacheKey` -确保始终为指定的提供商设置存储硬盘。 +- `setCacheKey` - 确保始终为指定的提供商设置缓存键。 -您还可以配置[本地模型](/docs/models#local)。[了解更多](/docs/models)。 +您还可以配置 [本地模型](/docs/models#local)。[了解更多](/docs/models)。 --- -#### 特定于提供商的選項 +#### 特定于提供商的选项 有些提供商支持除通用 `timeout` 和 `apiKey` 之外的其他配置选项。 -##### 亞馬遜基岩 +##### Amazon Bedrock Amazon Bedrock 支持 AWS 特定配置: @@ -292,16 +288,16 @@ Amazon Bedrock 支持 AWS 特定配置: - `endpoint` - VPC 终端节点的自定义节点 URL。这是使用 AWS 特定术语的通用 `baseURL` 选项的别名。如果两者都指定,`endpoint` 优先。 :::note -承载Tokens(`AWS_BEARER_TOKEN_BEDROCK` 或`/connect`)优先于基于配置文件的身份验证。详情请参见【认证优先级](/docs/providers#authentication-precedence)。 +Bearer Tokens (`AWS_BEARER_TOKEN_BEDROCK` 或 `/connect`) 优先于基于配置文件的身份验证。详情请参见 [身份验证优先级](/docs/providers#authentication-precedence)。 ::: [了解有关 Amazon Bedrock 配置的更多信息](/docs/providers#amazon-bedrock)。 --- -### 主题 +### Theme -您可以通过 opencode 配置中配置中的 `theme` 选项要使用的主题。 +您可以通过 opencode 配置中的 `theme` 选项配置要使用的主题。 ```json title="opencode.json" { @@ -314,7 +310,7 @@ Amazon Bedrock 支持 AWS 特定配置: --- -### 代理商 +### Agents 您可以通过 `agent` 选项为特定任务配置专用代理。 @@ -340,9 +336,9 @@ Amazon Bedrock 支持 AWS 特定配置: --- -### 默認代理 +### Default Agent -您可以使用 `default_agent` 选项默认设置代理。当没有明确指定时,这将确定使用哪个代理。 +您可以使用 `default_agent` 选项设置默认代理。当没有明确指定时,这将确定使用哪个代理。 ```json title="opencode.json" { @@ -351,15 +347,15 @@ Amazon Bedrock 支持 AWS 特定配置: } ``` -Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. +默认代理必须是 Primary 代理(不是 Subagent)。这可以是内置代理(如 `"build"` 或 `"plan"`),也可以是您定义的 [Custom Agent](/docs/agents)。如果指定的代理不存在或者是子代理,opencode 将回退到 `"build"` 并发出警告。 此设置适用于所有界面:TUI、CLI (`opencode run`)、桌面应用程序和 GitHub Action。 --- -### 分享 +### Share -您可以通过`share`选项配置[分享](/docs/share)功能。 +您可以通过 `share` 选项配置 [分享](/docs/share) 功能。 ```json title="opencode.json" { @@ -370,7 +366,7 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try 这需要: -- Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. +- `"manual"` - 允许通过命令手动共享(默认) - `"auto"` - 自动分享新对话 - `"disabled"` - 完全禁用共享 @@ -378,9 +374,9 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 命令 +### Command -您可以通过`command`选项为重复任务配置自定义命令。 +您可以通过 `command` 选项为重复任务配置自定义命令。 ```jsonc title="opencode.jsonc" { @@ -404,7 +400,7 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 按鍵綁定 +### Keybinds 您可以通过 `keybinds` 选项自定义您的按键绑定。 @@ -419,9 +415,9 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 自动更新 +### Autoupdate -opencode 将在启动时自动下载任何新的更新。您可以使用 `autoupdate` 选项取消此功能。 +opencode 将在启动时自动下载任何新的更新。您可以使用 `autoupdate` 选项禁用此功能。 ```json title="opencode.json" { @@ -430,14 +426,14 @@ opencode 将在启动时自动下载任何新的更新。您可以使用 `autoup } ``` -如果您不想更新但希望在新版本可用时收到通知,则需将`autoupdate`设置为`"notify"`。 +如果您不想更新但希望在新版本可用时收到通知,则需将 `autoupdate` 设置为 `"notify"`。 请注意,这仅在未使用 Homebrew 等包管理器安装时才有效。 --- -### 格式化程序 +### Formatters -您可以通过`formatter`选项配置代码初始化程序。 +您可以通过 `formatter` 选项配置代码格式化程序。 ```json title="opencode.json" { @@ -457,11 +453,11 @@ opencode 将在启动时自动下载任何新的更新。您可以使用 `autoup } ``` -Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. +[在这里了解有关格式化程序的更多信息](/docs/formatters)。 --- -### 权限 +### Permissions 默认情况下,opencode **允许所有操作**,无需明确批准。您可以使用 `permission` 选项更改此设置。 @@ -481,7 +477,7 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 壓實 +### Compaction 您可以通过 `compaction` 选项控制上下文压缩行为。 @@ -495,14 +491,14 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -- Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. -- `prune` - 删除旧工具以输出保存Tokens(默认值:`true`)。 +- `auto` - 当上下文已满时自动压缩会话(默认值:`true`)。 +- `prune` - 删除旧工具输出以保存 Tokens(默认值:`true`)。 --- -### 守望者 +### Watcher -您可以通过`watcher`选项配置文件观察器忽略模式。 +您可以通过 `watcher` 选项配置文件观察器忽略模式。 ```json title="opencode.json" { @@ -513,11 +509,11 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -模式遵循 glob 语法。使用它可以从文件监视中排除杂的目录。 +模式遵循 glob 语法。使用它可以从文件监视中排除嘈杂的目录。 --- -### MCP服务器 +### MCP Servers 您可以通过 `mcp` 选项配置要使用的 MCP 服务器。 @@ -532,11 +528,11 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 插件 +### Plugins -[插件](/docs/plugins) 使用自定义工具、挂钩和集成扩展 opencode。 +[Plugins](/docs/plugins) 使用自定义工具、挂钩和集成扩展 opencode。 -将插件文件放置在`.opencode/plugins/` 或`~/.config/opencode/plugins/` 中。您还可以通过 `plugin` 选项从 npm 加载插件。 +将插件文件放置在 `.opencode/plugins/` 或 `~/.config/opencode/plugins/` 中。您还可以通过 `plugin` 选项从 npm 加载插件。 ```json title="opencode.json" { @@ -549,7 +545,7 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try --- -### 指示 +### Instructions 您可以通过 `instructions` 选项配置您正在使用的模型的说明。 @@ -560,14 +556,13 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -这需要指令文件的路徑和全局模式數組。 [了解更多 -关于规则在这里](/docs/rules)。 +这需要指令文件的路径和 glob 模式数组。 [在此处了解有关规则的更多信息](/docs/rules)。 --- -### 殘疾服務提供商 +### Disabled Providers -您可以通过 `disabled_providers` 选项取消自动加载的提供商。当您想要阻止加载某些提供商(即使其可用)时,这非常有用。 +您可以通过 `disabled_providers` 选项禁用自动加载的提供商。当您想要阻止加载某些提供商(即使其凭据可用)时,这非常有用。 ```json title="opencode.json" { @@ -577,20 +572,20 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try ``` :::note -`disabled_providers` 优先于`enabled_providers`。 +`disabled_providers` 优先于 `enabled_providers`。 ::: -`disabled_providers` 选项接受提供商 ID 内存。当提供商被取消时: +`disabled_providers` 选项接受提供商 ID 数组。当提供商被禁用时: -- 即使设置了環境變量也不会加載。 -- 即使通过`/connect`命令配置API钥匙,也不会加载它。 -- 提供商的模型不会出現在模型选择列表中。 +- 即使设置了环境变量也不会加载。 +- 即使通过 `/connect` 命令配置 API 密钥,也不会加载它。 +- 提供商的模型不会出现在模型选择列表中。 --- -### 启用的提供商 +### Enabled Providers -Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know. +您可以通过 `enabled_providers` 选项指定允许的提供商列表。设置后,仅启用指定的提供商,所有其他提供商将被忽略。 ```json title="opencode.json" { @@ -599,17 +594,17 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -当您想要限制 opencode 仅使用特定的提供商而不是一一禁止它们时,这非常有用。 +当您想要限制 opencode 仅使用特定的提供商而不是逐一禁用它们时,这非常有用。 :::note -`disabled_providers` 优先于`enabled_providers`。 +`disabled_providers` 优先于 `enabled_providers`。 ::: -如果有人提供商同时出现在`enabled_providers`和`disabled_providers`中,则`disabled_providers`优先考虑一致性。 +如果提供商同时出现在 `enabled_providers` 和 `disabled_providers` 中,则 `disabled_providers` 优先以保持一致性。 --- -### 實驗性的 +### Experimental `experimental` 键包含正在积极开发的选项。 @@ -621,20 +616,20 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try ``` :::caution -實驗選項不穩定。它們可能会更改或被删除,恕不另行通知。 +实验选项不稳定。它们可能会更改或被删除,恕不另行通知。 ::: --- -## 變量 +## Variables -您可以在配置文件中使用變量替換來引用環境變量和文件內容。 +您可以在配置文件中使用变量替换来引用环境变量和文件内容。 --- -### 環境變量 +### Env Vars -使用`{env:VARIABLE_NAME}`替换环境变量: +使用 `{env:VARIABLE_NAME}` 替换环境变量: ```json title="opencode.json" { @@ -651,11 +646,11 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -如果未设置環境變量,它将被替換为空字符串。 +如果未设置环境变量,它将被替换为空字符串。 --- -### 文件 +### Files 使用 `{file:path/to/file}` 替换文件的内容: @@ -673,13 +668,13 @@ Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try } ``` -文件路徑可以是: +文件路径可以是: - 相对于配置文件目录 -- 或者以 `/` 或 `~` 開頭的絕对路徑 +- 或者以 `/` 或 `~` 开头的绝对路径 这些对于: -- 将API等敏感数据保存在单独的文件中。 -- 包含大型指令文件,而不会弄亂您的配置。 +- 将 API 密钥等敏感数据保存在单独的文件中。 +- 包含大型指令文件,而不会弄乱您的配置。 - 跨多个配置文件共享通用配置片段。 diff --git a/packages/web/src/content/docs/zh-cn/custom-tools.mdx b/packages/web/src/content/docs/zh-cn/custom-tools.mdx index 132a9d5140..503b1e1dfe 100644 --- a/packages/web/src/content/docs/zh-cn/custom-tools.mdx +++ b/packages/web/src/content/docs/zh-cn/custom-tools.mdx @@ -1,9 +1,9 @@ --- -title: 定制工具 -description: 创建法學碩士可以在opencode中调用的工具。 +title: 自定义工具 +description: 创建 LLM 可以在 opencode 中调用的工具。 --- -自定义工具是您创建的函数,LLM 可以在对话期间调用。它们与 opencode 的[内置工具](/docs/tools) 一起工作,例如 `read`、`write` 和 `bash`。 +自定义工具是您创建的函数,LLM 可以在对话期间调用。它们与 opencode 的 [Built-in Tools](/docs/tools) 一起工作,例如 `read`、`write` 和 `bash`。 --- @@ -13,16 +13,16 @@ description: 创建法學碩士可以在opencode中调用的工具。 --- -### 地點 +### Location -它們可以定義为: +它们可以定义为: - 通过将它们放在项目的 `.opencode/tools/` 目录中来本地进行。 - 或者在全局范围内,将它们放在 `~/.config/opencode/tools/` 中。 --- -### 結構 +### Structure 创建工具最简单的方法是使用 `tool()` 帮助程序,它提供类型安全和验证。 @@ -41,13 +41,13 @@ export default tool({ }) ``` -**文件名**成为**工具名称**。以上创建了一个 `database` 工具。 +**文件名** 成为 **工具名称**。以上创建了一个 `database` 工具。 --- #### 每个文件多个工具 -您还可以從單个文件導出多个工具。每个導出都会成为**一个單獨的工具**,名称为**`_`**: +您还可以从单个文件导出多个工具。每个导出都会成为 **一个单独的工具**,名称为 **`_`**: ```ts title=".opencode/tools/math.ts" import { tool } from "@opencode-ai/plugin" @@ -79,9 +79,9 @@ export const multiply = tool({ --- -### 論據 +### Arguments -您可以使用`tool.schema`(即[佐德](https://zod.dev))来定义参数类型。 +您可以使用 `tool.schema`(即 [Zod](https://zod.dev))来定义参数类型。 ```ts "tool.schema" args: { @@ -89,7 +89,7 @@ args: { } ``` -您还可以直接导入[佐德](https://zod.dev)并返回一个普通对象: +您还可以直接导入 [Zod](https://zod.dev) 并返回一个普通对象: ```ts {6} import { z } from "zod" @@ -108,9 +108,9 @@ export default { --- -### 情境 +### Context -工具接收有關当前会话的上下文: +工具接收有关当前会话的上下文: ```ts title=".opencode/tools/project.ts" {8} import { tool } from "@opencode-ai/plugin" @@ -133,7 +133,7 @@ export default tool({ ## 示例 -### 用Python编写一个工具 +### 使用 Python 编写工具 您可以使用任何您想要的语言编写工具。下面是一个使用 Python 将两个数字相加的示例。 @@ -147,7 +147,7 @@ b = int(sys.argv[2]) print(a + b) ``` -然後创建调用它的工具定義: +然后创建调用它的工具定义: ```ts title=".opencode/tools/python-add.ts" {10} import { tool } from "@opencode-ai/plugin" diff --git a/packages/web/src/content/docs/zh-cn/ecosystem.mdx b/packages/web/src/content/docs/zh-cn/ecosystem.mdx index 865664e263..92639f08db 100644 --- a/packages/web/src/content/docs/zh-cn/ecosystem.mdx +++ b/packages/web/src/content/docs/zh-cn/ecosystem.mdx @@ -1,5 +1,5 @@ --- -title: 生態系統 +title: Ecosystem description: 使用 opencode 构建的项目和集成。 --- @@ -9,68 +9,68 @@ description: 使用 opencode 构建的项目和集成。 想要将您的 opencode 相关项目添加到此列表中吗?提交 PR。 ::: -您还可以查看[awesome-opencode](https://github.com/awesome-opencode/awesome-opencode)和[opencode.cafe](https://opencode.cafe),这是一个聚合生态系统和社区的社区。 +您还可以查看 [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) 和 [opencode.cafe](https://opencode.cafe),这是一个聚合生态系统和社区的社区。 --- -## 插件 +## Plugins -| 名称 | 描述 | -| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | 在隔离的 Daytona 沙箱中自动运行 opencode 会话,并使用 git 同步和实时预览 | -| [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | 自动注入 Helicone 会话标头以进行请求包 | -| [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | 使用查找工具将 TypeScript/Svelte 类型自动注入到文件读取中 | -| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | 使用您的 ChatGPT Plus 或 Pro 订阅而不是 API 积分 | -| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | 使用您现有的 Gemini 计划而不是 API 设备 | -| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | 使用反重力的免费模型代替API | -| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | 具有浅克隆和自动分配端口的多分支开发容器隔离 | -| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Google Antigravity OAuth 插件,支持 Google 搜索和更强大的 API 处理 | -| [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | 通过修剪过时的工具输出来优化代币使用 | -| [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | 为具有Google接地风格的受支持增加本机网络搜索支持 | -| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | 使AI代理能够在PTY中运行后台进程,末端发送其交互输入。 | -| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | 非吸引力 shell 命令说明 - 阻止依赖 TTY 的操作挂起 | -| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | 使用 Wakatime 跟踪 opencode 使用情况 | -| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | 清理LLM生成的降价表 | -| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | 使用Morph Fast Apply API和取消编辑标记将代码编辑速度提高10倍 | -| [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | 后台代理、预构建的LSP/AST/MCP工具、精选代理、兼容Claude代码 | -| [opencode-notificator](https://github.com/panta82/opencode-notificator) | opencode 会话的桌面通知和声音警报 | -| [opencode-notifier](https://github.com/mohak34/opencode-notifier) | 针对权限、完成和错误事件的桌面通知和声音警报 | -| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | 基于 opencode 上下文的 AI 支持的自动 Zellij 会话命名 | -| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | 允许opencode代理通过技能发现和注入失败延迟加载提示 | -| [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | 使用超级内存跨会话持久内存 | -| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | 具有視覺註釋和私人/離線共享的交互式計劃审查 | -| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | 将opencode/命令扩展为具有精細流程控制的強大編排系統 | -| [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | 使用带 cron 语法的 launchd (Mac) 或 systemd (Linux) 安排重复作业 | -| [micode](https://github.com/vtemian/micode) | 塑造头脑风暴 → 计划 → 实施具有会议连续性的工作流程 | -| [octto](https://github.com/vtemian/octto) | 用于通过多问题形式进行AI头痛风暴的交互式浏览器UI | -| [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | 具有异步委托和上下文持久性的Claude Code风格后台代理 | -| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | opencode 的本机操作系统通知 – 了解任务何时完成 | -| [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | 一堆多代理编排工具 – 16个,组件一次安装 | -| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | opencode 的零难度 git 工作树 | +| 名称 | 描述 | +| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | 在隔离的 Daytona 沙箱中自动运行 opencode 会话,并使用 git 同步和实时预览 | +| [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | 自动注入 Helicone 会话标头以进行请求包 | +| [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | 使用查找工具将 TypeScript/Svelte 类型自动注入到文件读取中 | +| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | 使用您的 ChatGPT Plus 或 Pro 订阅而不是 API 积分 | +| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | 使用您现有的 Gemini 计划而不是 API 密钥 | +| [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) | 使用 Antigravity 的免费模型代替 API | +| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | 具有浅克隆和自动分配端口的多分支开发容器隔离 | +| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Google Antigravity OAuth 插件,支持 Google 搜索和更强大的 API 处理 | +| [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | 通过修剪过时的工具输出来优化 token 使用 | +| [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | 为具有 Google 接地风格的受支持增加本机网络搜索支持 | +| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | 使 AI 代理能够在 PTY 中运行后台进程,末端发送其交互输入。 | +| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Non-interactive shell command instructions - prevent TTY-dependent operations from hanging | +| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | 使用 Wakatime 跟踪 opencode 使用情况 | +| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | 清理 LLM 生成的 markdown 表 | +| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | 使用 Morph Fast Apply API 和取消编辑标记将代码编辑速度提高 10 倍 | +| [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | 后台代理、预构建的 LSP/AST/MCP 工具、精选代理、兼容 Claude Code | +| [opencode-notificator](https://github.com/panta82/opencode-notificator) | opencode 会话的桌面通知和声音警报 | +| [opencode-notifier](https://github.com/mohak34/opencode-notifier) | 针对权限、完成和错误事件的桌面通知和声音警报 | +| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | 基于 opencode 上下文的 AI 支持的自动 Zellij 会话命名 | +| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | 允许 opencode 代理通过技能发现和注入失败延迟加载提示 | +| [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | 使用 Supermemory 跨会话持久内存 | +| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | 具有视觉注释和私人/离线共享的交互式计划审查 | +| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | 将 opencode/命令扩展为具有精细流程控制的强大编排系统 | +| [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | 使用带 cron 语法的 launchd (Mac) 或 systemd (Linux) 安排重复作业 | +| [micode](https://github.com/vtemian/micode) | 塑造头脑风暴 → 计划 → 实施具有会议连续性的工作流程 | +| [octto](https://github.com/vtemian/octto) | 用于通过多问题形式进行 AI 头脑风暴的交互式浏览器 UI | +| [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | 具有异步委托和上下文持久性的 Claude Code 风格后台代理 | +| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | opencode 的本机操作系统通知 – 了解任务何时完成 | +| [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | 一堆多代理编排工具 – 16个,组件一次安装 | +| [opencode-worktree](https://github.com/kdcokenny/opencode-worktree) | opencode 的零难度 git 工作树 | --- -## 专案 +## Projects | 名称 | 描述 | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------- | | [kimaki](https://github.com/remorses/kimaki) | 用于控制 opencode 会话的 Discord 机器人,基于 SDK 构建 | | [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Neovim 插件,用于编辑器采集提示,基于 API 构建 | -| [portal](https://github.com/hosenur/portal) | 通过Tailscale/VPN实现opencode的移动优先Web UI | +| [portal](https://github.com/hosenur/portal) | 通过 Tailscale/VPN 实现 opencode 的移动优先 Web UI | | [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | 用于构建 opencode 插件的模板 | | [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Neovim opencode 前端 - 基于终端的 AI 编码代理 | | [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Vercel AI SDK 提供商,用于通过 @opencode-ai/sdk 使用 opencode | | [OpenChamber](https://github.com/btriapitsyn/openchamber) | opencode 的 Web/桌面应用程序和 VS Code 扩展 | | [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | 在 Obsidian 的 UI 中嵌入 opencode 的 Obsidian 插件 | | [OpenWork](https://github.com/different-ai/openwork) | Claude Cowork 的替代开源方案,由 opencode 提供支持 | -| [ocx](https://github.com/kdcokenny/ocx) | opencode扩展管理器具有可移植、隔离的配置文件。 | +| [ocx](https://github.com/kdcokenny/ocx) | opencode 扩展管理器具有可移植、隔离的配置文件。 | | [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | opencode 的桌面、Web、移动和远程客户端应用程序 | --- -## 代理商 +## Agents | 名称 | 描述 | | ----------------------------------------------------------------- | ---------------------------------------- | -| [Agentic](https://github.com/Cluster444/agentic) | 用于格式化开发的定价人工智能代理和命令] | +| [Agentic](https://github.com/Cluster444/agentic) | 用于格式化开发的 Agentic AI 代理和命令 | | [opencode-agents](https://github.com/darrenhinde/opencode-agents) | 用于增强工作流程的配置、提示、代理和插件 | diff --git a/packages/web/src/content/docs/zh-cn/enterprise.mdx b/packages/web/src/content/docs/zh-cn/enterprise.mdx index b4d5f1f180..c31ec6c826 100644 --- a/packages/web/src/content/docs/zh-cn/enterprise.mdx +++ b/packages/web/src/content/docs/zh-cn/enterprise.mdx @@ -1,5 +1,5 @@ --- -title: 企業 +title: Enterprise description: 在您的组织中安全地使用 opencode。 --- @@ -12,25 +12,24 @@ opencode Enterprise 适用于希望确保其代码和数据永远不会离开其 opencode 不存储您的任何代码或上下文数据。 ::: -要开始使用opencode Enterprise: +要开始使用 opencode Enterprise: -1. 与您的團隊進行内部試驗。 -2. **聯繫我们**討論定價和實施選項。 +1. 与您的团队进行内部试用。 +2. **联系我们** 讨论定价和实施选项。 --- -## 審判 +## 试用 opencode 是开源的,不存储您的任何代码或上下文数据,因此您的开发人员只需 [开始吧](/docs/) 并进行试用。 --- -### 數據處理 +### 数据处理 -**opencode 不会存储您的代码或上下文数据。 **所有处理都在本地进行或通过直接 API 调用您的 AI 提供商。 +**opencode 不会存储您的代码或上下文数据。** 所有处理都在本地进行或通过直接 API 调用您的 AI 提供商。 -这意味著只要您使用您信任的提供商或内部提供商 -AI网关,您可以安全使用opencode。 +这意味着只要您使用您信任的提供商或内部 AI 网关,您就可以安全使用 opencode。 这里唯一需要注意的是可选的 `/share` 功能。 @@ -38,11 +37,11 @@ AI网关,您可以安全使用opencode。 #### 分享对话 -如果启用用户 `/share` 功能,对话和关联的数据将被发送到我们用于在 opencode.ai 上托管这些共享页面的服务。 +如果用户启用 `/share` 功能,对话和关联的数据将被发送到我们用于在 opencode.ai 上托管这些共享页面的服务。 -数据当前通过我们的CDN边缘网络提供服务,并缓存在用户附近的边缘。 +数据当前通过我们的 CDN 边缘网络提供服务,并缓存在用户附近的边缘。 -我们建議您在試用時禁用此功能。 +我们建议您在试用时禁用此功能。 ```json title="opencode.json" { @@ -55,27 +54,25 @@ AI网关,您可以安全使用opencode。 --- -### 代碼所有權 +### 代码所有权 -**您拥有 opencode 生成的所有代码。 ** 没有许可限制或语音报表。 +**您拥有 opencode 生成的所有代码。** 没有许可限制或所有权主张。 --- -## 定價 +## 定价 -我们对 opencode Enterprise 使用單機模型。如果您有自己的 LLM 網關,我们不会对使用的Tokens收取费用。有關定價和實施選項的更多詳細信息,请**聯繫我们**。 +我们对 opencode Enterprise 使用按席位模型。如果您有自己的 LLM 网关,我们不会对使用的 Token 收取费用。有关定价和实施选项的更多详细信息,请 **联系我们**。 --- ## 部署 -完成试验并准备好使用 opencode 后,请访问: -您的組織,您可以**聯繫我们**進行討論 -定價和實施選項。 +完成试用并准备好在您的组织中使用 opencode 后,您可以 **联系我们** 进行讨论定价和实施选项。 --- -### 中央配置 +### Central Config 我们可以将 opencode 设置为您的整个组织使用单一的中央配置。 @@ -83,88 +80,86 @@ AI网关,您可以安全使用opencode。 --- -### 單點登錄集成 +### SSO Integration -通过中央配置,opencode 可以与您组织的 SSO 提供商集成以进行身份​​​​验证。 +通过中央配置,opencode 可以与您组织的 SSO 提供商集成以进行身份验证。 这使得 opencode 能够通过现有的身份管理系统获取内部 AI 网关的凭据。 --- -### 内部AI网关 +### Internal AI Gateway 通过中央配置,opencode 还可以配置为仅使用您的内部 AI 网关。 -您还可以取消所有其他人工智能启动,确保所有请求都通过组织批准的基础设施。 +您还可以禁用所有其他 AI 提供商,确保所有请求都通过组织批准的基础设施。 --- -### 自託管 +### Self-hosting -雖然我们建議禁用共享頁面以確保您的數據永遠不会離開 -您的組織,我们还可以幫助您在您的基礎設施上自行託管它們。 +虽然我们建议禁用共享页面以确保您的数据永远不会离开您的组织,我们还可以帮助您在您的基础设施上自行托管它们。 -目前这已在我们的路線圖上。如果您有興趣,**讓我们知道**。 +目前这已在我们的路线图上。如果您有兴趣,**让我们知道**。 --- -## 常問問題 +## FAQ

-什麼是 opencode Enterprise? +什么是 opencode Enterprise? opencode Enterprise 适用于希望确保其代码和数据永远不会离开其基础设施的组织。它可以通过使用与 SSO 和内部 AI 网关集成的集中方式配置来实现此目的。
-如何開始使用 opencode Enterprise? +如何开始使用 opencode Enterprise? 与您的团队进行内部实验即可。opencode 默认情况下不存储您的代码或上下文数据,可以轻松上手。 -然後**聯繫我们**討論定價和實施選項。 +然后 **联系我们** 讨论定价和实施选项。
-企業定價如何運作? +企业定价如何运作? -我们提供按席位企業定價。如果您有自己的 LLM 網關,我们不会对使用的Tokens收取费用。如需了解更多详情,请**聯繫我们**,获取根據您組織的需求定制的報價。 +我们提供按席位企业定价。如果您有自己的 LLM 网关,我们不会对使用的 Token 收取费用。如需了解更多详情,请 **联系我们**,获取根据您组织的需求定制的报价。
-opencode Enterprise 保證我的數據安全嗎? +opencode Enterprise 保证我的数据安全吗? -opencode 不存储您的代码或上下文数据。所有处理都在本地进行或通过直接 API 调用您的 AI 工作。通过中央配置和 SSO 集成,您的数据在组织的基础架构中保持安全。 +是的。opencode 不存储您的代码或上下文数据。所有处理都在本地进行或通过直接 API 调用您的 AI 提供商。通过中央配置和 SSO 集成,您的数据在组织的基础架构中保持安全。
-我们可以使用自己的私有 NPM 註冊表嗎? +我们可以使用自己的私有 NPM 注册表吗? -opencode 通过 Bun 的本机 `.npmrc` 文件支持来支持香蕉 npm 肥料。如果您的组织使用了花生,例如 JFrog Artifactory、Nexus 或类似的肥料,请确保开发人员在运行 opencode 之前经过身份验证。 +opencode 通过 Bun 的本机 `.npmrc` 文件支持来支持私有 npm 注册表。如果您的组织使用私有注册表,例如 JFrog Artifactory、Nexus 或类似的,请确保开发人员在运行 opencode 之前经过身份验证。 -要使用您的私有註冊表设置身份验证: +要使用您的私有注册表设置身份验证: ```bash npm login --registry=https://your-company.jfrog.io/api/npm/npm-virtual/ ``` -这将创建带有身份验证详细信息的 `~/.npmrc`。 opencode 会自动 -拿起这个。 +这将创建带有身份验证详细信息的 `~/.npmrc`。 opencode 会自动读取这个。 :::caution -在运行 opencode 之前,您必须登录灌木丛。 +在运行 opencode 之前,您必须登录私有注册表。 ::: -或者,您可以手动配置`.npmrc`文件: +或者,您可以手动配置 `.npmrc` 文件: ```bash title="~/.npmrc" registry=https://your-company.jfrog.io/api/npm/npm-virtual/ //your-company.jfrog.io/api/npm/npm-virtual/:_authToken=${NPM_AUTH_TOKEN} ``` -开发人员必须在运行opencode之前登录棉花,以确保从企业种植樱桃。 +开发人员必须在运行 opencode 之前登录私有注册表,以确保可以从您的企业注册表安装软件包。
diff --git a/packages/web/src/content/docs/zh-cn/formatters.mdx b/packages/web/src/content/docs/zh-cn/formatters.mdx index ab0c1d4e0a..25d5e27778 100644 --- a/packages/web/src/content/docs/zh-cn/formatters.mdx +++ b/packages/web/src/content/docs/zh-cn/formatters.mdx @@ -1,62 +1,62 @@ --- title: 格式化程序 -description: opencode 使用特定于语言的清理程序。 +description: opencode 使用特定于语言的格式化程序。 --- -使用在语言的格式化程序编写或编辑文件后,opencode会自动格式化文件。这可以确保生成的代码遵循项目的代码风格。 +使用特定于语言的格式化程序编写或编辑文件后,opencode 会自动格式化文件。这可以确保生成的代码遵循项目的代码风格。 --- -## 內建 +## Built-in -opencode附带了多个适用于流行语言和框架的内置初始化程序。下面是格式化程序、支持的文件扩展名以及所需的命令或配置选项的列表。 +opencode 附带了多个适用于流行语言和框架的内置格式化程序。下面是格式化程序、支持的文件扩展名以及所需的命令或配置选项的列表。 -| 格式化程序 | 扩展 | 要求 | -| ------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | -| 政府 | .go | `gofmt` 命令可用 | -| 混合 | .ex、.exs、.eex、.heex、.leex、.neex、.sface | `mix` 命令可用 | -| 更漂亮 | .js、.jsx、.ts、.tsx、.html、.css、.md、.json、.yaml 和 [更多的](https://prettier.io/docs/en/index.html) | 在 `package.json` 中有 `prettier` 依赖 | -| 生物群系 | .js、.jsx、.ts、.tsx、.html、.css、.md、.json、.yaml 和 [更多的](https://biomejs.dev/) | `biome.json(c)` 配置文件 | -| 之字形 | .zig、.zon | `zig` 命令可用 | -| clang 格式 | .c、.cpp、.h、.hpp、.ino 和 [更多的](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` 配置文件 | -| 克特林特 | .kt、.kts | `ktlint` 命令可用 | -| 领子 | .py, .pyi | `ruff` 命令可通过配置 | -| 生锈 | .rs | `rustfmt` 命令可用 | -| 货物运输 | .rs | `cargo fmt` 命令可用 | -| 美丽 | .py, .pyi | `uv` 命令可用 | -| 鲁博科普 | .rb、.rake、.gemspec、.ru | `rubocop` 命令可用 | -| 标准rb | .rb、.rake、.gemspec、.ru | `standardrb` 命令可用 | -| html美化器 | .erb、.html.erb | `htmlbeautifier` 命令可用 | -| 空气 | .R | `air` 命令可用 | -| 飞镖 | .dart | `dart` 命令可用 | -| ocaml 格式 | .ml、.mli | `ocamlformat` 可用命令和 `.ocamlformat` 配置文件 | -| 地形 | .tf、.tfvars | `terraform` 命令可用 | -| 微光 | .gleam | `gleam` 命令可用 | -| 尼克斯夫MTT | .nix | `nixfmt` 命令可用 | -| sfmt | .sh、.bash | `shfmt` 命令可用 | -| 品脱 | .php | 在 `composer.json` 中有 `laravel/pint` 依赖 | -| oxfmt(实验) | .js、.jsx、.ts、.tsx | 在 `package.json` 中有 `oxfmt` 依赖并启用[实验环境变量标记](/docs/cli/#experimental) | -| 奥尔莫鲁 | .hs | `ormolu` 命令可用 | +| Formatter | Extensions | Requirements | +| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| gofmt | .go | `gofmt` command available | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` command available | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://prettier.io/docs/en/index.html) | `prettier` dependency in `package.json` | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, and [more](https://biomejs.dev/) | `biome.json(c)` config file | +| zig | .zig, .zon | `zig` command available | +| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file | +| ktlint | .kt, .kts | `ktlint` command available | +| ruff | .py, .pyi | `ruff` command available with config | +| rustfmt | .rs | `rustfmt` command available | +| cargofmt | .rs | `cargo fmt` command available | +| uv | .py, .pyi | `uv` command available | +| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available | +| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | +| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available | +| air | .R | `air` command available | +| dart | .dart | `dart` command available | +| ocamlformat | .ml, .mli | `ocamlformat` command available and `.ocamlformat` config file | +| terraform | .tf, .tfvars | `terraform` command available | +| gleam | .gleam | `gleam` command available | +| nixfmt | .nix | `nixfmt` command available | +| shfmt | .sh, .bash | `shfmt` command available | +| pint | .php | `laravel/pint` dependency in `composer.json` | +| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` dependency in `package.json` and an [experimental env variable flag](/docs/cli/#experimental) | +| ormolu | .hs | `ormolu` command available | -因此,如果您的项目的`package.json`或`prettier`,opencode将自动使用它。 +因此,如果您的项目的 `prettier` 中有 `package.json`,opencode 将自动使用它。 --- -## 它是如何運作的 +## 它是如何工作的 -当opencode写入或编辑文件时,它: +当 opencode 写入或编辑文件时,它: -1. 根據所有启用的格式化程序检查文件扩展名。 -2. 对文件運行適当的格式化程序命令。 +1. 根据所有启用的格式化程序检查文件扩展名。 +2. 对文件运行适当的格式化程序命令。 3. 自动应用格式更改。 -此过程在後台進行,確保無需任何手动步驟即可維護您的代碼樣式。 +此过程在后台进行,确保无需任何手动步骤即可维护您的代码样式。 --- ## 配置 -您可以通过 opencode 配置中的 `formatter` 部分自定义程序。 +您可以通过 opencode 配置中的 `formatter` 部分自定义格式化程序。 ```json title="opencode.json" { @@ -65,22 +65,22 @@ opencode附带了多个适用于流行语言和框架的内置初始化程序。 } ``` -每个格式化程序配置支持以下內容: +每个格式化程序配置支持以下内容: -| 物業 | 類型 | 描述 | -| ------------- | -------- | -------------------------------- | -| `disabled` | 布尔 | 将其设置为 `true` 以取消删除程序 | -| `command` | 字符串[] | 格式化运行的命令 | -| `environment` | 对象 | 运行格式化程序时要设置的环境变量 | -| `extensions` | 字符串[] | 此整理程序应处理的文件扩展名 | +| Property | Type | Description | +| ------------- | -------- | ---------------------------------- | +| `disabled` | boolean | 将其设置为 `true` 以禁用格式化程序 | +| `command` | string[] | 格式化运行的命令 | +| `environment` | object | 运行格式化程序时要设置的环境变量 | +| `extensions` | string[] | 此格式化程序应处理的文件扩展名 | -讓我们看一些例子。 +让我们看一些例子。 --- ### 禁用格式化程序 -要全局取消**所有**清理程序,然后`formatter`设置为`false`: +要全局禁用 **所有** 格式化程序,将 `formatter` 设置为 `false`: ```json title="opencode.json" {3} { @@ -89,7 +89,7 @@ opencode附带了多个适用于流行语言和框架的内置初始化程序。 } ``` -要取消**特定**删除程序,则`disabled`设置为`true`: +要禁用 **特定** 格式化程序,将 `disabled` 设置为 `true`: ```json title="opencode.json" {5} { @@ -104,9 +104,9 @@ opencode附带了多个适用于流行语言和框架的内置初始化程序。 --- -### 自定義格式化程序 +### 自定义格式化程序 -您可以覆盖内置格式化程序或通过指定命令、環境變量和文件扩展名添加新格式化程序: +您可以覆盖内置格式化程序或通过指定命令、环境变量和文件扩展名添加新格式化程序: ```json title="opencode.json" {4-14} { diff --git a/packages/web/src/content/docs/zh-cn/github.mdx b/packages/web/src/content/docs/zh-cn/github.mdx index dbfb9e0246..4e63ace802 100644 --- a/packages/web/src/content/docs/zh-cn/github.mdx +++ b/packages/web/src/content/docs/zh-cn/github.mdx @@ -7,11 +7,11 @@ opencode 与您的 GitHub 工作流程集成。在评论中提及 `/opencode` --- -## 特徵 +## Features -- **分类问题**:要求 opencode 调查问题并向您解释。 -- **修复和实施**:要求 opencode 修复问题或实施功能。将在一个新的分支中工作并提交包含所有更改的 PR。 -- **安全**:opencode 在 GitHub 的运行器中运行。 +- **Triage issues**: 要求 opencode 调查问题并向您解释。 +- **Fix and implement**: 要求 opencode 修复问题或实施功能。将在一个新的分支中工作并提交包含所有更改的 PR。 +- **Secure**: opencode 在 GitHub 的运行器中运行。 --- @@ -27,17 +27,17 @@ opencode github install --- -### 手动设置 +### Manual Setup 或者您可以手动设置。 -1. 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 +1. **Install the GitHub app** - 前往[**github.com/apps/opencode-agent**](https://github.com/apps/opencode-agent)。确保它​​已安装在目标存储库上。 + 前往 [**github.com/apps/opencode-agent**](https://github.com/apps/opencode-agent)。确保它​​已安装在目标存储库上。 -2. **添加工作流程** +2. **Add the workflow** - 将以下工作流程文件添加到存储库中的`.github/workflows/opencode.yml`中。确保在`env`中设置适当的`model`和所需的API按键。 + 将以下工作流程文件添加到存储库中的 `.github/workflows/opencode.yml` 中。确保在 `model` 中设置适当的 `env` 和所需的 API 密钥。 ```yml title=".github/workflows/opencode.yml" {24,26} name: opencode @@ -73,21 +73,21 @@ opencode github install # github_token: xxxx ``` -3. 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 +3. **Store the API keys in secrets** - 在您的组织或项目的**设置**中,展开左侧的**秘密和变量**,然后选择**操作**。并添加所需的API钥匙。 + 在您的组织或项目的 **Settings** 中,展开左侧的 **Secrets and variables**,然后选择 **Actions**。并添加所需的 API 密钥。 --- -## 配置 +## Configuration -- `model`:与 opencode 一起使用的模型。采用 `provider/model` 格式。这是**必需的**。 +- `model`:与 opencode 一起使用的模型。采用 `provider/model` 格式。这是 **必需的**。 - `agent`:要使用的代理。必须是一级代理。如果未找到,则从配置回退到 `default_agent` 或 `"build"`。 -- `share`:是否共享opencode会话。对于公共存储库,默认为**true**。 +- `share`:是否共享 opencode 会话。对于公共存储库,默认为 **true**。 - `prompt`:可选的自定义提示以覆盖默认行为。使用它来自定义 opencode 处理请求的方式。 -- `token`:可选的 GitHub 访问Tokens,用于执行创建评论、提交更改和打开拉取请求等操作。默认情况下,opencode 使用来自 opencode GitHub 应用程序的安装访问Tokens,因此提交、评论和拉取请求显示为来自应用。 +- `token`:可选的 GitHub 访问 Token,用于执行创建评论、提交更改和打开拉取请求等操作。默认情况下,opencode 使用来自 opencode GitHub 应用程序的安装访问 Token,因此提交、评论和拉取请求显示为来自应用。 - 或者,您可以使用 GitHub Action 运行程序的[内置`GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token),而无需安装 opencode GitHub 应用程序。只需确保在您的工作流程中所需的权限: + 或者,您可以使用 GitHub Action 运行程序的 [内置 `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token),而无需安装 opencode GitHub 应用程序。只需确保在您的工作流程中所需的权限: ```yaml permissions: @@ -97,26 +97,26 @@ opencode github install issues: write ``` - 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 + 您可以在 GitHub Actions 文档中了解有关配置工作流程的更多信息。 --- -## 支持的活动 +## Supported Events opencode 可以由以下 GitHub 事件触发: -| 事件類型 | 觸發者 | 详情 | +| Event Type | Triggered By | Details | | ----------------------------- | ---------------------------- | --------------------------------------------------------------------------------------- | | `issue_comment` | 对问题或 PR 发表评论 | 在评论中提及 `/opencode` 或 `/oc`。 opencode 读取上下文并可以创建分支、打开 PR 或回复。 | -| `pull_request_review_comment` | 对 PR 中的特定代码行进行评论 | 在检查代码时提及`/opencode` 或`/oc`。 opencode 接收文件路径、行号和 diff 上下文。 | -| `issues` | 问题已打开或已编辑 | 创建或修改问题时自动触发opencode。需要`prompt` 输入。 | +| `pull_request_review_comment` | 对 PR 中的特定代码行进行评论 | 在检查代码时提及 `/opencode` 或 `/oc`。 opencode 接收文件路径、行号和 diff 上下文。 | +| `issues` | 问题已打开或已编辑 | 创建或修改问题时自动触发 opencode。需要 `prompt` 输入。 | | `pull_request` | PR 已开启或已更新 | 当 PR 打开、同步或重新打开时自动触发 opencode。对于自动评论很有帮助。 | | `schedule` | 基于 Cron 的计划 | 按计划运行 opencode。需要 `prompt` 输入。输出进入日志和 PR(没有可评论的问题)。 | | `workflow_dispatch` | 从 GitHub UI 手动触发 | 通过“操作”选项卡触发 opencode。需要 `prompt` 输入。输出进入日志和 PR。 | -### 時間表示例 +### Schedule Example -按计划运行opencode以执行自动化任务: +按计划运行 opencode 以执行自动化任务: ```yaml title=".github/workflows/opencode-scheduled.yml" name: Scheduled OpenCode Task @@ -150,13 +150,13 @@ jobs: If you find issues worth addressing, open an issue to track them. ``` -对于计划事件,`prompt` 输入是**必需的**,因为没有注释可以从中提取指令。希望计划工作流在没有用户上下文的情况下运行并进行权限检查,因此如果您 opencode 创建分支或 PR,工作流必须支持 `contents: write` 和 `pull-requests: write`。 +对于计划事件,`prompt` 输入是 **必需的**,因为没有注释可以从中提取指令。希望计划工作流在没有用户上下文的情况下运行并进行权限检查,因此如果您 opencode 创建分支或 PR,工作流必须支持 `contents: write` 和 `pull-requests: write`。 --- -### 拉取请求示例 +### Pull Request Example -或更新公关时间自动审核: +或更新 PR 时自动审核: ```yaml title=".github/workflows/opencode-review.yml" name: opencode-review @@ -191,13 +191,13 @@ jobs: - Suggest improvements ``` -对于`pull_request`事件,如果未提供`prompt`,opencode将默认审核拉取请求。 +对于 `pull_request` 事件,如果未提供 `prompt`,opencode 将默认审核拉取请求。 --- -### 問題分類示例 +### Issue Triage Example -自动分類新問題。此示例过濾超过 30 天的账户以減少垃圾郵件: +自动分类新问题。此示例过滤超过 30 天的账户以减少垃圾邮件: ```yaml title=".github/workflows/opencode-triage.yml" name: Issue Triage @@ -246,11 +246,11 @@ jobs: Otherwise, do not comment. ``` -对于 `issues` 事件,`prompt` 输入是**必需的**,因为没有注释可足以提取指令。 +对于 `issues` 事件,`prompt` 输入是 **必需的**,因为没有注释可以从中提取指令。 --- -## 自定義提示 +## Custom Prompt 覆盖默认提示,为您的工作流程自定义 opencode 的行为。 @@ -265,7 +265,7 @@ jobs: - Suggest improvements ``` -这对于执行与您的項目相关的特定审查標準、編碼標准或重點領域非常有用。 +这对于执行与您的项目相关的特定审查标准、编码标准或重点领域非常有用。 --- @@ -273,7 +273,7 @@ jobs: 以下是如何在 GitHub 中使用 opencode 的一些示例。 -- **解釋一个問題** +- **Explain an issue** 在 GitHub 问题中添加此评论。 @@ -281,9 +281,9 @@ jobs: /opencode explain this issue ``` - opencode 将阅读整个线程,包括所有评论,并回复并提供语音解释。 + opencode 将阅读整个线程,包括所有评论,并回复并提供清晰的解释。 -- **解決問題** +- **Fix an issue** 在 GitHub 问题中,说: @@ -293,7 +293,7 @@ jobs: opencode 将创建一个新分支,实施更改,并使用更改打开 PR。 -- **审查 PR 并进行更改** +- **Review PRs and make changes** 在 GitHub PR 上留下以下评论。 @@ -301,21 +301,21 @@ jobs: Delete the attachment from S3 when the note is removed /oc ``` - 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 + opencode 将实施请求的更改并提交到同一个 PR。 -- **查看特定代碼行** +- **Review specific code lines** - 直接在PR的“文件”选项卡中的代码行上留下评论。opencode自动检测文件、行号和差异上下文以提供准确的响应。 + 直接在 PR 的“文件”选项卡中的代码行上留下评论。opencode 自动检测文件、行号和差异上下文以提供准确的响应。 ``` [Comment on specific lines in Files tab] /oc add error handling here ``` - 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 - - 正在审查的確切文件 - - 具體代碼行 + 当评论特定行时,opencode 接收: + - 正在审查的确切文件 + - 具体代码行 - 周围的差异上下文 - - 行號信息 + - 行号信息 - 这允许更有針对性的请求,而無需手动指定文件路徑或行號。 + 这允许更有针对性的请求,而无需手动指定文件路径或行号。 diff --git a/packages/web/src/content/docs/zh-cn/gitlab.mdx b/packages/web/src/content/docs/zh-cn/gitlab.mdx index 4f99367de0..c63369f8d6 100644 --- a/packages/web/src/content/docs/zh-cn/gitlab.mdx +++ b/packages/web/src/content/docs/zh-cn/gitlab.mdx @@ -9,25 +9,25 @@ opencode 通过 GitLab CI/CD 管道或与 GitLab Duo 与您的 GitLab 工作流 --- -## GitLab。 +## GitLab CI -opencode 在常规 GitLab 管道中工作。您可以将其构建为管道 [CI](https://docs.gitlab.com/ee/ci/components/) +opencode 在常规 GitLab 管道中工作。您可以将其构建为管道 [CI 组件](https://docs.gitlab.com/ee/ci/components/) 在这里,我们使用社区创建的 opencode CI/CD 组件 — [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode)。 --- -### 特徵 +### Features -- **每个作业使用每个自定义配置**:使用自定义配置目录配置opencode,例如`./config/#custom-directory`以启用或禁用opencode调用的功能。 -- 错误 500(服务器错误)!!1500。这是一个错误。出现错误。请稍后重试。我们只知道这些。 -- **灵活**:CI 组件支持多种输入来自定义其行为 +- **Use custom configuration per job**: 使用自定义配置目录配置 opencode,例如 `./config/#custom-directory` 以启用或禁用 opencode 调用的功能。 +- **Authentication**: Uses OIDC for secure authentication +- **Flexible**: CI 组件支持多种输入来自定义其行为 --- -### 设置 +### Setup -1. 将 opencode 身份验证 JSON 作为文件类型 CI 环境变量存储在 **设置** > **CI/CD** > **变量** 下。确保将它们标记为“隐藏和隐藏”。 +1. 将 opencode 身份验证 JSON 作为文件类型 CI 环境变量存储在 **Settings** > **CI/CD** > **Variables** 下。确保将它们标记为“隐藏和隐藏”。 2. 将以下内容添加到您的 `.gitlab-ci.yml` 文件中。 ```yaml title=".gitlab-ci.yml" @@ -44,34 +44,34 @@ opencode 在常规 GitLab 管道中工作。您可以将其构建为管道 [CI]( --- -## 亚搏体育app二人组 +## GitLab Duo opencode 与您的 GitLab 工作流程集成。 -在评论中提及`@opencode`,opencode 将在您的 GitLab CI 管道中执行任务。 +在评论中提及 `@opencode`,opencode 将在您的 GitLab CI 管道中执行任务。 --- -### 特徵 +### Features -- **分类问题**:要求 opencode 调查问题并向您解释。 -- **修复和实施**:要求opencode修复问题或实施功能。 +- **Triage issues**: 要求 opencode 调查问题并向您解释。 +- **Fix and implement**: 要求 opencode 修复问题或实施功能。 它将创建一个新分支并提出包含更改的合并请求。 -- **安全**:opencode 在您的 GitLab 运行器上运行。 +- **Secure**: opencode 在您的 GitLab 运行器上运行。 --- -### 设置 +### Setup opencode 在您的 GitLab CI/CD 管道中运行,您需要进行以下设置: :::tip -查看[**GitLab 文档**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) 获取最新说明。 +查看 [**GitLab docs**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) 获取最新说明。 ::: 1. 配置您的 GitLab 环境 -2. 安装CI/CD -3. 获取AI模型提供商 API键 -4. 创建服務账户 +2. 设置 CI/CD +3. 获取 AI 模型提供商 API 密钥 +4. 创建服务账户 5. 配置 CI/CD 变量 6. 创建一个流配置文件,这是一个示例: @@ -152,19 +152,19 @@ opencode 在您的 GitLab CI/CD 管道中运行,您需要进行以下设置: -详细说明可以参考[GitLab CLI 代理文档](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)。 +详细说明可以参考 [GitLab CLI agents docs](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/)。 --- -### 示例 +### Examples 以下是如何在 GitLab 中使用 opencode 的一些示例。 :::tip -您可以配置使用 `@opencode` 不同的触发主板。 +您可以配置使用与 `@opencode` 不同的触发词。 ::: -- **解釋一个問題** +- **Explain an issue** 在 GitLab 问题中添加此评论。 @@ -174,7 +174,7 @@ opencode 在您的 GitLab CI/CD 管道中运行,您需要进行以下设置: opencode 将阅读该问题并回复并提供清晰的解释。 -- **解決問題** +- **Fix an issue** 在 GitLab 问题中,说: @@ -184,7 +184,7 @@ opencode 在您的 GitLab CI/CD 管道中运行,您需要进行以下设置: opencode 将创建一个新分支,实施更改,并打开包含更改的合并请求。 -- **审查合并请求** +- **Review merge requests** 对 GitLab 合并请求留下以下评论。 diff --git a/packages/web/src/content/docs/zh-cn/ide.mdx b/packages/web/src/content/docs/zh-cn/ide.mdx index fc8a3d170b..64999cc237 100644 --- a/packages/web/src/content/docs/zh-cn/ide.mdx +++ b/packages/web/src/content/docs/zh-cn/ide.mdx @@ -1,5 +1,5 @@ --- -title: 集成開發環境 +title: IDE description: VS Code、Cursor 等 IDE 的 opencode 扩展 --- @@ -11,8 +11,8 @@ opencode 与 VS Code、Cursor 或任何支持终端的 IDE 集成。只需在终 - **快速启动**:使用 `Cmd+Esc` (Mac) 或 `Ctrl+Esc` (Windows/Linux) 在分割终端视图中打开 opencode,或者聚焦现有终端会话(如果现有终端会话正在运行)。 - **新会话**:使用 `Cmd+Shift+Esc` (Mac) 或 `Ctrl+Shift+Esc` (Windows/Linux) 启动新的 opencode 终端会话,即使该会话已打开。您还可以单击 UI 中的 opencode 按钮。 -- **上下文获取**:自动与opencode共享您当前的选择或选项卡。 -- **文件引用快捷方式**:使用`Cmd+Option+K` (Mac) 或`Alt+Ctrl+K` (Linux/Windows) 插入文件引用。例如,`@File#L37-42`。 +- **上下文获取**:自动与 opencode 共享您当前的选择或选项卡。 +- **文件引用快捷方式**:使用 `Cmd+Option+K` (Mac) 或 `Alt+Ctrl+K` (Linux/Windows) 插入文件引用。例如,`@File#L37-42`。 --- @@ -20,17 +20,17 @@ opencode 与 VS Code、Cursor 或任何支持终端的 IDE 集成。只需在终 要在 VS Code 和 Cursor、Windsurf、VSCodium 等流行分支上安装 opencode: -1. 打开VS代码 -2. 打開集成终端 +1. 打开 VS Code +2. 打开集成终端 3. 运行 `opencode` - 扩展会自动安装 另一方面,如果您想在从 TUI 运行 `/editor` 或 `/export` 时使用自己的 IDE,则需要设置 `export EDITOR="code --wait"`。 [了解更多](/docs/tui/#editor-setup)。 --- -### 手动安装 +### Manual Installation -在扩展市场中搜索**opencode**,然后单击**安装**。 +在扩展市场中搜索 **opencode**,然后单击 **Install**。 --- @@ -38,11 +38,11 @@ opencode 与 VS Code、Cursor 或任何支持终端的 IDE 集成。只需在终 如果扩展无法自动安装: -- 确定您在集成终止中运行`opencode`。 +- 确定您在集成终端中运行 `opencode`。 - 确认您的 IDE 和 CLI 已安装: - - 对于 VS 代码:`code` 命令 - - 适用字体:`cursor` 命令 - - 对于风帆冲浪:`windsurf` 命令 + - 对于 VS Code:`code` 命令 + - 对于 Cursor:`cursor` 命令 + - 对于 Windsurf:`windsurf` 命令 - 对于 VSCodium:`codium` 命令 - - 如果,请运行 `Cmd+Shift+P` (Mac) 或 `Ctrl+Shift+P` (Windows/Linux) 并搜索“Shell Command: Install 'code' command in PATH”(或适用于您的 IDE 的没有对应命令) + - 如果没有,请运行 `Cmd+Shift+P` (Mac) 或 `Ctrl+Shift+P` (Windows/Linux) 并搜索 “Shell Command: Install 'code' command in PATH”(或适用于您的 IDE 的对应命令) - 确保 VS Code 能够安装扩展 diff --git a/packages/web/src/content/docs/zh-cn/index.mdx b/packages/web/src/content/docs/zh-cn/index.mdx index 7db76a19ff..51dd7845c5 100644 --- a/packages/web/src/content/docs/zh-cn/index.mdx +++ b/packages/web/src/content/docs/zh-cn/index.mdx @@ -1,23 +1,23 @@ --- -title: 簡介 -description: 开始使用opencode。 +title: Introduction +description: 开始使用 opencode。 --- import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/)是一个开源人工智能编码代理。它可用于基于终端的界面、桌面应用程序或IDE扩展。 +[**opencode**](/) 是一个开源人工智能编码代理。它可用于基于终端的界面、桌面应用程序或 IDE 扩展。 -![具有opencode主题的opencode TUI](../../../assets/lander/screenshot.png) +![具有 opencode 主题的 opencode TUI](../../../assets/lander/screenshot.png) -讓我们開始吧。 +让我们开始吧。 --- -#### 先決条件 +#### Prerequisites -要在终端中使用opencode,您需要: +要在终端中使用 opencode,您需要: 1. 现代终端模拟器,例如: - [WezTerm](https://wezterm.org),跨平台 @@ -87,19 +87,19 @@ curl -fsSL https://opencode.ai/install | bash paru -S opencode-bin ``` -#### 視窗 +#### Windows :::tip[Recommended: 使用 WSL] -为了在 Windows 上获得最佳体验,我们建议使用[适用于 Linux 的 Windows 子系统 (WSL)](/docs/windows-wsl)。它提供了更好的性能并与 opencode 的功能完全兼容。 +为了在 Windows 上获得最佳体验,我们建议使用 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)。它提供了更好的性能并与 opencode 的功能完全兼容。 ::: -- **使用巧克力** +- **Using Chocolatey** ```bash choco install opencode ``` -- **使用勺子** +- **Using Scoop** ```bash scoop install opencode @@ -111,7 +111,7 @@ curl -fsSL https://opencode.ai/install | bash npm install -g opencode-ai ``` -- **使用米塞** +- **Using Mise** ```bash mise use -g github:anomalyco/opencode @@ -125,7 +125,7 @@ curl -fsSL https://opencode.ai/install | bash 目前正在支持在 Windows 上安装 opencode 时使用 Bun。 -您还可以从[发布](https://github.com/anomalyco/opencode/releases) 获取二进制文件。 +您还可以从 [Releases](https://github.com/anomalyco/opencode/releases) 获取二进制文件。 --- @@ -134,8 +134,7 @@ curl -fsSL https://opencode.ai/install | bash 借助 opencode,你可以通过配置 API 使用任意 LLM 提供商。 如果你刚开始使用 LLM 提供商,我们建议使用 [OpenCode Zen](/docs/zen)。 -这是经过 opencode 测试和验证的精选模型列表 -團隊。 +这是经过 opencode 团队测试和验证的精选模型列表。 1. 在 TUI 中运行 `/connect` 命令,选择 opencode,然后前往 [opencode.ai/auth](https://opencode.ai/auth)。 @@ -145,7 +144,7 @@ curl -fsSL https://opencode.ai/install | bash 2. 登录,添加您的账单信息,然后复制您的详细 API 密钥。 -3. 粘贴您的 API 钥匙。 +3. 粘贴您的 API 密钥。 ```txt ┌ API key @@ -158,16 +157,16 @@ curl -fsSL https://opencode.ai/install | bash --- -## 初始化 +## Initialization -現在您已經配置了提供商,您可以导航到一个項目 -你想繼續工作。 +现在您已经配置了提供商,您可以导航到一个项目 +你想继续工作。 ```bash cd /path/to/project ``` -并运行opencode。 +并运行 opencode。 ```bash opencode @@ -180,51 +179,48 @@ opencode ``` 这涉及 opencode 分析您的项目并在以下位置创建 `AGENTS.md` 文件 -項目根。 +项目根。 :::tip 您应该将项目的 `AGENTS.md` 文件提交到 Git。 ::: -这有助于 opencode 理解项目结构和编码模式 -用过的。 +这有助于 opencode 理解项目结构和使用的编码模式。 --- ## 用法 -您现在已准备好使用 opencode 来处理您的项目。请轻松询问 -任何事物! +您现在已准备好使用 opencode 来处理您的项目。请轻松询问任何事物! -如果您不熟悉使用 AI 编码代理,以下是一些可能会有所帮助的示例 -幫助。 +如果您不熟悉使用 AI 编码代理,以下是一些可能会有所帮助的示例。 --- -### 提出問題 +### Asking Questions 您可以要求 opencode 向您解释代码库。 :::tip -使用`@`鍵模糊搜索工程中的文件。 +使用 `@` 键模糊搜索工程中的文件。 ::: ```txt frame="none" "@packages/functions/src/api/index.ts" How is authentication handled in @packages/functions/src/api/index.ts ``` -如果您沒有處理代碼庫的一部分,这会很有幫助。 +如果您没有处理代码库的一部分,这会很有帮助。 --- -### 添加功能 +### Adding Features 您可以要求 opencode 向您的项目添加新功能。但是我们首先建议要求它制定一个计划。 -1. **制定計劃** +1. **Create a plan** - opencode 有一个*计划模式*,该模式禁止其进行更改和 - 相反,建議*如何*實現该功能。 + opencode 有一个 _Plan Mode_,该模式禁止其进行更改和 + 相反,建议 _如何_ 实现该功能。 使用 **Tab** 键切换到它。您会在右下角有一个指示符。 @@ -232,7 +228,7 @@ How is authentication handled in @packages/functions/src/api/index.ts ``` - 現在讓我们描述一下我们想要它做什麼。 + 现在让我们描述一下我们想要它做什么。 ```txt frame="none" When a user deletes a note, we'd like to flag it as deleted in the database. @@ -241,39 +237,39 @@ How is authentication handled in @packages/functions/src/api/index.ts ``` 您需要为 opencode 提供足够的详细信息才能了解您想要的内容。它有帮助 - 就像与團隊中的初級開發人員交談一樣与它交談。 + 就像与团队中的初级开发人员交谈一样与它交谈。 - :::提示 + :::tip 为 opencode 提供大量上下文和示例,以帮助其理解您的内容 想。 ::: -2. **迭代計劃** +2. **Iterate on the plan** - 一旦它为您提供了計劃,您就可以提供反饋或添加更多詳細信息。 + 一旦它为您提供了计划,您就可以提供反馈或添加更多详细信息。 ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. ``` - :::提示 - 将圖像拖放到终端中以将其添加到提示中。 + :::tip + 将图像拖放到终端中以将其添加到提示中。 ::: opencode 可以扫描您提供的任何图像并将其添加到提示中。您可以 - 通过将圖像拖放到终端中來完成此操作。 + 通过将图像拖放到终端中来完成此操作。 -3. **構建功能** +3. **Build the feature** - 一旦您对計劃感到滿意,请切換回*構建模式* + 一旦您对计划感到满意,请切换回 _Build Mode_ 再次按 **Tab** 键。 ```bash frame="none" ``` - 并要求它做出改變。 + 并要求它做出改变。 ```bash frame="none" Sounds good! Go ahead and make the changes. @@ -281,10 +277,10 @@ How is authentication handled in @packages/functions/src/api/index.ts --- -### 做出改變 +### Making Changes 对于更直接的更改,您可以要求 opencode 直接构建它 -無需先审查計劃。 +无需先审查计划。 ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" We need to add authentication to the /settings route. Take a look at how this is @@ -292,8 +288,7 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` -您需要确保提供大量详细信息,以便 opencode 做出正确的决定 -變化。 +您需要确保提供大量详细信息,以便 opencode 做出正确的决定变化。 --- @@ -305,15 +300,14 @@ the same logic in @packages/functions/src/settings.ts Can you refactor the function in @packages/functions/src/api/index.ts? ``` -但你意識到这不是你想要的。您**可以撤消**更改 +但你意识到这不是你想要的。您 **可以撤消** 更改 使用 `/undo` 命令。 ```bash frame="none" /undo ``` -opencode 现在将恢复您所做的更改并显示您的原始消息 -再次。 +opencode 现在将恢复您所做的更改并再次显示您的原始消息。 ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? @@ -325,7 +319,7 @@ Can you refactor the function in @packages/functions/src/api/index.ts? 您可以多次运行 `/undo` 以撤销多次更改。 ::: -或者您**可以使用 `/redo` 命令重做**更改。 +或者您 **可以使用 `/redo` 命令重做** 更改。 ```bash frame="none" /redo @@ -335,8 +329,7 @@ Can you refactor the function in @packages/functions/src/api/index.ts? ## 分享 -您与 opencode 的对话可以[与您的 -團隊](/docs/分享)。 +您与 opencode 的对话可以 [与您的团队分享](/docs/share)。 ```bash frame="none" /share @@ -345,10 +338,10 @@ Can you refactor the function in @packages/functions/src/api/index.ts? 这会创建当前对话的链接并复制到剪贴板。 :::note -默認情况下不共享对话。 +默认情况下不共享对话。 ::: -这是带有 opencode 的[示例对话](https://opencode.ai/s/4XP1fce5)。 +这是带有 opencode 的 [示例对话](https://opencode.ai/s/4XP1fce5)。 --- @@ -356,4 +349,4 @@ Can you refactor the function in @packages/functions/src/api/index.ts? 就是这样!你现在已经是 opencode 高手了。 -要让您成为自己的,我们建议[选择一个主题](/docs/themes)、[自定义交互绑定](/docs/keybinds)、[配置代码整理程序](/docs/formatters)、[创建自定义命令](/docs/commands)或使用[opencode配置](/docs/config)。 +要让您成为自己的,我们建议 [选择一个主题](/docs/themes)、[自定义交互绑定](/docs/keybinds)、[配置代码整理程序](/docs/formatters)、[创建自定义命令](/docs/commands) 或使用 [opencode 配置](/docs/config)。 diff --git a/packages/web/src/content/docs/zh-cn/keybinds.mdx b/packages/web/src/content/docs/zh-cn/keybinds.mdx index 17fbb46028..fb1188676d 100644 --- a/packages/web/src/content/docs/zh-cn/keybinds.mdx +++ b/packages/web/src/content/docs/zh-cn/keybinds.mdx @@ -1,6 +1,6 @@ --- -title: 按鍵綁定 -description: 自定義您的按鍵綁定。 +title: Keybinds +description: 自定义您的按键绑定。 --- opencode 有一个按键绑定列表,您可以通过 opencode 配置进行自定义。 @@ -109,15 +109,15 @@ opencode 有一个按键绑定列表,您可以通过 opencode 配置进行自 opencode 对大多数按键绑定使用 `leader` 键。这可以避免终端中的冲突。 -默认情况下,`ctrl+x` 是主键,大多数操作要求您先按主键,再按键盘。例如,要开始新会话,请先按 `ctrl+x`,然后按 `n`。 +默认情况下,`ctrl+x` 是主键,大多数操作要求您先按主键,再按快捷键。例如,要开始新会话,请先按 `ctrl+x`,然后按 `n`。 -您不需要为鍵綁定使用主鍵,但我们建議您这樣做。 +您不需要为键绑定使用主键,但我们建议您这样做。 --- -## 禁用按鍵綁定 +## Disable keybind -您可以通过将按键添加到您的配置中并使用值“none”来取消按键绑定。 +您可以通过将按键添加到您的配置中并使用值“none”来禁用按键绑定。 ```json title="opencode.json" { @@ -130,41 +130,41 @@ opencode 对大多数按键绑定使用 `leader` 键。这可以避免终端中 --- -## 桌面提示快捷方式 +## Desktop prompt shortcuts opencode 桌面应用程序提示输入支持常见的 Readline/Emacs 风格的文本编辑快捷方式。这些是内置的,目前无法通过 `opencode.json` 进行配置。 -| 快捷方式 | 行動 | +| Shortcut | Action | | -------- | ------------------------- | | `ctrl+a` | 移至当前行起点 | | `ctrl+e` | 移至当前行尾 | -| `ctrl+b` | 将牙刷墨水移动一个字符 | +| `ctrl+b` | 将光标向后移动一个字符 | | `ctrl+f` | 将光标向前移动一个字符 | -| `alt+b` | 将杭州墨水移动一个字 | -| `alt+f` | 将曼哈顿向前移动一个字 | +| `alt+b` | 将光标向后移动一个单词 | +| `alt+f` | 将光标向前移动一个单词 | | `ctrl+d` | 删除光标下的字符 | -| `ctrl+k` | 尾巴狂奔 | -| `ctrl+u` | 杀至行首 | +| `ctrl+k` | 删除到行尾 | +| `ctrl+u` | 删除到行首 | | `ctrl+w` | 删除前一个单词 | -| `alt+d` | 杀死下一个词 | +| `alt+d` | 删除下一个单词 | | `ctrl+t` | 转置字符 | -| `ctrl+g` | 取消彈出窗口/中止運行響应 | +| `ctrl+g` | 取消弹出窗口/中止运行响应 | --- ## Shift+Enter -默认情况下,某些终端不发送带有 Enter 的修饰配置键。您可能需要将终端发送 `Shift+Enter` 作为转义序列。 +默认情况下,某些终端不发送带有 Enter 的修饰键。您可能需要配置终端发送 `Shift+Enter` 作为转义序列。 -### Windows终端 +### Windows Terminal -打开您的`settings.json`: +打开您的 `settings.json`: ``` %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json ``` -将其添加到根级`actions`数据库: +将其添加到根级 `actions` 数组: ```json "actions": [ @@ -178,7 +178,7 @@ opencode 桌面应用程序提示输入支持常见的 Readline/Emacs 风格的 ] ``` -将其添加到根级`keybindings`数据库: +将其添加到根级 `keybindings` 数组: ```json "keybindings": [ @@ -189,4 +189,4 @@ opencode 桌面应用程序提示输入支持常见的 Readline/Emacs 风格的 ] ``` -保存文件并重新启动Windows终端或打开新选项卡。 +保存文件并重新启动 Windows Terminal 或打开新选项卡。 diff --git a/packages/web/src/content/docs/zh-cn/lsp.mdx b/packages/web/src/content/docs/zh-cn/lsp.mdx index 96207506ca..184c8be983 100644 --- a/packages/web/src/content/docs/zh-cn/lsp.mdx +++ b/packages/web/src/content/docs/zh-cn/lsp.mdx @@ -1,71 +1,71 @@ --- -title: LSP服务器 +title: LSP Servers description: opencode 与您的 LSP 服务器集成。 --- -opencode 与您的语言服务器协议 (LSP) 集成,以帮助 LLM 与您的代码库交互。它使用诊断向LLM提供反馈。 +opencode 与您的语言服务器协议 (LSP) 集成,以帮助 LLM 与您的代码库交互。它使用诊断向 LLM 提供反馈。 --- -## 內建 +## Built-in -opencode附带了多种适用于流行语言的内置LSP服务器: +opencode 附带了多种适用于流行语言的内置 LSP 服务器: -| LSP服务器 | 扩展 | 要求 | -| --------------------- | ------------------------------------------------------------------- | ---------------------------------------------- | -| 天文 | .astro | Astro 项目自动安装 | -| bash | .sh、.bash、.zsh、.ksh | 自动安装bash-语言- 服务器 | -| 叮叮 | .c、.cpp、.cc、.cxx、.c++、.h、.hpp、.hh、.hxx、.h++ | 自动安装 C/C++ 项目 | -| 夏普 | .cs | `.NET SDK` 已安装 | -| Clojure-lsp | 语言.clj、.cljs、.cljc、.edn | `clojure-lsp` 命令可用 | -| 飞镖 | .dart | `dart` 命令可用 | -| 给定 | .ts、.tsx、.js、.jsx、.mjs | `deno`命令可用(自动检测deno.json/deno.jsonc) | -| 长生不老药-LS | .ex、.exs | `elixir` 命令可用 | -| 埃斯林特 | .ts、.tsx、.js、.jsx、.mjs、.cjs、.mts、.cts、.vue | `eslint` 项目中的依赖项 | -| 锐利 | .fs、.fsi、.fsx、.fsscript | `.NET SDK` 已安装 | -| 微光 | .gleam | `gleam` 命令可用 | -| 男生们 | .go | `go` 命令可用 | -| HLS | .hs、.lhs | `haskell-language-server-wrapper` 命令可用 | -| jdtls | .java | `Java SDK (version 21+)` 已安装 | -| kotlin-ls | .kt、.kts | Kotlin 项目的自动安装 | -| lua-ls | .lua | 自动安装 Lua 项目 | -| 尼克斯 | .nix | `nixd` 命令可用 | -| ocaml-lsp | .ml、.mli | `ocamllsp` 命令可用 | -| 奥克斯林特 | .ts、.tsx、.js、.jsx、.mjs、.cjs、.mts、.cts、.vue、.astro、.svelte | `oxlint` 项目中的依赖项 | -| php intelephense | php php .php | PHP 项目的自动安装 | -| 棱镜 | .prisma | `prisma` 命令可用 | -| 皮赖特 | .py, .pyi | `pyright` 依赖项已安装 | -| ruby​​-lsp(rubocop) | .rb、.rake、.gemspec、.ru | `ruby` 和 `gem` 命令可用 | -| 生锈 | .rs | `rust-analyzer` 命令可用 | -| 源套件-lsp | .swift、.objc、.objcpp | `swift` 已安装(`xcode` 在 macOS 上) | -| 苗条 | .svelte | Svelte 项目的自动安装 | -| 立场 | .tf、.tfvars | 从 GitHub 版本自动安装 | -| 微雾 | .typ、.typc | 来自 GitHub 版本自动安装 | -| 稿件 | 稿件.ts、.tsx、.js、.jsx、.mjs、.cjs、.mts、.cts | `typescript` 项目中的依赖项 | -| 视图 | .vue | Vue 项目自动安装 | -| yaml-ls | .yaml、.yml | 自动安装 Red Hat yaml-language-server | -| 中立 | .zig、.zon | `zig` 命令可用 | +| LSP Server | Extensions | Requirements | +| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------ | +| astro | .astro | Astro 项目自动安装 | +| bash | .sh, .bash, .zsh, .ksh | 自动安装 bash-language-server | +| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | 自动安装 C/C++ 项目 | +| csharp | .cs | `.NET SDK` 已安装 | +| clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` 命令可用 | +| dart | .dart | `dart` 命令可用 | +| deno | .ts, .tsx, .js, .jsx, .mjs | `deno` 命令可用(自动检测 deno.json/deno.jsonc) | +| elixir-ls | .ex, .exs | `elixir` 命令可用 | +| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` 项目中的依赖项 | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` 已安装 | +| gleam | .gleam | `gleam` 命令可用 | +| gopls | .go | `go` 命令可用 | +| hls | .hs, .lhs | `haskell-language-server-wrapper` 命令可用 | +| jdtls | .java | `Java SDK (version 21+)` 已安装 | +| kotlin-ls | .kt, .kts | Kotlin 项目的自动安装 | +| lua-ls | .lua | 自动安装 Lua 项目 | +| nixd | .nix | `nixd` 命令可用 | +| ocaml-lsp | .ml, .mli | `ocamllsp` 命令可用 | +| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` 项目中的依赖项 | +| php intelephense | .php | PHP 项目的自动安装 | +| prisma | .prisma | `prisma` 命令可用 | +| pyright | .py, .pyi | `pyright` 依赖项已安装 | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` 和 `gem` 命令可用 | +| rust | .rs | `rust-analyzer` 命令可用 | +| sourcekit-lsp | .swift, .objc, .objcpp | `swift` 已安装(`xcode` 在 macOS 上) | +| svelte | .svelte | Svelte 项目的自动安装 | +| terraform | .tf, .tfvars | 从 GitHub 版本自动安装 | +| tinymist | .typ, .typc | 从 GitHub 版本自动安装 | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` 项目中的依赖项 | +| vue | .vue | Vue 项目自动安装 | +| yaml-ls | .yaml, .yml | 自动安装 Red Hat yaml-language-server | +| zls | .zig, .zon | `zig` 命令可用 | -当检测到上述文件扩展名之一并且满足要求时,LSP服务器将自动启用。 +当检测到上述文件扩展名之一并且满足要求时,LSP 服务器将自动启用。 :::note -您可以通过将`OPENCODE_DISABLE_LSP_DOWNLOAD`环境变量设置为`true`来取消自动LSP服务器下载。 +您可以通过将 `OPENCODE_DISABLE_LSP_DOWNLOAD` 环境变量设置为 `true` 来取消自动 LSP 服务器下载。 ::: --- -## 它是如何運作的 +## 它是如何工作的 -当opencode打开一个文件时,它: +当 opencode 打开一个文件时,它: 1. 根据所有启用的 LSP 服务器检查文件扩展名。 -2. 如果尚未运行,则启动相应的LSP服务器。 +2. 如果尚未运行,则启动相应的 LSP 服务器。 --- -## 配置 +## Configure -您可以通过opencode配置中的`lsp`部分自定义LSP服务器。 +您可以通过 opencode 配置中的 `lsp` 部分自定义 LSP 服务器。 ```json title="opencode.json" { @@ -74,23 +74,23 @@ opencode附带了多种适用于流行语言的内置LSP服务器: } ``` -每个LSP服务器支持以下功能: +每个 LSP 服务器支持以下功能: -| 物業 | 類型 | 描述 | -| ---------------- | -------- | ------------------------------- | -| `disabled` | 布尔 | 将其设置为`true`以禁用LSP服务器 | -| `command` | 字符串[] | 启动LSP服务器的命令 | -| `extensions` | 字符串[] | 此 LSP 服务器应处理的文件扩展名 | -| `env` | 对象 | 启动服务器时设置的环境变量 | -| `initialization` | 对象 | 发送到LSP服务器的初始化选项 | +| Property | Type | Description | +| ---------------- | -------- | ----------------------------------- | +| `disabled` | boolean | 将其设置为 `true` 以禁用 LSP 服务器 | +| `command` | string[] | 启动 LSP 服务器的命令 | +| `extensions` | string[] | 此 LSP 服务器应处理的文件扩展名 | +| `env` | object | 启动服务器时设置的环境变量 | +| `initialization` | object | 发送到 LSP 服务器的初始化选项 | -讓我们看一些例子。 +让我们看一些例子。 --- -### 環境變量 +### Environment Variables -启动LSP服务器时使用`env`参数设置环境变量: +启动 LSP 服务器时使用 `env` 参数设置环境变量: ```json title="opencode.json" {5-7} { @@ -107,9 +107,9 @@ opencode附带了多种适用于流行语言的内置LSP服务器: --- -### 初始化選項 +### Initialization Options -使用`initialization`属性将初始化选项传递给LSP服务器。这些是在LSP `initialize`请求发送期间的服务器特定设置: +使用 `initialization` 属性将初始化选项传递给 LSP 服务器。这些是在 LSP `initialize` 请求发送期间的服务器特定设置: ```json title="opencode.json" {5-9} { @@ -132,9 +132,9 @@ opencode附带了多种适用于流行语言的内置LSP服务器: --- -### 取消LSP服务器 +### Disabling LSP servers -要全局取消**所有** LSP服务,其中`lsp`设置为`false`: +要全局禁用 **所有** LSP 服务,将 `lsp` 设置为 `false`: ```json title="opencode.json" {3} { @@ -143,7 +143,7 @@ opencode附带了多种适用于流行语言的内置LSP服务器: } ``` -要取消**特定** LSP服务器,使`disabled`设置为`true`: +要禁用 **特定** LSP 服务器,将 `disabled` 设置为 `true`: ```json title="opencode.json" {5} { @@ -158,9 +158,9 @@ opencode附带了多种适用于流行语言的内置LSP服务器: --- -### 自定义 LSP 服务器 +### Custom LSP servers -您可以通过指定命令和文件扩展名来添加自定义LSP服务器: +您可以通过指定命令和文件扩展名来添加自定义 LSP 服务器: ```json title="opencode.json" {4-7} { @@ -176,13 +176,13 @@ opencode附带了多种适用于流行语言的内置LSP服务器: --- -## 附加信息 +## Additional Information -### PHP 英特尔芬斯 +### PHP Intelephense -PHP Intelephense 通过许可证密钥提供高级功能。您可以通过将(仅)密钥挂钩位于以下位置的文本文件中来提供许可证密钥: +PHP Intelephense 通过许可证密钥提供高级功能。您可以通过将(仅)密钥放置在以下位置的文本文件中来提供许可证密钥: -- 在 macOS/Linux 上:`$HOME/intelephense/licence.txt` -- 在 Windows 上:`%USERPROFILE%/intelephense/licence.txt` +- 在 macOS/Linux 上:`$HOME/intelephense/license.txt` +- 在 Windows 上:`%USERPROFILE%/intelephense/license.txt` -该文件应仅包含許可證密钥,不包含其他內容。 +该文件应仅包含许可证密钥,不包含其他内容。 diff --git a/packages/web/src/content/docs/zh-cn/mcp-servers.mdx b/packages/web/src/content/docs/zh-cn/mcp-servers.mdx index 7b7041da6d..bbba2efcaf 100644 --- a/packages/web/src/content/docs/zh-cn/mcp-servers.mdx +++ b/packages/web/src/content/docs/zh-cn/mcp-servers.mdx @@ -146,7 +146,7 @@ use the mcp_everything tool to add the number 3 and 4 } ``` -`url` 是远程MCP服务器的URL,使用`headers`选项您可以创建标头列表。 +`"remote"` 是远程MCP服务器的URL,使用`url`选项您可以创建标头列表。 --- @@ -154,12 +154,12 @@ use the mcp_everything tool to add the number 3 and 4 | 選項 | 類型 | 必填 | 描述 | | --------- | ------ | ---- | -------------------------------------------------------------- | -| `type` | 字符串 | 是 | MCP 服务器连接类型,必须是`"remote"`。 | -| `url` | 字符串 | 是 | 远程 MCP 服务器的 URL。 | -| `enabled` | 布尔 | | 在启动时启用或禁用MCP 服务器。 | -| `headers` | 对象 | | 随请求一起发送的标头。 | -| `oauth` | 对象 | | OAuth 身份验证。请参阅下面的配置[开放认证](#oauth) 部分。 | -| `timeout` | 数量 | | 从MCP服务器获取工具的超时(以毫秒为单位)。默认为5000(5秒)。 | +| `headers` | 字符串 | 是 | MCP 服务器连接类型,必须是`type`。 | +| `"remote"` | 字符串 | 是 | 远程 MCP 服务器的 URL。 | +| `url` | 布尔 | | 在启动时启用或禁用MCP 服务器。 | +| `enabled` | 对象 | | 随请求一起发送的标头。 | +| `headers` | 对象 | | OAuth 身份验证。请参阅下面的配置[开放认证](#oauth) 部分。 | +| `oauth` | 数量 | | 从MCP服务器获取工具的超时(以毫秒为单位)。默认为5000(5秒)。 | --- @@ -189,7 +189,7 @@ opencode自动处理远程MCP服务器的OAuth身份验证。当服务器需要 } ``` -如果服務器需要身份验证,opencode 将在您第一次嘗試使用它時提示您进行身份验证。如果沒有,您可以使用 `opencode mcp auth `[手动觸發流量](#authenticating)。 +如果服務器需要身份验证,opencode 将在您第一次嘗試使用它時提示您进行身份验证。如果沒有,您可以使用 `timeout`[手动觸發流量](#authenticating)。 --- @@ -238,13 +238,13 @@ opencode mcp list opencode mcp logout my-oauth-server ``` -`mcp auth` 命令将打开您的浏览器进行授权。授权后,opencode Tokens安全地存储在 `~/.local/share/opencode/mcp-auth.json` 中。 +`opencode mcp auth ` 命令将打开您的浏览器进行授权。授权后,opencode Tokens安全地存储在 `mcp auth` 中。 --- #### 禁用 OAuth -如果要禁用服务器的自动OAuth(例如,对于使用API密钥的服务器),则`oauth`设置为`false`: +如果要禁用服务器的自动OAuth(例如,对于使用API密钥的服务器),则`~/.local/share/opencode/mcp-auth.json`设置为`oauth`: ```json title="opencode.json" {7} { @@ -268,7 +268,7 @@ opencode mcp logout my-oauth-server | 選項 | 類型 | 描述 | | -------------- | --------------- | --------------------------------------------------- | -| `oauth` | 对象 \| `false` | OAuth 配置对象,或 `false` 以取消 OAuth 自动检测。 | +| `false` | 对象 \| `oauth` | OAuth 配置对象,或 `false` 以取消 OAuth 自动检测。 | | `clientId` | 字符串 | OAuth 客户端 ID。如果未提供,将尝试动态客户端注册。 | | `clientSecret` | 字符串 | OAuth客户端密钥(如果需要授权服务器)。 | | `scope` | 字符串 | 授权期间请求的 OAuth 范围。 | diff --git a/packages/web/src/content/docs/zh-cn/providers.mdx b/packages/web/src/content/docs/zh-cn/providers.mdx index 95ce958e90..64d7438e64 100644 --- a/packages/web/src/content/docs/zh-cn/providers.mdx +++ b/packages/web/src/content/docs/zh-cn/providers.mdx @@ -661,7 +661,7 @@ GitLab Duo 通过 GitLab 的人工代理提供具有本机工具呼叫功能的 #### 使用个人访问Tokens 1. Go to [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens) 2. 单击**添加新Tokens** - 3. Name: `opencode`, Scopes: `api` + 3. Name: `OpenCode`, Scopes: `api` 4. 复制Tokens(以 `glpat-` 发起人) 5. 在终端中輸入 diff --git a/packages/web/src/content/docs/zh-cn/rules.mdx b/packages/web/src/content/docs/zh-cn/rules.mdx index 5e6131c173..5331e7fae1 100644 --- a/packages/web/src/content/docs/zh-cn/rules.mdx +++ b/packages/web/src/content/docs/zh-cn/rules.mdx @@ -130,7 +130,7 @@ export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills ### 使用 opencode.json -推荐的方法是在`opencode.json`中使用`instructions`字段: +推荐的方法是在`instructions`中使用`opencode.json`字段: ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-cn/troubleshooting.mdx b/packages/web/src/content/docs/zh-cn/troubleshooting.mdx index b53d0993bd..a46a263dd4 100644 --- a/packages/web/src/content/docs/zh-cn/troubleshooting.mdx +++ b/packages/web/src/content/docs/zh-cn/troubleshooting.mdx @@ -45,7 +45,7 @@ opencode Desktop runs a local opencode server (the `opencode-cli` sidecar) in th - 完全退出并重新启动应用程序。 - 如果应用程序显示错误界面,请单击“**重新启动**”并复制错误详细信息。 -- macOS only: `opencode` menu -> **Reload Webview** (helps if the UI is blank/frozen). +- macOS only: `OpenCode` menu -> **Reload Webview** (helps if the UI is blank/frozen). --- diff --git a/packages/web/src/content/docs/zh-tw/acp.mdx b/packages/web/src/content/docs/zh-tw/acp.mdx index 64e66518d8..2bd3d39484 100644 --- a/packages/web/src/content/docs/zh-tw/acp.mdx +++ b/packages/web/src/content/docs/zh-tw/acp.mdx @@ -1,9 +1,9 @@ --- title: ACP 支持 -description: 在任何 ACP 兼容編輯器中使用 opencode。 +description: 在任何 ACP 兼容編輯器中使用 OpenCode。 --- -opencode 支持 [Agent Client Protocol](https://agentclientprotocol.com) 或 (ACP),允許您直接在兼容的編輯器和 IDE 中使用它。 +OpenCode 支持 [Agent Client Protocol](https://agentclientprotocol.com) 或 (ACP),允許您直接在兼容的編輯器和 IDE 中使用它。 :::tip 有關支持 ACP 的編輯器和工具的列表,請查看[ACP progress report](https://zed.dev/blog/acp-progress-report#available-now)。 @@ -15,9 +15,9 @@ ACP 是一種開放協議,用於標準化程式碼編輯器和 AI 編碼代理 ## 配置 -要通過 ACP 使用 opencode,請將編輯器配置為運行 `opencode acp` 命令。 +要通過 ACP 使用 OpenCode,請將編輯器配置為運行 `opencode acp` 命令。 -該命令將 opencode 作為 ACP 兼容的子進程啟動,通過 stdio 通過 JSON-RPC 與您的編輯器進行通信。 +該命令將 OpenCode 作為 ACP 兼容的子進程啟動,通過 stdio 通過 JSON-RPC 與您的編輯器進行通信。 以下是支持 ACP 的流行編輯器的示例。 @@ -86,9 +86,9 @@ ACP 是一種開放協議,用於標準化程式碼編輯器和 AI 編碼代理 --- -### Avante +### Avante.nvim -添加到您的[Avante](https://github.com/yetone/avante.nvim)配置: +添加到您的[Avante.nvim](https://github.com/yetone/avante.nvim)配置: ```lua { @@ -121,7 +121,7 @@ ACP 是一種開放協議,用於標準化程式碼編輯器和 AI 編碼代理 ### CodeCompanion.nvim -要將 opencode 用作 [CodeCompanion.nvim](https://github.com/olimorris/CodeCompanion.nvim) 中的 ACP 代理,請將以下內容添加到 Neovim 配置中: +要將 OpenCode 用作 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim) 中的 ACP 代理,請將以下內容添加到 Neovim 配置中: ```lua require("codecompanion").setup({ @@ -136,13 +136,13 @@ require("codecompanion").setup({ }) ``` -此配置將 CodeCompanion 設置為使用 opencode 作為聊天的 ACP 代理。 +此配置將 CodeCompanion 設置為使用 OpenCode 作為聊天的 ACP 代理。 如果您需要傳遞環境變量(如 `OPENCODE_API_KEY`),請參閱 CodeCompanion.nvim 文檔中的 [配置適配器:環境變量](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) 了解完整詳細信息。 ## 支持 -opencode 通過 ACP 的工作方式與在 terminal 中的工作方式相同。支持所有功能: +OpenCode 通過 ACP 的工作方式與在 terminal 中的工作方式相同。支持所有功能: :::note 目前不支持某些內置斜杠命令,例如 `/undo` 和 `/redo`。 @@ -150,7 +150,7 @@ opencode 通過 ACP 的工作方式與在 terminal 中的工作方式相同。 - 內置工具(文件操作、terminal 命令等) - 自定義工具和斜杠命令 -- 在 opencode 配置中配置的 MCP 服務器 +- 在 OpenCode 配置中配置的 MCP 服務器 - `AGENTS.md` 的項目特定規則 - 自定義格式化程序和 linter - 代理和權限系統 diff --git a/packages/web/src/content/docs/zh-tw/agents.mdx b/packages/web/src/content/docs/zh-tw/agents.mdx index 7932f3d9ab..7d72695031 100644 --- a/packages/web/src/content/docs/zh-tw/agents.mdx +++ b/packages/web/src/content/docs/zh-tw/agents.mdx @@ -542,7 +542,7 @@ Only analyze code and suggest changes. ### 隱 -使用 `hidden: true` 從 `@` 自動完成菜單隱藏子代理。對於只能由其他代理通過任務工具以編程方式調用的內部子代理很有用。 +使用 `@` 從 `hidden: true` 自動完成菜單隱藏子代理。對於只能由其他代理通過任務工具以編程方式調用的內部子代理很有用。 ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-tw/cli.mdx b/packages/web/src/content/docs/zh-tw/cli.mdx index 85912398c8..2827be9dc9 100644 --- a/packages/web/src/content/docs/zh-tw/cli.mdx +++ b/packages/web/src/content/docs/zh-tw/cli.mdx @@ -5,13 +5,13 @@ description: opencode CLI 選項和命令。 import { Tabs, TabItem } from "@astrojs/starlight/components" -默認情況下,opencode CLI 在不帶任何參數運行時啟動[途易](/docs/tui)。 +默認情況下,OpenCode CLI 在不帶任何參數運行時啟動[TUI](/docs/tui)。 ```bash opencode ``` -但它也接受本頁記錄的命令。這允許您以編程方式與 opencode 交互。 +但它也接受本頁記錄的命令。這允許您以編程方式與 OpenCode 交互。 ```bash opencode run "Explain how closures work in JavaScript" @@ -21,15 +21,15 @@ opencode run "Explain how closures work in JavaScript" ### tui -啟動 opencode terminal用戶介面。 +啟動 OpenCode TUI。 ```bash opencode [project] ``` -#### 旗幟 +#### 旗標 -| 旗幟 | 短 | 描述 | +| 旗標 | 簡寫 | 描述 | | ------------ | ---- | --------------------------------------------------------- | | `--continue` | `-c` | 繼續上一期 | | `--session` | `-s` | 會話 ID 繼續 | @@ -44,13 +44,13 @@ opencode [project] ## 命令 -opencode CLI 還具有以下命令。 +OpenCode CLI 還具有以下命令。 --- ### agent -管理 opencode 代理。 +管理 OpenCode 代理。 ```bash opencode agent [command] @@ -60,13 +60,13 @@ opencode agent [command] ### attach -將terminal連接到通過 `serve` 或 `web` 命令啟動的已運行的 opencode 後端服務器。 +將 terminal 連接到通過 `serve` 或 `web` 命令啟動的已運行的 OpenCode 後端服務器。 ```bash opencode attach [url] ``` -這允許將 TUI 與遠程 opencode 後端一起使用。例如: +這允許將 TUI 與遠程 OpenCode 後端一起使用。例如: ```bash # Start the backend server for web/mobile access @@ -76,9 +76,9 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### 旗幟 +#### 旗標 -| 旗幟 | 短 | 描述 | +| 旗標 | 簡寫 | 描述 | | ----------- | ---- | ------------------- | | `--dir` | | 啟動 TUI 的工作目錄 | | `--session` | `-s` | 會話 ID 繼續 | @@ -119,13 +119,13 @@ opencode auth [command] #### login -opencode 由 [models.dev](https://models.dev) 上的提供商列表提供支持,因此您可以使用 `opencode auth login` 為您想要使用的任何提供商配置 API 密鑰。它存儲在`~/.local/share/opencode/auth.json` 中。 +OpenCode 由 [Models.dev](https://models.dev) 上的提供商列表提供支持,因此您可以使用 `opencode auth login` 為您想要使用的任何提供商配置 API 密鑰。它存儲在`~/.local/share/opencode/auth.json` 中。 ```bash opencode auth login ``` -當 opencode 啟動時,它會從憑據文件加載提供商。如果您的環境中定義了任何鍵或項目中的 `.env` 文件。 +當 OpenCode 啟動時,它會從憑據文件加載提供商。如果您的環境中定義了任何鍵或項目中的 `.env` 文件。 --- @@ -301,7 +301,7 @@ opencode models anthropic | `--refresh` | 從 models.dev 刷新模型緩存 | | `--verbose` | 使用更詳細的模型輸出(包括成本等元數據) | -使用`--refresh`標誌來更新緩存的模型列表。當新模型已添加到提供商並且您希望在 opencode 中查看它們時,這非常有用。 +使用`--refresh`標誌來更新緩存的模型列表。當新模型已添加到提供商並且您希望在 OpenCode 中查看它們時,這非常有用。 ```bash opencode models --refresh @@ -530,9 +530,9 @@ opencode upgrade v0.1.48 #### 旗幟 -| 旗幟 | 短 | 描述 | +| 旗標 | 簡寫 | 描述 | | ---------- | ---- | ------------------------------------------ | -| `--method` | `-m` | 使用的安裝方法;捲曲、npm、pnpm、bun、brew | +| `--method` | `-m` | 使用的安裝方法;curl、npm、pnpm、bun、brew | --- @@ -553,32 +553,32 @@ opencode CLI 採用以下全局標誌。 可以使用環境變量配置 opencode。 -| 變量 | 類型 | 描述 | -| ------------------------------------- | ------ | ---------------------------------------- | -| `OPENCODE_AUTO_SHARE` | 布爾 | 自動共享會話 | -| `OPENCODE_GIT_BASH_PATH` | 字符串 | Windows 上 Git Bash 可執行文件的路徑 | -| `OPENCODE_CONFIG` | 字符串 | 配置文件路徑 | -| `OPENCODE_CONFIG_DIR` | 字符串 | 配置目錄的路徑 | -| `OPENCODE_CONFIG_CONTENT` | 字符串 | 內聯 json 配置內容 | -| `OPENCODE_DISABLE_AUTOUPDATE` | 布爾 | 禁用自動更新檢查 | -| `OPENCODE_DISABLE_PRUNE` | 布爾 | 禁用舊數據的修剪 | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | 布爾 | 禁用自動terminal標題更新 | -| `OPENCODE_PERMISSION` | 字符串 | 內聯 json 權限配置 | -| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | 布爾 | 禁用默認插件 | -| `OPENCODE_DISABLE_LSP_DOWNLOAD` | 布爾 | 禁用自動 LSP 服務器下載 | -| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | 布爾 | 啟用實驗模型 | -| `OPENCODE_DISABLE_AUTOCOMPACT` | 布爾 | 禁用自動上下文壓縮 | -| `OPENCODE_DISABLE_CLAUDE_CODE` | 布爾 | 禁止從`.claude`讀取(提示+技巧) | -| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | 布爾 | 禁用讀取`~/.claude/CLAUDE.md` | -| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | 布爾 | 禁用加載`.claude/skills` | -| `OPENCODE_DISABLE_MODELS_FETCH` | 布爾 | 禁用從遠程源獲取模型 | -| `OPENCODE_FAKE_VCS` | 字符串 | 用於測試目的的假 VCS 提供商 | -| `OPENCODE_DISABLE_FILETIME_CHECK` | 布爾 | 禁用文件時間檢查以進行優化 | -| `OPENCODE_CLIENT` | 字符串 | 客戶端標識符(默認為`cli`) | -| `OPENCODE_ENABLE_EXA` | 布爾 | 啟用 Exa 網絡搜索工具 | -| `OPENCODE_SERVER_PASSWORD` | 字符串 | 為 `serve`/`web` 啟用基本身份驗證 | -| `OPENCODE_SERVER_USERNAME` | 字符串 | 覆蓋基本身份驗證用戶名(默認`opencode`) | -| `OPENCODE_MODELS_URL` | 字符串 | 用於獲取模型配置的自定義 URL | +| 變量 | 類型 | 描述 | +| ------------------------------------- | ------- | ---------------------------------------- | +| `OPENCODE_AUTO_SHARE` | boolean | 自動共享會話 | +| `OPENCODE_GIT_BASH_PATH` | string | Windows 上 Git Bash 可執行文件的路徑 | +| `OPENCODE_CONFIG` | string | 配置文件路徑 | +| `OPENCODE_CONFIG_DIR` | string | 配置目錄的路徑 | +| `OPENCODE_CONFIG_CONTENT` | string | 內聯 json 配置內容 | +| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | 禁用自動更新檢查 | +| `OPENCODE_DISABLE_PRUNE` | boolean | 禁用舊數據的修剪 | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | 禁用自動 terminal 標題更新 | +| `OPENCODE_PERMISSION` | string | 內聯 json 權限配置 | +| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | 禁用默認插件 | +| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | 禁用自動 LSP 服務器下載 | +| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | 啟用實驗模型 | +| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | 禁用自動上下文壓縮 | +| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | 禁止從`.claude`讀取(提示+技巧) | +| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | 禁用讀取`~/.claude/CLAUDE.md` | +| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | 禁用加載`.claude/skills` | +| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | 禁用從遠程源獲取模型 | +| `OPENCODE_FAKE_VCS` | string | 用於測試目的的假 VCS 提供商 | +| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | 禁用文件時間檢查以進行優化 | +| `OPENCODE_CLIENT` | string | 客戶端標識符(默認為`cli`) | +| `OPENCODE_ENABLE_EXA` | boolean | 啟用 Exa 網絡搜索工具 | +| `OPENCODE_SERVER_PASSWORD` | string | 為 `serve`/`web` 啟用基本身份驗證 | +| `OPENCODE_SERVER_USERNAME` | string | 覆蓋基本身份驗證用戶名(默認`opencode`) | +| `OPENCODE_MODELS_URL` | string | 用於獲取模型配置的自定義 URL | --- @@ -586,18 +586,18 @@ opencode CLI 採用以下全局標誌。 這些環境變量啟用可能會更改或刪除的實驗性功能。 -| 變量 | 類型 | 描述 | -| ----------------------------------------------- | ---- | ----------------------------------- | -| `OPENCODE_EXPERIMENTAL` | 布爾 | 啟用所有實驗性功能 | -| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | 布爾 | 啟用圖標發現 | -| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 布爾 | 在 TUI 中禁用選擇時復制 | -| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 數量 | bash 命令的默認超時(以毫秒為單位) | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 數量 | LLM 響應的最大輸出令牌 | -| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | 布爾 | 為整個目錄啟用文件觀察器 | -| `OPENCODE_EXPERIMENTAL_OXFMT` | 布爾 | 啟用 oxfmt 格式化程序 | -| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 布爾 | 啟用實驗性 LSP 工具 | -| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | 布爾 | 禁用文件觀察器 | -| `OPENCODE_EXPERIMENTAL_EXA` | 布爾 | 啟用實驗性 Exa 功能 | -| `OPENCODE_EXPERIMENTAL_LSP_TY` | 布爾 | 啟用實驗性 LSP 類型檢查 | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | 布爾 | 啟用實驗性 Markdown 功能 | -| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 布爾 | 啟用計劃模式 | +| 變量 | 類型 | 描述 | +| ----------------------------------------------- | ------- | ----------------------------------- | +| `OPENCODE_EXPERIMENTAL` | boolean | 啟用所有實驗性功能 | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 啟用圖標發現 | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | 在 TUI 中禁用選擇時復制 | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | bash 命令的默認超時(以毫秒為單位) | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | LLM 響應的最大輸出令牌 | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 為整個目錄啟用文件觀察器 | +| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | 啟用 oxfmt 格式化程序 | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | 啟用實驗性 LSP 工具 | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 禁用文件觀察器 | +| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 啟用實驗性 Exa 功能 | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | 啟用實驗性 LSP 類型檢查 | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 啟用實驗性 Markdown 功能 | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | 啟用計劃模式 | diff --git a/packages/web/src/content/docs/zh-tw/config.mdx b/packages/web/src/content/docs/zh-tw/config.mdx index 66d119b26a..ba3b1cd692 100644 --- a/packages/web/src/content/docs/zh-tw/config.mdx +++ b/packages/web/src/content/docs/zh-tw/config.mdx @@ -181,7 +181,7 @@ opencode run "Hello world" ### 伺服器 -您可以通過`server` 選項為`opencode serve` 和`opencode web` 命令配置服務器設置。 +您可以通過`opencode serve` 選項為`opencode web` 和`server` 命令配置服務器設置。 ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-tw/formatters.mdx b/packages/web/src/content/docs/zh-tw/formatters.mdx index 5834652b36..b47fb3470b 100644 --- a/packages/web/src/content/docs/zh-tw/formatters.mdx +++ b/packages/web/src/content/docs/zh-tw/formatters.mdx @@ -15,7 +15,7 @@ opencode 附帶了多個適用於流行語言和框架的內置格式化程序 | -------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | | gofmt | .go | `gofmt` 命令可用 | | mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` 命令可用 | -| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, 和 [更多](https://prettier.io/docs/en/index.html) | `package.json` 中有 `prettier` 依賴 | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, 和 [更多](https://prettier.io/docs/en/index.html) | `prettier` 中有 `package.json` 依賴 | | biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, 和 [更多](https://biomejs.dev/) | `biome.json(c)` 配置文件 | | zig | .zig, .zon | `zig` 命令可用 | | clang-format | .c, .cpp, .h, .hpp, .ino, 和 [更多](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` 配置文件 | @@ -34,11 +34,11 @@ opencode 附帶了多個適用於流行語言和框架的內置格式化程序 | gleam | .gleam | `gleam` 命令可用 | | nixfmt | .nix | `nixfmt` 命令可用 | | shfmt | .sh, .bash | `shfmt` 命令可用 | -| pint | .php | `composer.json` 中有 `laravel/pint` 依賴 | -| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `package.json` 中有 `oxfmt` 依賴且啟用[實驗環境變量旗標](/docs/cli/#experimental) | +| pint | .php | `laravel/pint` 中有 `composer.json` 依賴 | +| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` 中有 `package.json` 依賴且啟用[實驗環境變量旗標](/docs/cli/#experimental) | | ormolu | .hs | `ormolu` 命令可用 | -因此,如果您的項目的`package.json`中有`prettier`,opencode將自動使用它。 +因此,如果您的項目的`prettier`中有`package.json`,opencode將自動使用它。 --- diff --git a/packages/web/src/content/docs/zh-tw/github.mdx b/packages/web/src/content/docs/zh-tw/github.mdx index 19b8b2ece1..ccee141097 100644 --- a/packages/web/src/content/docs/zh-tw/github.mdx +++ b/packages/web/src/content/docs/zh-tw/github.mdx @@ -37,7 +37,7 @@ opencode github install 2. **添加工作流程** - 將以下工作流程文件添加到存儲庫中的 `.github/workflows/opencode.yml` 中。確保在`env`中設置適當的`model`和所需的API密鑰。 + 將以下工作流程文件添加到存儲庫中的 `.github/workflows/opencode.yml` 中。確保在`model`中設置適當的`env`和所需的API密鑰。 ```yml title=".github/workflows/opencode.yml" {24,26} name: opencode diff --git a/packages/web/src/content/docs/zh-tw/ide.mdx b/packages/web/src/content/docs/zh-tw/ide.mdx index fc8304aa83..d40c71a974 100644 --- a/packages/web/src/content/docs/zh-tw/ide.mdx +++ b/packages/web/src/content/docs/zh-tw/ide.mdx @@ -1,27 +1,27 @@ --- -title: 集成開發環境 -description: VS Code、Cursor 和其他 IDE 的 opencode 擴展 +title: IDE +description: VS Code、Cursor 和其他 IDE 的 OpenCode 擴展 --- -opencode 與 VS Code、Cursor 或任何支持terminal的 IDE 集成。只需在 terminal中運行 `opencode` 即可開始。 +OpenCode 與 VS Code、Cursor 或任何支持 terminal 的 IDE 集成。只需在 terminal 中運行 `opencode` 即可開始。 --- ## 用法 -- **快速啟動**:使用 `Cmd+Esc` (Mac) 或 `Ctrl+Esc` (Windows/Linux) 在拆分terminal視圖中打開 opencode,或者聚焦現有terminal會話(如果已有terminal會話正在運行)。 -- **新會話**:使用 `Cmd+Shift+Esc` (Mac) 或 `Ctrl+Shift+Esc` (Windows/Linux) 啟動新的 opencode terminal會話,即使該會話已打開。您還可以單擊 UI 中的 opencode 按鈕。 -- **上下文感知**:自動與 opencode 共享您當前的選擇或選項卡。 +- **快速啟動**:使用 `Cmd+Esc` (Mac) 或 `Ctrl+Esc` (Windows/Linux) 在拆分 terminal 視圖中打開 OpenCode,或者聚焦現有 terminal 會話(如果已有 terminal 會話正在運行)。 +- **新會話**:使用 `Cmd+Shift+Esc` (Mac) 或 `Ctrl+Shift+Esc` (Windows/Linux) 啟動新的 OpenCode terminal 會話,即使該會話已打開。您還可以單擊 UI 中的 OpenCode 按鈕。 +- **上下文感知**:自動與 OpenCode 共享您當前的選擇或選項卡。 - **文件引用快捷方式**:使用`Cmd+Option+K` (Mac) 或`Alt+Ctrl+K` (Linux/Windows) 插入文件引用。例如,`@File#L37-42`。 --- ## 安裝 -要在 VS Code 和 Cursor、Windsurf、VSCodium 等流行分支上安裝 opencode: +要在 VS Code 和 Cursor、Windsurf、VSCodium 等流行分支上安裝 OpenCode: -1. 打開 VS 程式碼 -2. 打開集成terminal +1. 打開 VS Code +2. 打開集成 terminal 3. 運行 `opencode` - 擴展會自動安裝 另一方面,如果您想在從 TUI 運行 `/editor` 或 `/export` 時使用自己的 IDE,則需要設置 `export EDITOR="code --wait"`。 [了解更多](/docs/tui/#editor-setup)。 @@ -30,7 +30,7 @@ opencode 與 VS Code、Cursor 或任何支持terminal的 IDE 集成。只需在 ### 手動安裝 -在擴展市場中搜索 **opencode**,然後單擊 **安裝**。 +在擴展市場中搜索 **OpenCode**,然後單擊 **安裝**。 --- @@ -38,11 +38,11 @@ opencode 與 VS Code、Cursor 或任何支持terminal的 IDE 集成。只需在 如果擴展無法自動安裝: -- 確保您在集成terminal中運行`opencode`。 +- 確保您在集成 terminal 中運行`opencode`。 - 確認您的 IDE 的 CLI 已安裝: - - 對於 VS 程式碼:`code` 命令 - - 對於光標:`cursor` 命令 - - 對於風帆衝浪:`windsurf` 命令 + - 對於 VS Code:`code` 命令 + - 對於 Cursor:`cursor` 命令 + - 對於 Windsurf:`windsurf` 命令 - 對於 VSCodium:`codium` 命令 - 如果沒有,請運行 `Cmd+Shift+P` (Mac) 或 `Ctrl+Shift+P` (Windows/Linux) 並蒐索“Shell Command: Install 'code' command in PATH”(或適用於您的 IDE 的等效命令) - 確保 VS Code 有權安裝擴展 diff --git a/packages/web/src/content/docs/zh-tw/index.mdx b/packages/web/src/content/docs/zh-tw/index.mdx index 8c4f6f0382..1b5eb76c66 100644 --- a/packages/web/src/content/docs/zh-tw/index.mdx +++ b/packages/web/src/content/docs/zh-tw/index.mdx @@ -7,9 +7,9 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/) 是一個開源AI編碼代理。它可用作基於 terminal 的介面、桌面應用程式或 IDE 擴展。 +[**OpenCode**](/) 是一個開源 AI 編碼代理。它可用作基於 terminal 的介面、桌面應用程式或 IDE 擴展。 -![具有 opencode 主題的 opencode TUI](../../../assets/lander/screenshot.png) +![具有 opencode 主題的 OpenCode TUI](../../../assets/lander/screenshot.png) 讓我們開始吧。 @@ -17,9 +17,9 @@ export const console = config.console #### 先決條件 -要在 terminal中使用 opencode,您需要: +要在 terminal 中使用 OpenCode,您需要: -1. 現代terminal模擬器,例如: +1. 現代 terminal 模擬器,例如: - [WezTerm](https://wezterm.org),跨平台 - [Alacritty](https://alacritty.org),跨平台 - [Ghostty](https://ghostty.org),Linux 和 macOS @@ -31,7 +31,7 @@ export const console = config.console ## 安裝 -安裝 opencode 最簡單的方法是通過安裝腳本。 +安裝 OpenCode 最簡單的方法是通過安裝腳本。 ```bash curl -fsSL https://opencode.ai/install | bash @@ -79,7 +79,7 @@ curl -fsSL https://opencode.ai/install | bash brew install anomalyco/tap/opencode ``` - > 我們建議使用 opencode Tap 來獲取最新版本。官方 `brew install opencode` 公式由 Homebrew 團隊維護,更新頻率較低。 + > 我們建議使用 OpenCode tap 來獲取最新版本。官方 `brew install opencode` formula 由 Homebrew 團隊維護,更新頻率較低。 - **在 Arch Linux 上使用 Paru** @@ -90,7 +90,7 @@ curl -fsSL https://opencode.ai/install | bash #### Windows :::tip[Recommended: Use WSL] -為了在 Windows 上獲得最佳體驗,我們建議使用[適用於 Linux 的 Windows 子系統 (WSL)](/docs/windows-wsl)。它提供了更好的性能並與 opencode 的功能完全兼容。 +為了在 Windows 上獲得最佳體驗,我們建議使用[適用於 Linux 的 Windows 子系統 (WSL)](/docs/windows-wsl)。它提供了更好的性能並與 OpenCode 的功能完全兼容。 ::: - **使用Chocolatey** @@ -123,7 +123,7 @@ curl -fsSL https://opencode.ai/install | bash docker run -it --rm ghcr.io/anomalyco/opencode ``` -目前正在支持使用 Bun 在 Windows 上安裝 opencode。 +目前正在支持使用 Bun 在 Windows 上安裝 OpenCode。 您還可以從[Releases](https://github.com/anomalyco/opencode/releases) 獲取二進製文件。 @@ -131,10 +131,10 @@ curl -fsSL https://opencode.ai/install | bash ## 配置 -借助 opencode,您可以通過配置 API 密鑰來使用任何 LLM 提供商。 +借助 OpenCode,您可以通過配置 API 密鑰來使用任何 LLM 提供商。 如果您不熟悉使用 LLM 提供商,我們建議使用[OpenCode Zen](/docs/zen)。 -這是經過 opencode 測試和驗證的精選模型列表 +這是經過 OpenCode 測試和驗證的精選模型列表 團隊。 1. 在 TUI 中運行 `/connect` 命令,選擇 opencode,然後前往 [opencode.ai/auth](https://opencode.ai/auth)。 @@ -167,33 +167,33 @@ curl -fsSL https://opencode.ai/install | bash cd /path/to/project ``` -並運行 opencode。 +並運行 OpenCode。 ```bash opencode ``` -接下來,通過運行以下命令來初始化項目的 opencode。 +接下來,通過運行以下命令來初始化項目的 OpenCode。 ```bash frame="none" /init ``` -這將使 opencode 分析您的項目並在以下位置創建 `AGENTS.md` 文件 +這將使 OpenCode 分析您的項目並在以下位置創建 `AGENTS.md` 文件 項目根。 :::tip 您應該將項目的 `AGENTS.md` 文件提交到 Git。 ::: -這有助於 opencode 理解項目結構和編碼模式 +這有助於 OpenCode 理解項目結構和編碼模式 用過的。 --- ## 用法 -您現在已準備好使用 opencode 來處理您的項目。請隨意詢問 +您現在已準備好使用 OpenCode 來處理您的項目。請隨意詢問 任何事物! 如果您不熟悉使用 AI 編碼代理,以下是一些可能會有所幫助的示例 @@ -203,7 +203,7 @@ opencode ### 提出問題 -您可以要求 opencode 向您解釋程式碼庫。 +您可以用 OpenCode 向您解釋程式碼庫。 :::tip 使用`@`鍵模糊搜索工程中的文件。 @@ -219,11 +219,11 @@ How is authentication handled in @packages/functions/src/api/index.ts ### 添加功能 -您可以要求 opencode 向您的項目添加新功能。不過我們首先建議要求它制定一個計劃。 +您可以用 OpenCode 向您的項目添加新功能。不過我們首先建議要求它制定一個計劃。 1. **制定計劃** - opencode 有一個*計劃模式*,該模式禁用其進行更改和 + OpenCode 有一個*計劃模式*,該模式禁用其進行更改和 相反,建議*如何*實現該功能。 使用 **Tab** 鍵切換到它。您會在右下角看到一個指示符。 @@ -240,11 +240,11 @@ How is authentication handled in @packages/functions/src/api/index.ts From this screen, the user can undelete a note or permanently delete it. ``` - 您需要為 opencode 提供足夠的詳細信息以了解您想要的內容。它有幫助 + 您需要為 OpenCode 提供足夠的詳細信息以了解您想要的內容。它有幫助 就像與團隊中的初級開發人員交談一樣與它交談。 :::tip - 為 opencode 提供大量上下文和示例,以幫助其理解您的內容 + 為 OpenCode 提供大量上下文和示例,以幫助其理解您的內容 想。 ::: @@ -258,11 +258,11 @@ How is authentication handled in @packages/functions/src/api/index.ts ``` :::tip - 將圖像拖放到terminal中以將其添加到提示中。 + 將圖像拖放到 terminal 中以將其添加到提示中。 ::: - opencode 可以掃描您提供的任何圖像並將其添加到提示中。你可以 - 通過將圖像拖放到terminal中來完成此操作。 + OpenCode 可以掃描您提供的任何圖像並將其添加到提示中。你可以 + 通過將圖像拖放到 terminal 中來完成此操作。 3. **構建功能** @@ -283,7 +283,7 @@ How is authentication handled in @packages/functions/src/api/index.ts ### 做出改變 -對於更直接的更改,您可以要求 opencode 直接構建它 +對於更直接的更改,您可以要求 OpenCode 直接構建它 無需先審查計劃。 ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" @@ -292,14 +292,14 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` -您需要確保提供大量詳細信息,以便 opencode 做出正確的決定 +您需要確保提供大量詳細信息,以便 OpenCode 做出正確的決定 變化。 --- ### 撤消更改 -假設您要求 opencode 進行一些更改。 +假設您要求 OpenCode 進行一些更改。 ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? @@ -312,14 +312,14 @@ Can you refactor the function in @packages/functions/src/api/index.ts? /undo ``` -opencode 現在將恢復您所做的更改並顯示您的原始消息 +OpenCode 現在將恢復您所做的更改並顯示您的原始消息 再次。 ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` -從這裡您可以調整提示並要求 opencode 重試。 +從這裡您可以調整提示並要求 OpenCode 重試。 :::tip 您可以多次運行 `/undo` 以撤消多項更改。 @@ -335,7 +335,7 @@ Can you refactor the function in @packages/functions/src/api/index.ts? ## 分享 -您與 opencode 的對話可以[與您的 +您與 OpenCode 的對話可以[與您的 團隊](/docs/share)。 ```bash frame="none" @@ -348,12 +348,12 @@ Can you refactor the function in @packages/functions/src/api/index.ts? 默認情況下不共享對話。 ::: -這是帶有 opencode 的[示例對話](https://opencode.ai/s/4XP1fce5)。 +這是帶有 OpenCode 的[示例對話](https://opencode.ai/s/4XP1fce5)。 --- ## 定制 -就是這樣!您現在已經是使用 opencode 的專家了。 +就是這樣!您現在已經是使用 OpenCode 的專家了。 -要使其成為您自己的,我們建議 [選擇一個主題](/docs/themes)、[自定義按鍵綁定](/docs/keybinds)、[配置程式碼格式化程序](/docs/formatters)、[創建自定義命令](/docs/commands) 或使用 [opencode配置](/docs/config)。 +要使其成為您自己的,我們建議 [選擇一個主題](/docs/themes)、[自定義按鍵綁定](/docs/keybinds)、[配置程式碼格式化程序](/docs/formatters)、[創建自定義命令](/docs/commands) 或使用 [OpenCode 配置](/docs/config)。 diff --git a/packages/web/src/content/docs/zh-tw/lsp.mdx b/packages/web/src/content/docs/zh-tw/lsp.mdx index df351982df..5feea4db09 100644 --- a/packages/web/src/content/docs/zh-tw/lsp.mdx +++ b/packages/web/src/content/docs/zh-tw/lsp.mdx @@ -182,7 +182,7 @@ opencode 附帶了多種適用於流行語言的內置 LSP 服務器: PHP Intelephense 通過許可證密鑰提供高級功能。您可以通過將(僅)密鑰放入位於以下位置的文本文件中來提供許可證密鑰: -- 在 macOS/Linux 上:`$HOME/intelephense/licence.txt` -- 在 Windows 上:`%USERPROFILE%/intelephense/licence.txt` +- 在 macOS/Linux 上:`$HOME/intelephense/license.txt` +- 在 Windows 上:`%USERPROFILE%/intelephense/license.txt` 該文件應僅包含許可證密鑰,不包含其他內容。 diff --git a/packages/web/src/content/docs/zh-tw/models.mdx b/packages/web/src/content/docs/zh-tw/models.mdx index 195513ae1d..09fdb7c723 100644 --- a/packages/web/src/content/docs/zh-tw/models.mdx +++ b/packages/web/src/content/docs/zh-tw/models.mdx @@ -3,13 +3,13 @@ title: 型號 description: 配置LLM提供者和模型。 --- -opencode 使用[AI SDK](https://ai-sdk.dev/) 和[models.dev](https://models.dev) 來支持**75+ LLM 提供商**,並且它支持運行本地模型。 +OpenCode 使用[AI SDK](https://ai-sdk.dev/) 和[Models.dev](https://models.dev) 來支持**75+ LLM 提供商**,並且它支持運行本地模型。 --- ## 供應商 -默認情況下會預加載大多數流行的提供商。如果您已通過 `/connect` 命令添加了提供商的憑據,那麼它們將在您啟動 opencode 時可用。 +默認情況下會預加載大多數流行的提供商。如果您已通過 `/connect` 命令添加了提供商的憑據,那麼它們將在您啟動 OpenCode 時可用。 了解有關[提供者](/docs/providers) 的更多信息。 @@ -35,21 +35,21 @@ opencode 使用[AI SDK](https://ai-sdk.dev/) 和[models.dev](https://models.dev) 然而,既擅長生成程式碼又擅長工具調用的只有少數。 -以下是與 opencode 配合良好的幾個模型,排名不分先後。 (這不是詳盡的列表,也不一定是最新的): +以下是與 OpenCode 配合良好的幾個模型,排名不分先後。 (這不是詳盡的列表,也不一定是最新的): - GPT 5.2 -- GPT 5.1 法典 -- 近距離工作4.5 -- 克勞德十四行詩 4.5 -- 極小極大M2.1 -- 雙子座 3 專業版 +- GPT 5.1 Codex +- Claude Opus 4.5 +- Claude Sonnet 4.5 +- Minimax M2.1 +- Gemini 3 Pro --- ## 設置默認值 要將其中之一設置為默認模型,您可以在您的 -opencode配置。 +OpenCode 配置。 ```json title="opencode.json" {3} { @@ -101,7 +101,7 @@ opencode配置。 ``` 在這裡,我們為兩個內置模型配置全局設置:`gpt-5`(通過 `openai` 提供商訪問時)和 `claude-sonnet-4-20250514`(通過 `anthropic` 提供商訪問時)。 -內置提供商和型號名稱可以在[models.dev](https://models.dev) 上找到。 +內置提供商和型號名稱可以在[Models.dev](https://models.dev) 上找到。 您還可以為您正在使用的任何代理配置這些選項。代理配置會覆蓋此處的所有全局選項。 [了解更多](/docs/agents/#additional)。 @@ -137,11 +137,11 @@ opencode配置。 ## 變體 -許多型號支持具有不同配置的多種變體。 opencode 附帶了流行提供商的內置默認變體。 +許多型號支持具有不同配置的多種變體。OpenCode 附帶了流行提供商的內置默認變體。 ### 內置變體 -opencode 附帶了許多提供商的默認變體: +OpenCode 附帶了許多提供商的默認變體: **Anthropic**: @@ -203,11 +203,11 @@ opencode 附帶了許多提供商的默認變體: ## 加載模型 -當 opencode 啟動時,它會按以下優先順序檢查模型: +當 OpenCode 啟動時,它會按以下優先順序檢查模型: 1. `--model` 或 `-m` 命令行標誌。格式與配置文件中的相同:`provider_id/model_id`。 -2. opencode 配置中的模型列表。 +2. OpenCode 配置中的模型列表。 ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-tw/providers.mdx b/packages/web/src/content/docs/zh-tw/providers.mdx index 2cefb395ae..8c21f5cf19 100644 --- a/packages/web/src/content/docs/zh-tw/providers.mdx +++ b/packages/web/src/content/docs/zh-tw/providers.mdx @@ -1,31 +1,30 @@ --- -title: 供應商 -description: 使用 opencode 中的任何 LLM 提供商。 +title: 提供商 +description: 使用 OpenCode 中的任何 LLM 提供商。 --- import config from "../../../../config.mjs" export const console = config.console -opencode 使用[AI SDK](https://ai-sdk.dev/) 和[models.dev](https://models.dev) 來支持**75+ LLM 提供商**,並且它支持運行本地模型。 +OpenCode 使用 [AI SDK](https://ai-sdk.dev/) 和 [Models.dev](https://models.dev) 來支持 **75+ LLM 提供商**,並且它支持運行本地模型。 要添加提供商,您需要: 1. 使用 `/connect` 命令添加提供商的 API 密鑰。 -2. 在 opencode 配置中配置提供商。 +2. 在 OpenCode 配置中配置提供商。 --- -### 證書 +### 憑證 當您使用 `/connect` 命令添加提供商的 API 密鑰時,它們會被存儲 -在`~/.local/share/opencode/auth.json`。 +在 `~/.local/share/opencode/auth.json`。 --- ### 配置 -您可以通過 opencode 中的 `provider` 部分自定義提供商 -配置。 +您可以在 OpenCode 配置的 `provider` 部分自定義提供商。 --- @@ -50,8 +49,8 @@ opencode 使用[AI SDK](https://ai-sdk.dev/) 和[models.dev](https://models.dev) ## OpenCode Zen -OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 -經過測試和驗證,可以與 opencode 良好配合。 [了解更多](/docs/zen)。 +OpenCode Zen 是 OpenCode 團隊提供的模型列表,這些模型已被 +經過測試和驗證,可以與 OpenCode 良好配合。 [了解更多](/docs/zen)。 :::tip 如果您是新手,我們建議您從 OpenCode Zen 開始。 @@ -63,7 +62,7 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 /connect ``` -2. 登錄,添加您的帳單詳細信息,然後復制您的 API 密鑰。 +2. 登錄,添加您的帳單詳細信息,然後複製您的 API 密鑰。 3. 粘貼您的 API 密鑰。 @@ -74,13 +73,13 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 └ enter ``` -4. 在 TUI 中運行 `/models` 以查看我們推薦的型號列表。 +4. 在 TUI 中運行 `/models` 以查看我們推薦的模型列表。 ```txt /models ``` -它的工作方式與 opencode 中的任何其他提供商一樣,並且完全可以選擇使用。 +它的工作方式與 OpenCode 中的任何其他提供商一樣,並且完全可以選擇使用。 --- @@ -95,11 +94,11 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 --- -### 302.艾伊 +### 302.AI -1. 前往[302.AI控制台](https://302.ai/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [302.AI 控制台](https://302.ai/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**302.AI**。 +2. 運行 `/connect` 命令並搜尋 **302.AI**。 ```txt /connect @@ -114,7 +113,7 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models @@ -122,11 +121,11 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 --- -### 亞馬遜基岩 +### Amazon Bedrock -要將 Amazon Bedrock 與 opencode 結合使用: +要將 Amazon Bedrock 與 OpenCode 結合使用: -1. 前往 Amazon Bedrock 控制台中的 **模型目錄** 並請求 +1. 前往 Amazon Bedrock 控制台中的 **Model catalog** 並請求 訪問您想要的模型。 :::tip @@ -176,9 +175,9 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 ``` **可用選項:** - - `region` - AWS 區域(例如`us-east-1`、`eu-west-1`) + - `region` - AWS 區域(例如 `us-east-1`、`eu-west-1`) - `profile` - 來自 `~/.aws/credentials` 的 AWS 命名配置文件 - - `endpoint` - VPC terminal節點的自定義terminal節點 URL(通用 `baseURL` 選項的別名) + - `endpoint` - 用於 VPC 端點的自定義端點 URL(通用 `baseURL` 選項的別名) :::tip 配置文件選項優先於環境變量。 @@ -186,7 +185,7 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 #### 高級:VPC 端點 - 如果您使用 Bedrock 的 VPC terminal節點: + 如果您使用 Bedrock 的 VPC 端點: ```json title="opencode.json" { @@ -204,33 +203,33 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 ``` :::note - `endpoint` 選項是通用 `baseURL` 選項的別名,使用 AWS 特定術語。如果同時指定`endpoint` 和`baseURL`,則`endpoint` 優先。 + `endpoint` 選項是通用 `baseURL` 選項的別名,使用 AWS 特定術語。如果同時指定 `endpoint` 和 `baseURL`,則 `endpoint` 優先。 ::: #### 認證方式 - - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**:創建 IAM 用戶並在 AWS 控制台中生成訪問密鑰 - - **`AWS_PROFILE`**:使用`~/.aws/credentials` 中的命名配置文件。首先配置`aws configure --profile my-profile`或`aws sso login` + - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**:創建 IAM 用戶並在 AWS Console 中生成訪問密鑰 + - **`AWS_PROFILE`**:使用 `~/.aws/credentials` 中的命名配置文件。首先配置 `aws configure --profile my-profile` 或 `aws sso login` - **`AWS_BEARER_TOKEN_BEDROCK`**:從 Amazon Bedrock 控制台生成長期 API 密鑰 - - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**:適用於 EKS IRSA(服務賬戶的 IAM 角色)或具有 OIDC 聯合的其他 Kubernetes 環境。使用服務帳戶註釋時,這些環境變量由 Kubernetes 自動注入。 + - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**:適用於 EKS IRSA(服務帳戶的 IAM 角色)或具有 OIDC 聯合的其他 Kubernetes 環境。使用服務帳戶註釋時,這些環境變量由 Kubernetes 自動注入。 #### 認證優先級 Amazon Bedrock 使用以下身份驗證優先級: - 1. **不記名令牌** - `AWS_BEARER_TOKEN_BEDROCK` 環境變量或來自 `/connect` 命令的令牌 - 2. **AWS 憑證鏈** - 配置文件、訪問密鑰、共享憑證、IAM 角色、Web 身份令牌 (EKS IRSA)、實例元數據 + 1. **Bearer Token** - `AWS_BEARER_TOKEN_BEDROCK` 環境變量或來自 `/connect` 命令的令牌 + 2. **AWS Credential Chain** - 配置文件、訪問密鑰、共享憑證、IAM 角色、Web 身份令牌 (EKS IRSA)、實例元數據 :::note - 設置不記名令牌(通過 `/connect` 或 `AWS_BEARER_TOKEN_BEDROCK`)時,它優先於所有 AWS 憑證方法(包括配置的配置文件)。 + 當設置 Bearer Token 時(通過 `/connect` 或 `AWS_BEARER_TOKEN_BEDROCK`),它優先於所有 AWS 憑證方法(包括配置的配置文件)。 ::: -3. 運行`/models`命令選擇所需的型號。 +3. 運行 `/models` 命令選擇所需的模型。 ```txt /models ``` :::note -對於自定義推理配置文件,請在密鑰中使用模型和提供商名稱,並將 `id` 屬性設置為 arn。這確保了正確的緩存: +對於自定義推理配置文件,請在鍵中使用模型和提供商名稱,並將 `id` 屬性設置為 arn。這確保了正確的緩存: ```json title="opencode.json" { @@ -279,34 +278,34 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 ``` :::info -[Anthropic](https://anthropic.com) 不正式支持在 opencode 中使用您的 Claude Pro/Max 訂閱。 +[Anthropic](https://anthropic.com) 不正式支持在 OpenCode 中使用您的 Claude Pro/Max 訂閱。 ::: ##### 使用 API 密鑰 -如果您沒有 Pro/Max 訂閱,您還可以選擇 **創建 API 密鑰**。它還會打開您的瀏覽器並要求您登錄 Anthropic 並為您提供一個可以粘貼到terminal 中的程式碼。 +如果您沒有 Pro/Max 訂閱,您還可以選擇 **Create an API Key**。它還會打開您的瀏覽器並要求您登錄 Anthropic 並為您提供一個可以粘貼到終端機中的代碼。 -或者,如果您已有 API 密鑰,則可以選擇 **手動輸入 API 密鑰** 並將其粘貼到您的terminal中。 +或者,如果您已有 API 密鑰,則可以選擇 **Manually enter API Key** 並將其粘貼到您的終端機中。 --- -### Azure 開放AI +### Azure OpenAI :::note -如果遇到“抱歉,但我無法協助該請求”錯誤,請嘗試將 Azure 資源中的內容篩選器從 **DefaultV2** 更改為 **Default**。 +如果遇到 "I'm sorry, but I cannot assist with that request" 錯誤,請嘗試將 Azure 資源中的內容篩選器從 **DefaultV2** 更改為 **Default**。 ::: -1. 轉到 [Azure 門戶](https://portal.azure.com/) 並創建 **Azure OpenAI** 資源。你需要: - - **資源名稱**:這將成為您的 API 端點 (`https://RESOURCE_NAME.openai.azure.com/`) 的一部分 - - **API 密鑰**:來自您的資源的 `KEY 1` 或 `KEY 2` +1. 轉到 [Azure portal](https://portal.azure.com/) 並創建 **Azure OpenAI** 資源。您需要: + - **Resource name**:這將成為您的 API 端點 (`https://RESOURCE_NAME.openai.azure.com/`) 的一部分 + - **API key**:來自您的資源的 `KEY 1` 或 `KEY 2` -2. 轉到[Azure AI Foundry](https://ai.azure.com/) 並部署模型。 +2. 轉到 [Azure AI Foundry](https://ai.azure.com/) 並部署模型。 :::note - 部署名稱必須與模型名稱匹配,opencode 才能正常工作。 + 部署名稱必須與模型名稱匹配,OpenCode 才能正常工作。 ::: -3. 運行 `/connect` 命令並蒐索 **Azure**。 +3. 運行 `/connect` 命令並搜尋 **Azure**。 ```txt /connect @@ -341,19 +340,19 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 --- -### Azure 認知服務 +### Azure Cognitive Services -1. 轉到 [Azure 門戶](https://portal.azure.com/) 並創建 **Azure OpenAI** 資源。你需要: - - **資源名稱**:這將成為您的 API 端點 (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) 的一部分 - - **API 密鑰**:來自您的資源的 `KEY 1` 或 `KEY 2` +1. 轉到 [Azure portal](https://portal.azure.com/) 並創建 **Azure OpenAI** 資源。您需要: + - **Resource name**:這將成為您的 API 端點 (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) 的一部分 + - **API key**:來自您的資源的 `KEY 1` 或 `KEY 2` -2. 轉到[Azure AI Foundry](https://ai.azure.com/) 並部署模型。 +2. 轉到 [Azure AI Foundry](https://ai.azure.com/) 並部署模型。 :::note - 部署名稱必須與模型名稱匹配,opencode 才能正常工作。 + 部署名稱必須與模型名稱匹配,OpenCode 才能正常工作。 ::: -3. 運行 `/connect` 命令並蒐索 **Azure 認知服務**。 +3. 運行 `/connect` 命令並搜尋 **Azure Cognitive Services**。 ```txt /connect @@ -390,9 +389,9 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 ### Baseten -1. 前往[Baseten](https://app.baseten.co/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Baseten](https://app.baseten.co/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**Baseten**。 +2. 運行 `/connect` 命令並搜尋 **Baseten**。 ```txt /connect @@ -407,7 +406,7 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models @@ -415,11 +414,11 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 --- -### 大腦 +### Cerebras -1. 前往[Cerebras Console](https://inference.cerebras.ai/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Cerebras console](https://inference.cerebras.ai/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Cerebras**。 +2. 運行 `/connect` 命令並搜尋 **Cerebras**。 ```txt /connect @@ -434,7 +433,7 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 └ enter ``` -4. 運行`/models`命令選擇型號,如*Qwen 3 Coder 480B*。 +4. 運行 `/models` 命令選擇模型,如 _Qwen 3 Coder 480B_。 ```txt /models @@ -442,20 +441,20 @@ OpenCode Zen 是 opencode 團隊提供的模型列表,這些模型已被 --- -### Cloudflare AI 網關 +### Cloudflare AI Gateway -Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthropic、Workers AI 等的模型。使用[統一計費](https://developers.cloudflare.com/ai-gateway/features/unified-billing/),您不需要為每個提供商提供單獨的 API 密鑰。 +Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthropic、Workers AI 等的模型。使用 [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/),您不需要為每個提供商提供單獨的 API 密鑰。 -1. 前往[Cloudflare 儀表板](https://dash.cloudflare.com/),導航至 **AI** > **AI Gateway**,然後創建一個新網關。 +1. 前往 [Cloudflare dashboard](https://dash.cloudflare.com/),導航至 **AI** > **AI Gateway**,然後創建一個新網關。 -2. 將您的帳戶 ID 和網關 ID 設置為環境變量。 +2. 將您的 Account ID 和 Gateway ID 設置為環境變量。 ```bash title="~/.bash_profile" export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id export CLOUDFLARE_GATEWAY_ID=your-gateway-id ``` -3. 運行 `/connect` 命令並蒐索 **Cloudflare AI Gateway**。 +3. 運行 `/connect` 命令並搜尋 **Cloudflare AI Gateway**。 ```txt /connect @@ -476,13 +475,13 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro export CLOUDFLARE_API_TOKEN=your-api-token ``` -5. 執行`/models`命令選擇型號。 +5. 執行 `/models` 命令選擇模型。 ```txt /models ``` - 您還可以通過 opencode 配置添加模型。 + 您還可以通過 OpenCode 配置添加模型。 ```json title="opencode.json" { @@ -500,11 +499,11 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 皮質 +### Cortecs -1. 前往[Cortecs 控制台](https://cortecs.ai/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Cortecs console](https://cortecs.ai/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Cortecs**。 +2. 運行 `/connect` 命令並搜尋 **Cortecs**。 ```txt /connect @@ -519,7 +518,7 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro └ enter ``` -4. 運行`/models`命令選擇一個模型,如*Kimi K2 Instruct*。 +4. 運行 `/models` 命令選擇一個模型,如 _Kimi K2 Instruct_。 ```txt /models @@ -527,11 +526,11 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 深度搜索 +### DeepSeek -1. 前往[DeepSeek 控制台](https://platform.deepseek.com/),創建一個帳戶,然後單擊“**創建新的 API 密鑰**”。 +1. 前往 [DeepSeek console](https://platform.deepseek.com/),創建一個帳戶,然後單擊 **Create new API key**。 -2. 運行`/connect`命令並蒐索**DeepSeek**。 +2. 運行 `/connect` 命令並搜尋 **DeepSeek**。 ```txt /connect @@ -554,11 +553,11 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 深層基礎設施 +### Deep Infra -1. 前往[DeepInfra dashboard](https://deepinfra.com/dash),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Deep Infra dashboard](https://deepinfra.com/dash),創建一個帳戶並生成一個 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Deep Infra**。 +2. 運行 `/connect` 命令並搜尋 **Deep Infra**。 ```txt /connect @@ -573,7 +572,7 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models @@ -581,17 +580,17 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 韌體 +### Firmware -1. 前往[Firmware dashboard](https://app.firmware.ai/signup),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Firmware dashboard](https://app.firmware.ai/signup),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**固件**。 +2. 運行 `/connect` 命令並搜尋 **Firmware**。 ```txt /connect ``` -3. 輸入您的固件 API 密鑰。 +3. 輸入您的 Firmware API 密鑰。 ```txt ┌ API key @@ -600,7 +599,7 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models @@ -608,11 +607,11 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 煙花AI +### Fireworks AI -1. 前往[Fireworks AI 控制台](https://app.fireworks.ai/),創建一個帳戶,然後單擊“**創建 API 密鑰**”。 +1. 前往 [Fireworks AI console](https://app.fireworks.ai/),創建一個帳戶,然後單擊 **Create API Key**。 -2. 運行 `/connect` 命令並蒐索 **Fireworks AI**。 +2. 運行 `/connect` 命令並搜尋 **Fireworks AI**。 ```txt /connect @@ -627,7 +626,7 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro └ enter ``` -4. 運行`/models`命令選擇一個模型,如*Kimi K2 Instruct*。 +4. 運行 `/models` 命令選擇一個模型,如 _Kimi K2 Instruct_。 ```txt /models @@ -635,7 +634,7 @@ Cloudflare AI Gateway 讓您可以通過統一端點訪問來自 OpenAI、Anthro --- -### 亞搏體育app二人組 +### GitLab Duo GitLab Duo 通過 GitLab 的 Anthropic 代理提供具有本機工具調用功能的 AI 驅動的代理聊天。 @@ -657,14 +656,14 @@ GitLab Duo 通過 GitLab 的 Anthropic 代理提供具有本機工具調用功 #### 使用 OAuth(推薦) - 選擇**OAuth**,您的瀏覽器將打開以進行授權。 + 選擇 **OAuth**,您的瀏覽器將打開以進行授權。 - #### 使用個人訪問令牌 - 1. 前往[GitLab 用戶設置 > 訪問令牌](https://gitlab.com/-/user_settings/personal_access_tokens) - 2. 單擊**添加新令牌** - 3. 名稱:`OpenCode`,範圍:`api` - 4. 複製令牌(以`glpat-`開頭) - 5. 在 terminal中輸入 + #### 使用 Personal Access Token + 1. 前往 [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens) + 2. 單擊 **Add new token** + 3. Name:`OpenCode`,Scopes:`api` + 4. 複製令牌(以 `glpat-` 開頭) + 5. 在終端機中輸入它 3. 運行 `/models` 命令以查看可用模型。 @@ -673,21 +672,20 @@ GitLab Duo 通過 GitLab 的 Anthropic 代理提供具有本機工具調用功 ``` 提供三種基於 Claude 的模型: - - **duo-chat-haiku-4-5**(默認)- 快速任務的快速響應 + - **duo-chat-haiku-4-5**(Default)- 快速任務的快速響應 - **duo-chat-sonnet-4-5** - 大多數工作流程的平衡性能 - **duo-chat-opus-4-5** - 最有能力進行複雜分析 :::note -如果您不想,也可以指定“GITLAB_TOKEN”環境變量 -將令牌存儲在 opencode auth 存儲中。 +如果您不想將令牌存儲在 OpenCode auth 存儲中,也可以指定 `GITLAB_TOKEN` 環境變量。 ::: -##### 自託管 GitLab +##### Self-Hosted GitLab -:::note[compliance 筆記] -opencode 使用小型模型來執行某些 AI 任務,例如生成會話標題。 -默認情況下,它配置為使用 gpt-5-nano,由 Zen 託管。鎖定 opencode -要僅使用您自己的 GitLab 託管實例,請將以下內容添加到您的 +:::note[compliance note] +OpenCode 使用小型模型來執行某些 AI 任務,例如生成會話標題。 +默認情況下,它配置為使用 gpt-5-nano,由 Zen 託管。若要鎖定 OpenCode +僅使用您自己的 GitLab 託管實例,請將以下內容添加到您的 `opencode.json` 文件。還建議禁用會話共享。 ```json @@ -724,19 +722,19 @@ export GITLAB_TOKEN=glpat-... :::note 您的 GitLab 管理員必須啟用以下功能: -1. [雙代理平台](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) 用於用戶、組或實例 -2. 功能標誌(通過 Rails 控制台): +1. [Duo Agent Platform](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) 用於用戶、組或實例 +2. Feature flags(通過 Rails console): - `agent_platform_claude_code` - `third_party_agents_enabled` ::: -##### 適用於自託管實例的 OAuth +##### OAuth for Self-Hosted instances -為了使 Oauth 適用於您的自託管實例,您需要創建 -一個新的應用程式(設置→應用程式) +為了使 OAuth 適用於您的自託管實例,您需要創建 +一個新的應用程式(Settings → Applications),使用 回調 URL `http://127.0.0.1:8080/callback` 和以下範圍: -- api(代表您訪問API) +- api(代表您訪問 API) - read_user(讀取您的個人信息) - read_repository(允許對存儲庫進行只讀訪問) @@ -748,9 +746,9 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here 更多文檔請參見 [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth) 主頁。 -##### 配置 +##### Configuration -通過`opencode.json`定制: +通過 `opencode.json` 定制: ```json title="opencode.json" { @@ -769,9 +767,9 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here } ``` -##### GitLab API 工具(可選,但強烈推薦) +##### GitLab API Tools(可選,但強烈推薦) -要訪問 GitLab 工具(合併請求、問題、管道、CI/CD 等): +要訪問 GitLab 工具(merge requests、issues、pipelines、CI/CD 等): ```json title="opencode.json" { @@ -784,24 +782,22 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### GitHub 副駕駛 +### GitHub Copilot -要將 GitHub Copilot 訂閱與 opencode 結合使用: +要將 GitHub Copilot 訂閱與 OpenCode 結合使用: :::note -某些型號可能需要 [Pro+ -訂閱](https://github.com/features/copilot/plans) 來使用。 - -某些模型需要在您的[GitHub Copilot 設置](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use) 中手動啟用。 +某些模型可能需要 [Pro+ +subscription](https://github.com/features/copilot/plans) 來使用。 ::: -1. 運行 `/connect` 命令並蒐索 GitHub Copilot。 +1. 運行 `/connect` 命令並搜尋 GitHub Copilot。 ```txt /connect ``` -2. 導航至[github.com/login/device](https://github.com/login/device) 並輸入程式碼。 +2. 導航至 [github.com/login/device](https://github.com/login/device) 並輸入代碼。 ```txt ┌ Login with GitHub Copilot @@ -813,7 +809,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here └ Waiting for authorization... ``` -3. 現在運行`/models`命令來選擇您想要的型號。 +3. 現在運行 `/models` 命令來選擇您想要的模型。 ```txt /models @@ -821,12 +817,12 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### 谷歌頂點AI +### Google Vertex AI -要將 Google Vertex AI 與 opencode 結合使用: +要將 Google Vertex AI 與 OpenCode 結合使用: 1. 前往 Google Cloud Console 中的 **Model Garden** 並檢查 - 您所在地區提供的型號。 + 您所在地區提供的模型。 :::note 您需要有一個啟用了 Vertex AI API 的 Google Cloud 項目。 @@ -834,9 +830,9 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here 2. 設置所需的環境變量: - `GOOGLE_CLOUD_PROJECT`:您的 Google Cloud 項目 ID - - `VERTEX_LOCATION`(可選):Vertex AI 的區域(默認為`global`) + - `VERTEX_LOCATION`(可選):Vertex AI 的區域(默認為 `global`) - 身份驗證(選擇一項): - - `GOOGLE_APPLICATION_CREDENTIALS`: Path to your service account JSON key file + - `GOOGLE_APPLICATION_CREDENTIALS`:Path to your service account JSON key file - Authenticate using gcloud CLI: `gcloud auth application-default login` 在運行 opencode 時設置它們。 @@ -854,10 +850,10 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ``` :::tip -`global` 區域無需額外成本即可提高可用性並減少錯誤。使用區域端點(例如`us-central1`)來滿足數據駐留要求。 [了解更多](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) +`global` 區域無需額外成本即可提高可用性並減少錯誤。使用區域端點(例如 `us-central1`)來滿足數據駐留要求。 [了解更多](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) ::: -3. 運行`/models`命令選擇所需的型號。 +3. 運行 `/models` 命令選擇所需的模型。 ```txt /models @@ -865,11 +861,11 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### 格羅克 +### Groq -1. 前往[Groq Console](https://console.groq.com/),單擊“**創建 API 密鑰**”,然後復制密鑰。 +1. 前往 [Groq console](https://console.groq.com/),單擊 **Create API Key**,然後複製密鑰。 -2. 運行`/connect`命令並蒐索Groq。 +2. 運行 `/connect` 命令並搜尋 Groq。 ```txt /connect @@ -884,7 +880,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here └ enter ``` -4. 運行`/models`命令選擇您想要的。 +4. 運行 `/models` 命令選擇您想要的。 ```txt /models @@ -892,19 +888,19 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### 抱臉 +### Hugging Face -[Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.](https://huggingface.co/docs/inference-providers) 提供對超過 17 個提供商支持的開放模型的訪問。 +[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) 提供對超過 17 個提供商支持的開放模型的訪問。 -1. 前往[Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) 創建一個具有調用推理提供商權限的令牌。 +1. 前往 [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) 創建一個具有調用 Inference Providers 權限的令牌。 -2. 運行 `/connect` 命令並蒐索 **Hugging Face**。 +2. 運行 `/connect` 命令並搜尋 **Hugging Face**。 ```txt /connect ``` -3. 輸入您的擁抱臉標記。 +3. 輸入您的 Hugging Face 令牌。 ```txt ┌ API key @@ -923,11 +919,11 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ### Helicone -[Helicone](https://helicone.ai) 是一個 LLM 可觀察性平台,可為您的 AI 應用程式提供日誌記錄、監控和分析。 Helicone AI Gateway 根據模型自動將您的請求路由到適當的提供商。 +[Helicone](https://helicone.ai) 是一個 LLM 可觀察性平台,可為您的 AI 應用程式提供日誌記錄、監控和分析。 The Helicone AI Gateway 根據模型自動將您的請求路由到適當的提供商。 -1. 前往[Helicone](https://helicone.ai),創建一個帳戶,並從您的儀表板生成 API 密鑰。 +1. 前往 [Helicone](https://helicone.ai),創建一個帳戶,並從您的儀表板生成 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Helicone**。 +2. 運行 `/connect` 命令並搜尋 **Helicone**。 ```txt /connect @@ -942,19 +938,19 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models ``` -有關更多提供商和高級功能(例如緩存和速率限制),請查看[Helicone docs](https://docs.helicone.ai)。 +有關更多提供商和高級功能(例如緩存和速率限制),請查看 [Helicone documentation](https://docs.helicone.ai)。 -#### 可選配置 +#### Optional Configs -如果您發現 Helicone 的功能或模型未通過opencode自動配置,您始終可以自行配置。 +如果您發現 Helicone 的功能或模型未通過 OpenCode 自動配置,您始終可以自行配置。 -這是[Helicone 的模型目錄](https://helicone.ai/models),您將需要它來獲取要添加的模型的 ID。 +這是 [Helicone's Model Directory](https://helicone.ai/models),您將需要它來獲取要添加的模型的 ID。 ```jsonc title="~/.config/opencode/opencode.jsonc" { @@ -980,7 +976,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here } ``` -#### 自定義標頭 +#### Custom Headers Helicone 支持緩存、用戶跟踪和會話管理等功能的自定義標頭。使用 `options.headers` 將它們添加到您的提供商配置中: @@ -1003,9 +999,9 @@ Helicone 支持緩存、用戶跟踪和會話管理等功能的自定義標頭 } ``` -##### 會話跟踪 +##### Session tracking -Helicone 的 [會議](https://docs.helicone.ai/features/sessions) 功能可讓您將相關的 LLM 請求分組在一起。使用 [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) 插件自動將每個 opencode 對話記錄為 Helicone 中的會話。 +Helicone 的 [Sessions](https://docs.helicone.ai/features/sessions) 功能可讓您將相關的 LLM 請求分組在一起。使用 [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) 插件自動將每個 OpenCode 對話記錄為 Helicone 中的會話。 ```bash npm install -g opencode-helicone-session @@ -1019,24 +1015,24 @@ npm install -g opencode-helicone-session } ``` -該插件將 `Helicone-Session-Id` 和 `Helicone-Session-Name` 標頭注入您的請求中。在 Helicone 的會話頁面中,您將看到每個 opencode 對話都列為單獨的會話。 +該插件將 `Helicone-Session-Id` 和 `Helicone-Session-Name` 標頭注入您的請求中。在 Helicone 的 Sessions 頁面中,您將看到每個 OpenCode 對話都列為單獨的會話。 -##### 常見 Helicone 接頭 +##### Common Helicone headers -| 標題 | 描述 | -| -------------------------- | ----------------------------------------------------- | -| `Helicone-Cache-Enabled` | 啟用響應緩存 (`true`/`false`) | -| `Helicone-User-Id` | 按用戶跟踪指標 | -| `Helicone-Property-[Name]` | 添加自定義屬性(例如`Helicone-Property-Environment`) | -| `Helicone-Prompt-Id` | 將請求與提示版本相關聯 | +| Header | Description | +| -------------------------- | ------------------------------------------------------ | +| `Helicone-Cache-Enabled` | 啟用響應緩存 (`true`/`false`) | +| `Helicone-User-Id` | 按用戶跟踪指標 | +| `Helicone-Property-[Name]` | 添加自定義屬性(例如 `Helicone-Property-Environment`) | +| `Helicone-Prompt-Id` | 將請求與提示版本相關聯 | -有關所有可用標頭,請參閱[Helicone 頭目錄](https://docs.helicone.ai/helicone-headers/header-directory)。 +有關所有可用標頭,請參閱 [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory)。 --- -### 調用.cpp +### llama.cpp -您可以通過[llama.cpp 的](https://github.com/ggml-org/llama.cpp) llama-server實用程序配置opencode以使用本地模型 +您可以通過 [llama.cpp's](https://github.com/ggml-org/llama.cpp) llama-server 實用程序配置 OpenCode 以使用本地模型 ```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15} { @@ -1068,17 +1064,17 @@ npm install -g opencode-helicone-session - `npm` 指定用於此提供商的包。這裡,`@ai-sdk/openai-compatible` 用於任何 OpenAI 兼容的 API。 - `name` 是 UI 中提供商的顯示名稱。 - `options.baseURL` 是本地服務器的端點。 -- `models` 是模型 ID 與其配置的映射。型號名稱將顯示在型號選擇列表中。 +- `models` 是模型 ID 與其配置的映射。模型名稱將顯示在模型選擇列表中。 --- -### IO網絡 +### IO.NET IO.NET 提供了 17 種針對各種用例進行優化的模型: -1. 前往[IO.NET console](https://ai.io.net/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [IO.NET console](https://ai.io.net/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**IO.NET**。 +2. 運行 `/connect` 命令並搜尋 **IO.NET**。 ```txt /connect @@ -1093,7 +1089,7 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models @@ -1101,9 +1097,9 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: --- -### LM工作室 +### LM Studio -您可以通過 LM Studio 配置 opencode 以使用本地模型。 +您可以通過 LM Studio 配置 OpenCode 以使用本地模型。 ```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14} { @@ -1131,17 +1127,17 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: - `npm` 指定用於此提供商的包。這裡,`@ai-sdk/openai-compatible` 用於任何 OpenAI 兼容的 API。 - `name` 是 UI 中提供商的顯示名稱。 - `options.baseURL` 是本地服務器的端點。 -- `models` 是模型 ID 與其配置的映射。型號名稱將顯示在型號選擇列表中。 +- `models` 是模型 ID 與其配置的映射。模型名稱將顯示在模型選擇列表中。 --- -### 登月AI +### Moonshot AI 要使用 Moonshot AI 中的 Kimi K2: -1. 前往[Moonshot AI console](https://platform.moonshot.ai/console),創建一個帳戶,然後單擊“**創建 API 密鑰**”。 +1. 前往 [Moonshot AI console](https://platform.moonshot.ai/console),創建一個帳戶,然後單擊 **Create API key**。 -2. 運行 `/connect` 命令並蒐索 **Moonshot AI**。 +2. 運行 `/connect` 命令並搜尋 **Moonshot AI**。 ```txt /connect @@ -1156,7 +1152,7 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: └ enter ``` -4. 運行`/models`命令選擇*Kimi K2*。 +4. 運行 `/models` 命令選擇 _Kimi K2_。 ```txt /models @@ -1164,11 +1160,11 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: --- -### 最小最大 +### MiniMax -1. 前往[MiniMax API 控制台](https://platform.minimax.io/login),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [MiniMax API Console](https://platform.minimax.io/login),創建一個帳戶並生成一個 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **MiniMax**。 +2. 運行 `/connect` 命令並搜尋 **MiniMax**。 ```txt /connect @@ -1183,7 +1179,7 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: └ enter ``` -4. 運行`/models`命令選擇型號,如*M2.1*。 +4. 運行 `/models` 命令選擇模型,如 _M2.1_。 ```txt /models @@ -1191,17 +1187,17 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: --- -### Nebius 代幣工廠 +### Nebius Token Factory -1. 前往[Nebius 令牌工廠控制台](https://tokenfactory.nebius.com/),創建一個帳戶,然後單擊“**添加密鑰**”。 +1. 前往 [Nebius Token Factory console](https://tokenfactory.nebius.com/),創建一個帳戶,然後單擊 **Add Key**。 -2. 運行`/connect`命令並蒐索**Nebius令牌工廠**。 +2. 運行 `/connect` 命令並搜尋 **Nebius Token Factory**。 ```txt /connect ``` -3. 輸入您的 Nebius 令牌工廠 API 密鑰。 +3. 輸入您的 Nebius Token Factory API 密鑰。 ```txt ┌ API key @@ -1210,7 +1206,7 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: └ enter ``` -4. 運行`/models`命令選擇一個模型,如*Kimi K2 Instruct*。 +4. 運行 `/models` 命令選擇一個模型,如 _Kimi K2 Instruct_。 ```txt /models @@ -1218,12 +1214,12 @@ IO.NET 提供了 17 種針對各種用例進行優化的模型: --- -### 成為 +### Ollama -您可以通過 Ollama 配置 opencode 以使用本地模型。 +您可以通過 Ollama 配置 OpenCode 以使用本地模型。 :::tip -Ollama 可以自動為 opencode 配置自身。詳情請參閱[Ollama 集成文檔](https://docs.ollama.com/integrations/opencode)。 +Ollama 可以自動為 OpenCode 配置自身。詳情請參閱 [Ollama integration docs](https://docs.ollama.com/integrations/opencode)。 ::: ```json title="opencode.json" "ollama" {5, 6, 8, 10-14} @@ -1252,25 +1248,25 @@ Ollama 可以自動為 opencode 配置自身。詳情請參閱[Ollama 集成文 - `npm` 指定用於此提供商的包。這裡,`@ai-sdk/openai-compatible` 用於任何 OpenAI 兼容的 API。 - `name` 是 UI 中提供商的顯示名稱。 - `options.baseURL` 是本地服務器的端點。 -- `models` 是模型 ID 與其配置的映射。型號名稱將顯示在型號選擇列表中。 +- `models` 是模型 ID 與其配置的映射。模型名稱將顯示在模型選擇列表中。 :::tip -如果工具調用不起作用,請嘗試增加 Ollama 中的`num_ctx`。從 16k - 32k 左右開始。 +如果工具調用不起作用,請嘗試增加 Ollama 中的 `num_ctx`。從 16k - 32k 左右開始。 ::: --- -### 奧拉馬雲 +### Ollama Cloud -要將 Ollama Cloud 與 opencode 結合使用: +要將 Ollama Cloud 與 OpenCode 結合使用: -1. 前往[https://llama.com/](https://ollama.com/) 並登錄或創建帳戶。 +1. 前往 [https://ollama.com/](https://ollama.com/) 並登錄或創建帳戶。 -2. 導航到 **設置** > **密鑰**,然後單擊 **添加 API 密鑰** 以生成新的 API 密鑰。 +2. 導航到 **Settings** > **Keys**,然後單擊 **Add API Key** 以生成新的 API 密鑰。 -3. 複製 API 密鑰以在 opencode 中使用。 +3. 複製 API 密鑰以在 OpenCode 中使用。 -4. 運行 `/connect` 命令並蒐索 **Ollama Cloud**。 +4. 運行 `/connect` 命令並搜尋 **Ollama Cloud**。 ```txt /connect @@ -1285,13 +1281,13 @@ Ollama 可以自動為 opencode 配置自身。詳情請參閱[Ollama 集成文 └ enter ``` -6. **重要**:在opencode中使用雲模型之前,必須將模型信息拉取到本地: +6. **Important**:在 OpenCode 中使用雲模型之前,您必須將模型信息拉取到本地: ```bash ollama pull gpt-oss:20b-cloud ``` -7. 運行 `/models` 命令以選擇您的 Ollama Cloud 型號。 +7. 運行 `/models` 命令以選擇您的 Ollama Cloud 模型。 ```txt /models @@ -1299,9 +1295,9 @@ Ollama 可以自動為 opencode 配置自身。詳情請參閱[Ollama 集成文 --- -### 開放AI +### OpenAI -我們建議註冊[ChatGPT Plus 或 Pro](https://chatgpt.com/pricing)。 +我們建議註冊 [ChatGPT Plus or Pro](https://chatgpt.com/pricing)。 1. 註冊後,運行 `/connect` 命令並選擇 OpenAI。 @@ -1328,23 +1324,23 @@ Ollama 可以自動為 opencode 配置自身。詳情請參閱[Ollama 集成文 ##### 使用 API 密鑰 -如果您已有 API 密鑰,可以選擇 **手動輸入 API 密鑰** 並將其粘貼到您的terminal中。 +如果您已有 API 密鑰,可以選擇 **Manually enter API Key** 並將其粘貼到您的終端機中。 --- ### OpenCode Zen -OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 [了解更多](/docs/zen)。 +OpenCode Zen 是 OpenCode 團隊提供的經過測試和驗證的模型列表。 [了解更多](/docs/zen)。 -1. 登錄 **OpenCode Zen** 並單擊 **創建 API 密鑰**。 +1. 登錄 **OpenCode Zen** 並單擊 **Create API Key**。 -2. 運行 `/connect` 命令並蒐索 **OpenCode Zen**。 +2. 運行 `/connect` 命令並搜尋 **OpenCode Zen**。 ```txt /connect ``` -3. 輸入您的 opencode API 密鑰。 +3. 輸入您的 OpenCode API 密鑰。 ```txt ┌ API key @@ -1353,7 +1349,7 @@ OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 └ enter ``` -4. 運行`/models`命令選擇型號,如*Qwen 3 Coder 480B*。 +4. 運行 `/models` 命令選擇模型,如 _Qwen 3 Coder 480B_。 ```txt /models @@ -1361,11 +1357,11 @@ OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 --- -### 開放路由器 +### OpenRouter -1. 前往[OpenRouter dashboard](https://openrouter.ai/settings/keys),單擊“**創建 API 密鑰**”,然後復制密鑰。 +1. 前往 [OpenRouter dashboard](https://openrouter.ai/settings/keys),單擊 **Create API Key**,然後複製密鑰。 -2. 運行`/connect`命令並蒐索OpenRouter。 +2. 運行 `/connect` 命令並搜尋 OpenRouter。 ```txt /connect @@ -1380,13 +1376,13 @@ OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 └ enter ``` -4. OpenRouter默認預加載了多種型號,運行`/models`命令選擇您想要的型號。 +4. 許多 OpenRouter 模型是默認預加載的,運行 `/models` 命令選擇您想要的模型。 ```txt /models ``` - 您還可以通過 opencode 配置添加其他模型。 + 您還可以通過 OpenCode 配置添加其他模型。 ```json title="opencode.json" {6} { @@ -1401,7 +1397,7 @@ OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 } ``` -5. 您還可以通過 opencode 配置自定義它們。這是指定提供商的示例 +5. 您還可以通過 OpenCode 配置自定義它們。這是指定提供商的示例 ```json title="opencode.json" { @@ -1425,17 +1421,17 @@ OpenCode Zen 是 opencode 團隊提供的經過測試和驗證的模型列表。 --- -### SAPAI核心 +### SAP AI Core SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、Meta、Mistral 和 AI21 的 40 多個模型的訪問。 -1. 轉到[SAP BTP 駕駛艙](https://account.hana.ondemand.com/),導航到 SAP AI Core 服務實例,然後創建服務密鑰。 +1. 轉到您的 [SAP BTP Cockpit](https://account.hana.ondemand.com/),導航到您的 SAP AI Core 服務實例,然後創建一個服務密鑰。 :::tip - 服務密鑰是一個包含`clientid`、`clientsecret`、`url` 和`serviceurls.AI_API_URL` 的JSON 對象。您可以在 BTP Cockpit 的 **服務** > **實例和訂閱** 下找到您的 AI Core 實例。 + 服務密鑰是一個包含 `clientid`、`clientsecret`、`url` 和 `serviceurls.AI_API_URL` 的 JSON 對象。您可以在 BTP Cockpit 的 **Services** > **Instances and Subscriptions** 下找到您的 AI Core 實例。 ::: -2. 運行 `/connect` 命令並蒐索 **SAP AI Core**。 +2. 運行 `/connect` 命令並搜尋 **SAP AI Core**。 ```txt /connect @@ -1450,7 +1446,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M └ enter ``` - 或者設置`AICORE_SERVICE_KEY`環境變量: + 或者設置 `AICORE_SERVICE_KEY` 環境變量: ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode @@ -1472,7 +1468,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M 這些設置是可選的,應根據您的 SAP AI Core 設置進行配置。 ::: -5. 運行 `/models` 命令從 40 多個可用型號中進行選擇。 +5. 運行 `/models` 命令從 40 多個可用模型中進行選擇。 ```txt /models @@ -1480,11 +1476,11 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M --- -### OVHcloud AI 端點 +### OVHcloud AI Endpoints -1. 前往[OVH雲面板](https://ovh.com/manager)。導航到 `Public Cloud` 部分,`AI & Machine Learning` > `AI Endpoints`,然後在 `API Keys` 選項卡中單擊 **創建新的 API 密鑰**。 +1. 前往 [OVHcloud panel](https://ovh.com/manager)。導航到 `Public Cloud` 部分,`AI & Machine Learning` > `AI Endpoints`,然後在 `API Keys` 選項卡中單擊 **Create a new API key**。 -2. 運行 `/connect` 命令並蒐索 **OVHcloud AI Endpoints**。 +2. 運行 `/connect` 命令並搜尋 **OVHcloud AI Endpoints**。 ```txt /connect @@ -1499,7 +1495,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M └ enter ``` -4. 運行`/models`命令選擇型號,如*gpt-oss-120b*。 +4. 運行 `/models` 命令選擇模型,如 _gpt-oss-120b_。 ```txt /models @@ -1507,13 +1503,13 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M --- -### 斯卡威 +### Scaleway -要將 [Scaleway 生成 API](https://www.scaleway.com/en/docs/generative-apis/) 與 opencode 一起使用: +要將 [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/) 與 OpenCode 一起使用: -1. 前往[Scaleway 控制台 IAM 設置](https://console.scaleway.com/iam/api-keys) 生成新的 API 密鑰。 +1. 前往 [Scaleway Console IAM settings](https://console.scaleway.com/iam/api-keys) 生成新的 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Scaleway**。 +2. 運行 `/connect` 命令並搜尋 **Scaleway**。 ```txt /connect @@ -1528,7 +1524,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M └ enter ``` -4. 運行`/models`命令選擇模型,如*devstral-2-123b-instruct-2512*或*gpt-oss-120b*。 +4. 運行 `/models` 命令選擇模型,如 _devstral-2-123b-instruct-2512_ 或 _gpt-oss-120b_。 ```txt /models @@ -1536,11 +1532,11 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M --- -### 一起AI +### Together AI -1. 前往[Together AI console](https://api.together.ai),創建一個帳戶,然後單擊“**添加密鑰**”。 +1. 前往 [Together AI console](https://api.together.ai),創建一個帳戶,然後單擊 **Add Key**。 -2. 運行 `/connect` 命令並蒐索 **Together AI**。 +2. 運行 `/connect` 命令並搜尋 **Together AI**。 ```txt /connect @@ -1555,7 +1551,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M └ enter ``` -4. 運行`/models`命令選擇一個模型,如*Kimi K2 Instruct*。 +4. 運行 `/models` 命令選擇一個模型,如 _Kimi K2 Instruct_。 ```txt /models @@ -1563,11 +1559,11 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M --- -### 威尼斯AI +### Venice AI -1. 前往[Venice AI console](https://venice.ai),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [Venice AI console](https://venice.ai),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**Venice AI**。 +2. 運行 `/connect` 命令並搜尋 **Venice AI**。 ```txt /connect @@ -1582,7 +1578,7 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M └ enter ``` -4. 運行`/models`命令選擇型號,如*Llama 3.3 70B*。 +4. 運行 `/models` 命令選擇模型,如 _Llama 3.3 70B_。 ```txt /models @@ -1590,13 +1586,13 @@ SAP AI Core 通過統一平台提供對 OpenAI、Anthropic、Google、Amazon、M --- -### VercelAI網關 +### Vercel AI Gateway -Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、Google、xAI 等的模型。型號按標價提供,不加價。 +Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、Google、xAI 等的模型。模型按標價提供,不加價。 -1. 前往[Vercel dashboard](https://vercel.com/),導航至 **AI Gateway** 選項卡,然後單擊 **API 密鑰** 以創建新的 API 密鑰。 +1. 前往 [Vercel dashboard](https://vercel.com/),導航至 **AI Gateway** 選項卡,然後單擊 **API keys** 以創建新的 API 密鑰。 -2. 運行 `/connect` 命令並蒐索 **Vercel AI Gateway**。 +2. 運行 `/connect` 命令並搜尋 **Vercel AI Gateway**。 ```txt /connect @@ -1611,13 +1607,13 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G └ enter ``` -4. 執行`/models`命令選擇型號。 +4. 執行 `/models` 命令選擇模型。 ```txt /models ``` -您還可以通過 opencode 配置自定義模型。以下是指定提供者路由順序的示例。 +您還可以通過 OpenCode 配置自定義模型。以下是指定提供者路由順序的示例。 ```json title="opencode.json" { @@ -1638,19 +1634,19 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G 一些有用的路由選項: -| 選項 | 描述 | -| ------------------- | ---------------------------- | -| `order` | 提供者嘗試順序 | -| `only` | 限制特定提供商 | -| `zeroDataRetention` | 僅使用零數據保留政策的提供商 | +| Option | Description | +| ------------------- | ---------------------------------------------------- | +| `order` | Provider sequence to try | +| `only` | Restrict to specific providers | +| `zeroDataRetention` | Only use providers with zero data retention policies | --- -### 人工智慧 +### xAI -1. 前往[xAI控制台](https://console.x.ai/),創建一個帳戶並生成一個 API 密鑰。 +1. 前往 [xAI console](https://console.x.ai/),創建一個帳戶並生成一個 API 密鑰。 -2. 運行`/connect`命令並蒐索**xAI**。 +2. 運行 `/connect` 命令並搜尋 **xAI**。 ```txt /connect @@ -1665,7 +1661,7 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G └ enter ``` -4. 運行`/models`命令選擇一個模型,如*Grok Beta*。 +4. 運行 `/models` 命令選擇一個模型,如 _Grok Beta_。 ```txt /models @@ -1673,17 +1669,17 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G --- -### 扎艾 +### Z.AI -1. 前往[Z.AI API控制台](https://z.ai/manage-apikey/apikey-list),創建一個帳戶,然後單擊“**創建新的 API 密鑰**”。 +1. 前往 [Z.AI API console](https://z.ai/manage-apikey/apikey-list),創建一個帳戶,然後單擊 **Create a new API key**。 -2. 運行`/connect`命令並蒐索**Z.AI**。 +2. 運行 `/connect` 命令並搜尋 **Z.AI**。 ```txt /connect ``` - 如果您訂閱了 **GLM 編碼計劃**,請選擇 **Z.AI 編碼計劃**。 + 如果您訂閱了 **GLM Coding Plan**,請選擇 **Z.AI Coding Plan**。 3. 輸入您的 Z.AI API 密鑰。 @@ -1694,7 +1690,7 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G └ enter ``` -4. 運行`/models`命令選擇*GLM-4.7*等模型。 +4. 運行 `/models` 命令選擇 _GLM-4.7_ 等模型。 ```txt /models @@ -1702,11 +1698,11 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G --- -### 多路復用器 +### ZenMux -1. 前往[ZenMux 儀表板](https://zenmux.ai/settings/keys),單擊“**創建 API 密鑰**”,然後復制密鑰。 +1. 前往 [ZenMux dashboard](https://zenmux.ai/settings/keys),單擊 **Create API Key**,然後複製密鑰。 -2. 運行`/connect`命令並蒐索ZenMux。 +2. 運行 `/connect` 命令並搜尋 ZenMux。 ```txt /connect @@ -1727,7 +1723,7 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G /models ``` - 您還可以通過 opencode 配置添加其他模型。 + 您還可以通過 OpenCode 配置添加其他模型。 ```json title="opencode.json" {6} { @@ -1744,15 +1740,15 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G --- -## 定制提供商 +## Custom provider -要添加 `/connect` 命令中未列出的任何 **OpenAI 兼容** 提供商: +要添加 `/connect` 命令中未列出的任何 **OpenAI-compatible** 提供商: :::tip -您可以將任何與 OpenAI 兼容的提供商與 opencode 結合使用。大多數現代AI提供商都提供與 OpenAI 兼容的 API。 +您可以將任何與 OpenAI 兼容的提供商與 OpenCode 結合使用。大多數現代 AI 提供商都提供與 OpenAI 兼容的 API。 ::: -1. 運行 `/connect` 命令並向下滾動到 **其他**。 +1. 運行 `/connect` 命令並向下滾動到 **Other**。 ```bash $ /connect @@ -1819,8 +1815,8 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G 以下是配置選項: - **npm**:要使用的 AI SDK 包,`@ai-sdk/openai-compatible` 用於 OpenAI 兼容提供商 - - **名稱**:UI 中的顯示名稱。 - - **型號**:可用型號。 + - **name**:UI 中的顯示名稱。 + - **models**:可用模型。 - **options.baseURL**:API 端點 URL。 - **options.apiKey**:如果不使用身份驗證,可以選擇設置 API 密鑰。 - **options.headers**:可選擇設置自定義標頭。 @@ -1831,9 +1827,9 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G --- -##### 例子 +##### Example -以下是設置`apiKey`、`headers` 和模型`limit` 選項的示例。 +以下是設置 `apiKey`、`headers` 和模型 `limit` 選項的示例。 ```json title="opencode.json" {9,11,17-20} { @@ -1865,25 +1861,25 @@ Vercel AI Gateway 可讓您通過統一端點訪問來自 OpenAI、Anthropic、G 配置詳情: -- **apiKey**:使用`env`變量語法[了解更多](/docs/config#env-vars)設置。 -- ** headers **:隨每個請求發送的自定義標頭。 +- **apiKey**:使用 `env` 變量語法 [了解更多](/docs/config#env-vars) 設置。 +- **headers**:隨每個請求發送的自定義標頭。 - **limit.context**:模型接受的最大輸入標記。 - **limit.output**:模型可以生成的最大令牌。 -`limit` 字段允許 opencode 了解您還剩下多少上下文。標準提供商會自動從 models.dev 中提取這些內容。 +`limit` 字段允許 OpenCode 了解您還剩下多少上下文。標準提供商會自動從 models.dev 中提取這些內容。 --- -## 故障排除 +## Troubleshooting 如果您在配置提供商時遇到問題,請檢查以下內容: -1. **檢查身份驗證設置**:運行 `opencode auth list` 以查看憑據是否 +1. **Check the auth setup**:運行 `opencode auth list` 以查看憑據是否 提供商的配置已添加到您的配置中。 這不適用於 Amazon Bedrock 等依賴環境變量進行身份驗證的提供商。 -2. 對於自定義提供商,請檢查 opencode 配置並: - - 確保 `/connect` 命令中使用的提供商 ID 與 opencode 配置中的 ID 匹配。 +2. 對於自定義提供商,請檢查 OpenCode 配置並: + - 確保 `/connect` 命令中使用的提供商 ID 與 OpenCode 配置中的 ID 匹配。 - 正確的 npm 包用於提供商。例如,對 Cerebras 使用 `@ai-sdk/cerebras`。對於所有其他 OpenAI 兼容提供商,請使用 `@ai-sdk/openai-compatible`。 - 檢查 `options.baseURL` 字段中使用了正確的 API 端點。 diff --git a/packages/web/src/content/docs/zh-tw/rules.mdx b/packages/web/src/content/docs/zh-tw/rules.mdx index 52494777c9..218fd3c78d 100644 --- a/packages/web/src/content/docs/zh-tw/rules.mdx +++ b/packages/web/src/content/docs/zh-tw/rules.mdx @@ -130,7 +130,7 @@ export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills ### 使用 opencode.json -推薦的方法是在`opencode.json`中使用`instructions`字段: +推薦的方法是在`instructions`中使用`opencode.json`字段: ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-tw/skills.mdx b/packages/web/src/content/docs/zh-tw/skills.mdx index 977d0c76e3..eb608fb0b2 100644 --- a/packages/web/src/content/docs/zh-tw/skills.mdx +++ b/packages/web/src/content/docs/zh-tw/skills.mdx @@ -25,7 +25,7 @@ opencode 搜索這些位置: ## 了解發現 對於項目本地路徑,opencode 將從當前工作目錄開始,直到到達 git 工作樹。 -它加載 `.opencode/` 中任何匹配的 `skills/*/SKILL.md` 以及一路上任何匹配的 `.claude/skills/*/SKILL.md` 或 `.agents/skills/*/SKILL.md`。 +它加載 `skills/*/SKILL.md` 中任何匹配的 `.opencode/` 以及一路上任何匹配的 `.claude/skills/*/SKILL.md` 或 `.agents/skills/*/SKILL.md`。 全局定義也從`~/.config/opencode/skills/*/SKILL.md`、`~/.claude/skills/*/SKILL.md` 和`~/.agents/skills/*/SKILL.md` 加載。 diff --git a/packages/web/src/content/docs/zh-tw/troubleshooting.mdx b/packages/web/src/content/docs/zh-tw/troubleshooting.mdx index 7398f1a928..8293f41d0c 100644 --- a/packages/web/src/content/docs/zh-tw/troubleshooting.mdx +++ b/packages/web/src/content/docs/zh-tw/troubleshooting.mdx @@ -45,7 +45,7 @@ opencode Desktop 在後台運行本地 opencode 服務器(`opencode-cli` sidec - 完全退出並重新啟動應用程式。 - 如果應用程式顯示錯誤屏幕,請單擊“**重新啟動**”並複制錯誤詳細信息。 -- 僅限 macOS:`opencode` 菜單 -> **重新加載 Webview**(如果 UI 為空白/凍結,則有幫助)。 +- 僅限 macOS:`OpenCode` 菜單 -> **重新加載 Webview**(如果 UI 為空白/凍結,則有幫助)。 --- diff --git a/packages/web/src/content/docs/zh-tw/tui.mdx b/packages/web/src/content/docs/zh-tw/tui.mdx index 449245258b..b64ada84c1 100644 --- a/packages/web/src/content/docs/zh-tw/tui.mdx +++ b/packages/web/src/content/docs/zh-tw/tui.mdx @@ -1,13 +1,13 @@ --- -title: 途易 -description: 使用 opencode terminal用戶介面。 +title: TUI +description: 使用 OpenCode terminal 用戶介面。 --- import { Tabs, TabItem } from "@astrojs/starlight/components" -opencode 提供了一個交互式terminal介面或 TUI,供您與LLM一起處理項目。 +OpenCode 提供了一個交互式 terminal 介面或 TUI,供您與 LLM 一起處理項目。 -運行 opencode 會啟動當前目錄的 TUI。 +運行 OpenCode 會啟動當前目錄的 TUI。 ```bash opencode @@ -43,7 +43,7 @@ How is auth handled in @packages/functions/src/api/index.ts? --- -## bash 命令 +## Bash 命令 以 `!` 開始一條消息以運行 shell 命令。 @@ -57,7 +57,7 @@ How is auth handled in @packages/functions/src/api/index.ts? ## 命令 -使用 opencode TUI 時,您可以鍵入 `/` 後跟命令名稱來快速執行操作。例如: +使用 OpenCode TUI 時,您可以鍵入 `/` 後跟命令名稱來快速執行操作。例如: ```bash frame="none" /help @@ -71,7 +71,7 @@ Most commands also have keybind using `ctrl+x` as the leader key, where `ctrl+x` ### connect -將提供商添加到 opencode。允許您從可用的提供商中進行選擇並添加其 API 密鑰。 +將提供商添加到 OpenCode。允許您從可用的提供商中進行選擇並添加其 API 密鑰。 ```bash frame="none" /connect @@ -117,7 +117,7 @@ Most commands also have keybind using `ctrl+x` as the leader key, where `ctrl+x` ### exit -退出 opencode。 _別名_:`/quit`、`/q` +退出 OpenCode。 _別名_:`/quit`、`/q` ```bash frame="none" /exit @@ -336,12 +336,12 @@ Most commands also have keybind using `ctrl+x` as the leader key, where `ctrl+x` 流行的編輯器選項包括: -- `code` - Visual Studio 程式碼 -- `cursor` - 光標 -- `windsurf` - 風帆衝浪 +- `code` - Visual Studio Code +- `cursor` - Cursor +- `windsurf` - Windsurf - `nvim` - Neovim 編輯器 -- `vim` - 我來編輯了 -- `nano` - 納米編輯器 +- `vim` - Vim 編輯器 +- `nano` - Nano 編輯器 - `notepad` - Windows 記事本 - `subl` - Sublime Text @@ -355,7 +355,7 @@ Most commands also have keybind using `ctrl+x` as the leader key, where `ctrl+x` ## 配置 -您可以通過 opencode 配置文件自定義 TUI 行為。 +您可以通過 OpenCode 配置文件自定義 TUI 行為。 ```json title="opencode.json" { diff --git a/packages/web/src/content/i18n/de.json b/packages/web/src/content/i18n/de.json index d382ba2276..004f503fd1 100644 --- a/packages/web/src/content/i18n/de.json +++ b/packages/web/src/content/i18n/de.json @@ -1,13 +1,13 @@ { - "app.head.titleSuffix": "AI-Coding-Agent für das terminal", + "app.head.titleSuffix": "AI-Coding-Agent für das Terminal", "app.header.home": "Startseite", "app.header.docs": "Dokumentation", "app.footer.issueLink": "Einen Fehler gefunden? Eröffne ein Issue", "app.footer.discordLink": "Tritt unserer Discord-Community bei", - "app.lander.hero.title": "Der AI-Coding-Agent für das terminal.", + "app.lander.hero.title": "Der AI-Coding-Agent für das Terminal.", "app.lander.cta.getStarted": "Loslegen", "app.lander.features.native_tui.title": "Native TUI", - "app.lander.features.native_tui.description": "Eine reaktionsschnelle, native, anpassbare terminal UI.", + "app.lander.features.native_tui.description": "Eine reaktionsschnelle, native, anpassbare Terminal-UI.", "app.lander.features.lsp_enabled.title": "LSP aktiviert", "app.lander.features.lsp_enabled.description": "Lädt automatisch die passenden LSPs für das LLM.", "app.lander.features.multi_session.title": "Mehrere Sitzungen", @@ -25,7 +25,7 @@ "app.lander.images.vscode.alt": "opencode in VS Code", "app.lander.images.github.caption": "opencode in GitHub", "app.lander.images.github.alt": "opencode in GitHub", - "share.meta_description": "opencode - Der AI-Coding-Agent für das terminal.", + "share.meta_description": "opencode - Der AI-Coding-Agent für das Terminal.", "share.not_found": "Nicht gefunden", "share.link_to_message": "Link zu dieser Nachricht", "share.copied": "Kopiert!", diff --git a/packages/web/src/content/i18n/fr.json b/packages/web/src/content/i18n/fr.json index 92052c75b9..942beeb063 100644 --- a/packages/web/src/content/i18n/fr.json +++ b/packages/web/src/content/i18n/fr.json @@ -1,10 +1,10 @@ { - "app.head.titleSuffix": "Agent IA de code conçu pour le terminal", + "app.head.titleSuffix": "Agent AI de code conçu pour le terminal", "app.header.home": "Accueil", "app.header.docs": "Docs", "app.footer.issueLink": "Vous avez trouvé un bug ? Ouvrez une issue", "app.footer.discordLink": "Rejoignez notre communauté Discord", - "app.lander.hero.title": "L'agent de codage IA conçu pour le terminal.", + "app.lander.hero.title": "L'agent de codage AI conçu pour le terminal.", "app.lander.cta.getStarted": "Commencer", "app.lander.features.native_tui.title": "TUI natif", "app.lander.features.native_tui.description": "Une interface terminal native, réactive et personnalisable.", @@ -25,7 +25,7 @@ "app.lander.images.vscode.alt": "opencode dans VS Code", "app.lander.images.github.caption": "opencode dans GitHub", "app.lander.images.github.alt": "opencode dans GitHub", - "share.meta_description": "opencode - Agent IA de code conçu pour le terminal.", + "share.meta_description": "opencode - Agent AI de code conçu pour le terminal.", "share.not_found": "Pas trouvé", "share.link_to_message": "Lien vers ce message", "share.copied": "Copié!", diff --git a/packages/web/src/content/i18n/nb.json b/packages/web/src/content/i18n/nb.json index 8818d39c54..370ca7160d 100644 --- a/packages/web/src/content/i18n/nb.json +++ b/packages/web/src/content/i18n/nb.json @@ -67,8 +67,8 @@ "share.creating_plan": "Oppretter plan", "share.completing_plan": "Fullfører plan", "share.updating_plan": "Oppdaterer plan", - "share.match_one": "kamp", - "share.match_other": "kamper", + "share.match_one": "treff", + "share.match_other": "treff", "share.result_one": "resultat", "share.result_other": "resultater", "share.debug_key": "Nøkkel" diff --git a/packages/web/src/content/i18n/tr.json b/packages/web/src/content/i18n/tr.json index 29db1e6741..2b6fd9c835 100644 --- a/packages/web/src/content/i18n/tr.json +++ b/packages/web/src/content/i18n/tr.json @@ -1,5 +1,5 @@ { - "app.head.titleSuffix": "Terminal için üretilmiş AI kodlama aracı", + "app.head.titleSuffix": "Terminal için üretilmiş AI coding agent", "app.header.home": "Ana sayfa", "app.header.docs": "Dokümanlar", "app.footer.issueLink": "Bir hata mı buldunuz? Issue açın", diff --git a/packages/web/src/content/i18n/zh-TW.json b/packages/web/src/content/i18n/zh-TW.json index 391e3f71fb..7dfd1334c0 100644 --- a/packages/web/src/content/i18n/zh-TW.json +++ b/packages/web/src/content/i18n/zh-TW.json @@ -19,13 +19,13 @@ "app.lander.features.use_any_model.title": "使用任何模型", "app.lander.features.use_any_model.prefix": "透過以下方式支援 75+ LLM 提供商", "app.lander.features.use_any_model.suffix": "包括本地模型。", - "app.lander.images.tui.caption": "opencode TUI(tokyonight 主題)", - "app.lander.images.tui.alt": "opencode TUI(tokyonight 主題)", - "app.lander.images.vscode.caption": "opencode 在 VS Code 中", - "app.lander.images.vscode.alt": "opencode 在 VS Code 中", - "app.lander.images.github.caption": "opencode 在 GitHub 中", - "app.lander.images.github.alt": "opencode 在 GitHub 中", - "share.meta_description": "opencode - 為 terminal 打造的 AI 編碼代理。", + "app.lander.images.tui.caption": "OpenCode TUI(tokyonight 主題)", + "app.lander.images.tui.alt": "OpenCode TUI(tokyonight 主題)", + "app.lander.images.vscode.caption": "OpenCode 在 VS Code 中", + "app.lander.images.vscode.alt": "OpenCode 在 VS Code 中", + "app.lander.images.github.caption": "OpenCode 在 GitHub 中", + "app.lander.images.github.alt": "OpenCode 在 GitHub 中", + "share.meta_description": "OpenCode - 為 terminal 打造的 AI 編碼代理。", "share.not_found": "未找到", "share.link_to_message": "連結到此訊息", "share.copied": "複製了!", @@ -53,8 +53,8 @@ "share.error_id_not_found": "未找到 ID", "share.error_api_url_not_found": "API URL 未找到", "share.error_connection_failed": "連線失敗", - "share.opencode_version": "opencode 版本", - "share.opencode_name": "opencode", + "share.opencode_version": "OpenCode 版本", + "share.opencode_name": "OpenCode", "share.models": "模型", "share.cost": "成本", "share.input_tokens": "輸入 Token", From 55119559b320535253e67925d27ecad2466d50ed Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:01:14 -0600 Subject: [PATCH 10/66] fix(app): don't scroll code search input --- packages/ui/src/components/code.tsx | 170 ++++++++++++++-------------- 1 file changed, 88 insertions(+), 82 deletions(-) diff --git a/packages/ui/src/components/code.tsx b/packages/ui/src/components/code.tsx index e3e1e56520..4e7c82d788 100644 --- a/packages/ui/src/components/code.tsx +++ b/packages/ui/src/components/code.tsx @@ -1,5 +1,6 @@ import { type FileContents, File, FileOptions, LineAnnotation, type SelectedLineRange } from "@pierre/diffs" import { ComponentProps, createEffect, createMemo, createSignal, onCleanup, onMount, Show, splitProps } from "solid-js" +import { Portal } from "solid-js/web" import { createDefaultOptions, styleVariables } from "../pierre" import { getWorkerPool } from "../pierre/worker" import { Icon } from "./icon" @@ -125,11 +126,9 @@ export function Code(props: CodeProps) { let wrapper!: HTMLDivElement let container!: HTMLDivElement let findInput: HTMLInputElement | undefined - let findBar: HTMLDivElement | undefined let findOverlay!: HTMLDivElement let findOverlayFrame: number | undefined let findOverlayScroll: HTMLElement[] = [] - let findScroll: HTMLElement | undefined let observer: MutationObserver | undefined let renderToken = 0 let selectionFrame: number | undefined @@ -159,6 +158,8 @@ export function Code(props: CodeProps) { let findMode: "highlights" | "overlay" = "overlay" let findHits: Range[] = [] + const [findPos, setFindPos] = createSignal<{ top: number; right: number }>({ top: 8, right: 8 }) + const file = createMemo( () => new File( @@ -291,23 +292,26 @@ export function Code(props: CodeProps) { setFindIndex(0) } - const getScrollParent = (el: HTMLElement): HTMLElement | null => { + const getScrollParent = (el: HTMLElement): HTMLElement | undefined => { let parent = el.parentElement while (parent) { const style = getComputedStyle(parent) if (style.overflowY === "auto" || style.overflowY === "scroll") return parent parent = parent.parentElement } - return null } const positionFindBar = () => { - if (!findBar || !wrapper) return - const scrollTop = findScroll ? findScroll.scrollTop : window.scrollY - findBar.style.position = "absolute" - findBar.style.top = `${scrollTop + 8}px` - findBar.style.right = "8px" - findBar.style.left = "" + if (typeof window === "undefined") return + + const root = getScrollParent(wrapper) ?? wrapper + const rect = root.getBoundingClientRect() + const title = parseFloat(getComputedStyle(root).getPropertyValue("--session-title-height")) + const header = Number.isNaN(title) ? 0 : title + setFindPos({ + top: Math.round(rect.top) + header - 4, + right: Math.round(window.innerWidth - rect.right) + 8, + }) } const scanFind = (root: ShadowRoot, query: string) => { @@ -426,7 +430,6 @@ export function Code(props: CodeProps) { } if (opts?.scroll && active) { scrollToRange(active) - positionFindBar() } return } @@ -435,7 +438,6 @@ export function Code(props: CodeProps) { syncOverlayScroll() if (opts?.scroll && active) { scrollToRange(active) - positionFindBar() } scheduleOverlay() } @@ -464,14 +466,12 @@ export function Code(props: CodeProps) { return } scrollToRange(active) - positionFindBar() return } clearHighlightFind() syncOverlayScroll() scrollToRange(active) - positionFindBar() scheduleOverlay() } @@ -484,11 +484,9 @@ export function Code(props: CodeProps) { findCurrent = host findTarget = host - findScroll = getScrollParent(wrapper) ?? undefined if (!findOpen()) setFindOpen(true) requestAnimationFrame(() => { applyFind({ scroll: true }) - positionFindBar() findInput?.focus() findInput?.select() }) @@ -514,18 +512,18 @@ export function Code(props: CodeProps) { createEffect(() => { if (!findOpen()) return - findScroll = getScrollParent(wrapper) ?? undefined - const target = findScroll ?? window - const handler = () => positionFindBar() - target.addEventListener("scroll", handler, { passive: true }) - window.addEventListener("resize", handler, { passive: true }) - handler() + const update = () => positionFindBar() + requestAnimationFrame(update) + window.addEventListener("resize", update, { passive: true }) + + const root = getScrollParent(wrapper) ?? wrapper + const observer = typeof ResizeObserver === "undefined" ? undefined : new ResizeObserver(() => update()) + observer?.observe(root) onCleanup(() => { - target.removeEventListener("scroll", handler) - window.removeEventListener("resize", handler) - findScroll = undefined + window.removeEventListener("resize", update) + observer?.disconnect() }) }) @@ -916,6 +914,64 @@ export function Code(props: CodeProps) { pendingSelectionEnd = false }) + const FindBar = (barProps: { class: string; style?: ComponentProps<"div">["style"] }) => ( +
e.stopPropagation()}> + + { + setFindQuery(e.currentTarget.value) + setFindIndex(0) + applyFind({ reset: true, scroll: true }) + }} + onKeyDown={(e) => { + if (e.key === "Escape") { + e.preventDefault() + closeFind() + return + } + if (e.key !== "Enter") return + e.preventDefault() + stepFind(e.shiftKey ? -1 : 1) + }} + /> +
+ {findCount() ? `${findIndex() + 1}/${findCount()}` : "0/0"} +
+
+ + +
+ +
+ ) + return (
(props: CodeProps) { }} > -
e.stopPropagation()} - > - - { - setFindQuery(e.currentTarget.value) - setFindIndex(0) - applyFind({ reset: true, scroll: true }) - }} - onKeyDown={(e) => { - if (e.key === "Escape") { - e.preventDefault() - closeFind() - return - } - if (e.key !== "Enter") return - e.preventDefault() - stepFind(e.shiftKey ? -1 : 1) + + -
- {findCount() ? `${findIndex() + 1}/${findCount()}` : "0/0"} -
-
- - -
- -
+
From 4f6b9297840d242bdee25691959cd1ccfcd732fa Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Tue, 10 Feb 2026 20:03:24 +0000 Subject: [PATCH 11/66] chore: generate --- packages/web/src/content/docs/bs/github.mdx | 22 +- packages/web/src/content/docs/bs/gitlab.mdx | 22 +- packages/web/src/content/docs/bs/index.mdx | 28 +- packages/web/src/content/docs/bs/models.mdx | 10 +- .../web/src/content/docs/bs/permissions.mdx | 2 +- .../web/src/content/docs/bs/providers.mdx | 438 +++++++++--------- .../src/content/docs/bs/troubleshooting.mdx | 4 +- packages/web/src/content/docs/bs/tui.mdx | 4 +- packages/web/src/content/docs/fr/github.mdx | 22 +- packages/web/src/content/docs/fr/gitlab.mdx | 6 +- packages/web/src/content/docs/fr/index.mdx | 10 +- .../web/src/content/docs/fr/providers.mdx | 150 +++--- packages/web/src/content/docs/ja/cli.mdx | 48 +- packages/web/src/content/docs/ja/github.mdx | 22 +- packages/web/src/content/docs/ja/gitlab.mdx | 6 +- packages/web/src/content/docs/ja/index.mdx | 10 +- .../web/src/content/docs/ja/providers.mdx | 150 +++--- packages/web/src/content/docs/ko/github.mdx | 22 +- packages/web/src/content/docs/ko/gitlab.mdx | 6 +- .../web/src/content/docs/ko/providers.mdx | 136 +++--- .../src/content/docs/zh-cn/mcp-servers.mdx | 16 +- 21 files changed, 569 insertions(+), 565 deletions(-) diff --git a/packages/web/src/content/docs/bs/github.mdx b/packages/web/src/content/docs/bs/github.mdx index f53076518e..ff31be8e34 100644 --- a/packages/web/src/content/docs/bs/github.mdx +++ b/packages/web/src/content/docs/bs/github.mdx @@ -68,7 +68,7 @@ Ili ga možete postaviti ručno. model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx - ``` +``` 3. **Sačuvaj API ključeve u tajne** U **postavkama** organizacije ili projekta proširite **Tajne i varijable** na lijevoj strani i odaberite **Radnje**. I dodajte potrebne API ključeve. @@ -85,12 +85,12 @@ Ili ga možete postaviti ručno. Alternativno, možete koristiti GitHub Action runner [ugrađeni `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) bez instaliranja OpenCode GitHub aplikacije. Samo se pobrinite da date potrebna odobrenja u svom toku rada: ```yaml - permissions: - id-token: write - contents: write - pull-requests: write - issues: write - ``` +permissions: + id-token: write + contents: write + pull-requests: write + issues: write +``` Također možete koristiti [Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) ako želite. @@ -272,7 +272,7 @@ Evo nekoliko primjera kako možete koristiti OpenCode u GitHub. ``` /opencode explain this issue - ``` +``` OpenCode će pročitati cijelu temu, uključujući sve komentare, i odgovoriti s jasnim objašnjenjem. @@ -281,7 +281,7 @@ OpenCode će pročitati cijelu temu, uključujući sve komentare, i odgovoriti s ``` /opencode fix this - ``` +``` I OpenCode će kreirati novu granu, implementirati promjene i otvoriti PR sa promjenama. @@ -290,7 +290,7 @@ I OpenCode će kreirati novu granu, implementirati promjene i otvoriti PR sa pro ``` Delete the attachment from S3 when the note is removed /oc - ``` +``` OpenCode će implementirati traženu promjenu i posvetiti je istom PR-u. @@ -300,7 +300,7 @@ OpenCode će implementirati traženu promjenu i posvetiti je istom PR-u. ``` [Comment on specific lines in Files tab] /oc add error handling here - ``` +``` Kada komentarišete određene linije, OpenCode prima: diff --git a/packages/web/src/content/docs/bs/gitlab.mdx b/packages/web/src/content/docs/bs/gitlab.mdx index 09302140bd..aea7cbf8fe 100644 --- a/packages/web/src/content/docs/bs/gitlab.mdx +++ b/packages/web/src/content/docs/bs/gitlab.mdx @@ -29,14 +29,14 @@ Ovdje koristimo CI/CD komponentu kreiranu u zajednici za OpenCode — [nagyv/git 2. Dodajte sljedeće u svoju `.gitlab-ci.yml` datoteku. ```yaml title=".gitlab-ci.yml" - include: - - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 - inputs: - config_dir: ${CI_PROJECT_DIR}/opencode-config - auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON - command: optional-custom-command - message: "Your prompt here" - ``` +include: + - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 + inputs: + config_dir: ${CI_PROJECT_DIR}/opencode-config + auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON + command: optional-custom-command + message: "Your prompt here" +``` Za više unosa i slučajeva upotrebe [pogledajte dokumente docs](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) za ovu komponentu. @@ -165,7 +165,7 @@ Možete konfigurirati da koristite drugu frazu okidača od `@opencode`. ``` @opencode explain this issue - ``` +``` OpenCode će pročitati problem i odgovoriti jasnim objašnjenjem. @@ -174,7 +174,7 @@ OpenCode će pročitati problem i odgovoriti jasnim objašnjenjem. ``` @opencode fix this - ``` +``` OpenCode će kreirati novu granu, implementirati promjene i otvoriti zahtjev za spajanje s promjenama. @@ -183,6 +183,6 @@ OpenCode će kreirati novu granu, implementirati promjene i otvoriti zahtjev za ``` @opencode review this merge request - ``` +``` OpenCode će pregledati zahtjev za spajanje i dati povratne informacije. diff --git a/packages/web/src/content/docs/bs/index.mdx b/packages/web/src/content/docs/bs/index.mdx index 1de397c331..9cb9a5c152 100644 --- a/packages/web/src/content/docs/bs/index.mdx +++ b/packages/web/src/content/docs/bs/index.mdx @@ -74,7 +74,7 @@ Također ga možete instalirati pomoću sljedećih naredbi: ```bash brew install anomalyco/tap/opencode - ``` +``` > Preporučujemo korištenje OpenCode tap za najnovija izdanja. Službenu formulu `brew install opencode` održava Homebrew tim i ažurira se rjeđe. @@ -82,7 +82,7 @@ Također ga možete instalirati pomoću sljedećih naredbi: ```bash paru -S opencode-bin - ``` +``` #### Windows @@ -94,31 +94,31 @@ Za najbolje iskustvo na Windows-u preporučujemo korištenje [Windows Subsystem ```bash choco install opencode - ``` +``` - **Upotreba Scoop-a** ```bash scoop install opencode - ``` +``` - **Korištenje NPM-a** ```bash npm install -g opencode-ai - ``` +``` - **Korišćenje Mise** ```bash mise use -g github:anomalyco/opencode - ``` +``` - **Korišćenje Dockera** ```bash docker run -it --rm ghcr.io/anomalyco/opencode - ``` +``` Podrška za instaliranje OpenCode na Windows koristeći Bun je trenutno u toku. Također možete preuzeti binarnu datoteku iz [Releases](https://github.com/anomalyco/opencode/releases). @@ -136,7 +136,7 @@ tim. ```txt /connect - ``` +``` 2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ. 3. Zalijepite svoj API ključ. @@ -146,7 +146,7 @@ tim. │ │ └ enter - ``` +``` Alternativno, možete odabrati jednog od drugih provajdera. [Saznajte više](/docs/providers#directory). @@ -218,7 +218,7 @@ Možete zamoliti OpenCode da vašem projektu doda nove funkcije. Iako preporuču ```bash frame="none" title="Switch to Plan mode" - ``` +``` Hajde sada da opišemo šta želimo da uradi. @@ -226,7 +226,7 @@ Hajde sada da opišemo šta želimo da uradi. When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. - ``` +``` Želite da date OpenCode dovoljno detalja da razumete šta želite. Pomaže da razgovarate s njim kao da razgovarate sa mlađim programerom u svom timu. @@ -241,7 +241,7 @@ Dajte OpenCode dosta konteksta i primjera koji će mu pomoći da razumije šta v ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. - ``` +``` :::tip Prevucite i ispustite slike u terminal da biste ih dodali u prompt. @@ -255,13 +255,13 @@ učinite to povlačenjem i ispuštanjem slike u terminal. ```bash frame="none" - ``` +``` I tražeći od njega da napravi promjene. ```bash frame="none" Sounds good! Go ahead and make the changes. - ``` +``` --- diff --git a/packages/web/src/content/docs/bs/models.mdx b/packages/web/src/content/docs/bs/models.mdx index 8fbaf2df32..32d4d9b1b4 100644 --- a/packages/web/src/content/docs/bs/models.mdx +++ b/packages/web/src/content/docs/bs/models.mdx @@ -192,10 +192,10 @@ Kada se OpenCode pokrene, on provjerava modele u sljedećem prioritetnom redosli 2. Lista modela u OpenCode konfiguraciji. ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "model": "anthropic/claude-sonnet-4-20250514" - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "model": "anthropic/claude-sonnet-4-20250514" +} +``` Format ovdje je `provider/model`. 3. Posljednji korišteni model. 4. Prvi model koji koristi interni prioritet. diff --git a/packages/web/src/content/docs/bs/permissions.mdx b/packages/web/src/content/docs/bs/permissions.mdx index e1d7870dec..b581eee6e0 100644 --- a/packages/web/src/content/docs/bs/permissions.mdx +++ b/packages/web/src/content/docs/bs/permissions.mdx @@ -67,7 +67,7 @@ Za većinu dozvola, možete koristiti objekt za primjenu različitih radnji na o } ``` -Pravila se procjenjuju na osnovu podudaranja uzorka, pri čemu **pobjeđuje **poslednje odgovarajuće pravilo\*_. Uobičajeni obrazac je da se prvo pravilo `"*"` stavi sveobuhvatno, a poslije njega konkretnija pravila. +Pravila se procjenjuju na osnovu podudaranja uzorka, pri čemu **pobjeđuje **poslednje odgovarajuće pravilo\*\_. Uobičajeni obrazac je da se prvo pravilo `"*"` stavi sveobuhvatno, a poslije njega konkretnija pravila. ### Zamjenski znakovi diff --git a/packages/web/src/content/docs/bs/providers.mdx b/packages/web/src/content/docs/bs/providers.mdx index 7c8a355355..2a1989c211 100644 --- a/packages/web/src/content/docs/bs/providers.mdx +++ b/packages/web/src/content/docs/bs/providers.mdx @@ -61,7 +61,7 @@ Ako ste novi, preporučujemo da počnete sa OpenCode Zen. ```txt /connect - ``` +``` 2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ. @@ -72,13 +72,13 @@ Ako ste novi, preporučujemo da počnete sa OpenCode Zen. │ │ └ enter - ``` +``` 4. Pokrenite `/models` u TUI da vidite listu modela koje preporučujemo. ```txt /models - ``` +``` Radi kao i svaki drugi provajder u OpenCode i potpuno je opcionalan za korištenje. @@ -103,7 +103,7 @@ Ne vidite provajdera ovdje? Pošaljite PR. ```txt /connect - ``` +``` 3. Unesite svoj 302.AI API ključ. @@ -112,13 +112,13 @@ Ne vidite provajdera ovdje? Pošaljite PR. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` --- @@ -148,32 +148,32 @@ Da biste koristili Amazon Bedrock s OpenCode: # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode - ``` +``` Ili ih dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 - ``` +``` #### Konfiguracijski fajl (preporučeno) Za konfiguraciju specifičnu za projekat ili trajnu konfiguraciju, koristite `opencode.json`: ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } +} +``` **Dostupne opcije:** @@ -190,19 +190,19 @@ Opcije konfiguracijske datoteke imaju prednost nad varijablama okruženja. Ako koristite VPC krajnje tačke za Bedrock: ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } +} +``` :::note Opcija `endpoint` je pseudonim za generičku opciju `baseURL`, koristeći terminologiju specifičnu za AWS. Ako su specificirani i `endpoint` i `baseURL`, `endpoint` ima prednost. @@ -230,7 +230,7 @@ Kada se postavi token nosioca (putem `/connect` ili `AWS_BEARER_TOKEN_BEDROCK`), ```txt /models - ``` +``` :::note Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u ključu i postavite svojstvo `id` na arn. Ovo osigurava ispravno keširanje: @@ -261,7 +261,7 @@ Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u klj ```txt /connect - ``` +``` 2. Ovdje možete odabrati opciju **Claude Pro/Max** i ona će otvoriti vaš pretraživač i traži od vas da se autentifikujete. @@ -273,13 +273,13 @@ Za prilagođene profile zaključivanja, koristite ime modela i dobavljača u klj │ Create an API Key │ Manually enter API Key └ - ``` +``` 3. Sada bi svi Anthropic modeli trebali biti dostupni kada koristite naredbu `/models`. ```txt /models - ``` +``` :::info [Anthropic] (https://anthropic.com) službeno ne podržava korištenje vaše Claude Pro/Max pretplate u OpenCode. @@ -313,7 +313,7 @@ Ako naiđete na greške "Žao mi je, ali ne mogu pomoći s tim zahtjevom", poku ```txt /connect - ``` +``` 4. Unesite svoj API ključ. @@ -322,25 +322,25 @@ Ako naiđete na greške "Žao mi je, ali ne mogu pomoći s tim zahtjevom", poku │ │ └ enter - ``` +``` 5. Postavite ime vašeg resursa kao varijablu okruženja: ```bash AZURE_RESOURCE_NAME=XXX opencode - ``` +``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX - ``` +``` 6. Pokrenite naredbu `/models` da odaberete svoj raspoređeni model. ```txt /models - ``` +``` --- @@ -360,7 +360,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - ``` +``` 4. Unesite svoj API ključ. @@ -369,25 +369,25 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - ``` +``` 5. Postavite ime vašeg resursa kao varijablu okruženja: ```bash AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode - ``` +``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX - ``` +``` 6. Pokrenite naredbu `/models` da odaberete svoj raspoređeni model. ```txt /models - ``` +``` --- @@ -399,7 +399,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - ``` +``` 3. Unesite svoj Baseten API ključ. @@ -408,13 +408,13 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` --- @@ -426,7 +426,7 @@ Ili ga dodajte na svoj bash profil: ```txt /connect - ``` +``` 3. Unesite svoj Cerebras API ključ. @@ -435,13 +435,13 @@ Ili ga dodajte na svoj bash profil: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Qwen 3 Coder 480B_. ```txt /models - ``` +``` --- @@ -456,13 +456,13 @@ Cloudflare AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic ```bash title="~/.bash_profile" export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id export CLOUDFLARE_GATEWAY_ID=your-gateway-id - ``` +``` 3. Pokrenite naredbu `/connect` i potražite **Cloudflare AI Gateway**. ```txt /connect - ``` +``` 4. Unesite svoj Cloudflare API token. @@ -471,35 +471,35 @@ Cloudflare AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic │ │ └ enter - ``` +``` Ili ga postavite kao varijablu okruženja. ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token - ``` +``` 5. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` Također možete dodati modele kroz svoju opencode konfiguraciju. ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } +} +``` --- @@ -511,7 +511,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - ``` +``` 3. Unesite svoj Cortecs API ključ. @@ -520,13 +520,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - ``` +``` --- @@ -538,7 +538,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - ``` +``` 3. Unesite svoj DeepSeek API ključ. @@ -547,13 +547,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete DeepSeek model kao što je _DeepSeek Reasoner_. ```txt /models - ``` +``` --- @@ -565,7 +565,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - ``` +``` 3. Unesite svoj Deep Infra API ključ. @@ -574,13 +574,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` --- @@ -592,7 +592,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - ``` +``` 3. Unesite svoj Firmware API ključ. @@ -601,13 +601,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` --- @@ -619,7 +619,7 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. ```txt /connect - ``` +``` 3. Unesite svoj Fireworks AI API ključ. @@ -628,13 +628,13 @@ Također možete dodati modele kroz svoju opencode konfiguraciju. │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - ``` +``` --- @@ -646,7 +646,7 @@ GitLab Duo pruža agentsko ćaskanje sa AI-om sa izvornim mogućnostima pozivanj ```txt /connect - ``` +``` 2. Odaberite svoj način autentifikacije: @@ -656,7 +656,7 @@ GitLab Duo pruža agentsko ćaskanje sa AI-om sa izvornim mogućnostima pozivanj │ OAuth (Recommended) │ Personal Access Token └ - ``` +``` #### Korištenje OAuth-a (preporučeno) @@ -674,7 +674,7 @@ Odaberite **OAuth** i vaš pretraživač će se otvoriti za autorizaciju. ```txt /models - ``` +``` Dostupna su tri modela bazirana na Claudeu: @@ -804,7 +804,7 @@ Neki modeli moraju biti ručno omogućeni u vašim [postavkama GitHub Copilot](h ```txt /connect - ``` +``` 2. Idite na [github.com/login/device](https://github.com/login/device) i unesite kod. @@ -816,13 +816,13 @@ Neki modeli moraju biti ručno omogućeni u vašim [postavkama GitHub Copilot](h │ Enter code: 8F43-6FCF │ └ Waiting for authorization... - ``` +``` 3. Sada pokrenite naredbu `/models` da odaberete model koji želite. ```txt /models - ``` +``` --- @@ -848,7 +848,7 @@ Za korištenje Google Vertex AI s OpenCode: ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode - ``` +``` Ili ih dodajte svom bash profilu. @@ -856,7 +856,7 @@ Ili ih dodajte svom bash profilu. export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global - ``` +``` :::tip Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova. Koristite regionalne krajnje tačke (npr. `us-central1`) za zahtjeve rezidentnosti podataka. [Saznajte više](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -866,7 +866,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /models - ``` +``` --- @@ -878,7 +878,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - ``` +``` 3. Unesite API ključ za provajdera. @@ -887,13 +887,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete onu koju želite. ```txt /models - ``` +``` --- @@ -907,7 +907,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - ``` +``` 3. Unesite svoj token Hugging Face. @@ -916,13 +916,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi-K2-Instruct_ ili _GLM-4.6_. ```txt /models - ``` +``` --- @@ -936,7 +936,7 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova ```txt /connect - ``` +``` 3. Unesite svoj Helicone API ključ. @@ -945,13 +945,13 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` Za više provajdera i napredne funkcije kao što su keširanje i ograničavanje brzine, provjerite [Helicone dokumentaciju](https://docs.helicone.ai). @@ -1087,7 +1087,7 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe: ```txt /connect - ``` +``` 3. Unesite svoj IO.NET API ključ. @@ -1096,13 +1096,13 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` --- @@ -1150,7 +1150,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - ``` +``` 3. Unesite svoj Moonshot API ključ. @@ -1159,13 +1159,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete _Kimi K2_. ```txt /models - ``` +``` --- @@ -1177,7 +1177,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - ``` +``` 3. Unesite svoj MiniMax API ključ. @@ -1186,13 +1186,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _M2.1_. ```txt /models - ``` +``` --- @@ -1204,7 +1204,7 @@ Da biste koristili Kimi K2 iz Moonshot AI: ```txt /connect - ``` +``` 3. Unesite svoj Nebius Token Factory API ključ. @@ -1213,13 +1213,13 @@ Da biste koristili Kimi K2 iz Moonshot AI: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - ``` +``` --- @@ -1279,7 +1279,7 @@ Da biste koristili Ollama Cloud s OpenCode: ```txt /connect - ``` +``` 5. Unesite svoj Ollama Cloud API ključ. @@ -1288,19 +1288,19 @@ Da biste koristili Ollama Cloud s OpenCode: │ │ └ enter - ``` +``` 6. **Važno**: Prije upotrebe modela oblaka u OpenCode, morate lokalno povući informacije o modelu: ```bash ollama pull gpt-oss:20b-cloud - ``` +``` 7. Pokrenite naredbu `/models` da odaberete svoj model Ollama Cloud. ```txt /models - ``` +``` --- @@ -1312,7 +1312,7 @@ Preporučujemo da se prijavite za [ChatGPT Plus ili Pro](https://chatgpt.com/pri ```txt /connect - ``` +``` 2. Ovdje možete odabrati opciju **ChatGPT Plus/Pro** i ona će otvoriti vaš pretraživač i traži od vas da se autentifikujete. @@ -1323,13 +1323,13 @@ Preporučujemo da se prijavite za [ChatGPT Plus ili Pro](https://chatgpt.com/pri │ ChatGPT Plus/Pro │ Manually enter API Key └ - ``` +``` 3. Sada bi svi OpenAI modeli trebali biti dostupni kada koristite naredbu `/models`. ```txt /models - ``` +``` ##### Korištenje API ključeva @@ -1347,7 +1347,7 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo ```txt /connect - ``` +``` 3. Unesite svoj OpenCode API ključ. @@ -1356,13 +1356,13 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Qwen 3 Coder 480B_. ```txt /models - ``` +``` --- @@ -1374,7 +1374,7 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo ```txt /connect - ``` +``` 3. Unesite API ključ za provajdera. @@ -1383,50 +1383,50 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo │ │ └ enter - ``` +``` 4. Mnogi OpenRouter modeli su unapred učitani po defaultu, pokrenite naredbu `/models` da odaberete onaj koji želite. ```txt /models - ``` +``` Također možete dodati dodatne modele putem vaše opencode konfiguracije. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` 5. Također ih možete prilagoditi putem vaše opencode konfiguracije. Evo primjera navođenja provajdera ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "moonshotai/kimi-k2": { - "options": { - "provider": { - "order": ["baseten"], - "allow_fallbacks": false - } - } - } - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "moonshotai/kimi-k2": { + "options": { + "provider": { + "order": ["baseten"], + "allow_fallbacks": false + } + } + } + } + } + } +} +``` --- @@ -1444,7 +1444,7 @@ SAP AI Core omogućava pristup preko 40+ modela iz OpenAI, Anthropic, Google, Am ```txt /connect - ``` +``` 3. Unesite JSON svoj servisni ključ. @@ -1453,25 +1453,25 @@ SAP AI Core omogućava pristup preko 40+ modela iz OpenAI, Anthropic, Google, Am │ │ └ enter - ``` +``` Ili postavite varijablu okruženja `AICORE_SERVICE_KEY`: ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode - ``` +``` Ili ga dodajte na svoj bash profil: ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' - ``` +``` 4. Opciono postavite ID implementacije i grupu resursa: ```bash AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode - ``` +``` :::note Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core postavkama. @@ -1481,7 +1481,7 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p ```txt /models - ``` +``` --- @@ -1493,7 +1493,7 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p ```txt /connect - ``` +``` 3. Unesite svoj OVHcloud AI Endpoints API ključ. @@ -1502,13 +1502,13 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _gpt-oss-120b_. ```txt /models - ``` +``` --- @@ -1522,7 +1522,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - ``` +``` 3. Unesite svoj Scaleway API ključ. @@ -1531,13 +1531,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _devstral-2-123b-instruct-2512_ ili _gpt-oss-120b_. ```txt /models - ``` +``` --- @@ -1549,7 +1549,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - ``` +``` 3. Unesite svoj Together AI API ključ. @@ -1558,13 +1558,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Kimi K2 Instruct_. ```txt /models - ``` +``` --- @@ -1576,7 +1576,7 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g ```txt /connect - ``` +``` 3. Unesite svoj Venice AI API ključ. @@ -1585,13 +1585,13 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Llama 3.3 70B_. ```txt /models - ``` +``` --- @@ -1605,7 +1605,7 @@ Vercel AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic, Go ```txt /connect - ``` +``` 3. Unesite svoj Vercel AI Gateway API ključ. @@ -1614,13 +1614,13 @@ Vercel AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic, Go │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model. ```txt /models - ``` +``` Također možete prilagoditi modele kroz svoju opencode konfiguraciju. Evo primjera specificiranja redoslijeda usmjeravanja dobavljača. @@ -1659,7 +1659,7 @@ Neke korisne opcije rutiranja: ```txt /connect - ``` +``` 3. Unesite svoj xAI API ključ. @@ -1668,13 +1668,13 @@ Neke korisne opcije rutiranja: │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _Grok Beta_. ```txt /models - ``` +``` --- @@ -1686,7 +1686,7 @@ Neke korisne opcije rutiranja: ```txt /connect - ``` +``` Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja**. @@ -1697,13 +1697,13 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* │ │ └ enter - ``` +``` 4. Pokrenite naredbu `/models` da odaberete model kao što je _GLM-4.7_. ```txt /models - ``` +``` --- @@ -1715,7 +1715,7 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* ```txt /connect - ``` +``` 3. Unesite API ključ za provajdera. @@ -1724,28 +1724,28 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja* │ │ └ enter - ``` +``` 4. Mnogi ZenMux modeli su unaprijed učitani po defaultu, pokrenite naredbu `/models` da odaberete onaj koji želite. ```txt /models - ``` +``` Također možete dodati dodatne modele putem vaše opencode konfiguracije. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` --- @@ -1768,7 +1768,7 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već │ ... │ ● Other └ - ``` +``` 2. Unesite jedinstveni ID za provajdera. @@ -1780,7 +1780,7 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već ◇ Enter provider id │ myprovider └ - ``` +``` :::note Odaberite ID koji se pamti, to ćete koristiti u svom konfiguracijskom fajlu. @@ -1798,29 +1798,29 @@ Odaberite ID koji se pamti, to ćete koristiti u svom konfiguracijskom fajlu. ◇ Enter your API key │ sk-... └ - ``` +``` 4. Kreirajte ili ažurirajte svoju `opencode.json` datoteku u direktoriju projekta: ```json title="opencode.json" ""myprovider"" {5-15} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "myprovider": { - "npm": "@ai-sdk/openai-compatible", - "name": "My AI ProviderDisplay Name", - "options": { - "baseURL": "https://api.myprovider.com/v1" - }, - "models": { - "my-model-name": { - "name": "My Model Display Name" - } - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "myprovider": { + "npm": "@ai-sdk/openai-compatible", + "name": "My AI ProviderDisplay Name", + "options": { + "baseURL": "https://api.myprovider.com/v1" + }, + "models": { + "my-model-name": { + "name": "My Model Display Name" + } + } + } + } +} +``` Evo opcija konfiguracije: diff --git a/packages/web/src/content/docs/bs/troubleshooting.mdx b/packages/web/src/content/docs/bs/troubleshooting.mdx index 0d377d246f..3ef59c8b13 100644 --- a/packages/web/src/content/docs/bs/troubleshooting.mdx +++ b/packages/web/src/content/docs/bs/troubleshooting.mdx @@ -242,7 +242,7 @@ Da biste ovo riješili: ```bash rm -rf ~/.local/share/opencode - ``` +``` Na Windows-u pritisnite `WIN+R` i izbrišite: `%USERPROFILE%\.local\share\opencode` @@ -260,7 +260,7 @@ Da biste riješili probleme s paketom dobavljača: ```bash rm -rf ~/.cache/opencode - ``` +``` Na Windows-u pritisnite `WIN+R` i izbrišite: `%USERPROFILE%\.cache\opencode` diff --git a/packages/web/src/content/docs/bs/tui.mdx b/packages/web/src/content/docs/bs/tui.mdx index 3fa0d903ae..a4bf01c7f7 100644 --- a/packages/web/src/content/docs/bs/tui.mdx +++ b/packages/web/src/content/docs/bs/tui.mdx @@ -292,7 +292,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl -```bash +````bash # Example for nano or vim export EDITOR=nano export EDITOR=vim @@ -370,7 +370,7 @@ Možete prilagoditi TUI ponašanje putem vašeg OpenCode konfiguracionog fajla. } } } -``` +```` ### Opcije diff --git a/packages/web/src/content/docs/fr/github.mdx b/packages/web/src/content/docs/fr/github.mdx index 2083dbcb9b..308b25a3dc 100644 --- a/packages/web/src/content/docs/fr/github.mdx +++ b/packages/web/src/content/docs/fr/github.mdx @@ -71,7 +71,7 @@ Ajoutez le fichier de workflow suivant à `.github/workflows/opencode.yml` dans model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx - ``` +``` 3. **Stockez les clés API en secret** @@ -90,12 +90,12 @@ Dans les **paramètres** de votre organisation ou de votre projet, développez * Vous pouvez également utiliser le `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) intégré du GitHub Action Runner sans installer l'application OpenCode GitHub. Assurez-vous simplement d'accorder les autorisations requises dans votre flux de travail : ```yaml - permissions: - id-token: write - contents: write - pull-requests: write - issues: write - ``` +permissions: + id-token: write + contents: write + pull-requests: write + issues: write +``` Vous pouvez également utiliser un [jetons d'accès personnels](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) si vous préférez. @@ -279,7 +279,7 @@ Ajoutez ce commentaire dans un numéro GitHub. ``` /opencode explain this issue - ``` +``` OpenCode lira l'intégralité du fil de discussion, y compris tous les commentaires, et répondra avec une explication claire. @@ -289,7 +289,7 @@ Dans un numéro GitHub, dites : ``` /opencode fix this - ``` +``` Et OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouvrira un PR avec les modifications. @@ -299,7 +299,7 @@ Laissez le commentaire suivant sur un PR GitHub. ``` Delete the attachment from S3 when the note is removed /oc - ``` +``` OpenCode mettra en œuvre la modification demandée et la validera dans le même PR. @@ -310,7 +310,7 @@ Laissez un commentaire directement sur les lignes de code dans l'onglet "Fichier ``` [Comment on specific lines in Files tab] /oc add error handling here - ``` +``` Lorsqu'il commente des lignes spécifiques, OpenCode reçoit : diff --git a/packages/web/src/content/docs/fr/gitlab.mdx b/packages/web/src/content/docs/fr/gitlab.mdx index c2401d614e..f562aadf3f 100644 --- a/packages/web/src/content/docs/fr/gitlab.mdx +++ b/packages/web/src/content/docs/fr/gitlab.mdx @@ -170,7 +170,7 @@ Ajoutez ce commentaire dans un numéro GitLab. ``` @opencode explain this issue - ``` +``` OpenCode lira le problème et répondra avec une explication claire. @@ -180,7 +180,7 @@ Dans un numéro GitLab, dites : ``` @opencode fix this - ``` +``` OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouvrira une demande de fusion avec les modifications. @@ -190,6 +190,6 @@ Laissez le commentaire suivant sur une demande de fusion GitLab. ``` @opencode review this merge request - ``` +``` OpenCode examinera la demande de fusion et fournira des commentaires. diff --git a/packages/web/src/content/docs/fr/index.mdx b/packages/web/src/content/docs/fr/index.mdx index 15ce5ff77e..356806c8e2 100644 --- a/packages/web/src/content/docs/fr/index.mdx +++ b/packages/web/src/content/docs/fr/index.mdx @@ -230,7 +230,7 @@ Accédez-y à l'aide de la touche **Tab**. Vous verrez un indicateur à cet effe ```bash frame="none" title="Switch to Plan mode" - ``` +``` Décrivons maintenant ce que nous voulons qu'il fasse. @@ -238,7 +238,7 @@ Décrivons maintenant ce que nous voulons qu'il fasse. When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. - ``` +``` Vous souhaitez donner à OpenCode suffisamment de détails pour comprendre ce que vous voulez. Ça aide pour lui parler comme si vous parliez à un développeur junior de votre équipe. @@ -255,7 +255,7 @@ Une fois qu'il vous donne un plan, vous pouvez lui faire part de vos commentaire ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. - ``` +``` :::tip Faites glisser et déposez des images dans le terminal pour les ajouter à l'invite. @@ -271,13 +271,13 @@ appuyer à nouveau sur la touche **Tab**. ```bash frame="none" - ``` +``` Et lui demander d'apporter les modifications. ```bash frame="none" Sounds good! Go ahead and make the changes. - ``` +``` --- diff --git a/packages/web/src/content/docs/fr/providers.mdx b/packages/web/src/content/docs/fr/providers.mdx index 69be63f5a9..b65e9c00a1 100644 --- a/packages/web/src/content/docs/fr/providers.mdx +++ b/packages/web/src/content/docs/fr/providers.mdx @@ -148,32 +148,32 @@ Définissez l'une de ces variables d'environnement lors de l'exécution de openc # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode - ``` +``` Ou ajoutez-les à votre profil bash : ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 - ``` +``` #### Fichier de configuration (recommandé) Pour une configuration spécifique au projet ou persistante, utilisez `opencode.json` : ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } +} +``` **Options disponibles :** @@ -190,19 +190,19 @@ Les options du fichier de configuration sont prioritaires sur les variables d'en Si vous utilisez des points de terminaison d'un VPC pour Bedrock : ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } +} +``` :::note L'option `endpoint` est un alias pour l'option générique `baseURL`, utilisant la terminologie spécifique à AWS. Si `endpoint` et `baseURL` sont spécifiés, `endpoint` est prioritaire. @@ -334,7 +334,7 @@ Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX - ``` +``` 6. Exécutez la commande `/models` pour sélectionner votre modèle déployé. @@ -381,7 +381,7 @@ Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX - ``` +``` 6. Exécutez la commande `/models` pour sélectionner votre modèle déployé. @@ -477,7 +477,7 @@ Ou définissez-le comme variable d'environnement. ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token - ``` +``` 5. Exécutez la commande `/models` pour sélectionner un modèle. @@ -488,18 +488,18 @@ Ou définissez-le comme variable d'environnement. Vous pouvez également ajouter des modèles via votre configuration opencode. ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } +} +``` --- @@ -673,8 +673,10 @@ Sélectionnez **OAuth** et votre navigateur s'ouvrira pour autorisation. 6. Exécutez la commande `/models` pour voir les modèles disponibles. ```txt - /models - ``` + /models + ``` + +```` Trois modèles basés sur Claude sont disponibles : @@ -697,11 +699,11 @@ Fichier `opencode.json`. Il est également recommandé de désactiver le partage ```json { - "$schema": "https://opencode.ai/config.json", - "small_model": "gitlab/duo-chat-haiku-4-5", - "share": "disabled" +"$schema": "https://opencode.ai/config.json", +"small_model": "gitlab/duo-chat-haiku-4-5", +"share": "disabled" } -``` +```` ::: @@ -848,7 +850,7 @@ Définissez-les lors de l'exécution de opencode. ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode - ``` +``` Ou ajoutez-les à votre profil bash. @@ -856,7 +858,7 @@ Ou ajoutez-les à votre profil bash. export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global - ``` +``` :::tip La région `global` améliore la disponibilité et réduit les erreurs sans frais supplémentaires. Utilisez des points de terminaison régionaux (par exemple, `us-central1`) pour les exigences de résidence des données. [En savoir plus](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -1394,17 +1396,17 @@ OpenCode Zen est une liste de modèles testés et vérifiés fournie par l'équi Vous pouvez également ajouter des modèles supplémentaires via votre configuration opencode. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` 5. Vous pouvez également les personnaliser via votre configuration opencode. Voici un exemple de spécification d'un fournisseur @@ -1459,13 +1461,13 @@ Ou définissez la variable d'environnement `AICORE_SERVICE_KEY` : ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode - ``` +``` Ou ajoutez-le à votre profil bash : ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' - ``` +``` 4. Définissez éventuellement l'ID de déploiement et le groupe de ressources : @@ -1735,17 +1737,17 @@ Si vous êtes abonné au **Plan de codage GLM**, sélectionnez **Plan de codage Vous pouvez également ajouter des modèles supplémentaires via votre configuration opencode. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` --- diff --git a/packages/web/src/content/docs/ja/cli.mdx b/packages/web/src/content/docs/ja/cli.mdx index 090deae289..6eb913f0e5 100644 --- a/packages/web/src/content/docs/ja/cli.mdx +++ b/packages/web/src/content/docs/ja/cli.mdx @@ -29,16 +29,16 @@ opencode [project] #### Flags -| Flag | Short | Description | -| ------------ | ----- | --------------------------------------------------------------------- | -| `--continue` | `-c` | 最後のセッションを続行 | -| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | -| `--continue` | `--session` | 続行するセッション ID | -| `--prompt` | | 使用のプロンプト | -| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | -| `--agent` | | 使用するエージェント | -| `--port` | | リッスンするポート | -| `--hostname` | | リッスンするホスト名 | +| Flag | Short | Description | +| ------------ | ----------- | ---------------------------------------------------------- | +| `--continue` | `-c` | 最後のセッションを続行 | +| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | +| `--continue` | `--session` | 続行するセッション ID | +| `--prompt` | | 使用のプロンプト | +| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | +| `--agent` | | 使用するエージェント | +| `--port` | | リッスンするポート | +| `--hostname` | | リッスンするホスト名 | --- @@ -335,20 +335,20 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" #### Flags -| Flag | Short | Description | -| ------------ | ----- | ----------------------------------------------------------------------------------------- | -| `--command` | | 実行するコマンド。引数には message を使用します。 | -| `--continue` | `-c` | 最後のセッションを続行 | -| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | -| `--continue` | `--session` | 続行するセッション ID | -| `--share` | | セッションを共有する | -| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | -| `--agent` | | 使用するエージェント | -| `--file` | `-f` | メッセージに添付するファイル | -| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) | -| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) | -| `--attach` | | 実行中のopencodeサーバー (http://localhost:4096 など) に接続します。 | -| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) | +| Flag | Short | Description | +| ------------ | ----------- | ----------------------------------------------------------------------------------------- | +| `--command` | | 実行するコマンド。引数には message を使用します。 | +| `--continue` | `-c` | 最後のセッションを続行 | +| `--session` | | 続行時にセッションをフォーク (`-s` または `--fork` と併用) | +| `--continue` | `--session` | 続行するセッション ID | +| `--share` | | セッションを共有する | +| `--model` | `-m` | プロバイダー/モデルの形式で使用するモデル | +| `--agent` | | 使用するエージェント | +| `--file` | `-f` | メッセージに添付するファイル | +| `--format` | | 形式: デフォルト (フォーマット済み) または json (生の JSON イベント) | +| `--title` | | セッションのタイトル (値が指定されていない場合は、切り詰められたプロンプトが使用されます) | +| `--attach` | | 実行中のopencodeサーバー (http://localhost:4096 など) に接続します。 | +| `--port` | | ローカルサーバーのポート (デフォルトはランダムポート) | --- diff --git a/packages/web/src/content/docs/ja/github.mdx b/packages/web/src/content/docs/ja/github.mdx index 9c958eaf7f..b879e08dc5 100644 --- a/packages/web/src/content/docs/ja/github.mdx +++ b/packages/web/src/content/docs/ja/github.mdx @@ -71,7 +71,7 @@ opencode github install model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx - ``` +``` 3. **API キーをシークレットに保存します** @@ -90,12 +90,12 @@ opencode github install あるいは、OpenCode GitHub アプリをインストールせずに、GitHub Action ランナーの [組み込み `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) を使用することもできます。ワークフローで必要な権限を必ず付与してください。 ```yaml - permissions: - id-token: write - contents: write - pull-requests: write - issues: write - ``` +permissions: + id-token: write + contents: write + pull-requests: write + issues: write +``` 必要に応じて、[パーソナル アクセス トークン](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) を使用することもできます。 @@ -279,7 +279,7 @@ GitHub で OpenCode を使用する方法の例をいくつか示します。 ``` /opencode explain this issue - ``` +``` OpenCode は、すべてのコメントを含むスレッド全体を読み取り、明確な説明を返信します。 @@ -289,7 +289,7 @@ GitHub の問題で次のように言います。 ``` /opencode fix this - ``` +``` そして、OpenCode は新しいブランチを作成し、変更を実装し、変更を含む PR を開きます。 @@ -299,7 +299,7 @@ GitHub PR に次のコメントを残してください。 ``` Delete the attachment from S3 when the note is removed /oc - ``` +``` OpenCode は要求された変更を実装し、同じ PR にコミットします。 @@ -310,7 +310,7 @@ PR の「ファイル」タブのコード行に直接コメントを残しま ``` [Comment on specific lines in Files tab] /oc add error handling here - ``` +``` 特定の行にコメントすると、OpenCode は以下を受け取ります。 diff --git a/packages/web/src/content/docs/ja/gitlab.mdx b/packages/web/src/content/docs/ja/gitlab.mdx index ab7d93ca57..7f20ed5714 100644 --- a/packages/web/src/content/docs/ja/gitlab.mdx +++ b/packages/web/src/content/docs/ja/gitlab.mdx @@ -170,7 +170,7 @@ GitLab で OpenCode を使用する方法の例をいくつか示します。 ``` @opencode explain this issue - ``` +``` OpenCode は問題を読み、明確な説明を返信します。 @@ -180,7 +180,7 @@ GitLab の問題では、次のように言います。 ``` @opencode fix this - ``` +``` OpenCode は新しいブランチを作成し、変更を実装し、変更を含むマージ リクエストを開きます。 @@ -190,6 +190,6 @@ GitLab マージ リクエストに次のコメントを残してください。 ``` @opencode review this merge request - ``` +``` OpenCode はマージ リクエストをレビューし、フィードバックを提供します。 diff --git a/packages/web/src/content/docs/ja/index.mdx b/packages/web/src/content/docs/ja/index.mdx index c1bfd24d28..87b0e9e74f 100644 --- a/packages/web/src/content/docs/ja/index.mdx +++ b/packages/web/src/content/docs/ja/index.mdx @@ -230,7 +230,7 @@ OpenCode には、変更を加える機能を無効にする _Plan mode_ があ ```bash frame="none" title="Switch to Plan mode" - ``` +``` では、何をしたいのかを説明しましょう。 @@ -238,7 +238,7 @@ OpenCode には、変更を加える機能を無効にする _Plan mode_ があ When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. - ``` +``` 自分が何を望んでいるのかを理解するために、OpenCode に十分な詳細を提供したいと考えています。役に立ちます チームの若手開発者と話しているように話すことができます。 @@ -255,7 +255,7 @@ want. ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. - ``` +``` :::tip 画像をterminal にドラッグ アンド ドロップして、プロンプトに追加します。 @@ -271,13 +271,13 @@ OpenCode は、指定された画像をスキャンしてプロンプトに追 ```bash frame="none" - ``` +``` そして変更を加えるように依頼します。 ```bash frame="none" Sounds good! Go ahead and make the changes. - ``` +``` --- diff --git a/packages/web/src/content/docs/ja/providers.mdx b/packages/web/src/content/docs/ja/providers.mdx index 91d8c5c762..7ffe4605d5 100644 --- a/packages/web/src/content/docs/ja/providers.mdx +++ b/packages/web/src/content/docs/ja/providers.mdx @@ -148,32 +148,32 @@ opencode の実行中に次の環境変数のいずれかを設定します。 # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode - ``` +``` または、それらを bash プロファイルに追加します。 ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 - ``` +``` #### 設定ファイル (推奨) プロジェクト固有の構成または永続的な構成の場合は、`opencode.json` を使用します。 ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } +} +``` **利用可能なオプション:** @@ -190,19 +190,19 @@ opencode の実行中に次の環境変数のいずれかを設定します。 Bedrock の VPC エンドポイントを使用している場合: ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } +} +``` :::note `endpoint` オプションは、AWS 固有の用語を使用した汎用の `baseURL` オプションのエイリアスです。 `endpoint` と `baseURL` の両方が指定された場合は、`endpoint` が優先されます。 @@ -334,7 +334,7 @@ opencodeが正しく動作するには、デプロイメント名がモデル名 ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX - ``` +``` 6. `/models` コマンドを実行して、デプロイされたモデルを選択します。 @@ -381,7 +381,7 @@ opencodeが正しく動作するには、デプロイメント名がモデル名 ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX - ``` +``` 6. `/models` コマンドを実行して、デプロイされたモデルを選択します。 @@ -477,7 +477,7 @@ Cloudflare AI Gatewayを使用すると、統合エンドポイントを通じ ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token - ``` +``` 5. `/models` コマンドを実行してモデルを選択します。 @@ -488,18 +488,18 @@ Cloudflare AI Gatewayを使用すると、統合エンドポイントを通じ opencode構成を通じてモデルを追加することもできます。 ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } +} +``` --- @@ -673,8 +673,10 @@ GitLab Duo は、GitLab の Anthropic プロキシを介したネイティブ 6. `/models` コマンドを実行して、利用可能なモデルを確認します。 ```txt - /models - ``` + /models + ``` + +```` 3 つのクロードベースのモデルが利用可能です。 @@ -697,11 +699,11 @@ OpenCode は、セッション タイトルの生成などの一部の AI タス ```json { - "$schema": "https://opencode.ai/config.json", - "small_model": "gitlab/duo-chat-haiku-4-5", - "share": "disabled" +"$schema": "https://opencode.ai/config.json", +"small_model": "gitlab/duo-chat-haiku-4-5", +"share": "disabled" } -``` +```` ::: @@ -848,7 +850,7 @@ opencode の実行中に設定します。 ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode - ``` +``` または、それらを bash プロファイルに追加します。 @@ -856,7 +858,7 @@ opencode の実行中に設定します。 export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global - ``` +``` :::tip `global` 領域は、追加コストなしで可用性を向上させ、エラーを削減します。データ常駐要件には、リージョン エンドポイント (`us-central1` など) を使用します。 [詳細はこちら](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) @@ -1394,17 +1396,17 @@ OpenCode Zen は、OpenCode チームによって提供される、テストお opencode構成を通じて追加のモデルを追加することもできます。 ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` 5. opencode設定を通じてカスタマイズすることもできます。プロバイダーを指定する例を次に示します。 @@ -1459,13 +1461,13 @@ SAP AI コアは、統合プラットフォームを通じて、OpenAI、Anthrop ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode - ``` +``` または、bash プロファイルに追加します。 ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' - ``` +``` 4. 必要に応じて、デプロイメント ID とリソース グループを設定します。 @@ -1735,17 +1737,17 @@ opencode構成を通じてモデルをカスタマイズすることもできま opencode構成を通じて追加のモデルを追加することもできます。 ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` --- diff --git a/packages/web/src/content/docs/ko/github.mdx b/packages/web/src/content/docs/ko/github.mdx index 7a6f730c59..2395ee667b 100644 --- a/packages/web/src/content/docs/ko/github.mdx +++ b/packages/web/src/content/docs/ko/github.mdx @@ -70,7 +70,7 @@ GitHub 앱을 설치하고 워크플로를 만들고 비밀을 설정할 수 있 model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx - ``` +``` 3. ** 비밀의 API 키 저장 ** @@ -89,12 +89,12 @@ GitHub 앱을 설치하고 워크플로를 만들고 비밀을 설정할 수 있 대안으로, GitHub Action runner의 [붙박이 `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github token)을 사용하여 opencode GitHub 앱을 설치하지 않고 사용할 수 있습니다. 워크플로우에서 필요한 권한을 부여하는 것을 확인하십시오. ```yaml - permissions: - id-token: write - contents: write - pull-requests: write - issues: write - ``` +permissions: + id-token: write + contents: write + pull-requests: write + issues: write +``` 또한 [개인 액세스 토큰](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT)를 사용할 수 있습니다. @@ -278,7 +278,7 @@ GitHub 문제에서 이 의견 추가. ``` /opencode explain this issue - ``` +``` opencode는 모든 코멘트를 포함하여 전체 스레드를 읽고, 명확한 설명과 대답. @@ -288,7 +288,7 @@ GitHub 문제에서: ``` /opencode fix this - ``` +``` opencode는 새로운 지점을 만들 것이며 변경 사항을 실행하고 PR을 변경합니다. @@ -298,7 +298,7 @@ GitHub PR에 다음 댓글을 남겨주세요. ``` Delete the attachment from S3 when the note is removed /oc - ``` +``` opencode는 요청한 변경을 구현하고 동일한 PR에 커밋합니다. @@ -309,7 +309,7 @@ PR의 "Files" 탭의 코드 라인에 직접 댓글을 남겨주세요. opencode ``` [Comment on specific lines in Files tab] /oc add error handling here - ``` +``` 특정 라인에 대한 의견이 있을 때, opencode는 다음과 같습니다. diff --git a/packages/web/src/content/docs/ko/gitlab.mdx b/packages/web/src/content/docs/ko/gitlab.mdx index bdf73496bc..758ab04917 100644 --- a/packages/web/src/content/docs/ko/gitlab.mdx +++ b/packages/web/src/content/docs/ko/gitlab.mdx @@ -170,7 +170,7 @@ GitLab 문제에서이 코멘트를 추가하십시오. ``` @opencode explain this issue - ``` +``` opencode는 문제와 대답을 명확하게 설명합니다. @@ -180,7 +180,7 @@ GitLab 문제에서, 말한다: ``` @opencode fix this - ``` +``` opencode는 새로운 지점을 만들 것이며 변경 사항을 구현하고 변경 사항을 병합 요청을 엽니다. @@ -190,6 +190,6 @@ GitLab 병합 요청에 대한 다음 의견을 남겨주세요. ``` @opencode review this merge request - ``` +``` opencode는 병합 요청을 검토하고 피드백을 제공합니다. diff --git a/packages/web/src/content/docs/ko/providers.mdx b/packages/web/src/content/docs/ko/providers.mdx index faff030dcb..222a54fc78 100644 --- a/packages/web/src/content/docs/ko/providers.mdx +++ b/packages/web/src/content/docs/ko/providers.mdx @@ -148,32 +148,32 @@ opencode를 실행하는 동안 이러한 환경 변수 중 하나를 설정: # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode - ``` +``` 또는 bash 프로필에 추가: ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 - ``` +``` #### 설정 파일 (추천) 프로젝트 별 또는 지속적 구성의 경우 `opencode.json`를 사용하십시오. ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } +} +``` ** 유효한 옵션:** @@ -190,19 +190,19 @@ opencode를 실행하는 동안 이러한 환경 변수 중 하나를 설정: Bedrock의 VPC 엔드포인트를 사용하는 경우: ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } +} +``` :::note `endpoint` 옵션은 일반적인 `baseURL` 옵션의 별칭입니다. `endpoint`와 `baseURL` 둘 다 지정되는 경우에, `endpoint`는 전진합니다. @@ -336,7 +336,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 ```bash title="~/.bash_profile" export AZURE_RESOURCE_NAME=XXX - ``` +``` 6. `/models` 명령을 실행하여 배포 된 모델을 선택하십시오. @@ -384,7 +384,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 ```bash title="~/.bash_profile" export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX - ``` +``` 6. `/models` 명령을 실행하여 배포 된 모델을 선택하십시오. @@ -480,7 +480,7 @@ Cloudflare AI 게이트웨이는 OpenAI, Anthropic, Workers AI 등의 모델에 ```bash title="~/.bash_profile" export CLOUDFLARE_API_TOKEN=your-api-token - ``` +``` 5. 모델을 선택하려면 `/models` 명령을 실행하십시오. @@ -491,18 +491,18 @@ Cloudflare AI 게이트웨이는 OpenAI, Anthropic, Workers AI 등의 모델에 opencode config를 통해 모델을 추가할 수 있습니다. ```json title="opencode.json" - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "cloudflare-ai-gateway": { - "models": { - "openai/gpt-4o": {}, - "anthropic/claude-sonnet-4": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } +} +``` --- @@ -849,7 +849,7 @@ opencode를 실행하면서 설정한다. ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode - ``` +``` 또는 bash 프로파일에 추가하십시오. @@ -857,7 +857,7 @@ opencode를 실행하면서 설정한다. export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global - ``` +``` :::tip `global` 지구는 가용성을 개량하고 추가 비용 없이 과실을 감소시킵니다. 데이터 거주 요건에 대한 지역 엔드포인트(e.g., `us-central1`)를 사용하십시오. [더 알아보기](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional and global endpoints) @@ -1395,17 +1395,17 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 opencode config를 통해 추가 모델을 추가할 수 있습니다. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` 5. 당신은 또한 당신의 opencode config를 통해 그들을 주문을 받아서 만들 수 있습니다. 공급자 지정의 예입니다. @@ -1460,13 +1460,13 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode - ``` +``` 또는 bash 프로파일에 추가: ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' - ``` +``` 4. 선택적으로 배치 ID 및 자원 그룹: @@ -1736,17 +1736,17 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공 opencode config를 통해 추가 모델을 추가할 수 있습니다. ```json title="opencode.json" {6} - { - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } - } - ``` +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } +} +``` --- diff --git a/packages/web/src/content/docs/zh-cn/mcp-servers.mdx b/packages/web/src/content/docs/zh-cn/mcp-servers.mdx index bbba2efcaf..e884a76d86 100644 --- a/packages/web/src/content/docs/zh-cn/mcp-servers.mdx +++ b/packages/web/src/content/docs/zh-cn/mcp-servers.mdx @@ -152,14 +152,14 @@ use the mcp_everything tool to add the number 3 and 4 #### 選項 -| 選項 | 類型 | 必填 | 描述 | -| --------- | ------ | ---- | -------------------------------------------------------------- | -| `headers` | 字符串 | 是 | MCP 服务器连接类型,必须是`type`。 | -| `"remote"` | 字符串 | 是 | 远程 MCP 服务器的 URL。 | -| `url` | 布尔 | | 在启动时启用或禁用MCP 服务器。 | -| `enabled` | 对象 | | 随请求一起发送的标头。 | -| `headers` | 对象 | | OAuth 身份验证。请参阅下面的配置[开放认证](#oauth) 部分。 | -| `oauth` | 数量 | | 从MCP服务器获取工具的超时(以毫秒为单位)。默认为5000(5秒)。 | +| 選項 | 類型 | 必填 | 描述 | +| ---------- | ------ | ---- | -------------------------------------------------------------- | +| `headers` | 字符串 | 是 | MCP 服务器连接类型,必须是`type`。 | +| `"remote"` | 字符串 | 是 | 远程 MCP 服务器的 URL。 | +| `url` | 布尔 | | 在启动时启用或禁用MCP 服务器。 | +| `enabled` | 对象 | | 随请求一起发送的标头。 | +| `headers` | 对象 | | OAuth 身份验证。请参阅下面的配置[开放认证](#oauth) 部分。 | +| `oauth` | 数量 | | 从MCP服务器获取工具的超时(以毫秒为单位)。默认为5000(5秒)。 | --- From 92a77b72fb67f2a80663a5ee3599c5d044255934 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:45:52 -0600 Subject: [PATCH 12/66] fix(app): don't close sidebar on session change (#13013) --- .../sidebar/sidebar-popover-actions.spec.ts | 36 +++++++++++++++++++ packages/app/src/pages/layout.tsx | 14 -------- 2 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts diff --git a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts new file mode 100644 index 0000000000..e37f94f3a7 --- /dev/null +++ b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts @@ -0,0 +1,36 @@ +import { test, expect } from "../fixtures" +import { closeSidebar, hoverSessionItem } from "../actions" +import { projectSwitchSelector, sessionItemSelector } from "../selectors" + +test("collapsed sidebar popover stays open when archiving a session", async ({ page, slug, sdk, gotoSession }) => { + const stamp = Date.now() + + const one = await sdk.session.create({ title: `e2e sidebar popover archive 1 ${stamp}` }).then((r) => r.data) + const two = await sdk.session.create({ title: `e2e sidebar popover archive 2 ${stamp}` }).then((r) => r.data) + + if (!one?.id) throw new Error("Session create did not return an id") + if (!two?.id) throw new Error("Session create did not return an id") + + try { + await gotoSession(one.id) + await closeSidebar(page) + + const project = page.locator(projectSwitchSelector(slug)).first() + await expect(project).toBeVisible() + await project.hover() + + await expect(page.locator(sessionItemSelector(one.id)).first()).toBeVisible() + await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible() + + const item = await hoverSessionItem(page, one.id) + await item + .getByRole("button", { name: /archive/i }) + .first() + .click() + + await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible() + } finally { + await sdk.session.delete({ sessionID: one.id }).catch(() => undefined) + await sdk.session.delete({ sessionID: two.id }).catch(() => undefined) + } +}) diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index c55a3719da..a18b7ef237 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -181,20 +181,6 @@ export default function Layout(props: ParentProps) { aim.reset() }) - createEffect( - on( - () => ({ dir: params.dir, id: params.id }), - () => { - if (layout.sidebar.opened()) return - if (!state.hoverProject) return - aim.reset() - setState("hoverSession", undefined) - setState("hoverProject", undefined) - }, - { defer: true }, - ), - ) - const autoselecting = createMemo(() => { if (params.dir) return false if (!state.autoselect) return false From 8c56571ef95df398fff683253649414a1681c6f6 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 15:55:31 -0500 Subject: [PATCH 13/66] zen: log error --- infra/console.ts | 14 +++----- .../app/src/routes/zen/util/handler.ts | 32 +++++++++++-------- .../console/function/src/log-processor.ts | 18 +++++++---- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/infra/console.ts b/infra/console.ts index 5abffb555a..4e5a14b045 100644 --- a/infra/console.ts +++ b/infra/console.ts @@ -166,14 +166,10 @@ const bucketNew = new sst.cloudflare.Bucket("ZenDataNew") const AWS_SES_ACCESS_KEY_ID = new sst.Secret("AWS_SES_ACCESS_KEY_ID") const AWS_SES_SECRET_ACCESS_KEY = new sst.Secret("AWS_SES_SECRET_ACCESS_KEY") -let logProcessor -if ($app.stage === "production" || $app.stage === "frank") { - const HONEYCOMB_API_KEY = new sst.Secret("HONEYCOMB_API_KEY") - logProcessor = new sst.cloudflare.Worker("LogProcessor", { - handler: "packages/console/function/src/log-processor.ts", - link: [HONEYCOMB_API_KEY], - }) -} +const logProcessor = new sst.cloudflare.Worker("LogProcessor", { + handler: "packages/console/function/src/log-processor.ts", + link: [new sst.Secret("HONEYCOMB_API_KEY")], +}) new sst.cloudflare.x.SolidStart("Console", { domain, @@ -211,7 +207,7 @@ new sst.cloudflare.x.SolidStart("Console", { transform: { worker: { placement: { mode: "smart" }, - tailConsumers: logProcessor ? [{ service: logProcessor.nodes.worker.scriptName }] : [], + tailConsumers: [{ service: logProcessor.nodes.worker.scriptName }], }, }, }, diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index 1afd25799c..a72435e681 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -134,20 +134,26 @@ export async function handler( body: reqBody, }) - // Try another provider => stop retrying if using fallback provider - if ( - res.status !== 200 && - // ie. openai 404 error: Item with id 'msg_0ead8b004a3b165d0069436a6b6834819896da85b63b196a3f' not found. - res.status !== 404 && - // ie. cannot change codex model providers mid-session - modelInfo.stickyProvider !== "strict" && - modelInfo.fallbackProvider && - providerInfo.id !== modelInfo.fallbackProvider - ) { - return retriableRequest({ - excludeProviders: [...retry.excludeProviders, providerInfo.id], - retryCount: retry.retryCount + 1, + if (res.status !== 200) { + logger.metric({ + "llm.error.code": res.status, + "llm.error.message": res.statusText, }) + + // Try another provider => stop retrying if using fallback provider + if ( + // ie. openai 404 error: Item with id 'msg_0ead8b004a3b165d0069436a6b6834819896da85b63b196a3f' not found. + res.status !== 404 && + // ie. cannot change codex model providers mid-session + modelInfo.stickyProvider !== "strict" && + modelInfo.fallbackProvider && + providerInfo.id !== modelInfo.fallbackProvider + ) { + return retriableRequest({ + excludeProviders: [...retry.excludeProviders, providerInfo.id], + retryCount: retry.retryCount + 1, + }) + } } return { providerInfo, reqBody, res, startTimestamp } diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index 9e76e2ceb0..d5d6318baa 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -17,7 +17,7 @@ export default { ) return - let metrics = { + let data = { event_type: "completions", "cf.continent": event.event.request.cf?.continent, "cf.country": event.event.request.cf?.country, @@ -31,22 +31,28 @@ export default { status: event.event.response?.status ?? 0, ip: event.event.request.headers["x-real-ip"], } + const time = event.eventTimestamp ?? Date.now() + const events = [] for (const log of event.logs) { for (const message of log.message) { if (!message.startsWith("_metric:")) continue - metrics = { ...metrics, ...JSON.parse(message.slice(8)) } + const json = JSON.parse(message.slice(8)) + data = { ...data, ...json } + if ("llm.error.code" in json) { + events.push({ time, data: { ...data } }) + } } } - console.log(JSON.stringify(metrics, null, 2)) + events.push({ time, data }) + console.log(JSON.stringify(data, null, 2)) - const ret = await fetch("https://api.honeycomb.io/1/events/zen", { + const ret = await fetch("https://api.honeycomb.io/1/batch/zen", { method: "POST", headers: { "Content-Type": "application/json", - "X-Honeycomb-Event-Time": (event.eventTimestamp ?? Date.now()).toString(), "X-Honeycomb-Team": Resource.HONEYCOMB_API_KEY.value, }, - body: JSON.stringify(metrics), + body: JSON.stringify(events), }) console.log(ret.status) console.log(await ret.text()) From dce4c05fa9168ca78029142b06363c910cedd06c Mon Sep 17 00:00:00 2001 From: Filip <34747899+neriousy@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:10:58 +0100 Subject: [PATCH 14/66] fix(desktop): open apps with executables on Windows (#13022) --- .../src/components/session/session-header.tsx | 23 ++- packages/desktop/src-tauri/src/lib.rs | 169 +++++++++++++++++- packages/desktop/src/bindings.ts | 1 + packages/desktop/src/index.tsx | 7 +- 4 files changed, 189 insertions(+), 11 deletions(-) diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 18b607b965..94b8436667 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -166,6 +166,7 @@ export function SessionHeader() { }) const [prefs, setPrefs] = persisted(Persist.global("open.app"), createStore({ app: "finder" as OpenApp })) + const [menu, setMenu] = createStore({ open: false }) const canOpen = createMemo(() => platform.platform === "desktop" && !!platform.openPath && server.isLocal()) const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0]) @@ -355,7 +356,12 @@ export function SessionHeader() { Open
- + setMenu("open", open)} + > {options().map((o) => ( - openDir(o.id)}> + { + setMenu("open", false) + openDir(o.id) + }} + >
@@ -388,7 +400,12 @@ export function SessionHeader() { - + { + setMenu("open", false) + copyPath() + }} + >
diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 84dd1859b7..82f0441ad3 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -20,9 +20,9 @@ use std::{ env, net::TcpListener, path::PathBuf, + process::Command, sync::{Arc, Mutex}, time::Duration, - process::Command, }; use tauri::{AppHandle, Manager, RunEvent, State, ipc::Channel}; #[cfg(any(target_os = "linux", all(debug_assertions, windows)))] @@ -152,12 +152,12 @@ fn check_app_exists(app_name: &str) -> bool { { check_windows_app(app_name) } - + #[cfg(target_os = "macos")] { check_macos_app(app_name) } - + #[cfg(target_os = "linux")] { check_linux_app(app_name) @@ -165,11 +165,165 @@ fn check_app_exists(app_name: &str) -> bool { } #[cfg(target_os = "windows")] -fn check_windows_app(app_name: &str) -> bool { +fn check_windows_app(_app_name: &str) -> bool { // Check if command exists in PATH, including .exe return true; } +#[cfg(target_os = "windows")] +fn resolve_windows_app_path(app_name: &str) -> Option { + use std::path::{Path, PathBuf}; + + // Try to find the command using 'where' + let output = Command::new("where").arg(app_name).output().ok()?; + + if !output.status.success() { + return None; + } + + let paths = String::from_utf8_lossy(&output.stdout) + .lines() + .map(str::trim) + .filter(|line| !line.is_empty()) + .map(PathBuf::from) + .collect::>(); + + let has_ext = |path: &Path, ext: &str| { + path.extension() + .and_then(|v| v.to_str()) + .map(|v| v.eq_ignore_ascii_case(ext)) + .unwrap_or(false) + }; + + if let Some(path) = paths.iter().find(|path| has_ext(path, "exe")) { + return Some(path.to_string_lossy().to_string()); + } + + let resolve_cmd = |path: &Path| -> Option { + let content = std::fs::read_to_string(path).ok()?; + + for token in content.split('"') { + let lower = token.to_ascii_lowercase(); + if !lower.contains(".exe") { + continue; + } + + if let Some(index) = lower.find("%~dp0") { + let base = path.parent()?; + let suffix = &token[index + 5..]; + let mut resolved = PathBuf::from(base); + + for part in suffix.replace('/', "\\").split('\\') { + if part.is_empty() || part == "." { + continue; + } + if part == ".." { + let _ = resolved.pop(); + continue; + } + resolved.push(part); + } + + if resolved.exists() { + return Some(resolved.to_string_lossy().to_string()); + } + } + + let resolved = PathBuf::from(token); + if resolved.exists() { + return Some(resolved.to_string_lossy().to_string()); + } + } + + None + }; + + for path in &paths { + if has_ext(path, "cmd") || has_ext(path, "bat") { + if let Some(resolved) = resolve_cmd(path) { + return Some(resolved); + } + } + + if path.extension().is_none() { + let cmd = path.with_extension("cmd"); + if cmd.exists() { + if let Some(resolved) = resolve_cmd(&cmd) { + return Some(resolved); + } + } + + let bat = path.with_extension("bat"); + if bat.exists() { + if let Some(resolved) = resolve_cmd(&bat) { + return Some(resolved); + } + } + } + } + + let key = app_name + .chars() + .filter(|v| v.is_ascii_alphanumeric()) + .flat_map(|v| v.to_lowercase()) + .collect::(); + + if !key.is_empty() { + for path in &paths { + let dirs = [ + path.parent(), + path.parent().and_then(|dir| dir.parent()), + path.parent() + .and_then(|dir| dir.parent()) + .and_then(|dir| dir.parent()), + ]; + + for dir in dirs.into_iter().flatten() { + if let Ok(entries) = std::fs::read_dir(dir) { + for entry in entries.flatten() { + let candidate = entry.path(); + if !has_ext(&candidate, "exe") { + continue; + } + + let Some(stem) = candidate.file_stem().and_then(|v| v.to_str()) else { + continue; + }; + + let name = stem + .chars() + .filter(|v| v.is_ascii_alphanumeric()) + .flat_map(|v| v.to_lowercase()) + .collect::(); + + if name.contains(&key) || key.contains(&name) { + return Some(candidate.to_string_lossy().to_string()); + } + } + } + } + } + } + + paths.first().map(|path| path.to_string_lossy().to_string()) +} + +#[tauri::command] +#[specta::specta] +fn resolve_app_path(app_name: &str) -> Option { + #[cfg(target_os = "windows")] + { + resolve_windows_app_path(app_name) + } + + #[cfg(not(target_os = "windows"))] + { + // On macOS/Linux, just return the app_name as-is since + // the opener plugin handles them correctly + Some(app_name.to_string()) + } +} + #[cfg(target_os = "macos")] fn check_macos_app(app_name: &str) -> bool { // Check common installation locations @@ -181,13 +335,13 @@ fn check_macos_app(app_name: &str) -> bool { if let Ok(home) = std::env::var("HOME") { app_locations.push(format!("{}/Applications/{}.app", home, app_name)); } - + for location in app_locations { if std::path::Path::new(&location).exists() { return true; } } - + // Also check if command exists in PATH Command::new("which") .arg(app_name) @@ -251,7 +405,8 @@ pub fn run() { get_display_backend, set_display_backend, markdown::parse_markdown_command, - check_app_exists + check_app_exists, + resolve_app_path ]) .events(tauri_specta::collect_events![LoadingWindowComplete]) .error_handling(tauri_specta::ErrorHandlingMode::Throw); diff --git a/packages/desktop/src/bindings.ts b/packages/desktop/src/bindings.ts index 2db1a624cc..c7bcaba9c6 100644 --- a/packages/desktop/src/bindings.ts +++ b/packages/desktop/src/bindings.ts @@ -14,6 +14,7 @@ export const commands = { setDisplayBackend: (backend: LinuxDisplayBackend) => __TAURI_INVOKE("set_display_backend", { backend }), parseMarkdownCommand: (markdown: string) => __TAURI_INVOKE("parse_markdown_command", { markdown }), checkAppExists: (appName: string) => __TAURI_INVOKE("check_app_exists", { appName }), + resolveAppPath: (appName: string) => __TAURI_INVOKE("resolve_app_path", { appName }), }; /** Events */ diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index 25e9f825c7..0e2fcb7fea 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -98,7 +98,12 @@ const createPlatform = (password: Accessor): Platform => ({ void shellOpen(url).catch(() => undefined) }, - openPath(path: string, app?: string) { + async openPath(path: string, app?: string) { + const os = ostype() + if (os === "windows" && app) { + const resolvedApp = await commands.resolveAppPath(app) + return openerOpenPath(path, resolvedApp || app) + } return openerOpenPath(path, app) }, From 21475a1dfde8286ca918ec6bd638ea1296b34252 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:18:10 -0600 Subject: [PATCH 15/66] fix(docs): invalid markdown --- packages/web/src/content/docs/bs/tui.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/web/src/content/docs/bs/tui.mdx b/packages/web/src/content/docs/bs/tui.mdx index a4bf01c7f7..f9c97f4c61 100644 --- a/packages/web/src/content/docs/bs/tui.mdx +++ b/packages/web/src/content/docs/bs/tui.mdx @@ -292,7 +292,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl -````bash + ```bash # Example for nano or vim export EDITOR=nano export EDITOR=vim @@ -309,7 +309,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl -```bash + ```bash set EDITOR=notepad # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. @@ -324,7 +324,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl -```powershell + ```powershell $env:EDITOR = "notepad" # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. @@ -370,7 +370,7 @@ Možete prilagoditi TUI ponašanje putem vašeg OpenCode konfiguracionog fajla. } } } -```` +``` ### Opcije From 50f3e74d0589c8b6120d329ca35dfe74ef94e5e0 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:28:42 -0600 Subject: [PATCH 16/66] fix(app): task tool rendering --- packages/app/src/pages/directory-layout.tsx | 9 ++ packages/ui/src/components/message-part.tsx | 102 ++++++++++++++------ packages/ui/src/context/data.tsx | 8 ++ 3 files changed, 87 insertions(+), 32 deletions(-) diff --git a/packages/app/src/pages/directory-layout.tsx b/packages/app/src/pages/directory-layout.tsx index b2a17b96b9..f36bb7ab4e 100644 --- a/packages/app/src/pages/directory-layout.tsx +++ b/packages/app/src/pages/directory-layout.tsx @@ -54,6 +54,13 @@ export default function Layout(props: ParentProps) { navigate(`/${params.dir}/session/${sessionID}`) } + const sessionHref = (sessionID: string) => { + if (params.dir) return `/${params.dir}/session/${sessionID}` + return `/session/${sessionID}` + } + + const syncSession = (sessionID: string) => sync.session.sync(sessionID) + return ( {props.children} diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 83847a5338..3f61b3186d 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -877,6 +877,74 @@ ToolRegistry.register({ const data = useData() const i18n = useI18n() const childSessionId = () => props.metadata.sessionId as string | undefined + + const href = createMemo(() => { + const sessionId = childSessionId() + if (!sessionId) return + + const direct = data.sessionHref?.(sessionId) + if (direct) return direct + + if (typeof window === "undefined") return + const path = window.location.pathname + const idx = path.indexOf("/session") + if (idx === -1) return + return `${path.slice(0, idx)}/session/${sessionId}` + }) + + createEffect(() => { + const sessionId = childSessionId() + if (!sessionId) return + const sync = data.syncSession + if (!sync) return + Promise.resolve(sync(sessionId)).catch(() => undefined) + }) + + const handleLinkClick = (e: MouseEvent) => { + const sessionId = childSessionId() + const url = href() + if (!sessionId || !url) return + + e.stopPropagation() + + if (e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return + + const nav = data.navigateToSession + if (!nav || typeof window === "undefined") return + + e.preventDefault() + const before = window.location.pathname + window.location.search + window.location.hash + nav(sessionId) + setTimeout(() => { + const after = window.location.pathname + window.location.search + window.location.hash + if (after === before) window.location.assign(url) + }, 50) + } + + const trigger = () => ( +
+
+ + {i18n.t("ui.tool.agent", { type: props.input.subagent_type || props.tool })} + + + + + {(url) => ( + + {props.input.description} + + )} + + + {props.input.description} + + + +
+
+ ) + const childToolParts = createMemo(() => { const sessionId = childSessionId() if (!sessionId) return [] @@ -924,13 +992,6 @@ ToolRegistry.register({ }) } - const handleSubtitleClick = () => { - const sessionId = childSessionId() - if (sessionId && data.navigateToSession) { - data.navigateToSession(sessionId) - } - } - const renderChildToolPart = () => { const toolData = childToolPart() if (!toolData) return null @@ -958,21 +1019,7 @@ ToolRegistry.register({ <> - - } - > + }> {renderChildToolPart()}
@@ -991,16 +1038,7 @@ ToolRegistry.register({ - +
void export type NavigateToSessionFn = (sessionID: string) => void +export type SessionHrefFn = (sessionID: string) => string + +export type SyncSessionFn = (sessionID: string) => void | Promise + export const { use: useData, provider: DataProvider } = createSimpleContext({ name: "Data", init: (props: { @@ -57,6 +61,8 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ onQuestionReply?: QuestionReplyFn onQuestionReject?: QuestionRejectFn onNavigateToSession?: NavigateToSessionFn + onSessionHref?: SessionHrefFn + onSyncSession?: SyncSessionFn }) => { return { get store() { @@ -69,6 +75,8 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ replyToQuestion: props.onQuestionReply, rejectQuestion: props.onQuestionReject, navigateToSession: props.onNavigateToSession, + sessionHref: props.onSessionHref, + syncSession: props.onSyncSession, } }, }) From 1bbbd51d48f38014674eebe1588f556da95b7b1f Mon Sep 17 00:00:00 2001 From: opencode Date: Tue, 10 Feb 2026 22:12:25 +0000 Subject: [PATCH 17/66] release: v1.1.56 --- bun.lock | 30 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/bun.lock b/bun.lock index 80ba9f89e7..b98a6cc7a8 100644 --- a/bun.lock +++ b/bun.lock @@ -23,7 +23,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -73,7 +73,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -107,7 +107,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -134,7 +134,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -158,7 +158,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -182,7 +182,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -215,7 +215,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -244,7 +244,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -260,7 +260,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.1.55", + "version": "1.1.56", "bin": { "opencode": "./bin/opencode", }, @@ -366,7 +366,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -386,7 +386,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.1.55", + "version": "1.1.56", "devDependencies": { "@hey-api/openapi-ts": "0.90.10", "@tsconfig/node22": "catalog:", @@ -397,7 +397,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -410,7 +410,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -452,7 +452,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "zod": "catalog:", }, @@ -463,7 +463,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index 96c7a567e6..42426c3435 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.1.55", + "version": "1.1.56", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index eb1e32be47..eebbbeb9ce 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 8a23d052c4..e0289766bf 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.1.55", + "version": "1.1.56", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index ef4ed46f9f..b7d58641ee 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.1.55", + "version": "1.1.56", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index efc4629b36..7bcfe3efb8 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.1.55", + "version": "1.1.56", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 4a1702381c..a3a92b9559 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index f35445cc95..5d37ba2f52 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.1.55", + "version": "1.1.56", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index afc16975b2..5eb067f4d3 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.1.55" +version = "1.1.56" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.55/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index c3eb3dcd33..7c03e7ef70 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.1.55", + "version": "1.1.56", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 1838e598b7..b460df2430 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.1.55", + "version": "1.1.56", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index d82c2dab22..deb0553ba9 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 64f24a0a36..af66b914fb 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index baa545b2ad..240042a37f 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index e59a9f1a9d..a75098a2d3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.1.55", + "version": "1.1.56", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 09b7bfdc94..cb744ea088 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.1.55", + "version": "1.1.56", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index 88392ab40e..8b51baa3b2 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.1.55", + "version": "1.1.56", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index bd19e6c456..f9fb84a27f 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.1.55", + "version": "1.1.56", "publisher": "sst-dev", "repository": { "type": "git", From 66c2bb8f3795484f1ae3b9037f0f983797c2d1d3 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:53:50 -0600 Subject: [PATCH 18/66] chore: update website stats --- packages/console/app/src/config.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/console/app/src/config.ts b/packages/console/app/src/config.ts index be53ad909b..e64d364620 100644 --- a/packages/console/app/src/config.ts +++ b/packages/console/app/src/config.ts @@ -9,8 +9,8 @@ export const config = { github: { repoUrl: "https://github.com/anomalyco/opencode", starsFormatted: { - compact: "95K", - full: "95,000", + compact: "100K", + full: "100,000", }, }, @@ -22,8 +22,8 @@ export const config = { // Static stats (used on landing page) stats: { - contributors: "650", - commits: "8,500", + contributors: "700", + commits: "9,000", monthlyUsers: "2.5M", }, } as const From 3894c217ccf0797bd57413677d8b355ad3879ba7 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 16:54:19 -0500 Subject: [PATCH 19/66] wip: zen --- .../console/app/src/routes/zen/util/error.ts | 6 +- .../app/src/routes/zen/util/handler.ts | 2 +- .../app/src/routes/zen/util/rateLimiter.ts | 33 ++++++- packages/console/app/test/rateLimiter.test.ts | 92 +++++++++++++++++++ 4 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 packages/console/app/test/rateLimiter.test.ts diff --git a/packages/console/app/src/routes/zen/util/error.ts b/packages/console/app/src/routes/zen/util/error.ts index a1393eb7f9..a3a93d2ef8 100644 --- a/packages/console/app/src/routes/zen/util/error.ts +++ b/packages/console/app/src/routes/zen/util/error.ts @@ -3,11 +3,13 @@ export class CreditsError extends Error {} export class MonthlyLimitError extends Error {} export class UserLimitError extends Error {} export class ModelError extends Error {} -export class FreeUsageLimitError extends Error {} -export class SubscriptionUsageLimitError extends Error { + +class LimitError extends Error { retryAfter?: number constructor(message: string, retryAfter?: number) { super(message) this.retryAfter = retryAfter } } +export class FreeUsageLimitError extends LimitError {} +export class SubscriptionUsageLimitError extends LimitError {} diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index a72435e681..9646cacd05 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -313,7 +313,7 @@ export async function handler( if (error instanceof FreeUsageLimitError || error instanceof SubscriptionUsageLimitError) { const headers = new Headers() - if (error instanceof SubscriptionUsageLimitError && error.retryAfter) { + if (error.retryAfter) { headers.set("retry-after", String(error.retryAfter)) } return new Response( diff --git a/packages/console/app/src/routes/zen/util/rateLimiter.ts b/packages/console/app/src/routes/zen/util/rateLimiter.ts index fafbc06e98..5e4f31e676 100644 --- a/packages/console/app/src/routes/zen/util/rateLimiter.ts +++ b/packages/console/app/src/routes/zen/util/rateLimiter.ts @@ -28,17 +28,46 @@ export function createRateLimiter(limit: ZenData.RateLimit | undefined, rawIp: s check: async () => { const rows = await Database.use((tx) => tx - .select({ count: IpRateLimitTable.count }) + .select({ interval: IpRateLimitTable.interval, count: IpRateLimitTable.count }) .from(IpRateLimitTable) .where(and(eq(IpRateLimitTable.ip, ip), inArray(IpRateLimitTable.interval, intervals))), ) const total = rows.reduce((sum, r) => sum + r.count, 0) logger.debug(`rate limit total: ${total}`) - if (total >= limitValue) throw new FreeUsageLimitError(`Rate limit exceeded. Please try again later.`) + if (total >= limitValue) + throw new FreeUsageLimitError( + `Rate limit exceeded. Please try again later.`, + limit.period === "day" ? getRetryAfterDay(now) : getRetryAfterHour(rows, intervals, limitValue, now), + ) }, } } +export function getRetryAfterDay(now: number) { + return Math.ceil((86_400_000 - (now % 86_400_000)) / 1000) +} + +export function getRetryAfterHour( + rows: { interval: string; count: number }[], + intervals: string[], + limit: number, + now: number, +) { + const counts = new Map(rows.map((r) => [r.interval, r.count])) + // intervals are ordered newest to oldest: [current, -1h, -2h] + // simulate dropping oldest intervals one at a time + let running = intervals.reduce((sum, i) => sum + (counts.get(i) ?? 0), 0) + for (let i = intervals.length - 1; i >= 0; i--) { + running -= counts.get(intervals[i]) ?? 0 + if (running < limit) { + // interval at index i rolls out of the window (intervals.length - i) hours from the current hour start + const hours = intervals.length - i + return Math.ceil((hours * 3_600_000 - (now % 3_600_000)) / 1000) + } + } + return Math.ceil((3_600_000 - (now % 3_600_000)) / 1000) +} + function buildYYYYMMDD(timestamp: number) { return new Date(timestamp) .toISOString() diff --git a/packages/console/app/test/rateLimiter.test.ts b/packages/console/app/test/rateLimiter.test.ts new file mode 100644 index 0000000000..864f907d66 --- /dev/null +++ b/packages/console/app/test/rateLimiter.test.ts @@ -0,0 +1,92 @@ +import { describe, expect, test } from "bun:test" +import { getRetryAfterDay, getRetryAfterHour } from "../src/routes/zen/util/rateLimiter" + +describe("getRetryAfterDay", () => { + test("returns full day at midnight UTC", () => { + const midnight = Date.UTC(2026, 0, 15, 0, 0, 0, 0) + expect(getRetryAfterDay(midnight)).toBe(86_400) + }) + + test("returns remaining seconds until next UTC day", () => { + const noon = Date.UTC(2026, 0, 15, 12, 0, 0, 0) + expect(getRetryAfterDay(noon)).toBe(43_200) + }) + + test("rounds up to nearest second", () => { + const almost = Date.UTC(2026, 0, 15, 23, 59, 59, 500) + expect(getRetryAfterDay(almost)).toBe(1) + }) +}) + +describe("getRetryAfterHour", () => { + // 14:30:00 UTC — 30 minutes into the current hour + const now = Date.UTC(2026, 0, 15, 14, 30, 0, 0) + const intervals = ["2026011514", "2026011513", "2026011512"] + + test("waits 3 hours when all usage is in current hour", () => { + const rows = [{ interval: "2026011514", count: 10 }] + // only current hour has usage — it won't leave the window for 3 hours from hour start + // 3 * 3600 - 1800 = 9000s + expect(getRetryAfterHour(rows, intervals, 10, now)).toBe(9000) + }) + + test("waits 1 hour when dropping oldest interval is sufficient", () => { + const rows = [ + { interval: "2026011514", count: 2 }, + { interval: "2026011512", count: 10 }, + ] + // total=12, drop oldest (-2h, count=10) -> 2 < 10 + // hours = 3 - 2 = 1 -> 1 * 3600 - 1800 = 1800s + expect(getRetryAfterHour(rows, intervals, 10, now)).toBe(1800) + }) + + test("waits 2 hours when usage spans oldest two intervals", () => { + const rows = [ + { interval: "2026011513", count: 8 }, + { interval: "2026011512", count: 5 }, + ] + // total=13, drop -2h (5) -> 8, 8 >= 8, drop -1h (8) -> 0 < 8 + // hours = 3 - 1 = 2 -> 2 * 3600 - 1800 = 5400s + expect(getRetryAfterHour(rows, intervals, 8, now)).toBe(5400) + }) + + test("waits 1 hour when oldest interval alone pushes over limit", () => { + const rows = [ + { interval: "2026011514", count: 1 }, + { interval: "2026011513", count: 1 }, + { interval: "2026011512", count: 10 }, + ] + // total=12, drop -2h (10) -> 2 < 10 + // hours = 3 - 2 = 1 -> 1800s + expect(getRetryAfterHour(rows, intervals, 10, now)).toBe(1800) + }) + + test("waits 2 hours when middle interval keeps total over limit", () => { + const rows = [ + { interval: "2026011514", count: 4 }, + { interval: "2026011513", count: 4 }, + { interval: "2026011512", count: 4 }, + ] + // total=12, drop -2h (4) -> 8, 8 >= 5, drop -1h (4) -> 4 < 5 + // hours = 3 - 1 = 2 -> 5400s + expect(getRetryAfterHour(rows, intervals, 5, now)).toBe(5400) + }) + + test("rounds up to nearest second", () => { + const offset = Date.UTC(2026, 0, 15, 14, 30, 0, 500) + const rows = [ + { interval: "2026011514", count: 2 }, + { interval: "2026011512", count: 10 }, + ] + // hours=1 -> 3_600_000 - 1_800_500 = 1_799_500ms -> ceil(1799.5) = 1800 + expect(getRetryAfterHour(rows, intervals, 10, offset)).toBe(1800) + }) + + test("fallback returns time until next hour when rows are empty", () => { + // edge case: rows empty but function called (shouldn't happen in practice) + // loop drops all zeros, running stays 0 which is < any positive limit on first iteration + const rows: { interval: string; count: number }[] = [] + // drop -2h (0) -> 0 < 1 -> hours = 3 - 2 = 1 -> 1800s + expect(getRetryAfterHour(rows, intervals, 1, now)).toBe(1800) + }) +}) From 50c705cd2d138781b487e666ca35e04741e85130 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 16:02:18 -0600 Subject: [PATCH 20/66] fix(docs): locale translations --- packages/web/src/content/docs/bs/acp.mdx | 2 +- packages/web/src/content/docs/bs/cli.mdx | 2 +- packages/web/src/content/docs/bs/config.mdx | 14 +-- .../web/src/content/docs/bs/formatters.mdx | 10 +- packages/web/src/content/docs/bs/ide.mdx | 6 +- packages/web/src/content/docs/bs/index.mdx | 4 +- packages/web/src/content/docs/bs/keybinds.mdx | 6 +- packages/web/src/content/docs/bs/lsp.mdx | 2 +- .../web/src/content/docs/bs/mcp-servers.mdx | 8 +- packages/web/src/content/docs/bs/models.mdx | 2 +- packages/web/src/content/docs/bs/modes.mdx | 10 +- .../web/src/content/docs/bs/permissions.mdx | 4 +- .../web/src/content/docs/bs/providers.mdx | 2 +- packages/web/src/content/docs/bs/rules.mdx | 2 +- packages/web/src/content/docs/bs/sdk.mdx | 10 +- packages/web/src/content/docs/bs/server.mdx | 44 +++---- .../src/content/docs/bs/troubleshooting.mdx | 2 +- packages/web/src/content/docs/bs/tui.mdx | 6 +- packages/web/src/content/docs/bs/zen.mdx | 20 ++-- packages/web/src/content/docs/da/acp.mdx | 6 +- packages/web/src/content/docs/da/agents.mdx | 16 +-- packages/web/src/content/docs/da/index.mdx | 6 +- packages/web/src/content/docs/da/tui.mdx | 112 +++++++++--------- packages/web/src/content/docs/de/agents.mdx | 8 +- packages/web/src/content/docs/de/ide.mdx | 16 +-- packages/web/src/content/docs/de/index.mdx | 10 +- packages/web/src/content/docs/es/acp.mdx | 2 +- packages/web/src/content/docs/es/cli.mdx | 14 +-- packages/web/src/content/docs/es/index.mdx | 10 +- packages/web/src/content/docs/es/lsp.mdx | 36 +++--- packages/web/src/content/docs/es/tools.mdx | 26 ++-- packages/web/src/content/docs/fr/agents.mdx | 2 +- packages/web/src/content/docs/fr/cli.mdx | 8 +- packages/web/src/content/docs/fr/commands.mdx | 2 +- packages/web/src/content/docs/fr/github.mdx | 6 +- packages/web/src/content/docs/fr/gitlab.mdx | 4 +- packages/web/src/content/docs/fr/index.mdx | 4 +- packages/web/src/content/docs/it/acp.mdx | 15 ++- packages/web/src/content/docs/it/cli.mdx | 12 +- packages/web/src/content/docs/it/config.mdx | 2 +- .../web/src/content/docs/it/ecosystem.mdx | 2 +- packages/web/src/content/docs/it/ide.mdx | 8 +- packages/web/src/content/docs/it/index.mdx | 10 +- packages/web/src/content/docs/it/keybinds.mdx | 4 +- packages/web/src/content/docs/it/plugins.mdx | 2 +- .../web/src/content/docs/it/providers.mdx | 8 +- packages/web/src/content/docs/it/themes.mdx | 34 +++--- packages/web/src/content/docs/it/tools.mdx | 2 +- .../src/content/docs/it/troubleshooting.mdx | 4 +- packages/web/src/content/docs/it/tui.mdx | 4 +- packages/web/src/content/docs/it/web.mdx | 14 +-- .../web/src/content/docs/it/windows-wsl.mdx | 8 +- packages/web/src/content/docs/ja/cli.mdx | 2 +- .../web/src/content/docs/ja/providers.mdx | 2 +- packages/web/src/content/docs/ko/cli.mdx | 30 ++--- .../web/src/content/docs/ko/enterprise.mdx | 2 +- packages/web/src/content/docs/ko/index.mdx | 4 +- .../web/src/content/docs/ko/providers.mdx | 4 +- packages/web/src/content/docs/nb/agents.mdx | 2 +- packages/web/src/content/docs/nb/cli.mdx | 2 +- packages/web/src/content/docs/nb/index.mdx | 2 +- packages/web/src/content/docs/nb/models.mdx | 2 +- .../web/src/content/docs/nb/providers.mdx | 2 +- packages/web/src/content/docs/nb/tui.mdx | 4 +- packages/web/src/content/docs/pl/agents.mdx | 20 ++-- packages/web/src/content/docs/pl/lsp.mdx | 38 +++--- packages/web/src/content/docs/pt-br/acp.mdx | 2 +- packages/web/src/content/docs/pt-br/cli.mdx | 2 +- packages/web/src/content/docs/ru/acp.mdx | 10 +- packages/web/src/content/docs/ru/agents.mdx | 2 +- packages/web/src/content/docs/ru/cli.mdx | 18 +-- packages/web/src/content/docs/ru/commands.mdx | 6 +- packages/web/src/content/docs/ru/ide.mdx | 12 +- packages/web/src/content/docs/ru/index.mdx | 18 +-- packages/web/src/content/docs/ru/keybinds.mdx | 6 +- packages/web/src/content/docs/ru/modes.mdx | 8 +- .../web/src/content/docs/ru/providers.mdx | 38 +++--- packages/web/src/content/docs/ru/themes.mdx | 32 ++--- packages/web/src/content/docs/ru/tools.mdx | 26 ++-- packages/web/src/content/docs/ru/web.mdx | 12 +- .../web/src/content/docs/ru/windows-wsl.mdx | 8 +- packages/web/src/content/docs/th/config.mdx | 46 +++---- .../web/src/content/docs/th/enterprise.mdx | 4 +- packages/web/src/content/docs/th/github.mdx | 4 +- packages/web/src/content/docs/th/index.mdx | 4 +- .../web/src/content/docs/th/providers.mdx | 65 +++++----- .../src/content/docs/th/troubleshooting.mdx | 2 +- packages/web/src/content/docs/th/zen.mdx | 72 +++++------ packages/web/src/content/docs/tr/agents.mdx | 12 +- packages/web/src/content/docs/tr/config.mdx | 2 +- .../web/src/content/docs/tr/formatters.mdx | 68 +++++------ packages/web/src/content/docs/tr/lsp.mdx | 86 +++++++------- .../web/src/content/docs/zh-cn/enterprise.mdx | 2 +- packages/web/src/content/docs/zh-cn/index.mdx | 2 +- .../web/src/content/docs/zh-tw/agents.mdx | 2 +- .../web/src/content/docs/zh-tw/commands.mdx | 10 +- .../web/src/content/docs/zh-tw/config.mdx | 2 +- .../content/docs/zh-tw/troubleshooting.mdx | 2 +- packages/web/src/content/i18n/ar.json | 6 +- packages/web/src/content/i18n/bs.json | 2 +- packages/web/src/content/i18n/da.json | 18 +-- packages/web/src/content/i18n/de.json | 12 +- packages/web/src/content/i18n/es.json | 8 +- packages/web/src/content/i18n/fr.json | 6 +- packages/web/src/content/i18n/it.json | 14 +-- packages/web/src/content/i18n/ja.json | 6 +- packages/web/src/content/i18n/ko.json | 6 +- packages/web/src/content/i18n/nb.json | 6 +- packages/web/src/content/i18n/pl.json | 6 +- packages/web/src/content/i18n/pt-BR.json | 6 +- packages/web/src/content/i18n/ru.json | 6 +- packages/web/src/content/i18n/th.json | 6 +- packages/web/src/content/i18n/tr.json | 6 +- packages/web/src/content/i18n/zh-CN.json | 6 +- packages/web/src/content/i18n/zh-TW.json | 8 +- 115 files changed, 700 insertions(+), 702 deletions(-) diff --git a/packages/web/src/content/docs/bs/acp.mdx b/packages/web/src/content/docs/bs/acp.mdx index 44145a900a..8da0a21224 100644 --- a/packages/web/src/content/docs/bs/acp.mdx +++ b/packages/web/src/content/docs/bs/acp.mdx @@ -149,7 +149,7 @@ Neke ugrađene komande kao što su `/undo` i `/redo` trenutno nisu podržane. ::: - Ugrađeni alati (operacije sa datotekama, naredbe terminala, itd.) -- Prilagođeni alati i komande kosih crta +- Prilagođeni alati i slash komande - MCP serveri konfigurisani u vašoj OpenCode konfiguraciji - Pravila specifična za projekat `AGENTS.md` - Prilagođeni formateri i linteri diff --git a/packages/web/src/content/docs/bs/cli.mdx b/packages/web/src/content/docs/bs/cli.mdx index 31ba6be560..4f4f7b899e 100644 --- a/packages/web/src/content/docs/bs/cli.mdx +++ b/packages/web/src/content/docs/bs/cli.mdx @@ -593,5 +593,5 @@ Ove varijable okruženja omogućavaju eksperimentalne karakteristike koje se mog | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Onemogući praćenje datoteka | | `OPENCODE_EXPERIMENTAL_EXA` | boolean | Omogući eksperimentalne Exa funkcije | | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Omogući eksperimentalnu provjeru tipa LSP | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Omogući eksperimentalne funkcije smanjenja | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Omogući eksperimentalne Markdown funkcije | | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Omogući režim plana | diff --git a/packages/web/src/content/docs/bs/config.mdx b/packages/web/src/content/docs/bs/config.mdx index fe9551d24c..ed79f9f7b8 100644 --- a/packages/web/src/content/docs/bs/config.mdx +++ b/packages/web/src/content/docs/bs/config.mdx @@ -93,7 +93,7 @@ Globalna konfiguracija poništava zadane postavke udaljene organizacije. --- -### Nakon projekta +### Project Dodajte `opencode.json` u korijen projekta. Konfiguracija projekta ima najveći prioritet među standardnim konfiguracijskim datotekama - ona nadjačava globalne i udaljene konfiguracije. :::tip @@ -104,7 +104,7 @@ Ovo je također sigurno provjeriti u Git i koristi istu shemu kao globalna. --- -### Custom track +### Custom config Navedite prilagođenu putanju konfiguracijske datoteke koristeći varijablu okruženja `OPENCODE_CONFIG`. @@ -117,7 +117,7 @@ Prilagođena konfiguracija se učitava između globalne i projektne konfiguracij --- -### Prilagođeni imenik +### Custom directory Navedite prilagođeni konfiguracijski direktorij koristeći `OPENCODE_CONFIG_DIR` varijabla okruženja. U ovom direktoriju će se tražiti agenti, komande, @@ -194,7 +194,7 @@ Dostupne opcije: --- -### Uvijek +### Tools Možete upravljati alatima koje LLM može koristiti putem opcije `tools`. @@ -281,7 +281,7 @@ Amazon Bedrock podržava konfiguraciju specifičnu za AWS: --- -### Domaći +### Theme Možete konfigurirati temu koju želite koristiti u svojoj OpenCode konfiguraciji putem opcije `theme`. @@ -358,7 +358,7 @@ Ovo traje: --- -### komandante +### Command Možete konfigurirati prilagođene komande za ponavljanje zadataka putem opcije `command`. @@ -415,7 +415,7 @@ Imajte na umu da ovo funkcionira samo ako nije instalirano pomoću upravitelja p --- -### Trenerke +### Formatters Možete konfigurirati formatere koda putem opcije `formatter`. diff --git a/packages/web/src/content/docs/bs/formatters.mdx b/packages/web/src/content/docs/bs/formatters.mdx index 3d911b7dab..015d20d80c 100644 --- a/packages/web/src/content/docs/bs/formatters.mdx +++ b/packages/web/src/content/docs/bs/formatters.mdx @@ -1,5 +1,5 @@ --- -title: Trenerke +title: Formatters description: OpenCode koristi formatere specifične za jezik. --- @@ -14,8 +14,8 @@ OpenCode dolazi sa nekoliko ugrađenih formatera za popularne jezike i okvire. I |-------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | | gofmt | .go | `gofmt` komanda dostupna | | mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` komanda dostupna | -| ljepše | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [više](https://prettier.io/docs/en/index.html) | `prettier` zavisnost u `package.json` | -| biom | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [više](https://biomejs.dev/) | `biome.json(c)` konfiguracijski fajl | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [više](https://prettier.io/docs/en/index.html) | `prettier` zavisnost u `package.json` | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [više](https://biomejs.dev/) | `biome.json(c)` konfiguracijski fajl | | zig | .zig, .zon | `zig` komanda dostupna | | clang-format | .c, .cpp, .h, .hpp, .ino i [više](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` konfiguracijski fajl | | ktlint | .kt, .kts | `ktlint` komanda dostupna | @@ -25,7 +25,7 @@ OpenCode dolazi sa nekoliko ugrađenih formatera za popularne jezike i okvire. I | uv | .py, .pyi | `uv` komanda dostupna || rubocop | .rb, .rake, .gemspec, .ru | `rubocop` komanda dostupna | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` komanda dostupna | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` komanda dostupna | -| zrak | .R | `air` komanda dostupna | +| air | .R | `air` komanda dostupna | | dart | .dart | `dart` komanda dostupna | | ocamlformat | .ml, .mli | `ocamlformat` komanda dostupna i `.ocamlformat` konfiguracioni fajl | | terraform | .tf, .tfvars | `terraform` komanda dostupna | @@ -61,7 +61,7 @@ Možete prilagoditi formatere kroz `formatter` odjeljak u vašoj OpenCode konfig ``` Svaka konfiguracija formatera podržava sljedeće: -| Nekretnine | Vrsta | Opis +| Svojstvo | Vrsta | Opis |------------- | -------- | ------------------------------------------------------- | | `disabled` | boolean | Postavite ovo na `true` da onemogućite formater | | `command` | string[] | Naredba za pokretanje za formatiranje | diff --git a/packages/web/src/content/docs/bs/ide.mdx b/packages/web/src/content/docs/bs/ide.mdx index 328760d249..07af96dcd3 100644 --- a/packages/web/src/content/docs/bs/ide.mdx +++ b/packages/web/src/content/docs/bs/ide.mdx @@ -3,7 +3,7 @@ title: IDE description: Ekstenzija OpenCode za VS Code, Cursor i druge IDE --- -OpenCode se integriše sa VS kodom, kursorom ili bilo kojim IDE-om koji podržava terminal. Samo pokrenite `opencode` u terminalu da započnete. +OpenCode se integriše sa VS kodom, Cursor-om ili bilo kojim IDE-om koji podržava terminal. Samo pokrenite `opencode` u terminalu da započnete. --- @@ -40,8 +40,8 @@ Ako se ekstenzija ne uspije automatski instalirati: - Uvjerite se da koristite `opencode` u integriranom terminalu. - Potvrdite da je CLI za vaš IDE instaliran: - Za VS kod: `code` naredbu - - Za kursor: `cursor` naredba - - Za jedrenje na dasci: `windsurf` komanda + - Za Cursor: `cursor` naredba + - Za Windsurf: `windsurf` komanda - Za VSCodium: `codium` komanda - Ako ne, pokrenite `Cmd+Shift+P` (Mac) ili `Ctrl+Shift+P` (Windows/Linux) i potražite "Shell Command: Install 'code' command in PATH" (ili ekvivalent za vaš IDE) - Osigurajte da VS Code ima dozvolu za instaliranje ekstenzija diff --git a/packages/web/src/content/docs/bs/index.mdx b/packages/web/src/content/docs/bs/index.mdx index 9cb9a5c152..5eff901ef1 100644 --- a/packages/web/src/content/docs/bs/index.mdx +++ b/packages/web/src/content/docs/bs/index.mdx @@ -8,7 +8,7 @@ import config from "../../../../config.mjs" export const console = config.console [**OpenCode**](/) je agent za AI kodiranje otvorenog koda. Dostupan je kao interfejs baziran na terminalu, desktop aplikacija ili IDE ekstenzija. -![OpenCode TUI sa temom otvorenog koda](../../../assets/lander/screenshot.png) +![OpenCode TUI sa opencode temom](../../../assets/lander/screenshot.png) Hajde da počnemo. --- @@ -90,7 +90,7 @@ Također ga možete instalirati pomoću sljedećih naredbi: Za najbolje iskustvo na Windows-u preporučujemo korištenje [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Pruža bolje performanse i potpunu kompatibilnost sa OpenCode karakteristikama. ::: -- **Upotreba čokolade** +- **Upotreba Chocolatey-a** ```bash choco install opencode diff --git a/packages/web/src/content/docs/bs/keybinds.mdx b/packages/web/src/content/docs/bs/keybinds.mdx index 64a16dda8e..3efc240c1b 100644 --- a/packages/web/src/content/docs/bs/keybinds.mdx +++ b/packages/web/src/content/docs/bs/keybinds.mdx @@ -140,10 +140,10 @@ Unos prompta aplikacije OpenCode za desktop podržava uobičajene prečice u sti | `alt+b` | Pomeri kursor za jednu reč unazad | | `alt+f` | Pomeri kursor za jednu reč unapred | | `ctrl+d` | Izbriši znak ispod kursora | -| `ctrl+k` | Ubiti do kraja reda | +| `ctrl+k` | Kill do kraja reda | | `ctrl+u` | Kill do početka reda | -| `ctrl+w` | Ubiti prethodnu riječ | -| `alt+d` | Ubiti sljedeću riječ | +| `ctrl+w` | Kill prethodnu riječ | +| `alt+d` | Kill sljedeću riječ | | `ctrl+t` | Transponirajte znakove | | `ctrl+g` | Otkaži iskakanje / poništi odgovor na pokretanje | diff --git a/packages/web/src/content/docs/bs/lsp.mdx b/packages/web/src/content/docs/bs/lsp.mdx index e699d2ca01..1eebd1fc26 100644 --- a/packages/web/src/content/docs/bs/lsp.mdx +++ b/packages/web/src/content/docs/bs/lsp.mdx @@ -70,7 +70,7 @@ Možete prilagoditi LSP servere kroz `lsp` odjeljak u vašoj opencode konfigurac ``` Svaki LSP server podržava sljedeće: -| Nekretnine | Vrsta | Opis +| Svojstvo | Vrsta | Opis |---------------- | -------- | ------------------------------------------------- | | `disabled` | boolean | Postavite ovo na `true` da onemogućite LSP server | | `command` | string[] | Naredba za pokretanje LSP servera | diff --git a/packages/web/src/content/docs/bs/mcp-servers.mdx b/packages/web/src/content/docs/bs/mcp-servers.mdx index 923f200a7e..693efc2dd0 100644 --- a/packages/web/src/content/docs/bs/mcp-servers.mdx +++ b/packages/web/src/content/docs/bs/mcp-servers.mdx @@ -105,7 +105,7 @@ use the mcp_everything tool to add the number 3 and 4 #### Opcije Ovdje su sve opcije za konfiguriranje lokalnog MCP servera. -| Opcija | Vrsta | Obavezno | Opis +| Opcija | Tip | Obavezno | Opis |------------- | ------- | -------- | ----------------------------------------------------------------------------------- | | `type` | String | Y | Tip veze sa MCP serverom, mora biti `"local"`. | | `command` | Niz | Y | Naredba i argumenti za pokretanje MCP servera. | @@ -139,7 +139,7 @@ Dodajte udaljene MCP servere postavljanjem `type` na `"remote"`. #### Opcije -| Opcija | Vrsta | Obavezno | Opis | +| Opcija | Tip | Obavezno | Opis | | --------- | ------- | -------- | -------------------------------------------------------------------------------------------------- | | `type` | String | Y | Tip veze sa MCP serverom, mora biti `"remote"`. | | `url` | String | Y | URL udaljenog MCP servera. | @@ -248,7 +248,7 @@ Ako želite onemogućiti automatski OAuth za server (npr. za servere koji umjest #### OAuth opcije -| Opcija | Vrsta | Opis | +| Opcija | Tip | Opis | | -------------- | --------------- | --------------------------------------------------------------------------------------------- | | `oauth` | Objekt \| false | OAuth konfiguracijski objekt, ili `false` da onemogućite automatsko otkrivanje OAuth. | | `clientId` | String | ID OAuth klijenta. Ako nije navedeno, pokušat će se izvršiti dinamička registracija klijenta. | @@ -269,7 +269,7 @@ opencode mcp debug my-oauth-server Komanda `mcp debug` prikazuje trenutni auth status, testira HTTP povezanost i pokušava OAuth discovery flow. -## Upravljaj +## Manage Vaši MCP serveri su dostupni kao alati u OpenCode, zajedno s ugrađenim alatima. Možete njima upravljati kroz OpenCode konfiguraciju kao i bilo kojim drugim alatom. diff --git a/packages/web/src/content/docs/bs/models.mdx b/packages/web/src/content/docs/bs/models.mdx index 32d4d9b1b4..9ad9f96ed4 100644 --- a/packages/web/src/content/docs/bs/models.mdx +++ b/packages/web/src/content/docs/bs/models.mdx @@ -180,7 +180,7 @@ Možete nadjačati postojeće varijante ili dodati svoje: } ``` -### Varijante ciklusa +### Cycle variants Koristite keybind `variant_cycle` za brzo prebacivanje između varijanti. [Saznajte više](/docs/keybinds). diff --git a/packages/web/src/content/docs/bs/modes.mdx b/packages/web/src/content/docs/bs/modes.mdx index 73d8f2d8e0..1be5648781 100644 --- a/packages/web/src/content/docs/bs/modes.mdx +++ b/packages/web/src/content/docs/bs/modes.mdx @@ -9,7 +9,7 @@ Načini se sada konfiguriraju preko opcije `agent` u konfiguraciji otvorenog kod ::: Režimi u otvorenom kodu omogućavaju vam da prilagodite ponašanje, alate i upite za različite slučajeve upotrebe. -Dolazi sa dva ugrađena načina rada: **gradite** i **planirajte**. Možete prilagoditi +Dolazi sa dva ugrađena načina rada: **build** i **plan**. Možete prilagoditi ove ili konfigurirajte svoje putem opencode config. Možete se prebacivati ​​između režima tokom sesije ili ih konfigurisati u svom konfiguracionom fajlu. @@ -308,9 +308,9 @@ Priorities: Evo nekoliko uobičajenih slučajeva upotrebe za različite načine rada. -- **Način izgradnje**: Potpuni razvojni rad sa svim omogućenim alatima -- **Način planiranja**: Analiza i planiranje bez izmjena +- **Build mode**: Potpuni razvojni rad sa svim omogućenim alatima +- **Plan mode**: Analiza i planiranje bez izmjena - **Review mode**: Pregled koda sa pristupom samo za čitanje plus alati za dokumentaciju -- **Režim za otklanjanje grešaka**: Fokusiran na istragu sa omogućenim bash i alatima za čitanje -- **Režim dokumenata**: Pisanje dokumentacije sa operacijama datoteka, ali bez sistemskih naredbi +- **Debug mode**: Fokusiran na istragu sa omogućenim bash i alatima za čitanje +- **Docs mode**: Pisanje dokumentacije sa operacijama datoteka, ali bez sistemskih naredbi Možda ćete također otkriti da su različiti modeli dobri za različite slučajeve upotrebe. diff --git a/packages/web/src/content/docs/bs/permissions.mdx b/packages/web/src/content/docs/bs/permissions.mdx index b581eee6e0..7f657a6b95 100644 --- a/packages/web/src/content/docs/bs/permissions.mdx +++ b/packages/web/src/content/docs/bs/permissions.mdx @@ -77,7 +77,7 @@ Uzorci dozvola koriste jednostavno podudaranje zamjenskih znakova: - `?` odgovara tačno jednom znaku - Svi ostali likovi se bukvalno podudaraju -### Proširenje kućnog imenika +### Proširenje kućnog direktorija Možete koristiti `~` ili `$HOME` na početku obrasca da referencirate svoj početni direktorij. Ovo je posebno korisno za [`external_directory`](#external-directories) pravila. @@ -85,7 +85,7 @@ Možete koristiti `~` ili `$HOME` na početku obrasca da referencirate svoj poč - `$HOME/projects/*` -> `/Users/username/projects/*` - `~` -> `/Users/username` -### Vanjski imenici +### Vanjski direktoriji Koristite `external_directory` da dozvolite pozive alata koji dodiruju putanje izvan radnog direktorija gdje je OpenCode pokrenut. Ovo se odnosi na bilo koji alat koji uzima putanju kao ulaz (na primjer `read`, `edit`, `list`, `glob`, `grep` i mnoge `bash` komande). Proširenje kuće (poput `~/...`) utiče samo na način na koji je obrazac napisan. Ne čini vanjsku stazu dijelom trenutnog radnog prostora, tako da staze izvan radnog direktorija i dalje moraju biti dozvoljene preko `external_directory`. diff --git a/packages/web/src/content/docs/bs/providers.mdx b/packages/web/src/content/docs/bs/providers.mdx index 2a1989c211..6e0d38acc6 100644 --- a/packages/web/src/content/docs/bs/providers.mdx +++ b/packages/web/src/content/docs/bs/providers.mdx @@ -84,7 +84,7 @@ Radi kao i svaki drugi provajder u OpenCode i potpuno je opcionalan za korišten --- -## Imenik +## Directory Pogledajmo neke od provajdera detaljno. Ako želite dodati provajdera na listu, slobodno otvori PR. diff --git a/packages/web/src/content/docs/bs/rules.mdx b/packages/web/src/content/docs/bs/rules.mdx index 620e489a7c..0d2e2c8f49 100644 --- a/packages/web/src/content/docs/bs/rules.mdx +++ b/packages/web/src/content/docs/bs/rules.mdx @@ -3,7 +3,7 @@ title: Pravila description: Postavite prilagodena uputstva za opencode. --- -Mozete dodati prilagodena uputstva za opencode tako sto kreirate `AGENTS.md` datoteku. Ovo je slicno pravilima u Cursoru. Sadrzi uputstva koja se ubacuju u LLM kontekst da prilagode ponasanje za vas projekat. +Mozete dodati prilagodena uputstva za opencode tako sto kreirate `AGENTS.md` datoteku. Ovo je slicno pravilima u Cursor-u. Sadrzi uputstva koja se ubacuju u LLM kontekst da prilagode ponasanje za vas projekat. --- diff --git a/packages/web/src/content/docs/bs/sdk.mdx b/packages/web/src/content/docs/bs/sdk.mdx index a54fa5aec8..f6ee20c9cf 100644 --- a/packages/web/src/content/docs/bs/sdk.mdx +++ b/packages/web/src/content/docs/bs/sdk.mdx @@ -226,7 +226,7 @@ const { providers, default: defaults } = await client.config.providers() ### Sessions -| Method | Description | Notes | +| Metoda | Opis | Napomene | | ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `session.list()` | List sessions | Returns Session[] | | `session.get({ path })` | Get session | Returns Session | @@ -283,7 +283,7 @@ await client.session.prompt({ ### Files -| Method | Description | Response | +| Metoda | Opis | Odgovor | | ------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- | | `find.text({ query })` | Search for text in files | Array of match objects with `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | | `find.files({ query })` | Find files and directories by name | `string[]` (paths) | @@ -324,7 +324,7 @@ const content = await client.file.read({ ### TUI -| Method | Description | Response | +| Metoda | Opis | Odgovor | | ------------------------------ | ------------------------- | --------- | | `tui.appendPrompt({ body })` | Append text to the prompt | `boolean` | | `tui.openHelp()` | Open the help dialog | `boolean` | @@ -355,7 +355,7 @@ await client.tui.showToast({ ### Auth -| Method | Description | Response | +| Metoda | Opis | Odgovor | | ------------------- | ------------------------------ | --------- | | `auth.set({ ... })` | Set authentication credentials | `boolean` | @@ -374,7 +374,7 @@ await client.auth.set({ ### Events -| Method | Description | Response | +| Metoda | Opis | Odgovor | | ------------------- | ------------------------- | ------------------------- | | `event.subscribe()` | Server-sent events stream | Server-sent events stream | diff --git a/packages/web/src/content/docs/bs/server.mdx b/packages/web/src/content/docs/bs/server.mdx index 9c77bd1aaf..a6d331bce4 100644 --- a/packages/web/src/content/docs/bs/server.mdx +++ b/packages/web/src/content/docs/bs/server.mdx @@ -86,7 +86,7 @@ opencode server izlaže sljedece API-je. ### Global -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ---------------- | ------------------------------ | ------------------------------------ | | `GET` | `/global/health` | Get server health and version | `{ healthy: true, version: string }` | | `GET` | `/global/event` | Get global events (SSE stream) | Event stream | @@ -95,7 +95,7 @@ opencode server izlaže sljedece API-je. ### Project -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------------------ | ----------------------- | --------------------------------------------- | | `GET` | `/project` | List all projects | Project[] | | `GET` | `/project/current` | Get the current project | Project | @@ -104,7 +104,7 @@ opencode server izlaže sljedece API-je. ### Path & VCS -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------- | ------------------------------------ | ------------------------------------------- | | `GET` | `/path` | Get the current path | Path | | `GET` | `/vcs` | Get VCS info for the current project | VcsInfo | @@ -113,7 +113,7 @@ opencode server izlaže sljedece API-je. ### Instance -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------------------- | ---------------------------- | --------- | | `POST` | `/instance/dispose` | Dispose the current instance | `boolean` | @@ -121,7 +121,7 @@ opencode server izlaže sljedece API-je. ### Config -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------- | ------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- | | `GET` | `/config` | Get config info | Config | | `PATCH` | `/config` | Update config | Config | @@ -131,7 +131,7 @@ opencode server izlaže sljedece API-je. ### Provider -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | -------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | | `GET` | `/provider` | List all providers | `{ all: `Provider[]`, default: {...}, connected: string[] }` | | `GET` | `/provider/auth` | Get provider authentication methods | `{ [providerID: string]: `ProviderAuthMethod[]` }` | @@ -142,7 +142,7 @@ opencode server izlaže sljedece API-je. ### Sessions -| Method | Path | Description | Notes | +| Metoda | Putanja | Opis | Napomene | | -------- | ---------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------- | | `GET` | `/session` | List all sessions | Returns Session[] | | `POST` | `/session` | Create a new session | body: `{ parentID?, title? }`, returns Session | @@ -167,7 +167,7 @@ opencode server izlaže sljedece API-je. ### Messages -| Method | Path | Description | Notes | +| Metoda | Putanja | Opis | Napomene | | ------ | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `GET` | `/session/:id/message` | List messages in a session | query: `limit?`, returns `{ info: `Message`, parts: `Part[]`}[]` | | `POST` | `/session/:id/message` | Send a message and wait for response | body: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, returns `{ info: `Message`, parts: `Part[]`}` | @@ -180,7 +180,7 @@ opencode server izlaže sljedece API-je. ### Commands -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ---------- | ----------------- | --------------------------------------------- | | `GET` | `/command` | List all commands | Command[] | @@ -188,7 +188,7 @@ opencode server izlaže sljedece API-je. ### Files -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------- | | `GET` | `/find?pattern=` | Search for text in files | Array of match objects with `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | | `GET` | `/find/file?query=` | Find files and directories by name | `string[]` (paths) | @@ -209,7 +209,7 @@ opencode server izlaže sljedece API-je. ### Tools (Experimental) -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------------------------------------------- | ---------------------------------------- | -------------------------------------------- | | `GET` | `/experimental/tool/ids` | List all tool IDs | ToolIDs | | `GET` | `/experimental/tool?provider=

&model=` | List tools with JSON schemas for a model | ToolList | @@ -218,7 +218,7 @@ opencode server izlaže sljedece API-je. ### LSP, Formatters & MCP -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ------------ | -------------------------- | -------------------------------------------------------- | | `GET` | `/lsp` | Get LSP server status | LSPStatus[] | | `GET` | `/formatter` | Get formatter status | FormatterStatus[] | @@ -229,7 +229,7 @@ opencode server izlaže sljedece API-je. ### Agents -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | -------- | ------------------------- | ------------------------------------------- | | `GET` | `/agent` | List all available agents | Agent[] | @@ -237,15 +237,15 @@ opencode server izlaže sljedece API-je. ### Logging -| Method | Path | Description | Response | -| ------ | ------ | ------------------------------------------------------------ | --------- | -| `POST` | `/log` | Write log entry. Body: `{ service, level, message, extra? }` | `boolean` | +| Metoda | Putanja | Opis | Odgovor | +| ------ | ------- | ------------------------------------------------------------ | --------- | +| `POST` | `/log` | Write log entry. Body: `{ service, level, message, extra? }` | `boolean` | --- ### TUI -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ----------------------- | ------------------------------------------- | ---------------------- | | `POST` | `/tui/append-prompt` | Append text to the prompt | `boolean` | | `POST` | `/tui/open-help` | Open the help dialog | `boolean` | @@ -263,7 +263,7 @@ opencode server izlaže sljedece API-je. ### Auth -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | ----------- | --------------------------------------------------------------- | --------- | | `PUT` | `/auth/:id` | Set authentication credentials. Body must match provider schema | `boolean` | @@ -271,7 +271,7 @@ opencode server izlaže sljedece API-je. ### Events -| Method | Path | Description | Response | +| Metoda | Putanja | Opis | Odgovor | | ------ | -------- | ----------------------------------------------------------------------------- | ------------------------- | | `GET` | `/event` | Server-sent events stream. First event is `server.connected`, then bus events | Server-sent events stream | @@ -279,6 +279,6 @@ opencode server izlaže sljedece API-je. ### Docs -| Method | Path | Description | Response | -| ------ | ------ | ------------------------- | --------------------------- | -| `GET` | `/doc` | OpenAPI 3.1 specification | HTML page with OpenAPI spec | +| Metoda | Putanja | Opis | Odgovor | +| ------ | ------- | ------------------------- | --------------------------- | +| `GET` | `/doc` | OpenAPI 3.1 specification | HTML page with OpenAPI spec | diff --git a/packages/web/src/content/docs/bs/troubleshooting.mdx b/packages/web/src/content/docs/bs/troubleshooting.mdx index 3ef59c8b13..a2975d8dbe 100644 --- a/packages/web/src/content/docs/bs/troubleshooting.mdx +++ b/packages/web/src/content/docs/bs/troubleshooting.mdx @@ -7,7 +7,7 @@ Da biste otklonili probleme s OpenCode, počnite provjeravanjem dnevnika i lokal --- -## Dnevnici +## Logovi Log fajlovi se pišu na: diff --git a/packages/web/src/content/docs/bs/tui.mdx b/packages/web/src/content/docs/bs/tui.mdx index f9c97f4c61..0c80fdf779 100644 --- a/packages/web/src/content/docs/bs/tui.mdx +++ b/packages/web/src/content/docs/bs/tui.mdx @@ -340,13 +340,13 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl Popularne opcije uređivača uključuju: - `code` - ​​Visual Studio Code -- `cursor` - ​​Kursor -- `windsurf` - ​​jedrenje na dasci +- `cursor` - ​​Cursor +- `windsurf` - ​​Windsurf - `nvim` - ​​Neovim editorom - `vim` - ​​Vim editor - `nano` - ​​Nano editor - `notepad` - ​​Windows Notepad -- `subl` - ​​Uzvišeni tekst +- `subl` - ​​Sublime Text :::note Neki uređivači kao što je VS Code moraju biti pokrenuti sa `--wait` zastavicom. diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index 7660adea7c..6488f7ac3a 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -17,7 +17,7 @@ Zen radi kao i svaki drugi provajder u OpenCode. Prijavite se u OpenCode Zen i u --- -## Background +## Pozadina Postoji veliki broj modela, ali samo mali dio radi dobro kao coding agent. Dodatno, vecina provajdera je drugacije konfigurisana, pa su performanse i kvalitet cesto neujednaceni. @@ -99,7 +99,7 @@ https://opencode.ai/zen/v1/models --- -## Pricing +## Cijene Podrzavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. @@ -156,7 +156,7 @@ Ako imate pitanja, kontaktirajte nas. --- -### Auto-reload +### Automatska dopuna Ako vam stanje padne ispod $5, Zen ce automatski dopuniti $20. @@ -164,7 +164,7 @@ Iznos auto-reloada mozete promijeniti. Auto-reload mozete i potpuno iskljuciti. --- -### Monthly limits +### Mjesečni limiti Mozete postaviti mjesecni limit potrosnje za cijeli workspace i za svakog clana tima. @@ -172,7 +172,7 @@ Na primjer, ako postavite mjesecni limit na $20, Zen nece potrositi vise od $20 --- -## Privacy +## Privatnost Svi nasi modeli su hostovani u SAD-u. Provajderi prate zero-retention politiku i ne koriste vase podatke za treniranje modela, uz sljedece izuzetke: @@ -185,7 +185,7 @@ Svi nasi modeli su hostovani u SAD-u. Provajderi prate zero-retention politiku i --- -## For Teams +## Za timove Zen odlicno radi i za timove. Mozete pozvati clanove tima, dodijeliti uloge, birati modele koje tim koristi i jos mnogo toga. @@ -197,7 +197,7 @@ Upravljanje workspace-om je trenutno besplatno za timove tokom beta faze. Vise d --- -### Roles +### Uloge Mozete pozvati clanove tima u workspace i dodijeliti uloge: @@ -208,7 +208,7 @@ Admini mogu postaviti i mjesecne limite potrosnje po clanu da drze troskove pod --- -### Model access +### Pristup modelima Admini mogu ukljuciti ili iskljuciti odredene modele za workspace. Zahtjevi prema iskljucenom modelu vracaju gresku. @@ -216,7 +216,7 @@ Ovo je korisno kada zelite zabraniti model koji prikuplja podatke. --- -### Bring your own key +### Donesite vlastiti ključ Mozete koristiti vlastite OpenAI ili Anthropic API kljuceve i dalje koristiti ostale modele u Zen-u. @@ -226,7 +226,7 @@ Na primjer, vasa organizacija mozda vec ima OpenAI ili Anthropic kljuc i zelite --- -## Goals +## Ciljevi OpenCode Zen smo napravili da: diff --git a/packages/web/src/content/docs/da/acp.mdx b/packages/web/src/content/docs/da/acp.mdx index a80a9eaa19..9288d772d4 100644 --- a/packages/web/src/content/docs/da/acp.mdx +++ b/packages/web/src/content/docs/da/acp.mdx @@ -6,7 +6,7 @@ description: Brug OpenCode i enhver ACP-kompatibel editor. OpenCode understøtter [Agent Client Protocol](https://agentclientprotocol.com) eller (ACP), så du kan bruge det direkte i kompatible editorer og IDE'er. :::tip -For en liste over editorer og værktøjer, der understøtter ACP, tjek [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). +For en liste over editorer og værktøjer, der understøtter ACP, tjek [ACP fremskridtsrapport](https://zed.dev/blog/acp-progress-report#available-now). ::: ACP er en åben protokol, der standardiserer kommunikation mellem kodeeditorer og AI-kodningsagenter. @@ -69,7 +69,7 @@ Du kan også binde en tastaturgenvej ved at redigere din `keymap.json`: ### JetBrains IDE'er -Tilføj til din [JetBrains IDE](https://www.jetbrains.com/) acp.json i henhold til [documentation](https://www.jetbrains.com/help/ai-assistant/acp.html): +Tilføj til din [JetBrains IDE](https://www.jetbrains.com/) acp.json i henhold til [dokumentationen](https://www.jetbrains.com/help/ai-assistant/acp.html): ```json title="acp.json" { @@ -138,7 +138,7 @@ require("codecompanion").setup({ Denne konfiguration sætter CodeCompanion til at bruge OpenCode som ACP-agent til chat. -Hvis du har brug for at sende miljøvariabler (som `OPENCODE_API_KEY`), henvises til [Configuring Adapters: Environment Variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) i CodeCompanion.nvim-dokumentationen for alle detaljer. +Hvis du har brug for at sende miljøvariabler (som `OPENCODE_API_KEY`), henvises til [Konfiguration af adaptere: Miljøvariabler](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) i CodeCompanion.nvim-dokumentationen for alle detaljer. ## Support diff --git a/packages/web/src/content/docs/da/agents.mdx b/packages/web/src/content/docs/da/agents.mdx index 6cd1fd0d66..c9f4a590f0 100644 --- a/packages/web/src/content/docs/da/agents.mdx +++ b/packages/web/src/content/docs/da/agents.mdx @@ -27,7 +27,7 @@ Primære agenter er de vigtigste assistenter, du interagerer direkte med. Du kan Du kan bruge **Tab**-tasten til at skifte mellem primære agenter under en session. ::: -OpenCode leveres med indbyggede primære agenter, **Build** og **Plan**. Godt +OpenCode leveres med indbyggede primære agenter, **Build** og **Plan**. Vi vil se på disse nedenfor. --- @@ -36,7 +36,7 @@ se på disse nedenfor. Subagenter er specialiserede assistenter, som primære agenter kan påbegynde sig til specifikke opgaver. Du kan også kalde dem manuelt ved at **@ nævne** dem i dine beskeder. -OpenCode leveres med til indbyggede underagenter, **Generelt** og **Udforsk**. Vi vil se på dette nedenfor. +OpenCode leveres med to indbyggede underagenter, **Generelt** og **Udforsk**. Vi vil se på dette nedenfor. --- @@ -136,7 +136,7 @@ Du kan tilpasse de indbyggede agenter eller oprette dine egne gennem konfigurati ### JSON -Konfigurationsagent i din `opencode.json`-konfigurationsfil: +Konfigurer agent i din `opencode.json`-konfigurationsfil: ```json title="opencode.json" { @@ -302,7 +302,7 @@ Hvis dette ikke er indstillet, vil agenten fortsætte med at iterere, indtil mod Når grænsen er nået, modtager agenten en speciel systemprompt, der instruerer den om at svare med en opsummering af sit arbejde og anbefalede resterende opgaver. :::caution -Det gamle `maxSteps` følte er forældet. Brug `steps` i stedet. +Det gamle `maxSteps`-felt er forældet. Brug `steps` i stedet. ::: --- @@ -346,7 +346,7 @@ Denne sti er i forhold til, hvor konfigurationsfilen er placeret. Så dette virk Brug `model`-konfigurationen til at tilsidesætte modeller for denne agent. Nyttigt til brug af forskellige modeller optimeret til forskellige opgaver. For eksempel en hurtigere model til planlægning, en dygtig model til implementering. :::tip -Hvis du ikke angiver en model, bruger primære agenter [model globally configured](/docs/config#models), mens subagenter vil bruge modeller for den primære agent, der påkaldte subagenten. +Hvis du ikke angiver en model, bruger primære agenter [model konfigureret globalt](/docs/config#models), mens subagenter vil bruge modeller for den primære agent, der påkaldte subagenten. ::: ```json title="opencode.json" @@ -406,7 +406,7 @@ Du kan også bruge jokertegn til at styre flere værktøjer på én gang. For ek } ``` -[Learn more about tools](/docs/tools). +[Læs mere om værktøjer](/docs/tools). --- @@ -518,7 +518,7 @@ Da den sidste matchningsregel har forrang, skal du sætte jokertegnet `*` først } ``` -[Learn more about permissions](/docs/permissions). +[Læs mere om tilladelser](/docs/permissions). --- @@ -697,7 +697,7 @@ Her er nogle almindelige use cases for forskellige agenter. Her er nogle eksempler på agenter, du kan finde nyttige. :::tip -Har du en agent, du gerne vil dele? [Submit a PR](https://github.com/anomalyco/opencode). +Har du en agent, du gerne vil dele? [Send en PR](https://github.com/anomalyco/opencode). ::: --- diff --git a/packages/web/src/content/docs/da/index.mdx b/packages/web/src/content/docs/da/index.mdx index 2cdf32a969..dca8a93aec 100644 --- a/packages/web/src/content/docs/da/index.mdx +++ b/packages/web/src/content/docs/da/index.mdx @@ -9,7 +9,7 @@ export const console = config.console [**OpenCode**](/) er en open source AI-kodningsagent. Den er tilgængelig som en terminalbaseret grænseflade, desktop-app eller IDE-udvidelse. -![OpenCode TUI with the opencode theme](../../../assets/lander/screenshot.png) +![OpenCode TUI med opencode-temaet](../../../assets/lander/screenshot.png) Lad os komme i gang. @@ -228,7 +228,7 @@ Du kan bede OpenCode om at tilføje nye funktioner til dit projekt. Selvom vi f Skift til det ved hjælp af **Tab**-tasten. Du vil se en indikator for dette i nederste højre hjørne. - ```bash frame="none" title="Switch to Plan mode" + ```bash frame="none" title="Skift til Plan-tilstand" ``` @@ -356,4 +356,4 @@ Her er en [eksempelsamtale](https://opencode.ai/s/4XP1fce5) med OpenCode. Og det er det! Du er nu en professionel i at bruge OpenCode. -For at gøre det til dit eget, anbefaler vi [picking a theme](/docs/themes), [customizing the keybinds](/docs/keybinds), [configuring code formatters](/docs/formatters), [creating custom commands](/docs/commands) eller at lege med [OpenCode config](/docs/config). +For at gøre det til dit eget, anbefaler vi [at vælge et tema](/docs/themes), [tilpasse genvejstaster](/docs/keybinds), [konfigurere kodeformater](/docs/formatters), [oprette brugerdefinerede kommandoer](/docs/commands) eller at lege med [OpenCode-konfiguration](/docs/config). diff --git a/packages/web/src/content/docs/da/tui.mdx b/packages/web/src/content/docs/da/tui.mdx index 4105afe86e..b8a62e407c 100644 --- a/packages/web/src/content/docs/da/tui.mdx +++ b/packages/web/src/content/docs/da/tui.mdx @@ -1,25 +1,25 @@ --- title: TUI -description: Bruge OpenCode-terminalbrugergrensesnittet. +description: Bruge OpenCode-terminalbrugergrænsefladeet. --- import { Tabs, TabItem } from "@astrojs/starlight/components" -OpenCode gir et interaktivt terminalgrensesnitt eller TUI for at jobbe med prosjektene dine med en LLM. +OpenCode gir et interaktivt terminalgrænseflade eller TUI for at jobbe med prosjektene dine med en LLM. -Å kjøre OpenCode starter TUI for nuværende katalog. +Å køre OpenCode starter TUI for nuværende mappe. ```bash opencode ``` -Eller du kan starte den for en bestemt arbejdskatalog. +Eller du kan starte den for en bestemt arbejdsmappe. ```bash opencode /path/to/project ``` -Når du er i TUI, kan du spørre den med en melding. +Når du er i TUI, kan du spørge den med en besked. ```text Give me a quick summary of the codebase. @@ -27,9 +27,9 @@ Give me a quick summary of the codebase. --- -## Filreferanser +## Filreferencer -Du kan referere til filer i dine meddelelser med `@`. Det laver en fuzzy filsøgning i det nuværende arbejdskatalog. +Du kan referere til filer i dine meddelelser med `@`. Det laver en fuzzy filsøgning i det nuværende arbejdsmappe. :::tip Du kan også bruge `@` til at referere til filer i dine meddelelser. @@ -39,19 +39,19 @@ Du kan også bruge `@` til at referere til filer i dine meddelelser. How is auth handled in @packages/functions/src/api/index.ts? ``` -Innholdet i filen tilføjes automatisk til samtalen. +Indholdet i filen tilføjes automatisk til samtalen. --- ## Bash-kommandoer -Start en melding med `!` for at kjøre en shell-kommando. +Start en besked med `!` for at køre en shell-kommando. ```bash frame="none" !ls -la ``` -Utdataene fra kommandoen tilføjes til samtalen som et verktøyresultat. +Outputtet fra kommandoen tilføjes til samtalen som et værktøjresultat. --- @@ -63,15 +63,15 @@ Når du bruger OpenCode TUI, kan du skrive `/` etterfulgt av et kommandonavn for /help ``` -De fleste kommandoer har også tastebinding som bruger `ctrl+x` som Leader-tast, der `ctrl+x` er standard Leader-tast. [Finn ut mer](/docs/keybinds). +De fleste kommandoer har også genvejstast som bruger `ctrl+x` som Leader-tast, der `ctrl+x` er standard Leader-tast. [Læs mere](/docs/keybinds). -Her er alle tilgængelige skråstrekkommandoer: +Her er alle tilgængelige skråstregskommandoer: --- ### connect -Legg til en leverandør til OpenCode. Lar deg velge fra tilgængelige leverandører og tilføje til deres API-nøkler. +Tilføj en leverandør til OpenCode. Lar deg velge fra tilgængelige leverandører og tilføje til deres API-nøgler. ```bash frame="none" /connect @@ -87,79 +87,79 @@ Komprimer nuværende session. _Alias_: `/summarize` /compact ``` -**Tastebinding:** `ctrl+x c` +**Genvejstast:** `ctrl+x c` --- ### details -Veksle verktøyutførelsesdetaljer. +Veksle værktøjutførelsesdetaljer. ```bash frame="none" /details ``` -**Tastebinding:** `ctrl+x d` +**Genvejstast:** `ctrl+x d` --- ### editor -Åpne eksternt redigeringsprogram for at skrive meldinger. Bruger redigeringssettet i miljøvariabelen `EDITOR`. [Finn ut mer](#editor-setup). +Åbn eksternt redigeringsprogram for at skrive beskeder. Bruger redigeringsprogrammet i miljøvariabelen `EDITOR`. [Læs mere](#editor-setup). ```bash frame="none" /editor ``` -**Tastebinding:** `ctrl+x e` +**Genvejstast:** `ctrl+x e` --- ### exit -Avslutt OpenCode. _Aliaser_: `/quit`, `/q` +Afslut OpenCode. _Aliaser_: `/quit`, `/q` ```bash frame="none" /exit ``` -**Tastebinding:** `ctrl+x q` +**Genvejstast:** `ctrl+x q` --- ### export -Eksporter nuværende samtale til Markdown og åpne i standardredigeringsprogrammet. Bruger redigeringssettet i miljøvariabelen `EDITOR`. [Finn ut mer](#editor-setup). +Eksporter nuværende samtale til Markdown og åpne i standardredigeringsprogrammet. Bruger redigeringsprogrammet i miljøvariabelen `EDITOR`. [Læs mere](#editor-setup). ```bash frame="none" /export ``` -**Tastebinding:** `ctrl+x x` +**Genvejstast:** `ctrl+x x` --- ### help -Vis hjelpedialogen. +Vis hjælpedialogen. ```bash frame="none" /help ``` -**Tastebinding:** `ctrl+x h` +**Genvejstast:** `ctrl+x h` --- ### init -Opret eller opdater `AGENTS.md`-fil. [Finn ut mer](/docs/rules). +Opret eller opdater `AGENTS.md`-fil. [Læs mere](/docs/rules). ```bash frame="none" /init ``` -**Tastebinding:** `ctrl+x i` +**Genvejstast:** `ctrl+x i` --- @@ -171,7 +171,7 @@ Liste over tilgængelige modeller. /models ``` -**Tastebinding:** `ctrl+x m` +**Genvejstast:** `ctrl+x m` --- @@ -183,26 +183,26 @@ Start en ny session. _Alias_: `/clear` /new ``` -**Tastebinding:** `ctrl+x n` +**Genvejstast:** `ctrl+x n` --- ### redo -Gjenta en tidligere angret melding. Kun tilgængelig etter brug av `/undo`. +Gentag en tidligere fortrudt besked. Kun tilgængelig etter brug av `/undo`. :::tip -Eventuelle filendringer vil også bli gjenopretet. +Eventuelle filændringer vil også bli genoprettet. ::: -Internt bruger dette Git til at administrere filendringene. Så ditt prosjekt **må +Internt bruger dette Git til at administrere filændringerne. Så dit prosjekt **må være et Git-depot**. ```bash frame="none" /redo ``` -**Tastebinding:** `ctrl+x r` +**Genvejstast:** `ctrl+x r` --- @@ -214,19 +214,19 @@ List opp og bytt mellom sessioner. _Aliaser_: `/resume`, `/continue` /sessions ``` -**Tastebinding:** `ctrl+x l` +**Genvejstast:** `ctrl+x l` --- ### share -Del nuværende session. [Finn ut mer](/docs/share). +Del nuværende session. [Læs mere](/docs/share). ```bash frame="none" /share ``` -**Tastebinding:** `ctrl+x s` +**Genvejstast:** `ctrl+x s` --- @@ -238,16 +238,16 @@ Liste over tilgængelige temaer. /theme ``` -**Tastebinding:** `ctrl+x t` +**Genvejstast:** `ctrl+x t` --- ### thinking -Veksle mellom synligheten av tenke-/resonneringsblokker i samtalen. Når den er aktivert, kan du se modellens resonneringsprosess for modeller som støtter utvidet tenkning. +Veksle mellom synligheten av tenke-/resonneringsblokker i samtalen. Når den er aktiveret, kan du se modellens resonneringsprosess for modeller som støtter utvidet tenkning. :::note -Denne kommandoen kontrollerer bare om tenkeblokker **vises** - den aktiverer eller deaktiverer ikke modellens resonneringsmuligheter. For at veksle mellom faktiske resonneringsmuligheter, brug `ctrl+t` for at bla gjennom modellvarianter. +Denne kommandoen kontrollerer bare om tenkeblokker **vises** - den aktiverer eller deaktiverer ikke modellens resonneringsmuligheter. For at veksle mellom faktiske resonneringsmuligheter, brug `ctrl+t` for at bla gennem modellvarianter. ::: ```bash frame="none" @@ -258,26 +258,26 @@ Denne kommandoen kontrollerer bare om tenkeblokker **vises** - den aktiverer ell ### undo -Angre siste melding i samtalen. Fjerner den siste brugermeldingen, alle påfølgende svar og eventuelle filendringer. +Angre siste besked i samtalen. Fjerner den siste brugerbeskeden, alle påfølgende svar og eventuelle filændringer. :::tip -Eventuelle filendringer vil også bli nulstillet. +Eventuelle filændringer vil også bli nullstillet. ::: -Internt bruger dette Git til at administrere filendringene. Så ditt prosjekt **må +Internt bruger dette Git til at administrere filændringerne. Så dit prosjekt **må være et Git-depot**. ```bash frame="none" /undo ``` -**Tastebinding:** `ctrl+x u` +**Genvejstast:** `ctrl+x u` --- ### unshare -Opphev deling av nuværende session. [Finn ut mer](/docs/share#un-sharing). +Ophæv deling av nuværende session. [Læs mere](/docs/share#un-sharing). ```bash frame="none" /unshare @@ -287,7 +287,7 @@ Opphev deling av nuværende session. [Finn ut mer](/docs/share#un-sharing). ## Opsætning af editor -Både kommandoene `/editor` og `/export` bruger editoren som er spesifisert i miljøvariabelen `EDITOR`. +Både kommandoerne `/editor` og `/export` bruger editoren som er spesifisert i miljøvariabelen `EDITOR`. @@ -315,7 +315,7 @@ Både kommandoene `/editor` og `/export` bruger editoren som er spesifisert i mi set EDITOR=code --wait ``` - For at gøre det permanent, brug **Systemegenskaper** > **Miljø + For at gøre det permanent, brug **Systemegenskaber** > **Miljø Variabler**. @@ -339,23 +339,23 @@ Populære redigeringsalternativer inkluderer: - `code` - Visual Studio Code - `cursor` - Cursor - `windsurf` - Windsurf -- `nvim` - Neovim-redaktør +- `nvim` - Neovim-editor - `vim` - Vim editor - `nano` - Nano-editor - `notepad` - Windows Notesblok - `subl` - Sublime Text :::note -Nogle editorer som VS Code må startes med flagget `--wait`. +Nogle editorer som VS Code må startes med flaget `--wait`. ::: -Nogle editorer trenger kommandolinjeargumenter for at kjøre i blokeringstilstand. `--wait`-flagget gør at redigeringsprosessen blokkeres til den lukkes. +Nogle editorer kræver kommandolinjeargumenter for at køre i blokeringstilstand. `--wait`-flaget gør at redigeringsprocessen blokeres til den lukkes. --- ## Konfigurer -Du kan tilpasse TUI-oppførselen gjennom OpenCode-konfigurasjonsfilen. +Du kan tilpasse TUI-adfærden gennem OpenCode-konfigurationsfilen. ```json title="opencode.json" { @@ -369,22 +369,22 @@ Du kan tilpasse TUI-oppførselen gjennom OpenCode-konfigurasjonsfilen. } ``` -### Options +### Indstillinger -- `scroll_acceleration` - Aktiver rulleacceleration i macOS-stil for jevn, naturlig rulling. Når aktivert, øker rullehastigheten med raske rullebevegelser og forblir presis for langsommere bevegelser. **Denne innstillingen har forrang over `scroll_speed` og overstyrer den når den er aktivert.** -- `scroll_speed` - Styrer hvor raskt TUI ruller når du bruger rullekommandoer (minimum: `1`). Standard er `3`. **Merk: Dette ignoreres hvis `scroll_acceleration.enabled` er satt til `true`.** +- `scroll_acceleration` - Aktiver rulleacceleration i macOS-stil for jævn, naturlig rulning. Når aktiveret, øger rullehastigheden med raske rullebevægelser og forblir presis for langsommere bevægelser. **Denne indstillingen har forrang over `scroll_speed` og tilsidesætter den når den er aktiveret.** +- `scroll_speed` - Styrer hvor raskt TUI ruller når du bruger rullekommandoer (minimum: `1`). Standard er `3`. **Bemærk: Dette ignoreres hvis `scroll_acceleration.enabled` er sat til `true`.** --- ## Tilpasning -Du kan tilpasse ulike aspekter av TUI-visningen ved at bruge kommandopaletten (`ctrl+x h` eller `/help`). Disse innstillingene vedvarer ved omstarter. +Du kan tilpasse forskellige aspekter av TUI-visningen ved at bruge kommandopaletten (`ctrl+x h` eller `/help`). Disse indstillingene gemmes ved omstarter. --- #### Username display -Veksle om brugernavnet ditt vises i chat-meldinger. Få tilgang til dette gjennom: +Veksle om brugernavnet dit vises i chat-beskeder. Få adgang til dette gennem: -- Kommandopalet: Søk etter "brugernavn" eller "skjul brugernavn" -- Innstillingen vedvarer automatisk og vil bli husket over TUI sessioner +- Kommandopalet: Søg efter "brugernavn" eller "skjul brugernavn" +- Innstillingen gemmes automatisk og vil bli husket over TUI sessioner diff --git a/packages/web/src/content/docs/de/agents.mdx b/packages/web/src/content/docs/de/agents.mdx index a3127e4a4f..bf69bafd30 100644 --- a/packages/web/src/content/docs/de/agents.mdx +++ b/packages/web/src/content/docs/de/agents.mdx @@ -359,7 +359,7 @@ Wenn Sie kein Modell angeben, verwenden Sie den primären Agenten [model globall } ``` -Das Modell ID in Ihrer OpenCode-Konfiguration verwendet das Format `provider/model-id`. Wenn Sie beispielsweise [OpenCode Zen](/docs/zen) verwenden, würden Sie `opencode/gpt-5.1-codex` für GPT 5.1 Codex verwenden. +Die Modell-ID in Ihrer OpenCode-Konfiguration verwendet das Format `provider/model-id`. Wenn Sie beispielsweise [OpenCode Zen](/docs/zen) verwenden, würden Sie `opencode/gpt-5.1-codex` für GPT 5.1 Codex verwenden. --- @@ -591,7 +591,7 @@ Die Regeln werden der Reihe nach ausgewertet und die **letzte übereinstimmende ::: :::tip -Benutzer können jeden Subagenten immer direkt über das Autovervollständigungsmenü `@` aufrufen, auch wenn die Aufgabenberechtigungen des Agenten sterben würden. +Benutzer können jeden Subagenten immer direkt über das Autovervollständigungsmenü `@` aufrufen, auch wenn die Aufgabenberechtigungen des Agenten dies verweigern würden. ::: --- @@ -600,7 +600,7 @@ Benutzer können jeden Subagenten immer direkt über das Autovervollständigungs Passen Sie das visuelle Erscheinungsbild des Agenten im UI mit der Option `color` an. Dies wirkt sich darauf aus, wie der Agent in der Benutzeroberfläche angezeigt wird. -Verwenden Sie eine gültige Hex-Farbe (e.g., `#FF5733`) oder Designfarbe: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. +Verwenden Sie eine gültige Hex-Farbe (e.g., `#FF5733`) oder Themenfarbe: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. ```json title="opencode.json" { @@ -631,7 +631,7 @@ Steuern Sie die Antwortvielfalt mit der Option `top_p`. Alternative zur Temperat } ``` -Die Werte reichen von 0.0 bis 1.0. Die meisten Werte sind fokussierter, die höheren Werte vielfältiger. +Die Werte reichen von 0.0 bis 1.0. Niedrigere Werte sind fokussierter, höhere Werte vielfältiger. --- diff --git a/packages/web/src/content/docs/de/ide.mdx b/packages/web/src/content/docs/de/ide.mdx index 802894e3c8..5f1275b737 100644 --- a/packages/web/src/content/docs/de/ide.mdx +++ b/packages/web/src/content/docs/de/ide.mdx @@ -3,7 +3,7 @@ title: IDE description: Die OpenCode-Erweiterung für VS Code, Cursor und andere IDEs --- -OpenCode lässt sich in VS Code, Cursor oder jeden IDE integrieren, der ein Terminal unterstützt. Führen Sie einfach `opencode` im Terminal aus, um zu beginnen. +OpenCode lässt sich in VS Code, Cursor oder jede IDE integrieren, die ein Terminal unterstützt. Führen Sie einfach `opencode` im Terminal aus, um zu beginnen. --- @@ -18,13 +18,13 @@ OpenCode lässt sich in VS Code, Cursor oder jeden IDE integrieren, der ein Term ## Installation -So installieren Sie OpenCode auf VS Code und beliebten Forks wie Cursor, Windsurf, VSCodium: +So installieren Sie OpenCode in VS Code und beliebten Forks wie Cursor, Windsurf, VSCodium: -1. Öffnen Sie den VS-Code +1. Öffnen Sie VS Code 2. Öffnen Sie das integrierte Terminal 3. Führen Sie `opencode` aus – die Erweiterung wird automatisch installiert -Wenn Sie andererseits Ihr eigenes IDE verwenden möchten, wenn Sie `/editor` oder `/export` von TUI ausführen, müssen Sie `export EDITOR="code --wait"` festlegen. [Learn more](/docs/tui/#editor-setup). +Wenn Sie andererseits Ihre eigene IDE verwenden möchten, wenn Sie `/editor` oder `/export` von TUI ausführen, müssen Sie `export EDITOR="code --wait"` festlegen. [Learn more](/docs/tui/#editor-setup). --- @@ -39,10 +39,10 @@ Suchen Sie im Extension Marketplace nach **OpenCode** und klicken Sie auf **Inst Wenn die Erweiterung nicht automatisch installiert werden kann: - Stellen Sie sicher, dass Sie `opencode` im integrierten Terminal ausführen. -- Bestätigen Sie, dass CLI für Ihr IDE installiert ist: +- Bestätigen Sie, dass CLI für Ihre IDE installiert ist: - Für VS Code: `code` Befehl - Für Cursor: Befehl `cursor` - - Für Windsurfen: Befehl `windsurf` + - Für Windsurf: Befehl `windsurf` - Für VSCodium: Befehl `codium` - - Wenn nicht, führen Sie `Cmd+Shift+P` (Mac) oder `Ctrl+Shift+P` (Windows/Linux) aus und suchen Sie nach „Shell Command: Install 'code' command in PATH“ (oder dem Äquivalent für Ihr IDE). -- Stellen Sie sicher, dass der VS-Code über die Berechtigung zum Installieren von Erweiterungen verfügt + - Wenn nicht, führen Sie `Cmd+Shift+P` (Mac) oder `Ctrl+Shift+P` (Windows/Linux) aus und suchen Sie nach „Shell Command: Install 'code' command in PATH“ (oder dem Äquivalent für Ihre IDE). +- Stellen Sie sicher, dass VS Code über die Berechtigung zum Installieren von Erweiterungen verfügt diff --git a/packages/web/src/content/docs/de/index.mdx b/packages/web/src/content/docs/de/index.mdx index f53f60bb7a..1fe23e9984 100644 --- a/packages/web/src/content/docs/de/index.mdx +++ b/packages/web/src/content/docs/de/index.mdx @@ -79,7 +79,7 @@ Sie können es auch mit den folgenden Befehlen installieren: brew install anomalyco/tap/opencode ``` - > Wir empfehlen die Verwendung des OpenCode-Tapes für die aktuellsten Versionen. Die offizielle `brew install opencode`-Formel wird vom Homebrew-Team gepflegt und seltener aktualisiert. + > Wir empfehlen die Verwendung des OpenCode-Taps für die aktuellsten Versionen. Die offizielle `brew install opencode`-Formel wird vom Homebrew-Team gepflegt und seltener aktualisiert. - **Verwendung von Paru unter Arch Linux** @@ -93,7 +93,7 @@ Sie können es auch mit den folgenden Befehlen installieren: Für das beste Erlebnis unter Windows empfehlen wir die Verwendung von [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Es bietet eine bessere Leistung und vollständige Kompatibilität mit den Funktionen von OpenCode. ::: -- **Verwendung von Schokolade** +- **Verwendung von Chocolatey** ```bash choco install opencode @@ -134,8 +134,7 @@ Sie können die Binärdatei auch aus [Releases](https://github.com/anomalyco/ope Mit OpenCode können Sie jeden LLM-Anbieter verwenden, indem Sie dessen API-Schlüssel konfigurieren. Wenn Sie mit der Verwendung von LLM-Anbietern noch nicht vertraut sind, empfehlen wir die Verwendung von [OpenCode Zen](/docs/zen). -Es handelt sich um eine kuratierte Liste von Modellen, die von OpenCode getestet und verifiziert wurden -team. +Es handelt sich um eine kuratierte Liste von Modellen, die vom OpenCode Team getestet und verifiziert wurden. 1. Führen Sie den Befehl `/connect` in TUI aus, wählen Sie OpenCode aus und gehen Sie zu [opencode.ai/auth](https://opencode.ai/auth). @@ -179,8 +178,7 @@ Als nächstes initialisieren Sie OpenCode für das Projekt, indem Sie den folgen /init ``` -Dadurch wird OpenCode dazu veranlasst, Ihr Projekt zu analysieren und eine `AGENTS.md`-Datei zu erstellen -das Projektstammverzeichnis. +Dadurch wird OpenCode dazu veranlasst, Ihr Projekt zu analysieren und eine `AGENTS.md`-Datei im Projektstammverzeichnis zu erstellen. :::tip Sie sollten die `AGENTS.md`-Datei Ihres Projekts an Git übergeben. diff --git a/packages/web/src/content/docs/es/acp.mdx b/packages/web/src/content/docs/es/acp.mdx index 6954182bfe..d5f31b5551 100644 --- a/packages/web/src/content/docs/es/acp.mdx +++ b/packages/web/src/content/docs/es/acp.mdx @@ -3,7 +3,7 @@ title: Soporte ACP description: Utilice OpenCode en cualquier editor compatible con ACP. --- -OpenCode admite el [Protocolo de cliente de agente](https://agentclientprotocol.com) o (ACP), lo que le permite usarlo directamente en editores e IDE compatibles. +OpenCode admite el [Agent Client Protocol](https://agentclientprotocol.com) o (ACP), lo que le permite usarlo directamente en editores e IDE compatibles. :::tip Para obtener una lista de editores y herramientas compatibles con ACP, consulte el [informe de progreso de ACP](https://zed.dev/blog/acp-progress-report#available-now). diff --git a/packages/web/src/content/docs/es/cli.mdx b/packages/web/src/content/docs/es/cli.mdx index cc5cf6f755..f4c5c889f8 100644 --- a/packages/web/src/content/docs/es/cli.mdx +++ b/packages/web/src/content/docs/es/cli.mdx @@ -471,7 +471,7 @@ Esto inicia un servidor HTTP y abre un navegador web para acceder a OpenCode a t ### acp -Inicie un servidor ACP (Protocolo de cliente de agente). +Inicie un servidor ACP (Agent Client Protocol). ```bash opencode acp @@ -540,12 +540,12 @@ opencode upgrade v0.1.48 El opencode CLI toma las siguientes banderas globales. -| Bandera | Corto | Descripción | -| -------------- | ----- | --------------------------------------------------------------- | -| `--help` | `-h` | Mostrar ayuda | -| `--version` | `-v` | Número de versión de impresión | -| `--print-logs` | | Imprimir registros en stderr | -| `--log-level` | | Nivel de registro (DEPURACIÓN, INFORMACIÓN, ADVERTENCIA, ERROR) | +| Bandera | Corto | Descripción | +| -------------- | ----- | -------------------------------------------- | +| `--help` | `-h` | Mostrar ayuda | +| `--version` | `-v` | Número de versión de impresión | +| `--print-logs` | | Imprimir registros en stderr | +| `--log-level` | | Nivel de registro (DEBUG, INFO, WARN, ERROR) | --- diff --git a/packages/web/src/content/docs/es/index.mdx b/packages/web/src/content/docs/es/index.mdx index 167cc755a1..03821c99fa 100644 --- a/packages/web/src/content/docs/es/index.mdx +++ b/packages/web/src/content/docs/es/index.mdx @@ -22,8 +22,8 @@ Para usar OpenCode en su terminal, necesitará: 1. Un emulador de terminal moderno como: - [WezTerm](https://wezterm.org), multiplataforma - [Alacritty](https://alacritty.org), multiplataforma - - [Fantasmal](https://ghostty.org), Linux y macOS - - [Gatito](https://sw.kovidgoyal.net/kitty/), Linux y macOS + - [Ghostty](https://ghostty.org), Linux y macOS + - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux y macOS 2. API claves para los LLM proveedores que desea utilizar. @@ -79,7 +79,7 @@ También puedes instalarlo con los siguientes comandos: brew install anomalyco/tap/opencode ``` - > Recomendamos utilizar el grifo OpenCode para las versiones más actualizadas. La fórmula oficial `brew install opencode` la mantiene el equipo Homebrew y se actualiza con menos frecuencia. + > Recomendamos utilizar el tap OpenCode para las versiones más actualizadas. La fórmula oficial `brew install opencode` la mantiene el equipo Homebrew y se actualiza con menos frecuencia. - **Usando Paru en Arch Linux** @@ -223,7 +223,7 @@ Puede pedirle a OpenCode que agregue nuevas funciones a su proyecto. Aunque prim 1. **Crea un plan** - OpenCode tiene un _modo Plan_ que desactiva su capacidad para realizar cambios y + OpenCode tiene un _Plan mode_ que desactiva su capacidad para realizar cambios y en su lugar, sugiera _cómo_ implementará la función. Cambie a él usando la tecla **Tab**. Verás un indicador para esto en la esquina inferior derecha. @@ -266,7 +266,7 @@ Puede pedirle a OpenCode que agregue nuevas funciones a su proyecto. Aunque prim 3. **Crea la función** - Una vez que se sienta cómodo con el plan, vuelva al _modo de construcción_ + Una vez que se sienta cómodo con el plan, vuelva al _Build mode_ presionando la tecla **Tab** nuevamente. ```bash frame="none" diff --git a/packages/web/src/content/docs/es/lsp.mdx b/packages/web/src/content/docs/es/lsp.mdx index eb9fda172b..a5007f4c26 100644 --- a/packages/web/src/content/docs/es/lsp.mdx +++ b/packages/web/src/content/docs/es/lsp.mdx @@ -14,35 +14,35 @@ OpenCode viene con varios servidores LSP integrados para idiomas populares: | LSP Servidor | Extensiones | Requisitos | | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ | | astro | .astro | Autoinstalaciones para proyectos Astro | -| fiesta | .sh, .bash, .zsh, .ksh | Autoinstala el servidor en lenguaje bash | -| sonido metálico | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instalaciones automáticas para proyectos C/C++ | -| csostenido | .cs | `.NET SDK` instalado | +| bash | .sh, .bash, .zsh, .ksh | Autoinstala el servidor en lenguaje bash | +| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instalaciones automáticas para proyectos C/C++ | +| csharp | .cs | `.NET SDK` instalado | | clojure-lsp | .clj, .cljs, .cljc, .edn | Comando `clojure-lsp` disponible | -| dardo | .dardo | Comando `dart` disponible | +| dart | .dart | Comando `dart` disponible | | deno | .ts, .tsx, .js, .jsx, .mjs | Comando `deno` disponible (detecta automáticamente deno.json/deno.jsonc) | | elixir-ls | .ex, .exs | Comando `elixir` disponible | | eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` dependencia en proyecto | -| f sostenido | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado | -| brillo | .brillo | Comando `gleam` disponible | -| gopls | .ir | Comando `go` disponible | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado | +| gleam | .gleam | Comando `gleam` disponible | +| gopls | .go | Comando `go` disponible | | hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponible | | jdtls | .java | `Java SDK (version 21+)` instalado | | kotlin-ls | .kt, .kts | Autoinstalaciones para proyectos Kotlin | | lua-ls | .lua | Autoinstalaciones para proyectos Lua | -| nada | .nix | Comando `nixd` disponible | +| nixd | .nix | Comando `nixd` disponible | | ocaml-lsp | .ml, .mli | Comando `ocamllsp` disponible | | oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` dependencia en proyecto | -| php intelefense | .php | Autoinstalaciones para proyectos PHP | +| php intelephense | .php | Autoinstalaciones para proyectos PHP | | prisma | .prisma | Comando `prisma` disponible | -| derechos de autor | .py, .pyi | Dependencia `pyright` instalada | -| rubí-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` y `gem` disponibles | -| óxido | .rs | Comando `rust-analyzer` disponible | -| kit de fuente-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` en macOS) | -| esbelto | .esbelto | Autoinstalaciones para proyectos Svelte | -| terraformar | .tf, .tfvars | Instalaciones automáticas desde versiones GitHub | -| diminuto | .tipo, .tipo | Instalaciones automáticas desde versiones GitHub | -| mecanografiado | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` dependencia en proyecto | -| vista | .vue | Autoinstalaciones para proyectos Vue | +| pyright | .py, .pyi | Dependencia `pyright` instalada | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` y `gem` disponibles | +| rust | .rs | Comando `rust-analyzer` disponible | +| sourcekit-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` en macOS) | +| svelte | .svelte | Autoinstalaciones para proyectos Svelte | +| terraform | .tf, .tfvars | Instalaciones automáticas desde versiones GitHub | +| tinymist | .typ, .typc | Instalaciones automáticas desde versiones GitHub | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` dependencia en proyecto | +| vue | .vue | Autoinstalaciones para proyectos Vue | | yaml-ls | .yaml, .yml | Autoinstala Red Hat yaml-language-server | | zls | .zig, .zon | Comando `zig` disponible | diff --git a/packages/web/src/content/docs/es/tools.mdx b/packages/web/src/content/docs/es/tools.mdx index 0d8871a9db..6a29527ad4 100644 --- a/packages/web/src/content/docs/es/tools.mdx +++ b/packages/web/src/content/docs/es/tools.mdx @@ -45,7 +45,7 @@ Aquí están todas las herramientas integradas disponibles en OpenCode. --- -### fiesta +### bash Ejecute comandos de shell en el entorno de su proyecto. @@ -62,7 +62,7 @@ Esta herramienta permite que LLM ejecute comandos de terminal como `npm install` --- -### editar +### edit Modifique archivos existentes utilizando reemplazos de cadenas exactas. @@ -79,7 +79,7 @@ Esta herramienta realiza ediciones precisas de archivos reemplazando coincidenci --- -### escribir +### write Cree nuevos archivos o sobrescriba los existentes. @@ -100,7 +100,7 @@ La herramienta `write` está controlada por el permiso `edit`, que cubre todas l --- -### leer +### read Lea el contenido del archivo desde su base de código. @@ -151,7 +151,7 @@ Busque archivos usando patrones globales como `**/*.js` o `src/**/*.ts`. Devuelv --- -### lista +### list Enumere archivos y directorios en una ruta determinada. @@ -191,7 +191,7 @@ Para configurar qué servidores LSP están disponibles para su proyecto, consult --- -### parche +### patch Aplicar parches a los archivos. @@ -212,7 +212,7 @@ La herramienta `patch` está controlada por el permiso `edit`, que cubre todas l --- -### habilidad +### skill Cargue una [habilidad](/docs/skills) (un archivo `SKILL.md`) y devuelva su contenido en la conversación. @@ -227,7 +227,7 @@ Cargue una [habilidad](/docs/skills) (un archivo `SKILL.md`) y devuelva su conte --- -### todo escribir +### todowrite Administre listas de tareas pendientes durante las sesiones de codificación. @@ -248,7 +248,7 @@ Esta herramienta está deshabilitada para los subagentes de forma predeterminada --- -### todo leer +### todoread Leer listas de tareas pendientes existentes. @@ -269,7 +269,7 @@ Esta herramienta está deshabilitada para los subagentes de forma predeterminada --- -### búsqueda web +### webfetch Obtener contenido web. @@ -286,7 +286,7 @@ Permite que LLM busque y lea páginas web. Útil para buscar documentación o in --- -### búsqueda web +### websearch Busque información en la web. @@ -320,7 +320,7 @@ Utilice `websearch` cuando necesite encontrar información (descubrimiento) y `w --- -### pregunta +### question Haga preguntas al usuario durante la ejecución. @@ -354,7 +354,7 @@ Las herramientas personalizadas le permiten definir sus propias funciones a las ## MCP servidores -Los servidores MCP (Protocolo de contexto modelo) le permiten integrar herramientas y servicios externos. Esto incluye acceso a bases de datos, integraciones API y servicios de terceros. +Los servidores MCP (Model Context Protocol) le permiten integrar herramientas y servicios externos. Esto incluye acceso a bases de datos, integraciones API y servicios de terceros. [Más información](/docs/mcp-servers) sobre la configuración de servidores MCP. diff --git a/packages/web/src/content/docs/fr/agents.mdx b/packages/web/src/content/docs/fr/agents.mdx index 14e5d5c266..13ab9c3894 100644 --- a/packages/web/src/content/docs/fr/agents.mdx +++ b/packages/web/src/content/docs/fr/agents.mdx @@ -181,7 +181,7 @@ Configurez les agents dans votre fichier de configuration `opencode.json` : Vous pouvez également définir des agents à l'aide de fichiers markdown. Placez-les dans : -- Mondial : `~/.config/opencode/agents/` +- Global : `~/.config/opencode/agents/` - Par projet : `.opencode/agents/` ```markdown title="~/.config/opencode/agents/review.md" diff --git a/packages/web/src/content/docs/fr/cli.mdx b/packages/web/src/content/docs/fr/cli.mdx index 2b15c7f3e4..53ce851cc7 100644 --- a/packages/web/src/content/docs/fr/cli.mdx +++ b/packages/web/src/content/docs/fr/cli.mdx @@ -179,7 +179,7 @@ Cela configure le flux de travail GitHub Actions nécessaire et vous guide tout #### run -Exécutez l'agent GitHub. Ceci est généralement utilisé dans les actions GitHub. +Exécutez l'agent GitHub. Ceci est généralement utilisé dans les GitHub Actions. ```bash opencode github run @@ -536,7 +536,7 @@ opencode upgrade v0.1.48 --- -## Drapeaux mondiaux +## Drapeaux globaux La CLI opencode prend les indicateurs globaux suivants. @@ -553,7 +553,7 @@ La CLI opencode prend les indicateurs globaux suivants. OpenCode peut être configuré à l'aide de variables d'environnement. -| Variables | Tapez | Descriptif | +| Variables | Type | Descriptif | | ------------------------------------- | ------- | --------------------------------------------------------------------------------- | | `OPENCODE_AUTO_SHARE` | booléen | Partager automatiquement des sessions | | `OPENCODE_GIT_BASH_PATH` | chaîne | Chemin vers l'exécutable Git Bash sur Windows | @@ -586,7 +586,7 @@ OpenCode peut être configuré à l'aide de variables d'environnement. Ces variables d'environnement activent des fonctionnalités expérimentales qui peuvent être modifiées ou supprimées. -| Variables | Tapez | Descriptif | +| Variables | Type | Descriptif | | ----------------------------------------------- | ------- | --------------------------------------------------------------- | | `OPENCODE_EXPERIMENTAL` | booléen | Activer toutes les fonctionnalités expérimentales | | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | booléen | Activer la découverte d'icônes | diff --git a/packages/web/src/content/docs/fr/commands.mdx b/packages/web/src/content/docs/fr/commands.mdx index c7c5fc7e8c..cb7e667ad5 100644 --- a/packages/web/src/content/docs/fr/commands.mdx +++ b/packages/web/src/content/docs/fr/commands.mdx @@ -79,7 +79,7 @@ Vous pouvez maintenant exécuter cette commande dans TUI : Vous pouvez également définir des commandes à l'aide de fichiers markdown. Placez-les dans : -- Mondial : `~/.config/opencode/commands/` +- Global : `~/.config/opencode/commands/` - Par projet : `.opencode/commands/` ```markdown title="~/.config/opencode/commands/test.md" diff --git a/packages/web/src/content/docs/fr/github.mdx b/packages/web/src/content/docs/fr/github.mdx index 308b25a3dc..f2541bdcf9 100644 --- a/packages/web/src/content/docs/fr/github.mdx +++ b/packages/web/src/content/docs/fr/github.mdx @@ -3,7 +3,7 @@ title: GitHub description: Utilisez OpenCode dans les problèmes et les pull-requests GitHub. --- -OpenCode s'intègre à votre flux de travail GitHub. Mentionnez `/opencode` ou `/oc` dans votre commentaire, et OpenCode exécutera des tâches dans votre coureur d'actions GitHub. +OpenCode s'intègre à votre flux de travail GitHub. Mentionnez `/opencode` ou `/oc` dans votre commentaire, et OpenCode exécutera des tâches dans votre runner GitHub Actions. --- @@ -11,7 +11,7 @@ OpenCode s'intègre à votre flux de travail GitHub. Mentionnez `/opencode` ou ` - **Problèmes de triage** : demandez à OpenCode d'examiner un problème et de vous l'expliquer. - **Réparer et implémenter** : demandez à OpenCode de résoudre un problème ou d'implémenter une fonctionnalité. Et il fonctionnera dans une nouvelle branche et soumettra un PR avec tous les changements. -- **Sécurisé** : OpenCode court à l'intérieur des coureurs de votre GitHub. +- **Sécurisé** : OpenCode s'exécute à l'intérieur de vos runners GitHub. --- @@ -87,7 +87,7 @@ Dans les **paramètres** de votre organisation ou de votre projet, développez * - `prompt` : invite personnalisée facultative pour remplacer le comportement par défaut. Utilisez-le pour personnaliser la façon dont OpenCode traite les demandes. - `token` : jeton d'accès GitHub facultatif pour effectuer des opérations telles que la création de commentaires, la validation de modifications et l'ouverture de demandes d'extraction. Par défaut, OpenCode utilise le jeton d'accès à l'installation de l'application OpenCode GitHub, de sorte que les validations, les commentaires et les demandes d'extraction apparaissent comme provenant de l'application. -Vous pouvez également utiliser le `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) intégré du GitHub Action Runner sans installer l'application OpenCode GitHub. Assurez-vous simplement d'accorder les autorisations requises dans votre flux de travail : +Vous pouvez également utiliser le `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) intégré du runner GitHub Actions sans installer l'application OpenCode GitHub. Assurez-vous simplement d'accorder les autorisations requises dans votre flux de travail : ```yaml permissions: diff --git a/packages/web/src/content/docs/fr/gitlab.mdx b/packages/web/src/content/docs/fr/gitlab.mdx index f562aadf3f..8fb312501a 100644 --- a/packages/web/src/content/docs/fr/gitlab.mdx +++ b/packages/web/src/content/docs/fr/gitlab.mdx @@ -5,7 +5,7 @@ description: Utilisez OpenCode dans les problèmes GitLab et les demandes de fus OpenCode s'intègre à votre flux de travail GitLab via votre pipeline CI/CD GitLab ou avec GitLab Duo. -Dans les deux cas, OpenCode fonctionnera sur vos coureurs GitLab. +Dans les deux cas, OpenCode fonctionnera sur vos runners GitLab. --- @@ -56,7 +56,7 @@ Mentionnez `@opencode` dans un commentaire et OpenCode exécutera les tâches au - **Problèmes de triage** : demandez à OpenCode d'examiner un problème et de vous l'expliquer. - **Réparer et implémenter** : demandez à OpenCode de résoudre un problème ou d'implémenter une fonctionnalité. Cela créera une nouvelle branche et déclenchera une demande de fusion avec les modifications. -- **Sécurisé** : OpenCode fonctionne sur vos coureurs GitLab. +- **Sécurisé** : OpenCode fonctionne sur vos runners GitLab. --- diff --git a/packages/web/src/content/docs/fr/index.mdx b/packages/web/src/content/docs/fr/index.mdx index 356806c8e2..72c8dbd19a 100644 --- a/packages/web/src/content/docs/fr/index.mdx +++ b/packages/web/src/content/docs/fr/index.mdx @@ -90,7 +90,7 @@ Vous pouvez également l'installer avec les commandes suivantes : #### Windows :::tip[Recommandé : utilisez WSL] -Pour une expérience optimale sur Windows, nous vous recommandons d'utiliser le sous-système [Windows pour Linux (WSL)](/docs/windows-wsl). Il offre de meilleures performances et une compatibilité totale avec les fonctionnalités de OpenCode. +Pour une expérience optimale sur Windows, nous vous recommandons d'utiliser le [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Il offre de meilleures performances et une compatibilité totale avec les fonctionnalités de OpenCode. ::: - **Utiliser Chocolatey** @@ -356,4 +356,4 @@ Voici un [exemple de conversation](https://opencode.ai/s/4XP1fce5) avec OpenCode Et c'est tout ! Vous êtes désormais un pro de l'utilisation de OpenCode. -Pour vous l'approprier, nous vous recommandons de [choisir un thème](/docs/themes), [de personnaliser les raccourcis clavier](/docs/keybinds), de [configurer les formateurs de code](/docs/formatters), de [créer des commandes personnalisées](/docs/commands) ou de jouer avec la [OpenCode config](/docs/config). +Pour vous l'approprier, nous vous recommandons de [choisir un thème](/docs/themes), [de personnaliser les raccourcis clavier](/docs/keybinds), de [configurer les formateurs de code](/docs/formatters), de [créer des commandes personnalisées](/docs/commands) ou de jouer avec la [OpenCode Config](/docs/config). diff --git a/packages/web/src/content/docs/it/acp.mdx b/packages/web/src/content/docs/it/acp.mdx index 23b7e3c0c0..6a43869c03 100644 --- a/packages/web/src/content/docs/it/acp.mdx +++ b/packages/web/src/content/docs/it/acp.mdx @@ -142,15 +142,14 @@ Se devi passare variabili d'ambiente (come `OPENCODE_API_KEY`), vedi [Configurin ## Support -OpenCode funziona via ACP come nel terminal. Tutte le funzionalita sono supportate: - +OpenCode funziona via ACP come nel terminale. Tutte le funzionalita sono supportate: :::note Alcuni comandi slash integrati come `/undo` e `/redo` non sono attualmente supportati. ::: -- Built-in tools (file operations, terminal commands, etc.) -- Custom tools and slash commands -- MCP servers configured in your OpenCode config -- Project-specific rules from `AGENTS.md` -- Custom formatters and linters -- Agents and permissions system +- Strumenti integrati (operazioni sui file, comandi da terminale, ecc.) +- Strumenti personalizzati e comandi slash +- Server MCP configurati nella tua configurazione OpenCode +- Regole specifiche del progetto da `AGENTS.md` +- Formatter e linter personalizzati +- Sistema di agenti e permessi diff --git a/packages/web/src/content/docs/it/cli.mdx b/packages/web/src/content/docs/it/cli.mdx index b34b7773c8..f7d1533270 100644 --- a/packages/web/src/content/docs/it/cli.mdx +++ b/packages/web/src/content/docs/it/cli.mdx @@ -21,7 +21,7 @@ opencode run "Explain how closures work in JavaScript" ### tui -Avvia l'interfaccia testuale di OpenCode (terminal user interface). +Avvia l'interfaccia testuale di OpenCode (interfaccia utente da terminale). ```bash opencode [project] @@ -60,7 +60,7 @@ opencode agent [command] ### attach -Collega un terminal a un backend server di OpenCode gia' in esecuzione avviato tramite i comandi `serve` o `web`. +Collega un terminale a un backend server di OpenCode gia' in esecuzione avviato tramite i comandi `serve` o `web`. ```bash opencode attach [url] @@ -72,7 +72,7 @@ Questo consente di usare la TUI con un backend OpenCode remoto. Per esempio: # Start the backend server for web/mobile access opencode web --port 4096 --hostname 0.0.0.0 -# In another terminal, attach the TUI to the running backend +# In un altro terminale, collega la TUI al backend in esecuzione opencode attach http://10.20.30.40:4096 ``` @@ -326,10 +326,10 @@ opencode run Explain the use of context in Go Puoi anche collegarti a una istanza `opencode serve` gia' in esecuzione per evitare i cold boot dei server MCP ad ogni esecuzione: ```bash -# Start a headless server in one terminal +# Avvia un server headless in un terminale opencode serve -# In another terminal, run commands that attach to it +# In un altro terminale, esegui comandi che si collegano ad esso opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` @@ -562,7 +562,7 @@ OpenCode puo' essere configurato tramite variabili d'ambiente. | `OPENCODE_CONFIG_CONTENT` | string | Contenuto JSON di config inline | | `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Disabilita i controlli automatici di aggiornamento | | `OPENCODE_DISABLE_PRUNE` | boolean | Disabilita la potatura dei dati vecchi | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Disabilita aggiornamenti automatici del titolo terminal | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Disabilita aggiornamenti automatici del titolo terminale | | `OPENCODE_PERMISSION` | string | Config permessi JSON inline | | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Disabilita i plugin di default | | `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Disabilita download automatico dei server LSP | diff --git a/packages/web/src/content/docs/it/config.mdx b/packages/web/src/content/docs/it/config.mdx index bdfbb6401f..45ab64b0ca 100644 --- a/packages/web/src/content/docs/it/config.mdx +++ b/packages/web/src/content/docs/it/config.mdx @@ -169,7 +169,7 @@ Opzioni disponibili: - `scroll_acceleration.enabled` - Abilita l'accelerazione di scorrimento in stile macOS. **Ha precedenza su `scroll_speed`.** - `scroll_speed` - Moltiplicatore personalizzato della velocita di scorrimento (predefinito: `3`, minimo: `1`). Ignorato se `scroll_acceleration.enabled` e `true`. -- `diff_style` - Controlla la resa delle diff. `"auto"` si adatta alla larghezza del terminal, `"stacked"` mostra sempre una singola colonna. +- `diff_style` - Controlla la resa delle diff. `"auto"` si adatta alla larghezza del terminale, `"stacked"` mostra sempre una singola colonna. [Scopri di piu sull'uso della TUI](/docs/tui). diff --git a/packages/web/src/content/docs/it/ecosystem.mdx b/packages/web/src/content/docs/it/ecosystem.mdx index 12aa544954..54fcdb8dbd 100644 --- a/packages/web/src/content/docs/it/ecosystem.mdx +++ b/packages/web/src/content/docs/it/ecosystem.mdx @@ -58,7 +58,7 @@ Puoi anche dare un'occhiata a [awesome-opencode](https://github.com/awesome-open | [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Plugin Neovim per prompt consapevoli dell'editor, costruito sull'API | | [portal](https://github.com/hosenur/portal) | Web UI mobile-first per OpenCode su Tailscale/VPN | | [opencode plugin template](https://github.com/zenobi-us/opencode-plugin-template/) | Template per costruire plugin OpenCode | -| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim per opencode: un agente di coding AI per terminal | +| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim per opencode: un agente di coding AI per terminale | | [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Provider Vercel AI SDK per usare OpenCode tramite @opencode-ai/sdk | | [OpenChamber](https://github.com/btriapitsyn/openchamber) | App Web/Desktop ed estensione VS Code per OpenCode | | [OpenCode-Obsidian](https://github.com/mtymek/opencode-obsidian) | Plugin Obsidian che integra OpenCode nella UI di Obsidian | diff --git a/packages/web/src/content/docs/it/ide.mdx b/packages/web/src/content/docs/it/ide.mdx index abcf3aec1c..37948acc1d 100644 --- a/packages/web/src/content/docs/it/ide.mdx +++ b/packages/web/src/content/docs/it/ide.mdx @@ -3,13 +3,13 @@ title: IDE description: L'estensione OpenCode per VS Code, Cursor e altri IDE --- -OpenCode si integra con VS Code, Cursor o qualunque IDE che supporti un terminal. Basta eseguire `opencode` nel terminal per iniziare. +OpenCode si integra con VS Code, Cursor o qualunque IDE che supporti un terminale. Basta eseguire `opencode` nel terminale per iniziare. --- ## Utilizzo -- **Avvio rapido**: usa `Cmd+Esc` (Mac) o `Ctrl+Esc` (Windows/Linux) per aprire OpenCode in una vista terminal divisa, oppure per mettere a fuoco una sessione esistente se e gia in esecuzione. +- **Avvio rapido**: usa `Cmd+Esc` (Mac) o `Ctrl+Esc` (Windows/Linux) per aprire OpenCode in una vista terminale divisa, oppure per mettere a fuoco una sessione esistente se e gia in esecuzione. - **Nuova sessione**: usa `Cmd+Shift+Esc` (Mac) o `Ctrl+Shift+Esc` (Windows/Linux) per avviare una nuova sessione di OpenCode, anche se ne esiste gia una aperta. Puoi anche cliccare il pulsante OpenCode nell'interfaccia. - **Consapevolezza del contesto**: condividi automaticamente con OpenCode la selezione corrente o la scheda attiva. - **Scorciatoie per riferimenti file**: usa `Cmd+Option+K` (Mac) o `Alt+Ctrl+K` (Linux/Windows) per inserire riferimenti a file. Per esempio, `@File#L37-42`. @@ -21,7 +21,7 @@ OpenCode si integra con VS Code, Cursor o qualunque IDE che supporti un terminal Per installare OpenCode su VS Code e fork popolari come Cursor, Windsurf, VSCodium: 1. Apri VS Code -2. Apri il terminal integrato +2. Apri il terminale integrato 3. Esegui `opencode` - l'estensione si installa automaticamente Se invece vuoi usare il tuo IDE quando esegui `/editor` o `/export` dalla TUI, devi impostare `export EDITOR="code --wait"`. [Scopri di piu](/docs/tui/#editor-setup). @@ -38,7 +38,7 @@ Cerca **OpenCode** nel Marketplace delle estensioni e clicca **Install**. Se l'estensione non si installa automaticamente: -- Assicurati di eseguire `opencode` nel terminal integrato. +- Assicurati di eseguire `opencode` nel terminale integrato. - Verifica che la CLI del tuo IDE sia installata: - Per VS Code: comando `code` - Per Cursor: comando `cursor` diff --git a/packages/web/src/content/docs/it/index.mdx b/packages/web/src/content/docs/it/index.mdx index 2200d0411f..442f27b97f 100644 --- a/packages/web/src/content/docs/it/index.mdx +++ b/packages/web/src/content/docs/it/index.mdx @@ -7,7 +7,7 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**OpenCode**](/) e un agente di programmazione AI open source. E disponibile come interfaccia per terminal, app desktop o estensione per IDE. +[**OpenCode**](/) e un agente di programmazione AI open source. E disponibile come interfaccia per terminale, app desktop o estensione per IDE. ![OpenCode TUI con il tema opencode](../../../assets/lander/screenshot.png) @@ -17,9 +17,9 @@ Iniziamo. #### Prerequisiti -Per usare OpenCode nel terminal, ti serve: +Per usare OpenCode nel terminale, ti serve: -1. Un emulatore di terminal moderno, come: +1. Un emulatore di terminale moderno, come: - [WezTerm](https://wezterm.org), cross-platform - [Alacritty](https://alacritty.org), cross-platform - [Ghostty](https://ghostty.org), Linux and macOS @@ -249,10 +249,10 @@ Puoi chiedere a OpenCode di aggiungere nuove funzionalita al progetto. Pero ti c ``` :::tip - Trascina e rilascia le immagini nel terminal per aggiungerle al prompt. + Trascina e rilascia le immagini nel terminale per aggiungerle al prompt. ::: - OpenCode puo analizzare le immagini che gli dai e aggiungerle al prompt. Puoi farlo trascinando e rilasciando un'immagine nel terminal. + OpenCode puo analizzare le immagini che gli dai e aggiungerle al prompt. Puoi farlo trascinando e rilasciando un'immagine nel terminale. 3. **Implementa la funzionalita** diff --git a/packages/web/src/content/docs/it/keybinds.mdx b/packages/web/src/content/docs/it/keybinds.mdx index 21b611de8d..eb08c2c286 100644 --- a/packages/web/src/content/docs/it/keybinds.mdx +++ b/packages/web/src/content/docs/it/keybinds.mdx @@ -107,7 +107,7 @@ OpenCode ha una lista di scorciatoie che puoi personalizzare tramite la configur ## Tasto leader -OpenCode usa un tasto `leader` per la maggior parte delle scorciatoie. Questo evita conflitti nel terminal. +OpenCode usa un tasto `leader` per la maggior parte delle scorciatoie. Questo evita conflitti nel terminale. Per impostazione predefinita, `ctrl+x` e il tasto leader e la maggior parte delle azioni richiede di premere prima il leader e poi la scorciatoia. Per esempio, per avviare una nuova sessione premi `ctrl+x` e poi `n`. @@ -154,7 +154,7 @@ Il campo di input del prompt nell'app desktop di OpenCode supporta scorciatoie c ## Shift+Enter -Alcuni terminal non inviano di default i tasti modificatori insieme a Invio. Potrebbe essere necessario configurare il terminal per inviare `Shift+Enter` come sequenza di escape. +Alcuni terminali non inviano di default i tasti modificatori insieme a Invio. Potrebbe essere necessario configurare il terminale per inviare `Shift+Enter` come sequenza di escape. ### Windows Terminal diff --git a/packages/web/src/content/docs/it/plugins.mdx b/packages/web/src/content/docs/it/plugins.mdx index 7661eaccd5..ea73f40ffd 100644 --- a/packages/web/src/content/docs/it/plugins.mdx +++ b/packages/web/src/content/docs/it/plugins.mdx @@ -259,7 +259,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree }) ### Inietta variabili d'ambiente -Inietta variabili d'ambiente in tutte le esecuzioni di shell (strumenti AI e terminal utente): +Inietta variabili d'ambiente in tutte le esecuzioni di shell (strumenti AI e terminale utente): ```javascript title=".opencode/plugins/inject-env.js" export const InjectEnvPlugin = async () => { diff --git a/packages/web/src/content/docs/it/providers.mdx b/packages/web/src/content/docs/it/providers.mdx index 7dddc36f9c..fc9705c546 100644 --- a/packages/web/src/content/docs/it/providers.mdx +++ b/packages/web/src/content/docs/it/providers.mdx @@ -284,9 +284,9 @@ L'uso dell'abbonamento Claude Pro/Max in OpenCode non è ufficialmente supportat ##### Usare chiavi API -Puoi anche selezionare **Create an API Key** se non hai un abbonamento Pro/Max. Aprirà il browser, ti chiederà di accedere ad Anthropic e ti darà un codice da incollare nel terminal. +Puoi anche selezionare **Create an API Key** se non hai un abbonamento Pro/Max. Aprirà il browser, ti chiederà di accedere ad Anthropic e ti darà un codice da incollare nel terminale. -Oppure se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminal. +Oppure se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminale. --- @@ -664,7 +664,7 @@ GitLab Duo fornisce una chat agentic basata su AI con capacità di chiamata stru 2. Clicca **Add new token** 3. Nome: `OpenCode`, Scopes: `api` 4. Copia il token (inizia con `glpat-`) - 5. Inseriscilo nel terminal + 5. Inseriscilo nel terminale 3. Esegui il comando `/models` per vedere i modelli disponibili. @@ -1325,7 +1325,7 @@ Consigliamo di iscriversi a [ChatGPT Plus o Pro](https://chatgpt.com/pricing). ##### Usare chiavi API -Se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminal. +Se hai già una chiave API, puoi selezionare **Manually enter API Key** e incollarla nel terminale. --- diff --git a/packages/web/src/content/docs/it/themes.mdx b/packages/web/src/content/docs/it/themes.mdx index 26555227cc..6752470e0f 100644 --- a/packages/web/src/content/docs/it/themes.mdx +++ b/packages/web/src/content/docs/it/themes.mdx @@ -3,19 +3,19 @@ title: Temi description: Seleziona un tema integrato o definiscine uno tuo. --- -Con OpenCode puoi scegliere tra diversi temi integrati, usare un tema che si adatta al tema del tuo terminal oppure definire un tema personalizzato. +Con OpenCode puoi scegliere tra diversi temi integrati, usare un tema che si adatta al tema del tuo terminale oppure definire un tema personalizzato. Per impostazione predefinita, OpenCode usa il tema `opencode`. --- -## Requisiti del terminal +## Requisiti del terminale -Per visualizzare correttamente i temi con l'intera palette, il terminal deve supportare **truecolor** (colore a 24 bit). La maggior parte dei terminal moderni lo supporta di default, ma potrebbe essere necessario abilitarlo: +Per visualizzare correttamente i temi con l'intera palette, il terminale deve supportare **truecolor** (colore a 24 bit). La maggior parte dei terminali moderni lo supporta di default, ma potrebbe essere necessario abilitarlo: - **Verifica supporto**: esegui `echo $COLORTERM` - dovrebbe stampare `truecolor` o `24bit` - **Abilita truecolor**: imposta la variabile d'ambiente `COLORTERM=truecolor` nel profilo della shell -- **Compatibilita del terminal**: assicurati che l'emulatore supporti il colore a 24 bit (la maggior parte dei terminal moderni come iTerm2, Alacritty, Kitty, Windows Terminal e le versioni recenti di GNOME Terminal) +- **Compatibilità del terminale**: assicurati che l'emulatore supporti il colore a 24 bit (la maggior parte dei terminali moderni come iTerm2, Alacritty, Kitty, Windows Terminal e le versioni recenti di GNOME Terminal) Senza truecolor, i temi potrebbero apparire con colori meno accurati oppure fare fallback alla migliore approssimazione a 256 colori. @@ -27,7 +27,7 @@ OpenCode include diversi temi integrati. | Nome | Descrizione | | ---------------------- | ------------------------------------------------------------------------- | -| `system` | Si adatta al colore di sfondo del terminal | +| `system` | Si adatta al colore di sfondo del terminale | | `tokyonight` | Basato sul tema [Tokyonight](https://github.com/folke/tokyonight.nvim) | | `everforest` | Basato sul tema [Everforest](https://github.com/sainnhe/everforest) | | `ayu` | Basato sul tema scuro [Ayu](https://github.com/ayu-theme) | @@ -45,17 +45,17 @@ E altri ancora: aggiungiamo costantemente nuovi temi. ## Tema di sistema -Il tema `system` e progettato per adattarsi automaticamente allo schema colori del tuo terminal. A differenza dei temi tradizionali con colori fissi, il tema _system_: +Il tema `system` e progettato per adattarsi automaticamente allo schema colori del tuo terminale. A differenza dei temi tradizionali con colori fissi, il tema _system_: -- **Genera una scala di grigi**: crea una scala di grigi personalizzata in base al colore di sfondo del terminal, garantendo un contrasto ottimale. -- **Usa colori ANSI**: sfrutta i colori ANSI standard (0-15) per evidenziazione della sintassi ed elementi UI, rispettando la palette del terminal. -- **Preserva i default del terminal**: usa `none` per testo e sfondo per mantenere l'aspetto nativo del terminal. +- **Genera una scala di grigi**: crea una scala di grigi personalizzata in base al colore di sfondo del terminale, garantendo un contrasto ottimale. +- **Usa colori ANSI**: sfrutta i colori ANSI standard (0-15) per evidenziazione della sintassi ed elementi UI, rispettando la palette del terminale. +- **Preserva i default del terminale**: usa `none` per testo e sfondo per mantenere l'aspetto nativo del terminale. Il tema di sistema e pensato per chi: -- Vuole che OpenCode corrisponda all'aspetto del terminal -- Usa schemi colori personalizzati del terminal -- Preferisce un aspetto coerente tra tutte le applicazioni da terminal +- Vuole che OpenCode corrisponda all'aspetto del terminale +- Usa schemi colori personalizzati del terminale +- Preferisce un aspetto coerente tra tutte le applicazioni da terminale --- @@ -119,7 +119,7 @@ I temi usano un formato JSON flessibile che supporta: - **Colori ANSI**: `3` (0-255) - **Riferimenti colore**: `"primary"` o definizioni personalizzate - **Varianti scuro/chiaro**: `{"dark": "#000", "light": "#fff"}` -- **Nessun colore**: `"none"` - usa il colore predefinito del terminal o trasparente +- **Nessun colore**: `"none"` - usa il colore predefinito del terminale o trasparente --- @@ -129,12 +129,12 @@ La sezione `defs` e opzionale e ti permette di definire colori riutilizzabili ch --- -### Valori predefiniti del terminal +### Valori predefiniti del terminale -Il valore speciale `"none"` puo essere usato per qualunque colore per ereditare il colore predefinito del terminal. E particolarmente utile per creare temi che si fondono con lo schema colori del terminal: +Il valore speciale `"none"` puo essere usato per qualunque colore per ereditare il colore predefinito del terminale. E particolarmente utile per creare temi che si fondono con lo schema colori del terminale: -- `"text": "none"` - usa il colore del testo predefinito del terminal -- `"background": "none"` - usa il colore di sfondo predefinito del terminal +- `"text": "none"` - usa il colore del testo predefinito del terminale +- `"background": "none"` - usa il colore di sfondo predefinito del terminale --- diff --git a/packages/web/src/content/docs/it/tools.mdx b/packages/web/src/content/docs/it/tools.mdx index 6a3b10bbe8..67a0640c72 100644 --- a/packages/web/src/content/docs/it/tools.mdx +++ b/packages/web/src/content/docs/it/tools.mdx @@ -58,7 +58,7 @@ Esegui comandi di shell nel tuo ambiente di progetto. } ``` -Questo strumento permette all'LLM di eseguire comandi da terminal come `npm install`, `git status` o qualunque altro comando di shell. +Questo strumento permette all'LLM di eseguire comandi da terminale come `npm install`, `git status` o qualunque altro comando di shell. --- diff --git a/packages/web/src/content/docs/it/troubleshooting.mdx b/packages/web/src/content/docs/it/troubleshooting.mdx index db3052874d..5140571507 100644 --- a/packages/web/src/content/docs/it/troubleshooting.mdx +++ b/packages/web/src/content/docs/it/troubleshooting.mdx @@ -138,7 +138,7 @@ Su Windows, OpenCode Desktop richiede **WebView2 Runtime** di Microsoft Edge. Se ### Windows: problemi generali di prestazioni -Se riscontri prestazioni lente, problemi di accesso ai file o problemi del terminal su Windows, prova a usare [WSL (Windows Subsystem for Linux)](/docs/windows-wsl). WSL fornisce un ambiente Linux che funziona in modo piu fluido con le funzionalita di OpenCode. +Se riscontri prestazioni lente, problemi di accesso ai file o problemi del terminale su Windows, prova a usare [WSL (Windows Subsystem for Linux)](/docs/windows-wsl). WSL fornisce un ambiente Linux che funziona in modo piu fluido con le funzionalita di OpenCode. --- @@ -198,7 +198,7 @@ Ecco alcuni problemi comuni e come risolverli. ### OpenCode non si avvia 1. Controlla i log per eventuali messaggi di errore -2. Prova a eseguire con `--print-logs` per vedere l'output nel terminal +2. Prova a eseguire con `--print-logs` per vedere l'output nel terminale 3. Assicurati di avere l'ultima versione con `opencode upgrade` --- diff --git a/packages/web/src/content/docs/it/tui.mdx b/packages/web/src/content/docs/it/tui.mdx index ad06014b29..f24612f46d 100644 --- a/packages/web/src/content/docs/it/tui.mdx +++ b/packages/web/src/content/docs/it/tui.mdx @@ -1,11 +1,11 @@ --- title: TUI -description: Usa l'interfaccia utente da terminal (TUI) di OpenCode. +description: Usa l'interfaccia utente da terminale (TUI) di OpenCode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" -OpenCode fornisce un'interfaccia interattiva da terminal (TUI) per lavorare sui tuoi progetti con un LLM. +OpenCode fornisce un'interfaccia interattiva da terminale (TUI) per lavorare sui tuoi progetti con un LLM. Eseguire OpenCode avvia la TUI per la directory corrente. diff --git a/packages/web/src/content/docs/it/web.mdx b/packages/web/src/content/docs/it/web.mdx index 15f57f414a..2ec48e8e93 100644 --- a/packages/web/src/content/docs/it/web.mdx +++ b/packages/web/src/content/docs/it/web.mdx @@ -3,7 +3,7 @@ title: Web description: Usa OpenCode nel browser. --- -OpenCode puo funzionare come applicazione web nel browser, offrendo la stessa potente esperienza di coding AI senza bisogno di un terminal. +OpenCode puo funzionare come applicazione web nel browser, offrendo la stessa potente esperienza di coding AI senza bisogno di un terminale. ![OpenCode Web - Nuova sessione](../../../assets/web/web-homepage-new-session.png) @@ -22,7 +22,7 @@ Se `OPENCODE_SERVER_PASSWORD` non e impostata, il server non sara protetto. Va b ::: :::tip[Utenti Windows] -Per la migliore esperienza, esegui `opencode web` da [WSL](/docs/windows-wsl) invece che da PowerShell. Questo garantisce accesso corretto al file system e integrazione col terminal. +Per la migliore esperienza, esegui `opencode web` da [WSL](/docs/windows-wsl) invece che da PowerShell. Questo garantisce accesso corretto al file system e integrazione col terminale. ::: --- @@ -108,19 +108,19 @@ Fai clic su "See Servers" per vedere i server connessi e il loro stato. --- -## Collegare un terminal +## Collegare un terminale -Puoi collegare una TUI da terminal a un server web gia in esecuzione: +Puoi collegare una TUI da terminale a un server web gia in esecuzione: ```bash -# Start the web server +# Avvia il web server opencode web --port 4096 -# In another terminal, attach the TUI +# In un altro terminale, collega la TUI opencode attach http://localhost:4096 ``` -Questo ti permette di usare contemporaneamente interfaccia web e terminal, condividendo le stesse sessioni e lo stesso stato. +Questo ti permette di usare contemporaneamente interfaccia web e terminale, condividendo le stesse sessioni e lo stesso stato. --- diff --git a/packages/web/src/content/docs/it/windows-wsl.mdx b/packages/web/src/content/docs/it/windows-wsl.mdx index ce9e123c6f..a1a7aa4efc 100644 --- a/packages/web/src/content/docs/it/windows-wsl.mdx +++ b/packages/web/src/content/docs/it/windows-wsl.mdx @@ -8,7 +8,7 @@ import { Steps } from "@astrojs/starlight/components" Anche se OpenCode puo essere eseguito direttamente su Windows, consigliamo di usare [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) per la migliore esperienza. WSL fornisce un ambiente Linux che funziona in modo ottimale con le funzionalita di OpenCode. :::tip[Perche WSL?] -WSL offre prestazioni migliori del file system, supporto completo del terminal e compatibilita con gli strumenti di sviluppo su cui OpenCode fa affidamento. +WSL offre prestazioni migliori del file system, supporto completo del terminale e compatibilita con gli strumenti di sviluppo su cui OpenCode fa affidamento. ::: --- @@ -23,7 +23,7 @@ WSL offre prestazioni migliori del file system, supporto completo del terminal e 2. **Installa OpenCode in WSL** - Dopo aver configurato WSL, apri il terminal WSL e installa OpenCode usando uno dei [metodi di installazione](/docs/). + Dopo aver configurato WSL, apri il terminale WSL e installa OpenCode usando uno dei [metodi di installazione](/docs/). ```bash curl -fsSL https://opencode.ai/install | bash @@ -73,7 +73,7 @@ OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 Per la migliore esperienza web su Windows: -1. **Esegui `opencode web` nel terminal WSL** invece che in PowerShell: +1. **Esegui `opencode web` nel terminale WSL** invece che in PowerShell: ```bash opencode web --hostname 0.0.0.0 @@ -81,7 +81,7 @@ Per la migliore esperienza web su Windows: 2. **Accedi dal browser Windows** su `http://localhost:` (OpenCode stampa l'URL) -Eseguire `opencode web` da WSL garantisce accesso corretto al file system e integrazione del terminal, restando comunque accessibile dal browser Windows. +Eseguire `opencode web` da WSL garantisce accesso corretto al file system e integrazione del terminale, restando comunque accessibile dal browser Windows. --- diff --git a/packages/web/src/content/docs/ja/cli.mdx b/packages/web/src/content/docs/ja/cli.mdx index 6eb913f0e5..837452d615 100644 --- a/packages/web/src/content/docs/ja/cli.mdx +++ b/packages/web/src/content/docs/ja/cli.mdx @@ -592,7 +592,7 @@ OpenCode は環境変数を使用して構成できます。 | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | ブール値 | アイコン検出を有効にする | | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | ブール値 | TUI で選択時のコピーを無効にする | | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 番号 | bash コマンドのデフォルトのタイムアウト (ミリ秒) | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 番号 | LLM 応答の最大出力トークン | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 番号 | LLM 応答の最大Output Tokens | | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | ブール値 | ディレクトリ全体のファイル監視を有効にする | | `OPENCODE_EXPERIMENTAL_OXFMT` | ブール値 | oxfmt フォーマッタを有効にする | | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | ブール値 | 実験的な LSP ツールを有効にする | diff --git a/packages/web/src/content/docs/ja/providers.mdx b/packages/web/src/content/docs/ja/providers.mdx index 7ffe4605d5..b54a8bf6d3 100644 --- a/packages/web/src/content/docs/ja/providers.mdx +++ b/packages/web/src/content/docs/ja/providers.mdx @@ -1875,7 +1875,7 @@ OpenAI と互換性のある任意のプロバイダーをopencodeで使用で - **apiKey**: `env` 変数構文を使用して設定します。[詳細については ](/docs/config#env-vars). - **headers**: 各リクエストとともに送信されるカスタム ヘッダー。 -- **limit.context**: モデルが受け入れる最大入力トークン。 +- **limit.context**: モデルが受け入れる最大Input Tokens。 - **limit.output**: モデルが生成できる最大トークン。 `limit` フィールドを使用すると、OpenCode はコンテキストがどのくらい残っているかを理解できます。標準プロバイダーは、これらを models.dev から自動的に取得します。 diff --git a/packages/web/src/content/docs/ko/cli.mdx b/packages/web/src/content/docs/ko/cli.mdx index 58523ac94a..1b857cbef3 100644 --- a/packages/web/src/content/docs/ko/cli.mdx +++ b/packages/web/src/content/docs/ko/cli.mdx @@ -585,18 +585,18 @@ opencode는 환경 변수를 사용하여 구성할 수 있습니다. 이 환경변수는 변화하거나 제거될 수 있는 실험적인 특징을 가능하게 합니다. -| 변하기 쉬운 | 유형 | 묘사 | -| ----------------------------------------------- | ------- | ------------------------------ | -| `OPENCODE_EXPERIMENTAL` | 불린 | 모든 실험적인 특징 | -| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 아이콘 검색 | -| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 불린 | TUI의 선택 해제 | -| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 번호 | ms에서 bash 명령의 기본 시간 | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 번호 | LLM 응답을 위한 최대 출력 토큰 | -| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 전체 디디터용 파일워커 | -| `OPENCODE_EXPERIMENTAL_OXFMT` | 불린 | 엔블 oxfmt 형식 | -| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 불린 | 실험적인 LSP 도구 | -| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 사용 가능한 파일워커 | -| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 실험용 Exa 기능 | -| `OPENCODE_EXPERIMENTAL_LSP_TY` | 불린 | 실험적인 LSP형 검사 | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 실험용 마운팅 기능 | -| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 불린 | 플랜 모드 | +| 변하기 쉬운 | 유형 | 묘사 | +| ----------------------------------------------- | ------- | ---------------------------------- | +| `OPENCODE_EXPERIMENTAL` | 불린 | 모든 실험적인 특징 | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 아이콘 검색 | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 불린 | TUI의 선택 해제 | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 번호 | ms에서 bash 명령의 기본 시간 | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 번호 | LLM 응답을 위한 최대 Output Tokens | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 전체 디디터용 파일워커 | +| `OPENCODE_EXPERIMENTAL_OXFMT` | 불린 | 엔블 oxfmt 형식 | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 불린 | 실험적인 LSP 도구 | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 사용 가능한 파일워커 | +| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 실험용 Exa 기능 | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | 불린 | 실험적인 LSP형 검사 | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 실험용 마운팅 기능 | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 불린 | 플랜 모드 | diff --git a/packages/web/src/content/docs/ko/enterprise.mdx b/packages/web/src/content/docs/ko/enterprise.mdx index 6da0ae6d49..806da8eb13 100644 --- a/packages/web/src/content/docs/ko/enterprise.mdx +++ b/packages/web/src/content/docs/ko/enterprise.mdx @@ -141,7 +141,7 @@ opencode Enterprise는 코드와 데이터가 인프라를 결코 나타낸다

-Can we use our own private NPM registry? +Can we use our own private npm registry? opencode는 Bun's native `.npmrc` 파일 지원을 통해 개인 npm 등록을 지원합니다. 조직이 JFrog Artifactory, Nexus 또는 이와 같은 개인 레지스트리를 사용한다면, 개발자가 opencode를 실행하기 전에 인증됩니다. diff --git a/packages/web/src/content/docs/ko/index.mdx b/packages/web/src/content/docs/ko/index.mdx index 4e9e484a10..6f89bef0f3 100644 --- a/packages/web/src/content/docs/ko/index.mdx +++ b/packages/web/src/content/docs/ko/index.mdx @@ -82,7 +82,7 @@ curl -fsSL https://opencode.ai/install | bash > 최신 릴리스를 위해 OpenCode 탭을 사용하는 것이 좋습니다. 공식 `brew install opencode` 공식은 Homebrew 팀에 의해 유지되고 더 자주 업데이트됩니다. -- **Ar Linux에서 Paru를 사용 ** +- **Arch Linux에서 Paru를 사용 ** ```bash paru -S opencode-bin @@ -106,7 +106,7 @@ Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/do scoop install opencode ``` -- ** NPM ** +- ** npm ** ```bash npm install -g opencode-ai diff --git a/packages/web/src/content/docs/ko/providers.mdx b/packages/web/src/content/docs/ko/providers.mdx index 222a54fc78..e02928fdd0 100644 --- a/packages/web/src/content/docs/ko/providers.mdx +++ b/packages/web/src/content/docs/ko/providers.mdx @@ -1872,8 +1872,8 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. 구성 세부 사항: - **apiKey**: `env` 변수 구문을 사용하여 설정, [learn more](/docs/config#env-vars). -**headers**: 각 요청으로 전송된 사용자 정의 헤더. -- **limit.context**: 최대 입력 토큰 모델은 받아들입니다. -- **limit.output**: 최대 토큰은 모델을 생성할 수 있습니다. +- **limit.context**: 모델이 허용하는 최대 Input Tokens. +- **limit.output**: 모델이 생성할 수 있는 최대 Output Tokens. `limit` 필드를 사용하면 opencode가 얼마나 많은 컨텍스트를 이해 할 수 있습니다. 표준 공급자는 model.dev에서 자동적으로 당깁니다. diff --git a/packages/web/src/content/docs/nb/agents.mdx b/packages/web/src/content/docs/nb/agents.mdx index c794a401d5..eb6d61d8cf 100644 --- a/packages/web/src/content/docs/nb/agents.mdx +++ b/packages/web/src/content/docs/nb/agents.mdx @@ -49,7 +49,7 @@ OpenCode kommer med to innebygde primære agenter og to innebygde subagenter. _Modus_: `primary` -Bygg er **standard** primæragent med alle verktøy aktivert. Dette er standardagenten for utviklingsarbeid der du trenger full tilgang til filoperasjoner og systemkommandoer. +Build er **standard** primæragent med alle verktøy aktivert. Dette er standardagenten for utviklingsarbeid der du trenger full tilgang til filoperasjoner og systemkommandoer. --- diff --git a/packages/web/src/content/docs/nb/cli.mdx b/packages/web/src/content/docs/nb/cli.mdx index eb106ff5e3..f86dd03928 100644 --- a/packages/web/src/content/docs/nb/cli.mdx +++ b/packages/web/src/content/docs/nb/cli.mdx @@ -592,7 +592,7 @@ Disse miljøvariablene muliggjør eksperimentelle funksjoner som kan endres elle | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolsk | Aktiver ikonoppdagelse | | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolsk | Deaktiver kopi ved valg i TUI | | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | nummer | Standard tidsavbrudd for bash-kommandoer i ms | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | nummer | Maks utgangstokener for LLM-svar | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | nummer | Maks Output Tokens for LLM-svar | | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolsk | Aktiver filovervåker for hele dir | | `OPENCODE_EXPERIMENTAL_OXFMT` | boolsk | Aktiver oxfmt formatter | | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolsk | Aktiver eksperimentelt LSP-verktøy | diff --git a/packages/web/src/content/docs/nb/index.mdx b/packages/web/src/content/docs/nb/index.mdx index e07e57ded5..85b4a4e6ee 100644 --- a/packages/web/src/content/docs/nb/index.mdx +++ b/packages/web/src/content/docs/nb/index.mdx @@ -105,7 +105,7 @@ For den beste opplevelsen på Windows anbefaler vi å bruke [Windows Subsystem f scoop install opencode ``` -- **Bruke NPM** +- **Bruke npm** ```bash npm install -g opencode-ai diff --git a/packages/web/src/content/docs/nb/models.mdx b/packages/web/src/content/docs/nb/models.mdx index 7a9138d0da..fe48ce370d 100644 --- a/packages/web/src/content/docs/nb/models.mdx +++ b/packages/web/src/content/docs/nb/models.mdx @@ -145,7 +145,7 @@ OpenCode leveres med standardvarianter for mange leverandører: **Anthropic**: -- `high` - High thinking budget (standard) +- `high` - Høyt tenkebudsjett (standard) - `max` - Maksimalt tenkebudsjett **OpenAI**: diff --git a/packages/web/src/content/docs/nb/providers.mdx b/packages/web/src/content/docs/nb/providers.mdx index 5fdf263d3f..dc010fe423 100644 --- a/packages/web/src/content/docs/nb/providers.mdx +++ b/packages/web/src/content/docs/nb/providers.mdx @@ -1867,7 +1867,7 @@ Konfigurasjonsdetaljer: - **apiKey**: Angi med `env` variabel syntaks, [finn ut mer](/docs/config#env-vars). - **overskrifter**: Egendefinerte overskrifter sendt med hver forespørsel. -- **limit.context**: Maksimalt inndatatoken som modellen godtar. +- **limit.context**: Maksimalt Input Tokens som modellen godtar. - **limit.output**: Maksimalt antall tokens modellen kan generere. `limit`-feltene lar OpenCode forstå hvor mye kontekst du har igjen. Standardleverandører henter disse automatisk fra models.dev. diff --git a/packages/web/src/content/docs/nb/tui.mdx b/packages/web/src/content/docs/nb/tui.mdx index d514bf2016..76134b4e81 100644 --- a/packages/web/src/content/docs/nb/tui.mdx +++ b/packages/web/src/content/docs/nb/tui.mdx @@ -338,12 +338,12 @@ Populære redigeringsalternativer inkluderer: - `code` - Visual Studio Code - `cursor` - Cursor -- `windsurf` - Vindsurfing +- `windsurf` - Windsurf - `nvim` - Neovim-redaktør - `vim` - Vim editor - `nano` - Nano-editor - `notepad` - Windows Notisblokk -- `subl` - Sublim tekst +- `subl` - Sublime Text :::note Noen redaktører som VS Code må startes med flagget `--wait`. diff --git a/packages/web/src/content/docs/pl/agents.mdx b/packages/web/src/content/docs/pl/agents.mdx index e7df9b3937..4d04da7b38 100644 --- a/packages/web/src/content/docs/pl/agents.mdx +++ b/packages/web/src/content/docs/pl/agents.mdx @@ -1,12 +1,12 @@ --- -title: Agencja +title: Agenci description: Konfiguruj i używaj funkcjonalnych agentów. --- -Agencje do urządzeń asystenci AI, które można podłączyć do gniazd zasilania i przepływów pracy. Umożliwiają tworzenie ukierunkowanych narzędzi z niestandardowymi monitami, modelami i udostępnianiem narzędzi. +Agenci to asystenci AI, które można podłączyć do gniazd zasilania i przepływów pracy. Umożliwiają tworzenie ukierunkowanych narzędzi z niestandardowymi monitami, modelami i udostępnianiem narzędzi. :::tip -Skorzystaj z agenta planu, aby uzyskać dostęp do kodu i przeglądać informacje bez dodatkowych zmian w kodzie. +Skorzystaj z agenta Plan, aby uzyskać dostęp do kodu i przeglądać informacje bez dodatkowych zmian w kodzie. ::: Możesz przełączać się między agentami podczas sesji lub wywoływać ich za pomocą wzmianki `@`. @@ -15,13 +15,13 @@ Możesz przełączać się między agentami podczas sesji lub wywoływać ich za ## Typowe -W opencode zasada dwóch charakterystycznych agentów; Najpierw pierwotni i subagenci. +W opencode zasada dwóch charakterystycznych agentów; Najpierw Primary i Subagents. --- -### Agencja Pierwsi +### Primary Agents -Główne zasady asystenci, z podstawowym kontaktem. Możesz je mieć za pomocą klawisza **Tab** lub podwójnego skrótu klawiszowego `switch_agent`. Ci agenci obsługujący urządzenie główne. Dostęp do narzędzia jest konfigurowany za pomocą uprawnień — na przykład w programie Build wszystkie narzędzia są dostępne, a plan jest ograniczony. +Główne zasady asystenci, z podstawowym kontaktem. Możesz je mieć za pomocą klawisza **Tab** lub podwójnego skrótu klawiszowego `switch_agent`. Ci agenci obsługujący urządzenie główne. Dostęp do narzędzia jest konfigurowany za pomocą uprawnień — na przykład w programie Build wszystkie narzędzia są dostępne, a Plan jest ograniczony. :::tip Twój klawisz klawisza **Tab**, aby wyłączyć się między agentami podczas sesji. @@ -32,9 +32,9 @@ spójrz na te poniżej. --- -### Podagencje +### Subagents -Podagenci do pomocniczych asystenci, których można przywoływać agenci główni w celu wykonania podstawowych zadań. Możesz także wytwarzać je, **@ wspominając** o nich w swoich wiadomościach. +Subagenci to pomocniczy asystenci, których można przywoływać agenci główni w celu wykonania podstawowych zadań. Możesz także wytwarzać je, **@ wspominając** o nich w swoich wiadomościach. opencode ma dwóch subagentów: **General** i **Explore**. Przyjrzymy się temu poniżej. @@ -600,7 +600,7 @@ Zawsze można rozwiązać rozwiązanie, bezpośrednio poprzez menu autouzupełni Dostosuj wygląd agenta w interfejsie użytkownika za pomocą opcji `color`. Wpływ na wygląd agenta w interfejsie. -Narodziny kościoła szesnastkowego (np. `#FF5733`) lub koloru motywu: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. +Użyj koloru hex (np. `#FF5733`) lub koloru motywu: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. ```json title="opencode.json" { @@ -617,7 +617,7 @@ Narodziny kościoła szesnastkowego (np. `#FF5733`) lub koloru motywu: `primary` --- -### Góra P +### Top P Kontroluj różnorodność odpowiedzi za pomocą opcji `top_p`. Alternatywa dla temperatury w celu kontrolowanej braku wartości. diff --git a/packages/web/src/content/docs/pl/lsp.mdx b/packages/web/src/content/docs/pl/lsp.mdx index acdeea29d0..b1fffc90b5 100644 --- a/packages/web/src/content/docs/pl/lsp.mdx +++ b/packages/web/src/content/docs/pl/lsp.mdx @@ -15,36 +15,36 @@ opencode posiada kilka wbudowanych serwerów LSP dla języków: | ------------------ | ------------------------------------------------------------------- | -------------------------------------------------------------------------- | | astro | .astro | Automatyczne instalacje dla Astro | | bash | .sh, .bash, .zsh, .ksh | Automatycznie instaluje serwer języka bash | -| brzęk | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Automatyczne instalacje dla C/C++ | +| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Automatyczne instalacje dla C/C++ | | csharp | .cs | `.NET SDK` zainstalowany | | clojure-lsp | .clj, .cljs, .cljc, .edn | Komenda `clojure-lsp` dostępna | -| strzałka | .dart | Komenda `dart` dostępna | -| nie | .ts, .tsx, .js, .jsx, .mjs | Dostępne rozwiązanie `deno` (automatyczne wykrywanie deno.json/deno.jsonc) | -| eliksir-ls | .ex, .exs | Komenda `elixir` dostępna | -| eslin | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` zależność w projekcie | +| dart | .dart | Komenda `dart` dostępna | +| deno | .ts, .tsx, .js, .jsx, .mjs | Dostępne rozwiązanie `deno` (automatyczne wykrywanie deno.json/deno.jsonc) | +| elixir-ls | .ex, .exs | Komenda `elixir` dostępna | +| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` zależność w projekcie | | fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` zainstalowany | -| blask | .blask | Komenda `gleam` dostępna | -| gopls | .idź | Komenda `go` dostępna | -| hl | .hs, .lhs | Komenda `haskell-language-server-wrapper` dostępna | -| jdtl | .java | `Java SDK (version 21+)` zainstalowany | +| gleam | .gleam | Komenda `gleam` dostępna | +| gopls | .go | Komenda `go` dostępna | +| hls | .hs, .lhs | Komenda `haskell-language-server-wrapper` dostępna | +| jdtls | .java | `Java SDK (version 21+)` zainstalowany | | kotlin-ls | .kt, .kts | Automatyczne instalacje dla Kotlin | | lua-ls | .lua | Automatyczne instalacje dla Lua | | nixd | .nix | Komenda `nixd` dostępna | | ocaml-lsp | .ml, .mli | Komenda `ocamllsp` dostępna | | oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` zależność w projekcie | -| php inteligentny | .php | Automatyczne instalacje dla PHP | -| pryzma | .prysma | Komenda `prisma` dostępna | -| pirat | .py, .pyi | Zainstalowana zależność `pyright` | +| php intelephense | .php | Automatyczne instalacje dla PHP | +| prisma | .prisma | Komenda `prisma` dostępna | +| pyright | .py, .pyi | Zainstalowana zależność `pyright` | | ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Dostępne polecenie `ruby` i `gem` | -| rdza | .rs | Komenda `rust-analyzer` dostępna | +| rust | .rs | Komenda `rust-analyzer` dostępna | | sourcekit-lsp | .swift, .objc, .objcpp | `swift` zainstalowany (`xcode` na macOS) | -| smukły | smukły | Automatyczne instalacje dla aplikacji Svelte | -| terraforma | .tf, .tfvars | Automatyczne instalacje z wydań GitHub | -| malutka | .typ, .typc | Automatyczne instalacje z wydań GitHub | -| maszynopis | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` zależność w projekcie | +| svelte | .svelte | Automatyczne instalacje dla aplikacji Svelte | +| terraform | .tf, .tfvars | Automatyczne instalacje z wydań GitHub | +| tinymist | .typ, .typc | Automatyczne instalacje z wydań GitHub | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` zależność w projekcie | | vue | .vue | Automatyczne instalacje dla Vue | | yaml-ls | .yaml, .yml | Automatycznie instaluje serwer języka yaml Red Hat | -| zł | .zig, .zon | Komenda `zig` dostępna | +| zls | .zig, .zon | Komenda `zig` dostępna | Serwery LSP są automatycznie włączane po wykryciu jednego z rozszerzonych plików i wymagań. @@ -78,7 +78,7 @@ Każdy serwer LSP obsługuje szczegółowe elementy: | Nieruchomość | Wpisz | Opis | | ---------------- | -------- | ------------------------------------------------------ | -| `disabled` | boolean | Ustaw tę opcję na `true`, aby włączyć serwer LSP | +| `disabled` | boolean | Ustaw tę opcję na `true`, aby wyłączyć serwer LSP | | `command` | string[] | Polecenie uruchomienia serwera LSP | | `extensions` | string[] | Rozszerzenia plików, które powinny mieć ten serwer LSP | | `env` | object | Zmienne ustawienia podczas uruchamiania serwera | diff --git a/packages/web/src/content/docs/pt-br/acp.mdx b/packages/web/src/content/docs/pt-br/acp.mdx index 399ab1b88e..9968a52a12 100644 --- a/packages/web/src/content/docs/pt-br/acp.mdx +++ b/packages/web/src/content/docs/pt-br/acp.mdx @@ -138,7 +138,7 @@ require("codecompanion").setup({ Esta configuração configura o CodeCompanion para usar opencode como o agente ACP para chat. -Se você precisar passar variáveis de ambiente (como `OPENCODE_API_KEY`), consulte [Configurando Adaptadores: Variáveis de Ambiente](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) na documentação do CodeCompanion.nvim para detalhes completos. +Se você precisar passar variáveis de ambiente (como `OPENCODE_API_KEY`), consulte [Configuring Adapters: Environment Variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) na documentação do CodeCompanion.nvim para detalhes completos. ## Suporte diff --git a/packages/web/src/content/docs/pt-br/cli.mdx b/packages/web/src/content/docs/pt-br/cli.mdx index aab792a99b..36557ef45e 100644 --- a/packages/web/src/content/docs/pt-br/cli.mdx +++ b/packages/web/src/content/docs/pt-br/cli.mdx @@ -471,7 +471,7 @@ Isso inicia um servidor HTTP e abre um navegador para acessar o opencode atravé ### acp -Inicie um servidor ACP (Protocolo de Cliente de Agente). +Inicie um servidor ACP (Agent Client Protocol). ```bash opencode acp diff --git a/packages/web/src/content/docs/ru/acp.mdx b/packages/web/src/content/docs/ru/acp.mdx index f7a08b75e3..92cb8d7a23 100644 --- a/packages/web/src/content/docs/ru/acp.mdx +++ b/packages/web/src/content/docs/ru/acp.mdx @@ -1,9 +1,9 @@ --- -title: Поддержка АСР +title: Поддержка ACP description: Используйте opencode в любом ACP-совместимом редакторе. --- -opencode поддерживает [Протокол агента-клиента](https://agentclientprotocol.com) или (ACP), что позволяет использовать его непосредственно в совместимых редакторах и IDE. +opencode поддерживает [Agent Client Protocol](https://agentclientprotocol.com) или (ACP), что позволяет использовать его непосредственно в совместимых редакторах и IDE. :::tip Список редакторов и инструментов, поддерживающих ACP, можно найти в [отчете о ходе работы ACP](https://zed.dev/blog/acp-progress-report#available-now). @@ -140,15 +140,15 @@ require("codecompanion").setup({ Если вам нужно передать переменные среды (например, `OPENCODE_API_KEY`), обратитесь к разделу [Настройка адаптеров: переменные среды](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) в документации CodeCompanion.nvim для получения полной информации. -## Поддерживать +## Поддержка -opencode через ACP работает так же, как и в terminal. Поддерживаются все функции: +opencode через ACP работает так же, как и в терминале. Поддерживаются все функции: :::note Некоторые встроенные команды слэша, такие как `/undo` и `/redo`, в настоящее время не поддерживаются. ::: -- Встроенные инструменты (файловые операции, terminal-команды и т. д.) +- Встроенные инструменты (файловые операции, команды терминала и т. д.) - Пользовательские инструменты и команды слэша - Серверы MCP, настроенные в вашей конфигурации opencode - Правила для конкретного проекта из `AGENTS.md` diff --git a/packages/web/src/content/docs/ru/agents.mdx b/packages/web/src/content/docs/ru/agents.mdx index a12a259099..5d4d9b03f5 100644 --- a/packages/web/src/content/docs/ru/agents.mdx +++ b/packages/web/src/content/docs/ru/agents.mdx @@ -676,7 +676,7 @@ opencode agent create 2. Описание того, что должен делать агент. 3. Создайте соответствующее системное приглашение и идентификатор. 4. Позволяет вам выбрать, к каким инструментам может получить доступ агент. -5. Наконец, создайте файл уценки с конфигурацией агента. +5. Наконец, создайте файл Markdown с конфигурацией агента. --- diff --git a/packages/web/src/content/docs/ru/cli.mdx b/packages/web/src/content/docs/ru/cli.mdx index 541e4c27bf..ebe988d2c5 100644 --- a/packages/web/src/content/docs/ru/cli.mdx +++ b/packages/web/src/content/docs/ru/cli.mdx @@ -60,7 +60,7 @@ opencode agent [command] ### attach -Подключите terminal к уже работающему внутреннему серверу opencode, запущенному с помощью команд `serve` или `web`. +Подключите терминал к уже работающему внутреннему серверу opencode, запущенному с помощью команд `serve` или `web`. ```bash opencode attach [url] @@ -540,12 +540,12 @@ opencode upgrade v0.1.48 CLI opencode принимает следующие глобальные флаги. -| Флаг | Короткий | Описание | -| -------------- | -------- | ------------------------------------------------------------- | -| `--help` | `-h` | Отобразить справку | -| `--version` | `-v` | Распечатать номер версии | -| `--print-logs` | | Печать журналов в stderr | -| `--log-level` | | Уровень журнала (ОТЛАДКА, ИНФОРМАЦИЯ, ПРЕДУПРЕЖДЕНИЕ, ОШИБКА) | +| Флаг | Короткий | Описание | +| -------------- | -------- | ------------------------------------------ | +| `--help` | `-h` | Отобразить справку | +| `--version` | `-v` | Распечатать номер версии | +| `--print-logs` | | Печать журналов в stderr | +| `--log-level` | | Уровень журнала (DEBUG, INFO, WARN, ERROR) | --- @@ -562,7 +562,7 @@ opencode можно настроить с помощью переменных с | `OPENCODE_CONFIG_CONTENT` | строка | Встроенное содержимое конфигурации json | | `OPENCODE_DISABLE_AUTOUPDATE` | логическое значение | Отключить автоматическую проверку обновлений | | `OPENCODE_DISABLE_PRUNE` | логическое значение | Отключить удаление старых данных | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | логическое значение | Отключить автоматическое обновление заголовка terminal | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | логическое значение | Отключить автоматическое обновление заголовка терминала | | `OPENCODE_PERMISSION` | строка | Встроенная конфигурация разрешений json | | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | логическое значение | Отключить плагины по умолчанию | | `OPENCODE_DISABLE_LSP_DOWNLOAD` | логическое значение | Отключить автоматическую загрузку LSP-сервера | @@ -599,5 +599,5 @@ opencode можно настроить с помощью переменных с | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | логическое значение | Отключить просмотрщик файлов | | `OPENCODE_EXPERIMENTAL_EXA` | логическое значение | Включить экспериментальные функции Exa | | `OPENCODE_EXPERIMENTAL_LSP_TY` | логическое значение | Включить экспериментальную проверку типа LSP | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | логическое значение | Включить экспериментальные функции уценки | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | логическое значение | Включить экспериментальные функции Markdown | | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | логическое значение | Включить режим плана | diff --git a/packages/web/src/content/docs/ru/commands.mdx b/packages/web/src/content/docs/ru/commands.mdx index ac02911826..f122ecf9f2 100644 --- a/packages/web/src/content/docs/ru/commands.mdx +++ b/packages/web/src/content/docs/ru/commands.mdx @@ -30,7 +30,7 @@ Run the full test suite with coverage report and show any failures. Focus on the failing tests and suggest fixes. ``` -Фронтальная часть определяет свойства команды. Содержимое становится шаблоном. +Фронтматтер (frontmatter) определяет свойства команды. Содержимое становится шаблоном. Используйте команду, набрав `/`, а затем имя команды. @@ -42,7 +42,7 @@ Focus on the failing tests and suggest fixes. ## Настроить -Вы можете добавлять собственные команды через конфигурацию opencode или создав файлы уценки в каталоге `commands/`. +Вы можете добавлять собственные команды через конфигурацию opencode или создав файлы Markdown в каталоге `commands/`. --- @@ -94,7 +94,7 @@ Focus on the failing tests and suggest fixes. ``` Имя Markdown файла становится именем команды. Например, `test.md` позволяет -ты бежишь: +вам запустить: ```bash frame="none" /test diff --git a/packages/web/src/content/docs/ru/ide.mdx b/packages/web/src/content/docs/ru/ide.mdx index f7f138d14d..e66bde6323 100644 --- a/packages/web/src/content/docs/ru/ide.mdx +++ b/packages/web/src/content/docs/ru/ide.mdx @@ -3,14 +3,14 @@ title: IDE description: Расширение opencode для VS Code, Cursor и других IDE. --- -opencode интегрируется с VS Code, Cursor или любой IDE, поддерживающей terminal. Просто запустите `opencode` в terminal, чтобы начать. +opencode интегрируется с VS Code, Cursor или любой IDE, поддерживающей терминал. Просто запустите `opencode` в терминале, чтобы начать. --- ## Использование -- **Быстрый запуск**: используйте `Cmd+Esc` (Mac) или `Ctrl+Esc` (Windows/Linux), чтобы открыть opencode в разделенном представлении terminal, или сосредоточьте внимание на существующем сеансе terminal, если он уже запущен. -- **Новый сеанс**: используйте `Cmd+Shift+Esc` (Mac) или `Ctrl+Shift+Esc` (Windows/Linux), чтобы начать новый сеанс terminal opencode, даже если он уже открыт. Вы также можете нажать кнопку opencode в пользовательском интерфейсе. +- **Быстрый запуск**: используйте `Cmd+Esc` (Mac) или `Ctrl+Esc` (Windows/Linux), чтобы открыть opencode в разделенном представлении терминала, или сосредоточьте внимание на существующем сеансе терминала, если он уже запущен. +- **Новый сеанс**: используйте `Cmd+Shift+Esc` (Mac) или `Ctrl+Shift+Esc` (Windows/Linux), чтобы начать новый сеанс терминала opencode, даже если он уже открыт. Вы также можете нажать кнопку opencode в пользовательском интерфейсе. - **Узнавание контекста**: автоматически делитесь своим текущим выбором или вкладкой с помощью opencode. - **File Reference Shortcuts**: Use `Cmd+Option+K` (Mac) or `Alt+Ctrl+K` (Linux/Windows) to insert file references. Например, `@File#L37-42`. @@ -21,8 +21,8 @@ opencode интегрируется с VS Code, Cursor или любой IDE, п Чтобы установить opencode на VS Code и популярные форки, такие как Cursor, Windsurf, VSCodium: 1. Откройте VS Code -2. Откройте встроенный terminal -3. Запустите `opencode` - расширение установится автоматически. +2. Откройте встроенный терминал +3. Запустите `opencode` — расширение установится автоматически. С другой стороны, если вы хотите использовать собственную IDE при запуске `/editor` или `/export` из TUI, вам необходимо установить `export EDITOR="code --wait"`. [Подробнее](/docs/tui/#editor-setup). @@ -38,7 +38,7 @@ opencode интегрируется с VS Code, Cursor или любой IDE, п Если расширение не устанавливается автоматически: -- Убедитесь, что вы используете `opencode` во встроенном terminal. +- Убедитесь, что вы используете `opencode` во встроенном терминале. - Убедитесь, что CLI для вашей IDE установлен: - Для Code: команда `code`. - Для Cursor: команда `cursor`. diff --git a/packages/web/src/content/docs/ru/index.mdx b/packages/web/src/content/docs/ru/index.mdx index a8895249f4..3edebca949 100644 --- a/packages/web/src/content/docs/ru/index.mdx +++ b/packages/web/src/content/docs/ru/index.mdx @@ -7,7 +7,7 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**opencode**](/) — это агент кодирования искусственного интеллекта с открытым исходным кодом. Он доступен в виде интерфейса на базе terminal, настольного приложения или расширения IDE. +[**opencode**](/) — это агент кодирования искусственного интеллекта с открытым исходным кодом. Он доступен в виде интерфейса на базе терминала, настольного приложения или расширения IDE. ![opencode TUI с темой opencode](../../../assets/lander/screenshot.png) @@ -17,9 +17,9 @@ export const console = config.console #### Предварительные условия -Чтобы использовать opencode в вашем terminal, вам понадобится: +Чтобы использовать opencode в вашем терминале, вам понадобится: -1. Современный эмулятор terminal, например: +1. Современный эмулятор терминала, например: - [WezTerm](https://wezterm.org), кроссплатформенный - [Alacritty](https://alacritty.org), кроссплатформенный - [Ghostty](https://ghostty.org), Linux и macOS @@ -93,7 +93,7 @@ curl -fsSL https://opencode.ai/install | bash Для наилучшей работы в Windows мы рекомендуем использовать [Подсистема Windows для Linux (WSL)](/docs/windows-wsl). Он обеспечивает лучшую производительность и полную совместимость с функциями opencode. ::: -- **Используя шоколадный** +- **Используя Chocolatey** ```bash choco install opencode @@ -111,7 +111,7 @@ curl -fsSL https://opencode.ai/install | bash npm install -g opencode-ai ``` -- **Использование Мизе** +- **Использование Mise** ```bash mise use -g github:anomalyco/opencode @@ -243,7 +243,7 @@ How is authentication handled in @packages/functions/src/api/index.ts Вы хотите предоставить opencode достаточно подробностей, чтобы понять, чего вы хотите. Это помогает поговорить с ним так, как будто вы разговариваете с младшим разработчиком в своей команде. - :::кончик + :::tip Дайте opencode много контекста и примеров, чтобы помочь ему понять, что вы хотеть. ::: @@ -257,12 +257,12 @@ How is authentication handled in @packages/functions/src/api/index.ts [Image #1] Take a look at this image and use it as a reference. ``` - :::кончик - Перетащите изображения в terminal, чтобы добавить их в подсказку. + :::tip + Перетащите изображения в терминал, чтобы добавить их в подсказку. ::: opencode может сканировать любые изображения, которые вы ему предоставляете, и добавлять их в командную строку. Ты можешь - сделайте это, перетащив изображение в terminal. + сделайте это, перетащив изображение в терминал. 3. **Создайте функцию** diff --git a/packages/web/src/content/docs/ru/keybinds.mdx b/packages/web/src/content/docs/ru/keybinds.mdx index e31e390a09..e812670f60 100644 --- a/packages/web/src/content/docs/ru/keybinds.mdx +++ b/packages/web/src/content/docs/ru/keybinds.mdx @@ -105,9 +105,9 @@ opencode имеет список сочетаний клавиш, которые --- -## Ключ лидера +## Клавиша Leader -opencode использует клавишу `leader` для большинства сочетаний клавиш. Это позволяет избежать конфликтов в вашем terminal. +opencode использует клавишу `leader` для большинства сочетаний клавиш. Это позволяет избежать конфликтов в вашем терминале. По умолчанию `ctrl+x` является ведущей клавишей, и для большинства действий требуется сначала нажать ведущую клавишу, а затем сочетание клавиш. Например, чтобы начать новый сеанс, сначала нажмите `ctrl+x`, а затем нажмите `n`. @@ -154,7 +154,7 @@ opencode использует клавишу `leader` для большинст ## Shift+Ввод -Некоторые terminal по умолчанию не отправляют клавиши-модификаторы с Enter. Возможно, вам придется настроить terminal на отправку `Shift+Enter` в качестве escape-последовательности. +Некоторые терминалы по умолчанию не отправляют клавиши-модификаторы с Enter. Возможно, вам придется настроить терминал на отправку `Shift+Enter` в качестве escape-последовательности. ### Терминал Windows diff --git a/packages/web/src/content/docs/ru/modes.mdx b/packages/web/src/content/docs/ru/modes.mdx index b1dc647810..65b4efba23 100644 --- a/packages/web/src/content/docs/ru/modes.mdx +++ b/packages/web/src/content/docs/ru/modes.mdx @@ -83,9 +83,9 @@ opencode имеет два встроенных режима. } ``` -### Конфигурация уценки +### Конфигурация Markdown -Вы также можете определить режимы, используя файлы уценки. Поместите их в: +Вы также можете определить режимы, используя файлы Markdown. Поместите их в: - Глобальный: `~/.config/opencode/modes/` - Проект: `.opencode/modes/` @@ -110,7 +110,7 @@ You are in code review mode. Focus on: Provide constructive feedback without making direct changes. ``` -Имя файла уценки становится именем режима (например, `review.md` создает режим `review`). +Имя Markdown файла становится именем режима (например, `review.md` создает режим `review`). Давайте рассмотрим эти параметры конфигурации подробно. @@ -266,7 +266,7 @@ Provide constructive feedback without making direct changes. } ``` -### Использование файлов уценки +### Использование файлов Markdown Создайте файлы режимов в `.opencode/modes/` для режимов, специфичных для проекта, или в `~/.config/opencode/modes/` для глобальных режимов: diff --git a/packages/web/src/content/docs/ru/providers.mdx b/packages/web/src/content/docs/ru/providers.mdx index 494ec06098..fdad4a202b 100644 --- a/packages/web/src/content/docs/ru/providers.mdx +++ b/packages/web/src/content/docs/ru/providers.mdx @@ -129,7 +129,7 @@ OpenCode Zen — это список моделей, предоставленн 1. Перейдите в **Каталог моделей** в консоли Amazon Bedrock и запросите доступ к нужным моделям. - :::кончик + :::tip Вам необходимо иметь доступ к нужной модели в Amazon Bedrock. ::: @@ -180,7 +180,7 @@ OpenCode Zen — это список моделей, предоставленн - `profile` – именованный профиль AWS из `~/.aws/credentials`. - `endpoint` — URL-адрес пользовательской конечной точки для конечных точек VPC (псевдоним для общей опции `baseURL`). - :::кончик + :::tip Параметры файла конфигурации имеют приоритет над переменными среды. ::: @@ -203,7 +203,7 @@ OpenCode Zen — это список моделей, предоставленн } ``` - :::примечание + :::note Параметр `endpoint` — это псевдоним общего параметра `baseURL`, использующий терминологию, специфичную для AWS. Если указаны и `endpoint`, и `baseURL`, `endpoint` имеет приоритет. ::: @@ -219,7 +219,7 @@ OpenCode Zen — это список моделей, предоставленн 1. **Токен носителя** — переменная среды `AWS_BEARER_TOKEN_BEDROCK` или токен из команды `/connect`. 2. **Цепочка учетных данных AWS** — профиль, ключи доступа, общие учетные данные, роли IAM, токены веб-идентификации (EKS IRSA), метаданные экземпляра. - :::примечание + :::note Когда токен-носитель установлен (через `/connect` или `AWS_BEARER_TOKEN_BEDROCK`), он имеет приоритет над всеми методами учетных данных AWS, включая настроенные профили. ::: @@ -284,9 +284,9 @@ OpenCode Zen — это список моделей, предоставленн ##### Использование ключей API -Вы также можете выбрать **Создать ключ API**, если у вас нет подписки Pro/Max. Он также откроет ваш браузер и попросит вас войти в Anthropic и предоставит вам код, который вы можете вставить в свой terminal. +Вы также можете выбрать **Создать ключ API**, если у вас нет подписки Pro/Max. Он также откроет ваш браузер и попросит вас войти в Anthropic и предоставит вам код, который вы можете вставить в свой терминал. -Или, если у вас уже есть ключ API, вы можете выбрать **Ввести ключ API вручную** и вставить его в свой terminal. +Или, если у вас уже есть ключ API, вы можете выбрать **Ввести ключ API вручную** и вставить его в свой терминал. --- @@ -583,15 +583,15 @@ Cloudflare AI Gateway позволяет вам получать доступ к ### Firmware -1. Перейдите на [панель встроенного ПО](https://app.firmware.ai/signup), создайте учетную запись и сгенерируйте ключ API. +1. Перейдите на [панель Firmware](https://app.firmware.ai/signup), создайте учетную запись и сгенерируйте ключ API. -2. Запустите команду `/connect` и найдите **Прошивка**. +2. Запустите команду `/connect` и найдите **Firmware**. ```txt /connect ``` -3. Введите ключ API прошивки. +3. Введите ключ API Firmware. ```txt ┌ API key @@ -664,7 +664,7 @@ GitLab Duo предоставляет агентский чат на базе и 2. Нажмите **Добавить новый токен**. 3. Имя: `OpenCode`, Области применения: `api` 4. Скопируйте токен (начинается с `glpat-`) - 5. Введите его в terminal + 5. Введите его в терминал 3. Запустите команду `/models`, чтобы просмотреть доступные модели. @@ -828,7 +828,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here 1. Перейдите в **Model Garden** в Google Cloud Console и проверьте модели, доступные в вашем регионе. - :::примечание + :::note Вам необходим проект Google Cloud с включенным Vertex AI API. ::: @@ -894,17 +894,17 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ### Hugging Face -[Поставщики Hugging Face Inference Provider](https://huggingface.co/docs/inference-providers) предоставляют доступ к открытым моделям, поддерживаемым более чем 17 поставщиками. +[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) предоставляют доступ к открытым моделям, поддерживаемым более чем 17 поставщиками. 1. Перейдите в [Настройки Hugging Face](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained), чтобы создать токен с разрешением совершать вызовы к поставщикам выводов. -2. Запустите команду `/connect` и найдите **Обнимающее лицо**. +2. Запустите команду `/connect` и найдите **Hugging Face**. ```txt /connect ``` -3. Введите свой жетон «Обнимающее лицо». +3. Введите свой токен Hugging Face. ```txt ┌ API key @@ -1328,7 +1328,7 @@ Ollama может автоматически настроиться для openc ##### Использование ключей API -Если у вас уже есть ключ API, вы можете выбрать **Ввести ключ API вручную** и вставить его в свой terminal. +Если у вас уже есть ключ API, вы можете выбрать **Ввести ключ API вручную** и вставить его в свой терминал. --- @@ -1431,7 +1431,7 @@ SAP AI Core предоставляет доступ к более чем 40 мо 1. Перейдите в [SAP BTP Cockpit](https://account.hana.ondemand.com/), перейдите к экземпляру службы SAP AI Core и создайте ключ службы. - :::кончик + :::tip Ключ службы — это объект JSON, содержащий `clientid`, `clientsecret`, `url` и `serviceurls.AI_API_URL`. Экземпляр AI Core можно найти в разделе **Сервисы** > **Экземпляры и подписки** в панели управления BTP. ::: @@ -1468,7 +1468,7 @@ SAP AI Core предоставляет доступ к более чем 40 мо AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode ``` - :::примечание + :::note Эти параметры являются необязательными и должны быть настроены в соответствии с настройками SAP AI Core. ::: @@ -1567,13 +1567,13 @@ SAP AI Core предоставляет доступ к более чем 40 мо 1. Перейдите к [консоли Venice AI](https://venice.ai), создайте учетную запись и сгенерируйте ключ API. -2. Запустите команду `/connect` и найдите **Венеция AI**. +2. Запустите команду `/connect` и найдите **Venice AI**. ```txt /connect ``` -3. Введите свой ключ API Венеции AI. +3. Введите свой ключ API Venice AI. ```txt ┌ API key diff --git a/packages/web/src/content/docs/ru/themes.mdx b/packages/web/src/content/docs/ru/themes.mdx index 38eb287d13..89859d7433 100644 --- a/packages/web/src/content/docs/ru/themes.mdx +++ b/packages/web/src/content/docs/ru/themes.mdx @@ -3,19 +3,19 @@ title: Темы description: Выберите встроенную тему или определите свою собственную. --- -С помощью opencode вы можете выбрать одну из нескольких встроенных тем, использовать тему, которая адаптируется к теме вашего terminal, или определить свою собственную тему. +С помощью opencode вы можете выбрать одну из нескольких встроенных тем, использовать тему, которая адаптируется к теме вашего терминала, или определить свою собственную тему. По умолчанию opencode использует нашу собственную тему `opencode`. --- -## Требования к terminal +## Требования к терминалу -Чтобы темы корректно отображались в полной цветовой палитре, ваш terminal должен поддерживать **truecolor** (24-битный цвет). Большинство современных terminal поддерживают это по умолчанию, но вам может потребоваться включить его: +Чтобы темы корректно отображались в полной цветовой палитре, ваш терминал должен поддерживать **truecolor** (24-битный цвет). Большинство современных терминалов поддерживают это по умолчанию, но вам может потребоваться включить его: - **Проверьте поддержку**: запустите `echo $COLORTERM` — должен появиться `truecolor` или `24bit`. - **Включить truecolor**: установите переменную среды `COLORTERM=truecolor` в профиле shell. -- **Совместимость terminal**: убедитесь, что ваш эмулятор terminal поддерживает 24-битный цвет (большинство современных terminal, таких как iTerm2, Alacritty, Kitty, Windows Terminal и последние версии terminal GNOME, поддерживают). +- **Совместимость терминала**: убедитесь, что ваш эмулятор терминала поддерживает 24-битный цвет (большинство современных терминалов, таких как iTerm2, Alacritty, Kitty, Windows Terminal и последние версии GNOME Terminal, поддерживают). Без поддержки truecolor темы могут отображаться с пониженной точностью цветопередачи или вернуться к ближайшему приближению к 256 цветам. @@ -45,17 +45,17 @@ opencode поставляется с несколькими встроенным ## Системная тема -Тема `system` автоматически адаптируется к цветовой схеме вашего terminal. В отличие от традиционных тем, использующих фиксированные цвета, тема _system_: +Тема `system` автоматически адаптируется к цветовой схеме вашего терминала. В отличие от традиционных тем, использующих фиксированные цвета, тема _system_: -- **Создает шкалу серого**: создает пользовательскую шкалу серого на основе цвета фона вашего terminal, обеспечивая оптимальный контраст. -- **Использует цвета ANSI**: использует стандартные цвета ANSI (0–15) для подсветки синтаксиса и элементов пользовательского интерфейса, которые соответствуют цветовой палитре вашего terminal. -- **Сохраняет настройки terminal по умолчанию**: использует `none` для цветов текста и фона, чтобы сохранить естественный вид вашего terminal. +- **Создает шкалу серого**: создает пользовательскую шкалу серого на основе цвета фона вашего терминала, обеспечивая оптимальный контраст. +- **Использует цвета ANSI**: использует стандартные цвета ANSI (0–15) для подсветки синтаксиса и элементов пользовательского интерфейса, которые соответствуют цветовой палитре вашего терминала. +- **Сохраняет настройки терминала по умолчанию**: использует `none` для цветов текста и фона, чтобы сохранить естественный вид вашего терминала. Системная тема предназначена для пользователей, которые: -- Хотите, чтобы opencode соответствовал внешнему виду их terminal -- Используйте пользовательские цветовые схемы terminal -- Предпочитайте единообразный вид для всех terminal-приложений. +- Хотите, чтобы opencode соответствовал внешнему виду их терминала +- Используйте пользовательские цветовые схемы терминала +- Предпочитайте единообразный вид для всех терминальных приложений. --- @@ -119,7 +119,7 @@ vim .opencode/themes/my-theme.json - **Цвета ANSI**: `3` (0–255). - **Ссылки на цвета**: `"primary"` или пользовательские определения. - **Темный/светлый варианты**: `{"dark": "#000", "light": "#fff"}` -- **Нет цвета**: `"none"` — используется цвет terminal по умолчанию или прозрачный. +- **Нет цвета**: `"none"` — используется цвет терминала по умолчанию или прозрачный. --- @@ -129,12 +129,12 @@ vim .opencode/themes/my-theme.json --- -### Настройки terminal по умолчанию +### Настройки терминала по умолчанию -Специальное значение `"none"` можно использовать для любого цвета, чтобы наследовать цвет terminal по умолчанию. Это особенно полезно для создания тем, которые органично сочетаются с цветовой схемой вашего terminal: +Специальное значение `"none"` можно использовать для любого цвета, чтобы наследовать цвет терминала по умолчанию. Это особенно полезно для создания тем, которые органично сочетаются с цветовой схемой вашего терминала: -- `"text": "none"` — использует цвет переднего плана terminal по умолчанию. -- `"background": "none"` — использует цвет фона terminal по умолчанию. +- `"text": "none"` — использует цвет переднего плана терминала по умолчанию. +- `"background": "none"` — использует цвет фона терминала по умолчанию. --- diff --git a/packages/web/src/content/docs/ru/tools.mdx b/packages/web/src/content/docs/ru/tools.mdx index c19c49f779..b0757867be 100644 --- a/packages/web/src/content/docs/ru/tools.mdx +++ b/packages/web/src/content/docs/ru/tools.mdx @@ -45,7 +45,7 @@ description: Управляйте инструментами, которые м --- -### бить +### bash Выполняйте shell-команды в среде вашего проекта. @@ -58,11 +58,11 @@ description: Управляйте инструментами, которые м } ``` -Этот инструмент позволяет LLM запускать terminal-команды, такие как `npm install`, `git status` или любую другую shell-команду. +Этот инструмент позволяет LLM запускать команды терминала, такие как `npm install`, `git status` или любую другую shell-команду. --- -### редактировать +### edit Измените существующие файлы, используя точную замену строк. @@ -79,7 +79,7 @@ description: Управляйте инструментами, которые м --- -### писать +### write Создавайте новые файлы или перезаписывайте существующие. @@ -100,7 +100,7 @@ description: Управляйте инструментами, которые м --- -### читать +### read Прочитайте содержимое файла из вашей кодовой базы. @@ -134,7 +134,7 @@ description: Управляйте инструментами, которые м --- -### шарик +### glob Найдите файлы по шаблону. @@ -151,7 +151,7 @@ description: Управляйте инструментами, которые м --- -### список +### list Список файлов и каталогов по заданному пути. @@ -168,7 +168,7 @@ description: Управляйте инструментами, которые м --- -### лсп (экспериментальный) +### lsp (экспериментальный) Взаимодействуйте с настроенными серверами LSP, чтобы получить функции анализа кода, такие как определения, ссылки, информация о наведении и иерархия вызовов. @@ -191,7 +191,7 @@ description: Управляйте инструментами, которые м --- -### пластырь +### patch Применяйте патчи к файлам. @@ -212,7 +212,7 @@ description: Управляйте инструментами, которые м --- -### навык +### skill Загрузите [skill](/docs/skills) (файл `SKILL.md`) и верните его содержимое в диалог. @@ -269,7 +269,7 @@ description: Управляйте инструментами, которые м --- -### веб-загрузка +### webfetch Получить веб-контент. @@ -286,7 +286,7 @@ description: Управляйте инструментами, которые м --- -### веб-поиск +### websearch Найдите информацию в Интернете. @@ -320,7 +320,7 @@ OPENCODE_ENABLE_EXA=1 opencode --- -### вопрос +### question Задавайте вопросы пользователю во время выполнения. diff --git a/packages/web/src/content/docs/ru/web.mdx b/packages/web/src/content/docs/ru/web.mdx index 905a426449..13a543cb38 100644 --- a/packages/web/src/content/docs/ru/web.mdx +++ b/packages/web/src/content/docs/ru/web.mdx @@ -3,7 +3,7 @@ title: Интернет description: Использование opencode в вашем браузере. --- -opencode может работать как веб-приложение в вашем браузере, обеспечивая такой же мощный опыт кодирования AI без необходимости использования terminal. +opencode может работать как веб-приложение в вашем браузере, обеспечивая такой же мощный опыт кодирования AI без необходимости использования терминала. ![opencode Web — новый сеанс](../../../assets/web/web-homepage-new-session.png) @@ -22,7 +22,7 @@ opencode web ::: :::tip[Пользователи Windows] -Для получения наилучших результатов запустите `opencode web` из [WSL](/docs/windows-wsl), а не из PowerShell. Это обеспечивает правильный доступ к файловой системе и интеграцию terminal. +Для получения наилучших результатов запустите `opencode web` из [WSL](/docs/windows-wsl), а не из PowerShell. Это обеспечивает правильный доступ к файловой системе и интеграцию терминала. ::: --- @@ -70,7 +70,7 @@ opencode web --mdns opencode web --mdns --mdns-domain myproject.local ``` -### КОРС +### CORS Чтобы разрешить дополнительные домены для CORS (полезно для пользовательских интерфейсов): @@ -108,9 +108,9 @@ OPENCODE_SERVER_PASSWORD=secret opencode web --- -## Подключение terminal +## Подключение терминала -Вы можете подключить TUI terminal к работающему веб-серверу: +Вы можете подключить TUI терминала к работающему веб-серверу: ```bash # Start the web server @@ -120,7 +120,7 @@ opencode web --port 4096 opencode attach http://localhost:4096 ``` -Это позволяет вам одновременно использовать веб-интерфейс и terminal, используя одни и те же сеансы и состояние. +Это позволяет вам одновременно использовать веб-интерфейс и терминал, используя одни и те же сеансы и состояние. --- diff --git a/packages/web/src/content/docs/ru/windows-wsl.mdx b/packages/web/src/content/docs/ru/windows-wsl.mdx index 770cf20c60..7ca28449b5 100644 --- a/packages/web/src/content/docs/ru/windows-wsl.mdx +++ b/packages/web/src/content/docs/ru/windows-wsl.mdx @@ -8,7 +8,7 @@ import { Steps } from "@astrojs/starlight/components" opencode можно запускать напрямую в Windows, но для лучшего опыта мы рекомендуем [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). WSL дает Linux-среду, которая отлично работает с возможностями opencode. :::tip[Почему WSL?] -WSL дает более высокую производительность файловой системы, полноценную поддержку terminal и совместимость с инструментами разработки, на которые опирается opencode. +WSL дает более высокую производительность файловой системы, полноценную поддержку терминала и совместимость с инструментами разработки, на которые опирается opencode. ::: --- @@ -23,7 +23,7 @@ WSL дает более высокую производительность фа 2. **Установите opencode в WSL** - После настройки WSL откройте WSL terminal и установите opencode одним из [способов установки](/docs/). + После настройки WSL откройте терминал WSL и установите opencode одним из [способов установки](/docs/). ```bash curl -fsSL https://opencode.ai/install | bash @@ -73,7 +73,7 @@ OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 Для лучшего веб-опыта в Windows: -1. **Запускайте `opencode web` в WSL terminal**, а не в PowerShell: +1. **Запускайте `opencode web` в терминале WSL**, а не в PowerShell: ```bash opencode web --hostname 0.0.0.0 @@ -81,7 +81,7 @@ OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 2. **Открывайте в браузере Windows** адрес `http://localhost:` (opencode выведет URL) -Запуск `opencode web` из WSL обеспечивает корректный доступ к файловой системе и интеграцию с terminal, при этом интерфейс остается доступным из браузера Windows. +Запуск `opencode web` из WSL обеспечивает корректный доступ к файловой системе и интеграцию с терминалом, при этом интерфейс остается доступным из браузера Windows. --- diff --git a/packages/web/src/content/docs/th/config.mdx b/packages/web/src/content/docs/th/config.mdx index 314c8d0993..c87b007f89 100644 --- a/packages/web/src/content/docs/th/config.mdx +++ b/packages/web/src/content/docs/th/config.mdx @@ -179,7 +179,7 @@ opencode run "Hello world" --- -### เซิร์ฟเวอร์ +### Server คุณสามารถกำหนดการตั้งค่าเซิร์ฟเวอร์สำหรับคำสั่ง `opencode serve` และ `opencode web` ผ่านตัวเลือก `server` @@ -208,7 +208,7 @@ opencode run "Hello world" --- -### เครื่องมือ +### Tools คุณสามารถจัดการเครื่องมือที่ LLM สามารถใช้ได้ผ่านตัวเลือก `tools` @@ -226,7 +226,7 @@ opencode run "Hello world" --- -### โมเดล +### Models คุณสามารถกำหนดค่าผู้ให้บริการและรุ่นที่คุณต้องการใช้ในการกำหนดค่า OpenCode ของคุณได้ผ่านตัวเลือก `provider`, `model` และ `small_model` @@ -268,7 +268,7 @@ opencode run "Hello world" ผู้ให้บริการบางรายรองรับตัวเลือกการกำหนดค่าเพิ่มเติมนอกเหนือจากการตั้งค่า `timeout` และ `apiKey` ทั่วไป -##### อเมซอน ข้อเท็จจริง +##### Amazon Bedrock Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพาะ: @@ -292,14 +292,14 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ - `endpoint` - ​​จุดสิ้นสุดที่กำหนดเอง URL สำหรับจุดสิ้นสุด VPC นี่เป็นนามแฝงสำหรับตัวเลือก `baseURL` ทั่วไปโดยใช้คำศัพท์เฉพาะ AWS หากระบุทั้งสองรายการ `endpoint` จะมีความสำคัญกว่า :::note -โทเค็นผู้ถือ (`AWS_BEARER_TOKEN_BEDROCK` หรือ `/connect`) มีความสำคัญมากกว่าการตรวจสอบสิทธิ์ตามโปรไฟล์ ดู [ลำดับความสำคัญในการรับรองความถูกต้อง](/docs/providers#การรับรองความถูกต้อง-เหนือกว่า) สำหรับรายละเอียด +Bearer Token (`AWS_BEARER_TOKEN_BEDROCK` หรือ `/connect`) มีความสำคัญมากกว่าการตรวจสอบสิทธิ์ตามโปรไฟล์ ดู [ลำดับความสำคัญในการรับรองความถูกต้อง](/docs/providers#การรับรองความถูกต้อง-เหนือกว่า) สำหรับรายละเอียด ::: [เรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดค่า Amazon Bedrock](/docs/providers#amazon-bedrock) --- -### ธีมส์ +### Themes คุณสามารถกำหนดค่าธีมที่คุณต้องการใช้ในการกำหนดค่า OpenCode ของคุณได้ผ่านตัวเลือก `theme` @@ -314,7 +314,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### ตัวแทน +### Agents คุณสามารถกำหนดค่าตัวแทนเฉพาะสำหรับงานเฉพาะผ่านตัวเลือก `agent` @@ -340,7 +340,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### ตัวแทนเริ่มต้น +### Default Agent คุณสามารถตั้งค่าตัวแทนเริ่มต้นได้โดยใช้ตัวเลือก `default_agent` ซึ่งจะกำหนดว่าเอเจนต์ใดที่จะใช้เมื่อไม่มีการระบุอย่างชัดเจน @@ -357,7 +357,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### การแบ่งปัน +### Sharing คุณสามารถกำหนดค่าคุณสมบัติ [แบ่งปัน](/docs/share) ได้ผ่านทางตัวเลือก `share` @@ -378,7 +378,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### คำสั่ง +### Commands คุณสามารถกำหนดค่าคำสั่งที่กำหนดเองสำหรับงานซ้ำๆ ได้ผ่านตัวเลือก `command` @@ -404,7 +404,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### ปุ่มลัด +### Keybinds คุณสามารถปรับแต่งปุ่มลัดของคุณได้ผ่านตัวเลือก `keybinds` @@ -419,7 +419,7 @@ Amazon Bedrock รองรับ AWS-การกำหนดค่าเฉพ --- -### อัปเดตอัตโนมัติ +### Autoupdate OpenCode จะดาวน์โหลดการอัปเดตใหม่โดยอัตโนมัติเมื่อเริ่มต้นระบบ คุณสามารถปิดการใช้งานนี้ได้โดยใช้ตัวเลือก `autoupdate` @@ -435,7 +435,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### ฟอร์แมตเตอร์ +### Formatters คุณสามารถกำหนดค่าตัวจัดรูปแบบโค้ดผ่านตัวเลือก `formatter` @@ -461,7 +461,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### สิทธิ์ +### Permissions ตามค่าเริ่มต้น opencode **อนุญาตการดำเนินการทั้งหมด** โดยไม่ต้องมีการอนุมัติอย่างชัดเจน คุณสามารถเปลี่ยนสิ่งนี้ได้โดยใช้ตัวเลือก `permission` @@ -481,7 +481,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### การบดอัด +### Compaction คุณสามารถควบคุมลักษณะการทำงานของการบีบอัดบริบทได้โดยใช้ตัวเลือก `compaction` @@ -496,11 +496,11 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม ``` - `auto` - ​​กระชับเซสชันโดยอัตโนมัติเมื่อบริบทเต็ม (ค่าเริ่มต้น: `true`) -- `prune` - ​​ลบเอาท์พุตเครื่องมือเก่าเพื่อบันทึกโทเค็น (ค่าเริ่มต้น: `true`) +- `prune` - ​​ลบเอาท์พุตเครื่องมือเก่าเพื่อบันทึก tokens (ค่าเริ่มต้น: `true`) --- -### ผู้เฝ้าดู +### Watcher คุณสามารถกำหนดค่ารูปแบบการละเว้นตัวเฝ้าดูไฟล์ได้ผ่านตัวเลือก `watcher` @@ -517,7 +517,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### MCP เซิร์ฟเวอร์ +### MCP Servers คุณสามารถกำหนดค่าเซิร์ฟเวอร์ MCP ที่คุณต้องการใช้ผ่านตัวเลือก `mcp` @@ -532,7 +532,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### ปลั๊กอิน +### Plugins [ปลั๊กอิน](/docs/plugins) ขยาย OpenCode ด้วยเครื่องมือที่กำหนดเอง hooks และการผสานรวม @@ -549,7 +549,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### คำแนะนำ +### Instructions คุณสามารถกำหนดค่าคำแนะนำสำหรับรุ่นที่คุณใช้ผ่านตัวเลือก `instructions` @@ -565,7 +565,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### ผู้ให้บริการที่พิการ +### Disabled Providers คุณสามารถปิดการใช้งานผู้ให้บริการที่โหลดโดยอัตโนมัติผ่านตัวเลือก `disabled_providers` สิ่งนี้มีประโยชน์เมื่อคุณต้องการป้องกันไม่ให้โหลดผู้ให้บริการบางรายแม้ว่าจะมีข้อมูลประจำตัวอยู่ก็ตาม @@ -588,7 +588,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### ผู้ให้บริการที่เปิดใช้งาน +### Enabled Providers คุณสามารถระบุรายชื่อผู้ให้บริการที่อนุญาตได้ผ่านตัวเลือก `enabled_providers` เมื่อตั้งค่าแล้ว เฉพาะผู้ให้บริการที่ระบุเท่านั้นที่จะเปิดใช้งาน และผู้ให้บริการอื่นๆ ทั้งหมดจะถูกละเว้น @@ -609,7 +609,7 @@ OpenCode จะดาวน์โหลดการอัปเดตใหม --- -### การทดลอง +### Experimental ปุ่ม `experimental` มีตัวเลือกที่อยู่ระหว่างการพัฒนา diff --git a/packages/web/src/content/docs/th/enterprise.mdx b/packages/web/src/content/docs/th/enterprise.mdx index 4ac0c6f271..629646597b 100644 --- a/packages/web/src/content/docs/th/enterprise.mdx +++ b/packages/web/src/content/docs/th/enterprise.mdx @@ -63,7 +63,7 @@ OpenCode เป็นโอเพ่นซอร์สและไม่ได ## ราคา -เราใช้แบบจำลองต่อที่นั่งสำหรับ OpenCode Enterprise หากคุณมีเกตเวย์ LLM ของคุณเอง เราจะไม่เรียกเก็บเงินสำหรับโทเค็นที่ใช้ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกราคาและการใช้งาน **ติดต่อเรา** +เราใช้แบบจำลองต่อที่นั่งสำหรับ OpenCode Enterprise หากคุณมีเกตเวย์ LLM ของคุณเอง เราจะไม่เรียกเก็บเงินสำหรับtokensที่ใช้ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกราคาและการใช้งาน **ติดต่อเรา** --- @@ -129,7 +129,7 @@ OpenCode Enterprise เหมาะสำหรับองค์กรที่
How does enterprise pricing work? -เราเสนอราคาสำหรับองค์กรต่อที่นั่ง หากคุณมีเกตเวย์ LLM ของคุณเอง เราจะไม่เรียกเก็บเงินสำหรับโทเค็นที่ใช้ สำหรับรายละเอียดเพิ่มเติม **ติดต่อเรา** เพื่อขอใบเสนอราคาที่กำหนดเองตามความต้องการขององค์กรของคุณ +เราเสนอราคาสำหรับองค์กรต่อที่นั่ง หากคุณมีเกตเวย์ LLM ของคุณเอง เราจะไม่เรียกเก็บเงินสำหรับtokensที่ใช้ สำหรับรายละเอียดเพิ่มเติม **ติดต่อเรา** เพื่อขอใบเสนอราคาที่กำหนดเองตามความต้องการขององค์กรของคุณ
diff --git a/packages/web/src/content/docs/th/github.mdx b/packages/web/src/content/docs/th/github.mdx index 45a4fa84e7..40816d7841 100644 --- a/packages/web/src/content/docs/th/github.mdx +++ b/packages/web/src/content/docs/th/github.mdx @@ -85,7 +85,7 @@ opencode github install - `agent`: ตัวแทนที่จะใช้ จะต้องเป็นตัวแทนหลัก ย้อนกลับไปที่ `default_agent` จาก config หรือ `"build"` หากไม่พบ - `share`: ไม่ว่าจะแชร์เซสชัน OpenCode หรือไม่ ค่าเริ่มต้นเป็น **จริง** สำหรับที่เก็บข้อมูลสาธารณะ - `prompt`: ตัวเลือกที่กำหนดเองพร้อมท์เพื่อแทนที่การทำงานเริ่มต้น ใช้สิ่งนี้เพื่อปรับแต่งวิธีที่ OpenCode ประมวลผลคำขอ -- `token`: โทเค็นการเข้าถึง GitHub เสริมสำหรับการดำเนินการ เช่น การสร้างความคิดเห็น การยอมรับการเปลี่ยนแปลง และการเปิดคำขอดึง ตามค่าเริ่มต้น OpenCode จะใช้โทเค็นการเข้าถึงการติดตั้งจากแอป OpenCode GitHub ดังนั้นคอมมิต แสดงความคิดเห็น และคำขอดึงข้อมูลจะปรากฏว่ามาจากแอป +- `token`: GitHub Access Token เสริมสำหรับการดำเนินการ เช่น การสร้างความคิดเห็น การยอมรับการเปลี่ยนแปลง และการเปิดคำขอดึง ตามค่าเริ่มต้น OpenCode จะใช้โทเค็นการเข้าถึงการติดตั้งจาก OpenCode GitHub App ดังนั้นคอมมิต แสดงความคิดเห็น และคำขอดึงข้อมูลจะปรากฏว่ามาจากแอป หรือคุณสามารถใช้ [ในตัว `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) ของ GitHub Action runner ได้โดยไม่ต้องติดตั้งแอป OpenCode GitHub เพียงตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์ที่จำเป็นในขั้นตอนการทำงานของคุณ: @@ -97,7 +97,7 @@ opencode github install issues: write ``` - คุณยังสามารถใช้ [โทเค็นการเข้าถึงส่วนบุคคล](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) ได้หากต้องการ + คุณยังสามารถใช้ [Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) ได้หากต้องการ --- diff --git a/packages/web/src/content/docs/th/index.mdx b/packages/web/src/content/docs/th/index.mdx index a6e1fac2c7..fbf1f7e575 100644 --- a/packages/web/src/content/docs/th/index.mdx +++ b/packages/web/src/content/docs/th/index.mdx @@ -25,7 +25,7 @@ export const console = config.console - [Ghostty](https://ghostty.org), Linux และ macOS - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux และ macOS -2. ปุ่ม API สำหรับผู้ให้บริการ LLM ที่คุณต้องการใช้ +2. API Key สำหรับผู้ให้บริการ LLM ที่คุณต้องการใช้ --- @@ -79,7 +79,7 @@ curl -fsSL https://opencode.ai/install | bash brew install anomalyco/tap/opencode ``` - > เราขอแนะนำให้ใช้การแตะ OpenCode เพื่อเผยแพร่ข้อมูลล่าสุด สูตร `brew install opencode` อย่างเป็นทางการได้รับการดูแลโดยทีมงาน Homebrew และมีการอัปเดตไม่บ่อยนัก + > เราขอแนะนำให้ใช้ OpenCode tap เพื่อเผยแพร่ข้อมูลล่าสุด สูตร `brew install opencode` อย่างเป็นทางการได้รับการดูแลโดยทีมงาน Homebrew และมีการอัปเดตไม่บ่อยนัก - **ใช้ Paru บน Arch Linux** diff --git a/packages/web/src/content/docs/th/providers.mdx b/packages/web/src/content/docs/th/providers.mdx index b3398685ff..f8fc77c12d 100644 --- a/packages/web/src/content/docs/th/providers.mdx +++ b/packages/web/src/content/docs/th/providers.mdx @@ -95,9 +95,9 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท --- -### 302.เอไอ +### 302.AI -1. ไปที่ [คอนโซล 302.AI](https://302.ai/) สร้างบัญชี และสร้างคีย์ API +1. ไปที่ [302.AI console](https://302.ai/) สร้างบัญชี และสร้างคีย์ API 2. เรียกใช้คำสั่ง `/connect` และค้นหา **302.AI** @@ -220,7 +220,7 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท 2. **AWS Credential Chain** - โปรไฟล์, คีย์การเข้าถึง, ข้อมูลประจำตัวที่แชร์, บทบาท IAM, โทเค็นข้อมูลประจำตัวของเว็บ (EKS IRSA), ข้อมูลเมตาของอินสแตนซ์ :::note - เมื่อตั้งค่าโทเค็นผู้ถือ (ผ่าน `/connect` หรือ `AWS_BEARER_TOKEN_BEDROCK`) โทเค็นนั้นจะมีความสำคัญเหนือกว่าวิธีการข้อมูลประจำตัว AWS ทั้งหมด รวมถึงโปรไฟล์ที่กำหนดค่าไว้ + เมื่อตั้งค่าBearer Token (ผ่าน `/connect` หรือ `AWS_BEARER_TOKEN_BEDROCK`) โทเค็นนั้นจะมีความสำคัญเหนือกว่าวิธีการข้อมูลประจำตัว AWS ทั้งหมด รวมถึงโปรไฟล์ที่กำหนดค่าไว้ ::: 3. รันคำสั่ง `/models` เพื่อเลือกรุ่นที่ต้องการ @@ -282,7 +282,7 @@ OpenCode Zen คือรายชื่อโมเดลที่จัดท การใช้การสมัครสมาชิก Claude Pro/Max ใน OpenCode ไม่ได้รับการสนับสนุนอย่างเป็นทางการจาก [Anthropic](https://anthropic.com) ::: -##### ใช้ปุ่ม API +##### ใช้API Key คุณยังสามารถเลือก **สร้าง API คีย์** หากคุณไม่มีการสมัครสมาชิก Pro/Max นอกจากนี้ยังจะเปิดเบราว์เซอร์ของคุณและขอให้คุณเข้าสู่ระบบ Anthropic และให้รหัสที่คุณสามารถวางใน terminal ของคุณ @@ -461,7 +461,7 @@ Cloudflare AI Gateway ช่วยให้คุณเข้าถึงโม /connect ``` -4. ป้อนโทเค็น Cloudflare API ของคุณ +4. ป้อน Cloudflare API Token ของคุณ ```txt ┌ API key @@ -659,23 +659,24 @@ GitLab Duo ให้การแชทแบบเอเจนต์ที่ข เลือก **OAuth** และเบราว์เซอร์ของคุณจะเปิดขึ้นเพื่อรับสิทธิ์ - #### การใช้โทเค็นการเข้าถึงส่วนบุคคล - 1. ไปที่ [การตั้งค่าผู้ใช้ GitLab > โทเค็นการเข้าถึง](https://gitlab.com/-/user_settings/personal_access_tokens) - 2. คลิก **เพิ่มโทเค็นใหม่** - 3. ชื่อ: `OpenCode`, ขอบเขต: `api` - 4. คัดลอกโทเค็น (เริ่มต้นด้วย `glpat-`) - 5. ป้อนลงใน terminal +#### Using Personal Access Token -3. รันคำสั่ง `/models` เพื่อดูรุ่นที่มีจำหน่าย +1. ไปที่ [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens) +2. คลิก **เพิ่มโทเค็นใหม่** +3. ชื่อ: `OpenCode`, ขอบเขต: `api` +4. คัดลอกโทเค็น (เริ่มต้นด้วย `glpat-`) +5. ป้อนลงใน terminal - ```txt - /models - ``` +6. รันคำสั่ง `/models` เพื่อดูรุ่นที่มีจำหน่าย - มีโมเดลที่ใช้ Claude สามรุ่นให้เลือก: - - **duo-chat-haiku-4-5** (ค่าเริ่มต้น) - ตอบสนองรวดเร็วสำหรับงานด่วน - - **duo-chat-sonnet-4-5** - ประสิทธิภาพที่สมดุลสำหรับขั้นตอนการทำงานส่วนใหญ่ - - **duo-chat-opus-4-5** - มีความสามารถมากที่สุดสำหรับการวิเคราะห์ที่ซับซ้อน + ```txt + /models + ``` + + มีโมเดลที่ใช้ Claude สามรุ่นให้เลือก: + - **duo-chat-haiku-4-5** (ค่าเริ่มต้น) - ตอบสนองรวดเร็วสำหรับงานด่วน + - **duo-chat-sonnet-4-5** - ประสิทธิภาพที่สมดุลสำหรับขั้นตอนการทำงานส่วนใหญ่ + - **duo-chat-opus-4-5** - มีความสามารถมากที่สุดสำหรับการวิเคราะห์ที่ซับซ้อน :::note คุณยังสามารถระบุตัวแปรสภาพแวดล้อม 'GITLAB_TOKEN' ได้หากคุณไม่ต้องการ @@ -865,9 +866,9 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here --- -### กร็อก +### Groq -1. ไปที่ [คอนโซล Groq](https://console.groq.com/) คลิก **สร้าง API คีย์** และคัดลอกคีย์ +1. ไปที่ [Groq console](https://console.groq.com/) คลิก **Create API Key** และคัดลอกคีย์ 2. เรียกใช้คำสั่ง `/connect` และค้นหา Groq @@ -894,9 +895,9 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here ### Hugging Face -[ผู้ให้บริการการอนุมานใบหน้าแบบกอด](https://huggingface.co/docs/inference-providers) ช่วยให้สามารถเข้าถึงโมเดลแบบเปิดที่รองรับโดยผู้ให้บริการมากกว่า 17 ราย +[ผู้ให้บริการการอนุมานHugging Face](https://huggingface.co/docs/inference-providers) ช่วยให้สามารถเข้าถึงโมเดลแบบเปิดที่รองรับโดยผู้ให้บริการมากกว่า 17 ราย -1. ไปที่ [การตั้งค่าการกอดใบหน้า](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) เพื่อสร้างโทเค็นที่มีสิทธิ์ในการโทรไปยังผู้ให้บริการการอนุมาน +1. ไปที่ [การตั้งค่าHugging Face](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained) เพื่อสร้างโทเค็นที่มีสิทธิ์ในการโทรไปยังผู้ให้บริการการอนุมาน 2. เรียกใช้คำสั่ง `/connect` และค้นหา **Hugging Face** @@ -904,7 +905,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here /connect ``` -3. ป้อนโทเค็น Hugging Face ของคุณ +3. ป้อน Hugging Face Token ของคุณ ```txt ┌ API key @@ -1101,7 +1102,7 @@ IO.NET มี 17 โมเดลที่ได้รับการปรับ --- -### แอลเอ็ม สตูดิโอ +### LM Studio คุณสามารถกำหนดค่า opencode เพื่อใช้โมเดลท้องถิ่นผ่าน LM Studio @@ -1135,7 +1136,7 @@ IO.NET มี 17 โมเดลที่ได้รับการปรับ --- -### มูนช็อตเอไอ +### Moonshot AI วิธีใช้ Kimi K2 จาก Moonshot AI: @@ -1164,7 +1165,7 @@ IO.NET มี 17 โมเดลที่ได้รับการปรับ --- -### มินิแม็กซ์ +### MiniMax 1. ไปที่ [MiniMax API Console](https://platform.minimax.io/login) สร้างบัญชี และสร้างคีย์ API @@ -1218,7 +1219,7 @@ IO.NET มี 17 โมเดลที่ได้รับการปรับ --- -### โอลามา +### Ollama คุณสามารถกำหนดค่า opencode เพื่อใช้โมเดลท้องถิ่นผ่าน Ollama @@ -1260,7 +1261,7 @@ Ollama สามารถกำหนดค่าตัวเองสำหร --- -### โอลามา คลาวด์ +### Ollama Cloud วิธีใช้ Ollama Cloud กับ OpenCode: @@ -1326,7 +1327,7 @@ Ollama สามารถกำหนดค่าตัวเองสำหร /models ``` -##### ใช้ปุ่ม API +##### ใช้API Key หากคุณมีคีย์ API อยู่แล้ว คุณสามารถเลือก **ป้อนคีย์ API ด้วยตนเอง** และวางลงใน terminal ของคุณ @@ -1867,8 +1868,8 @@ Vercel AI Gateway ช่วยให้คุณเข้าถึงโมเ - **apiKey**: ตั้งค่าโดยใช้ไวยากรณ์ของตัวแปร `env` [เรียนรู้เพิ่มเติม](/docs/config#env-vars) - **ส่วนหัว**: ส่วนหัวที่กำหนดเองส่งไปพร้อมกับคำขอแต่ละรายการ -- **limit.context**: โทเค็นอินพุตสูงสุดที่โมเดลยอมรับ -- **limit.output**: โทเค็นสูงสุดที่โมเดลสามารถสร้างได้ +- **limit.context**: Input Tokens สูงสุดที่โมเดลยอมรับ +- **limit.output**: Output Tokens สูงสุดที่โมเดลสามารถสร้างได้ ช่อง `limit` ช่วยให้ OpenCode เข้าใจบริบทที่คุณเหลืออยู่ ผู้ให้บริการมาตรฐานจะดึงข้อมูลเหล่านี้จาก models.dev โดยอัตโนมัติ diff --git a/packages/web/src/content/docs/th/troubleshooting.mdx b/packages/web/src/content/docs/th/troubleshooting.mdx index f73bdd3085..13a84aea27 100644 --- a/packages/web/src/content/docs/th/troubleshooting.mdx +++ b/packages/web/src/content/docs/th/troubleshooting.mdx @@ -29,7 +29,7 @@ opencode เก็บข้อมูลเซสชันและข้อม ไดเรกทอรีนี้ประกอบด้วย: -- `auth.json` - ​​ข้อมูลการตรวจสอบสิทธิ์ เช่น คีย์ API, โทเค็น OAuth +- `auth.json` - ​​ข้อมูลการตรวจสอบสิทธิ์ เช่น คีย์ API, OAuth Token - `log/` - ​​บันทึกแอปพลิเคชัน - `project/` - ​​ข้อมูลเฉพาะโครงการ เช่น ข้อมูลเซสชันและข้อความ - หากโปรเจ็กต์อยู่ภายใน repo Git มันจะถูกจัดเก็บไว้ใน `.//storage/` diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 81143c1527..35534bb175 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -112,43 +112,43 @@ https://opencode.ai/zen/v1/models ## ราคา -เราสนับสนุนรูปแบบการจ่ายเงินตามการใช้งาน ด้านล่างนี้คือราคา **ต่อโทเค็น 1M** +เราสนับสนุนรูปแบบการจ่ายเงินตามการใช้งาน ด้านล่างนี้คือราคา **ต่อtokens 1M** | Model | ป้อนข้อมูล | เอาท์พุต | แคชอ่าน | เขียนในแคช | | --------------------------------------- | ------------ | ------------ | ------------- | ---------- | -| บิ๊กดอง | ฟรี | ฟรี | ฟรี | - | -| MiniMax M2.1 ฟรี | ฟรี | ฟรี | ฟรี | - | -| มินิแม็กซ์ M2.1 | $0.30 | $1.20 | $0.10 | - | -| GLM 4.7 ฟรี | ฟรี | ฟรี | ฟรี | - | +| Big Pickle | ฟรี | ฟรี | ฟรี | - | +| MiniMax M2.1 Free | ฟรี | ฟรี | ฟรี | - | +| Miniแม็กซ์ M2.1 | $0.30 | $1.20 | $0.10 | - | +| GLM 4.7 Free | ฟรี | ฟรี | ฟรี | - | | GLM 4.7 | $0.60 | $2.20 | $0.10 | - | | GLM 4.6 | $0.60 | $2.20 | $0.10 | - | -| Kimi K2.5 ฟรี | ฟรี | ฟรี | ฟรี | - | -| คิมิ K2.5 | $0.60 | $3.00 | $0.08 | - | -| คิมิ K2 กำลังคิด | $0.40 | $2.50 | - | - | -| คิมิ K2 | $0.40 | $2.50 | - | - | -| คิวเวน3 โคเดอร์ 480B | $0.45 | $1.50 | - | - | -| Claude Sonnet 4.5 (โทเค็น ≤ 200K) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4.5 (> โทเค็น 200,000) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (โทเค็น 200,000 โทเค็น) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> โทเค็น 200,000) | $6.00 | $22.50 | $0.60 | $7.50 | -| คล็อด ไฮกุ 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | -| คล็อด ไฮกุ 3.5 | $0.80 | $4.00 | $0.08 | $1.00 | -| Claude Opus 4.6 (โทเค็น ≤ 200K) | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.6 (> โทเค็น 200,000) | $10.00 | $37.50 | $1.00 | $12.50 | -| คลอดด์บทประพันธ์ 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| คลอดด์บทประพันธ์ 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | -| Gemini 3 Pro (โทเค็น ≤ 200,000) | 2.00 ดอลลาร์ | $12.00 | $0.20 | - | -| Gemini 3 Pro (โทเค็น> 200,000) | $4.00 | $18.00 | $0.40 | - | -| ราศีเมถุน 3 แฟลช | $0.50 | $3.00 | $0.05 | - | +| Kimi K2.5 Free | ฟรี | ฟรี | ฟรี | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - | +| Kimi K2 Thinking | $0.40 | $2.50 | - | - | +| Kimi K2 | $0.40 | $2.50 | - | - | +| Qwen3 Coder 480B | $0.45 | $1.50 | - | - | +| Claude Sonnet 4.5 (tokens ≤ 200K) | $3.00 | $15.00 | $0.30 | $3.75 | +| Claude Sonnet 4.5 (> tokens 200,000) | $6.00 | $22.50 | $0.60 | $7.50 | +| Claude Sonnet 4 (tokens 200,000 tokens) | $3.00 | $15.00 | $0.30 | $3.75 | +| Claude Sonnet 4 (> tokens 200,000) | $6.00 | $22.50 | $0.60 | $7.50 | +| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | +| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 | +| Claude Opus 4.6 (tokens ≤ 200K) | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.6 (> tokens 200,000) | $10.00 | $37.50 | $1.00 | $12.50 | +| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Gemini 3 Pro (tokens ≤ 200,000) | 2.00 ดอลลาร์ | $12.00 | $0.20 | - | +| Gemini 3 Pro (tokens> 200,000) | $4.00 | $18.00 | $0.40 | - | +| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | | GPT 5.2 | $1.75 | $14.00 | 0.175 ดอลลาร์ | - | -| GPT 5.2 โคเด็กซ์ | $1.75 | $14.00 | 0.175 ดอลลาร์ | - | +| GPT 5.2 Codex | $1.75 | $14.00 | 0.175 ดอลลาร์ | - | | GPT 5.1 | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | -| GPT 5.1 โคเด็กซ์ | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | -| GPT 5.1 โคเด็กซ์สูงสุด | $1.25 | $10.00 | $0.125 | - | -| GPT 5.1 โคเด็กซ์มินิ | $0.25 | 2.00 ดอลลาร์ | 0.025 ดอลลาร์ | - | +| GPT 5.1 Codex | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | +| GPT 5.1 CodexMax | $1.25 | $10.00 | $0.125 | - | +| GPT 5.1 CodexMini | $0.25 | 2.00 ดอลลาร์ | 0.025 ดอลลาร์ | - | | GPT 5 | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | -| GPT 5 โคเด็กซ์ | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | -| GPT 5นาโน | ฟรี | ฟรี | ฟรี | - | +| GPT 5 Codex | $1.07 | 8.50 ดอลลาร์ | $0.107 | - | +| GPT 5Nano | ฟรี | ฟรี | ฟรี | - | คุณอาจสังเกตเห็น _Claude Haiku 3.5_ ในประวัติการใช้งานของคุณ นี่คือ [โมเดลราคาประหยัด](/docs/config/#models) ที่ใช้ในการสร้างชื่อเซสชันของคุณ @@ -191,9 +191,9 @@ https://opencode.ai/zen/v1/models โมเดลทั้งหมดของเราโฮสต์ในสหรัฐอเมริกา ผู้ให้บริการของเราปฏิบัติตามนโยบายการเก็บรักษาเป็นศูนย์ และไม่ใช้ข้อมูลของคุณสำหรับการฝึกโมเดล โดยมีข้อยกเว้นต่อไปนี้: - Big Pickle: ในช่วงระยะเวลาว่าง ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดลได้ -- GLM 4.7 ฟรี: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล -- Kimi K2.5 ฟรี: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล -- MiniMax M2.1 ฟรี: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล +- GLM 4.7 Free: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล +- Kimi K2.5 Free: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล +- MiniMax M2.1 Free: ในช่วงระยะเวลาฟรี ข้อมูลที่รวบรวมอาจนำไปใช้ในการปรับปรุงโมเดล - OpenAI API: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [นโยบายข้อมูลของ OpenAI](https://platform.openai.com/docs/guides/your-data) - Anthropic API: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [นโยบายข้อมูลของ Anthropic](https://docs.anthropic.com/en/docs/claude-code/data-usage) @@ -233,11 +233,11 @@ Zen ยังใช้งานได้ดีกับทีมอีกด้ --- -### นำกุญแจมาเอง +### Bring Your Own Key -คุณสามารถใช้ปุ่ม OpenAI หรือ Anthropic API ของคุณเองในขณะที่ยังเข้าถึงรุ่นอื่นๆ ใน Zen ได้ +คุณสามารถใช้คีย์ OpenAI หรือ Anthropic API ของคุณเองในขณะที่ยังเข้าถึงรุ่นอื่นๆ ใน Zen ได้ -เมื่อคุณใช้คีย์ของคุณเอง โทเค็นจะถูกเรียกเก็บเงินโดยตรงจากผู้ให้บริการ ไม่ใช่โดย Zen +เมื่อคุณใช้คีย์ของคุณเอง tokensจะถูกเรียกเก็บเงินโดยตรงจากผู้ให้บริการ ไม่ใช่โดย Zen ตัวอย่างเช่น องค์กรของคุณอาจมีคีย์สำหรับ OpenAI หรือ Anthropic อยู่แล้ว และคุณต้องการใช้สิ่งนั้นแทนอันที่ Zen มอบให้ @@ -249,6 +249,6 @@ Zen ยังใช้งานได้ดีกับทีมอีกด้ เราสร้าง OpenCode Zen เพื่อ: 1. **เกณฑ์มาตรฐาน** โมเดลที่ดีที่สุด/providers สำหรับตัวแทนการเข้ารหัส -2. เข้าถึงตัวเลือก **คุณภาพสูงสุด** และไม่ดาวน์เกรดประสิทธิภาพหรือเปลี่ยนเส้นทางไปยังผู้ให้บริการที่ราคาถูกกว่า +2. เข้าถึงตัวเลือก **คุณภาพMax** และไม่ดาวน์เกรดประสิทธิภาพหรือเปลี่ยนเส้นทางไปยังผู้ให้บริการที่ราคาถูกกว่า 3. ส่งต่อ **ราคาที่ลดลง** โดยการขายในราคาต้นทุน ดังนั้นมาร์กอัปเพียงอย่างเดียวคือครอบคลุมค่าธรรมเนียมการดำเนินการของเรา 4. **ไม่มีการล็อคอิน** โดยอนุญาตให้คุณใช้กับเอเจนต์การเขียนโค้ดอื่นๆ และให้คุณใช้ผู้ให้บริการรายอื่นกับ OpenCode ได้เช่นกัน diff --git a/packages/web/src/content/docs/tr/agents.mdx b/packages/web/src/content/docs/tr/agents.mdx index bb3dd7e5e8..c9036810aa 100644 --- a/packages/web/src/content/docs/tr/agents.mdx +++ b/packages/web/src/content/docs/tr/agents.mdx @@ -13,7 +13,7 @@ Bir oturum sırasında agent'lar arasında geçiş yapabilir veya onları `@` if --- -## Types +## Türler opencode'da iki tür aracı vardır; birincil ajanlar ve alt ajanlar. @@ -40,7 +40,7 @@ opencode, **General** ve **Explore** olmak üzere iki yerleşik subagent ile bir --- -## Built-in +## Dahili opencode iki yerleşik primary agent ve iki yerleşik subagent ile birlikte gelir. @@ -600,7 +600,7 @@ Kullanıcılar, agent'ın görev izinleri bunu reddetse bile, her zaman herhangi Agent'ın kullanıcı arayüzündeki görsel görünümünü `color` seçeneğiyle özelleştirin. Bu, agent'ın arayüzde nasıl göründüğünü etkiler. -cebeli bir onaltılık renk (ör. `#FF5733`) veya tema rengini kullanın: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. +geçerli bir onaltılık renk (ör. `#FF5733`) veya tema rengini kullanın: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. ```json title="opencode.json" { @@ -662,7 +662,7 @@ Mevcut modellerin listesini görmek için `opencode models` komutunu çalıştı --- -## Create agents +## Agent oluşturma Aşağıdaki komutu kullanarak yeni agent'lar oluşturabilirsiniz: @@ -680,7 +680,7 @@ Bu etkileşimli komut şunları sağlayacaktır: --- -## Use cases +## Kullanım durumları Farklı agent'lara yönelik bazı yaygın kullanım durumları aşağıda verilmiştir. @@ -692,7 +692,7 @@ Farklı agent'lara yönelik bazı yaygın kullanım durumları aşağıda verilm --- -## Examples +## Örnekler Yararlı bulabileceğiniz bazı örnek agent'ları burada bulabilirsiniz. diff --git a/packages/web/src/content/docs/tr/config.mdx b/packages/web/src/content/docs/tr/config.mdx index 26f5a44aac..a2f4ff7c4c 100644 --- a/packages/web/src/content/docs/tr/config.mdx +++ b/packages/web/src/content/docs/tr/config.mdx @@ -1,6 +1,6 @@ --- title: Yapılandırma -description: opencode JSON devresini kullanmıyor. +description: opencode JSON yapılandırması kullanır. --- opencode'u JSON yapılandırma dosyası kullanarak yapılandırabilirsiniz. diff --git a/packages/web/src/content/docs/tr/formatters.mdx b/packages/web/src/content/docs/tr/formatters.mdx index f4e8182c95..34dc3b46dd 100644 --- a/packages/web/src/content/docs/tr/formatters.mdx +++ b/packages/web/src/content/docs/tr/formatters.mdx @@ -11,32 +11,32 @@ opencode, dosyaları dile özgü formatlayıcılar kullanılarak yazıldıktan v opencode, popüler diller ve çerçeveler için çeşitli yerleşik biçimlendiricilerle birlikte gelir. Aşağıda ihtiyaç duyduğu biçimlendiricilerin, desteklenen dosya uzantılarının ve komutların veya yapılandırma seçeneklerinin bir listesi bulunmaktadır. -| Formatter | Extensions | Requirements | -| ------------------ | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | -| gofmt | .go | `gofmt` komutu mevcut | -| karışım | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` komutu mevcut | -| daha güzel | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://prettier.io/docs/en/index.html) | `prettier` bağımlılığı `package.json`'de | -| biyom | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://biomejs.dev/) | `biome.json(c)` yapılandırma dosyası | -| zig | .zig, .zon | `zig` komutu mevcut | -| clang formatı | .c, .cpp, .h, .hpp, .ino ve [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` yapılandırma dosyası | -| klint | .kt, .kts | `ktlint` komutu mevcut | -| fırfır | .py, .pyi | `ruff` komutu yapılandırmayla kullanılabilir | -| pas fmt | .rs | `rustfmt` komutu mevcut | -| kargo fmt | .rs | `cargo fmt` komutu mevcut | -| UV | .py, .pyi | `uv` komutu mevcut | -| rubokop | .rb, .rake, .gemspec, .ru | `rubocop` komutu mevcut | -| standartrb | .rb, .rake, .gemspec, .ru | `standardrb` komutu mevcut | -| htmlgüzelleştirici | .erb, .html.erb | `htmlbeautifier` komutu mevcut | -| hava | .R | `air` komutu mevcut | -| dart | .dart | `dart` komutu mevcut | -| ocamlformat | .ml, .mli | `ocamlformat` komutu mevcut ve `.ocamlformat` yapılandırma dosyası | -| yeryüzü | .tf, .tfvars | `terraform` komutu mevcut | -| parıltı | .gliam | `gleam` komutu mevcut | -| nixfmt | .nix | `nixfmt` komutu mevcut | -| shfmt | .sh, .bash | `shfmt` komutu mevcut | -| pint | .php | `laravel/pint` dependency in `composer.json` | -| oxfmt (Deneysel) | .js, .jsx, .ts, .tsx | `oxfmt` içindeki `package.json` bağımlılığı ve [experimental env variable flag](/docs/cli/#experimental) | -| ormolu | .hs | `ormolu` komutu mevcut | +| Formatter | Extensions | Requirements | +| -------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| gofmt | .go | `gofmt` komutu mevcut | +| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` komutu mevcut | +| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://prettier.io/docs/en/index.html) | `package.json` içinde `prettier` bağımlılığı | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://biomejs.dev/) | `biome.json(c)` yapılandırma dosyası | +| zig | .zig, .zon | `zig` komutu mevcut | +| clang-format | .c, .cpp, .h, .hpp, .ino ve [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` yapılandırma dosyası | +| ktlint | .kt, .kts | `ktlint` komutu mevcut | +| ruff | .py, .pyi | `ruff` komutu yapılandırmayla kullanılabilir | +| rustfmt | .rs | `rustfmt` komutu mevcut | +| cargofmt | .rs | `cargo fmt` komutu mevcut | +| uv | .py, .pyi | `uv` komutu mevcut | +| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` komutu mevcut | +| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` komutu mevcut | +| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` komutu mevcut | +| air | .R | `air` komutu mevcut | +| dart | .dart | `dart` komutu mevcut | +| ocamlformat | .ml, .mli | `ocamlformat` komutu mevcut ve `.ocamlformat` yapılandırma dosyası | +| terraform | .tf, .tfvars | `terraform` komutu mevcut | +| gleam | .gleam | `gleam` komutu mevcut | +| nixfmt | .nix | `nixfmt` komutu mevcut | +| shfmt | .sh, .bash | `shfmt` komutu mevcut | +| pint | .php | `composer.json` içinde `laravel/pint` bağımlılığı | +| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `package.json` içinde `oxfmt` bağımlılığı ve [experimental env variable flag](/docs/cli/#experimental) | +| ormolu | .hs | `ormolu` komutu mevcut | Yani eğer projenizin `prettier` dosyasında `package.json` varsa, opencode bunu otomatik olarak kullanacaktır. @@ -67,14 +67,14 @@ Biçimlendiricileri opencode yapılandırmanızdaki `formatter` bölümü aracı Her formatlayıcı yapılandırması aşağıdakileri destekler: -| Emlak | Tür | Açıklama | -| ------------- | ------ | ---------------------------------------------------------------------- | -| `disabled` | boole | Biçimlendiriciyi devre dışı bırakmak için bunu `true` olarak ayarlayın | -| `command` | dize[] | Biçimlendirme için çalıştırılacak komut | -| `environment` | nesne | Biçimlendiriciyi çalıştırırken ayarlanacak ortam değişkenleri | -| `extensions` | dize[] | Bu formatlayıcının işlemesi gereken dosya uzantıları | +| Property | Type | Açıklama | +| ------------- | -------- | ---------------------------------------------------------------------- | +| `disabled` | boolean | Biçimlendiriciyi devre dışı bırakmak için bunu `true` olarak ayarlayın | +| `command` | string[] | Biçimlendirme için çalıştırılacak komut | +| `environment` | object | Biçimlendiriciyi çalıştırırken ayarlanacak ortam değişkenleri | +| `extensions` | string[] | Bu formatlayıcının işlemesi gereken dosya uzantıları | -Let's look at some examples. +Bazı örneklere bakalım. --- @@ -104,7 +104,7 @@ Let's look at some examples. --- -### Custom formatters +### Özel biçimlendiriciler Komutu, ortam değişkenlerini ve dosya uzantılarını belirterek yerleşik biçimlendiricileri geçersiz kılabilir veya yenilerini ekleyebilirsiniz: diff --git a/packages/web/src/content/docs/tr/lsp.mdx b/packages/web/src/content/docs/tr/lsp.mdx index 27e811ff7a..77b586c6d2 100644 --- a/packages/web/src/content/docs/tr/lsp.mdx +++ b/packages/web/src/content/docs/tr/lsp.mdx @@ -11,40 +11,40 @@ opencode, LLM'nin kod tabanınızla etkileşime girmesine yardımcı olmak için opencode, popüler diller için çeşitli yerleşik LSP sunucularıyla birlikte gelir: -| LSP Sunucu | Uzantılar | Gereksinimler | -| ------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------------- | -| astro | .astro | Astro projeleri için otomatik kurulumlar | -| bash | .sh, .bash, .zsh, .ksh | Bash-dil-sunucusunu otomatik olarak yükler | -| çıngırak | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ projeleri için otomatik kurulumlar | -| csharp | .cs | `.NET SDK` installed | -| clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` komutu mevcut | -| dart | .dart | `dart` komutu mevcut | -| den | .ts, .tsx, .js, .jsx, .mjs | `deno` komutu mevcut (deno.json/deno.jsonc otomatik olarak algılanır) | -| iksir-ls | .ex, .exs | `elixir` komutu mevcut | -| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` dependency in project | -| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` installed | -| parıltı | .gliam | `gleam` komutu mevcut | -| lütfen | .go | `go` komutu mevcut | -| hls | .hs, .lhs | `haskell-language-server-wrapper` komutu mevcut | -| jdtls | .java | `Java SDK (version 21+)` installed | -| kotlin-ls | .kt, .kts | Kotlin projeleri için otomatik kurulumlar | -| lua-ls | .lua | Lua projeleri için otomatik kurulumlar | -| hayır | .nix | `nixd` komutu mevcut | -| ocaml-lsp | .ml, .mli | `ocamllsp` komutu mevcut | -| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` dependency in project | -| php internet | .php | PHP projeleri için otomatik yüklemeler | -| prizma | .prizma | `prisma` komutu mevcut | -| pyright | .py, .pyi | `pyright` dependency installed | -| yakut-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` ve `gem` komutları mevcut | -| pas | .rs | `rust-analyzer` komutu mevcut | -| sourcekit-lsp | .swift, .objc, .objcpp | `swift` installed (`xcode` on macOS) | -| ince | .svelte | Svelte projeleri için otomatik kurulumlar | -| yeryüzü | .tf, .tfvars | GitHub sürümlerinden otomatik yüklemeler | -| minik sis | .typ, .typc | GitHub sürümlerinden otomatik yüklemeler | -| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` dependency in project | -| vue | .vue | Vue projeleri için otomatik yüklemeler | -| yaml-ls | .yaml, .yml | Red Hat yaml-dil-sunucusunu otomatik olarak yükler | -| zl'ler | .zig, .zon | `zig` komutu mevcut | +| LSP Sunucu | Uzantılar | Gereksinimler | +| ------------------ | ------------------------------------------------------------------- | --------------------------------------------------------------------- | +| astro | .astro | Astro projeleri için otomatik kurulumlar | +| bash | .sh, .bash, .zsh, .ksh | `bash-language-server`'ı otomatik olarak yükler | +| clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ projeleri için otomatik kurulumlar | +| csharp | .cs | `.NET SDK` kurulu | +| clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` komutu mevcut | +| dart | .dart | `dart` komutu mevcut | +| deno | .ts, .tsx, .js, .jsx, .mjs | `deno` komutu mevcut (deno.json/deno.jsonc otomatik olarak algılanır) | +| elixir-ls | .ex, .exs | `elixir` komutu mevcut | +| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Projede `eslint` bağımlılığı | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` kurulu | +| gleam | .gleam | `gleam` komutu mevcut | +| gopls | .go | `go` komutu mevcut | +| hls | .hs, .lhs | `haskell-language-server-wrapper` komutu mevcut | +| jdtls | .java | `Java SDK (version 21+)` kurulu | +| kotlin-ls | .kt, .kts | Kotlin projeleri için otomatik kurulumlar | +| lua-ls | .lua | Lua projeleri için otomatik kurulumlar | +| nixd | .nix | `nixd` komutu mevcut | +| ocaml-lsp | .ml, .mli | `ocamllsp` komutu mevcut | +| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Projede `oxlint` bağımlılığı | +| php intelephense | .php | PHP projeleri için otomatik yüklemeler | +| prisma | .prisma | `prisma` komutu mevcut | +| pyright | .py, .pyi | `pyright` bağımlılığı kurulu | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` ve `gem` komutları mevcut | +| rust | .rs | `rust-analyzer` komutu mevcut | +| sourcekit-lsp | .swift, .objc, .objcpp | `swift` kurulu (macOS'ta `xcode`) | +| svelte | .svelte | Svelte projeleri için otomatik kurulumlar | +| terraform | .tf, .tfvars | GitHub sürümlerinden otomatik yüklemeler | +| tinymist | .typ, .typc | GitHub sürümlerinden otomatik yüklemeler | +| typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Projede `typescript` bağımlılığı | +| vue | .vue | Vue projeleri için otomatik yüklemeler | +| yaml-ls | .yaml, .yml | Red Hat yaml-language-server'ı otomatik olarak yükler | +| zls | .zig, .zon | `zig` komutu mevcut | Yukarıdaki dosya uzantılarından biri tespit edildiğinde ve gereksinimler karşılandığında LSP sunucuları otomatik olarak etkinleştirilir. @@ -76,15 +76,15 @@ LSP sunucularını, opencode yapılandırmanızdaki `lsp` bölümü aracılığ Her LSP sunucusu aşağıdakileri destekler: -| Emlak | Tür | Açıklama | -| ---------------- | ------ | -------------------------------------------------------------------- | -| `disabled` | boole | LSP sunucusunu devre dışı bırakmak için bunu `true` olarak ayarlayın | -| `command` | dize[] | LSP sunucusunu başlatma komutu | -| `extensions` | dize[] | Bu LSP sunucusunun işlemesi gereken dosya uzantıları | -| `env` | nesne | Sunucuyu başlatırken ayarlanacak ortam değişkenleri | -| `initialization` | nesne | LSP sunucusuna gönderilecek başlatma seçenekleri | +| Property | Type | Açıklama | +| ---------------- | -------- | -------------------------------------------------------------------- | +| `disabled` | boolean | LSP sunucusunu devre dışı bırakmak için bunu `true` olarak ayarlayın | +| `command` | string[] | LSP sunucusunu başlatma komutu | +| `extensions` | string[] | Bu LSP sunucusunun işlemesi gereken dosya uzantıları | +| `env` | object | Sunucuyu başlatırken ayarlanacak ortam değişkenleri | +| `initialization` | object | LSP sunucusuna gönderilecek başlatma seçenekleri | -Let's look at some examples. +Bazı örneklere bakalım. --- @@ -158,7 +158,7 @@ Başlatma seçenekleri LSP sunucusuna göre değişir. Mevcut seçenekler için --- -### Custom LSP servers +### Özel LSP sunucuları Komutu ve dosya uzantılarını belirterek özel LSP sunucuları ekleyebilirsiniz: diff --git a/packages/web/src/content/docs/zh-cn/enterprise.mdx b/packages/web/src/content/docs/zh-cn/enterprise.mdx index c31ec6c826..9970dd4f18 100644 --- a/packages/web/src/content/docs/zh-cn/enterprise.mdx +++ b/packages/web/src/content/docs/zh-cn/enterprise.mdx @@ -137,7 +137,7 @@ opencode Enterprise 适用于希望确保其代码和数据永远不会离开其
-我们可以使用自己的私有 NPM 注册表吗? +我们可以使用自己的私有 npm 注册表吗? opencode 通过 Bun 的本机 `.npmrc` 文件支持来支持私有 npm 注册表。如果您的组织使用私有注册表,例如 JFrog Artifactory、Nexus 或类似的,请确保开发人员在运行 opencode 之前经过身份验证。 diff --git a/packages/web/src/content/docs/zh-cn/index.mdx b/packages/web/src/content/docs/zh-cn/index.mdx index 51dd7845c5..ad1389bc2b 100644 --- a/packages/web/src/content/docs/zh-cn/index.mdx +++ b/packages/web/src/content/docs/zh-cn/index.mdx @@ -105,7 +105,7 @@ curl -fsSL https://opencode.ai/install | bash scoop install opencode ``` -- **使用 NPM** +- **使用 npm** ```bash npm install -g opencode-ai diff --git a/packages/web/src/content/docs/zh-tw/agents.mdx b/packages/web/src/content/docs/zh-tw/agents.mdx index 7d72695031..fe8b4496ef 100644 --- a/packages/web/src/content/docs/zh-tw/agents.mdx +++ b/packages/web/src/content/docs/zh-tw/agents.mdx @@ -15,7 +15,7 @@ description: 配置和使用專門的代理。 ## 類型 -opencode 中有兩種類型的代理;主要代理人和次代理人。 +opencode 中有兩種類型的代理;主要代理和子代理。 --- diff --git a/packages/web/src/content/docs/zh-tw/commands.mdx b/packages/web/src/content/docs/zh-tw/commands.mdx index 58da24a452..82f9db68e5 100644 --- a/packages/web/src/content/docs/zh-tw/commands.mdx +++ b/packages/web/src/content/docs/zh-tw/commands.mdx @@ -108,7 +108,7 @@ Markdown 文件名成為命令名。例如,`test.md` 讓 --- -### 論據 +### 參數 使用 `$ARGUMENTS` 佔位符將參數傳遞給命令。 @@ -161,7 +161,7 @@ with the following content: $3 --- -### 外殼輸出 +### Shell 輸出 使用 _!`command`_ 將 [bash命令](/docs/tui#bash-commands) 輸出注入到提示符中。 @@ -254,9 +254,9 @@ Check for performance issues and suggest improvements. --- -### 代理人 +### 代理 -使用`agent` 配置可選擇指定哪個[代理人](/docs/agents) 應執行此命令。 +使用`agent` 配置可選擇指定哪個[代理](/docs/agents) 應執行此命令。 如果這是 [子代理](/docs/agents/#subagents) 該命令將默認觸發子代理調用。 要禁用此行為,請將`subtask` 設置為`false`。 @@ -278,7 +278,7 @@ Check for performance issues and suggest improvements. 使用`subtask` 布爾值強制命令觸發[子代理](/docs/agents/#subagents) 調用。 如果您希望命令不污染您的主要上下文並且將**強制**代理充當子代理,那麼這非常有用, -即使`mode` 在[代理人](/docs/agents) 配置上設置為`primary`。 +即使`mode` 在[代理](/docs/agents) 配置上設置為`primary`。 ```json title="opencode.json" { diff --git a/packages/web/src/content/docs/zh-tw/config.mdx b/packages/web/src/content/docs/zh-tw/config.mdx index ba3b1cd692..d623f0b797 100644 --- a/packages/web/src/content/docs/zh-tw/config.mdx +++ b/packages/web/src/content/docs/zh-tw/config.mdx @@ -57,7 +57,7 @@ opencode 支持 **JSON** 和 **JSONC**(帶註釋的 JSON)格式。 --- -### 偏僻的 +### 遠程 組織可以通過 `.well-known/opencode` 端點提供默認配置。當您向支持它的提供商進行身份驗證時,會自動獲取該信息。 diff --git a/packages/web/src/content/docs/zh-tw/troubleshooting.mdx b/packages/web/src/content/docs/zh-tw/troubleshooting.mdx index 8293f41d0c..cd9ed3012f 100644 --- a/packages/web/src/content/docs/zh-tw/troubleshooting.mdx +++ b/packages/web/src/content/docs/zh-tw/troubleshooting.mdx @@ -20,7 +20,7 @@ description: 常見問題以及如何解決它們。 --- -## 貯存 +## 存儲 opencode 將會話數據和其他應用程式數據存儲在磁盤上: diff --git a/packages/web/src/content/i18n/ar.json b/packages/web/src/content/i18n/ar.json index 9031d620bc..d5c74b2890 100644 --- a/packages/web/src/content/i18n/ar.json +++ b/packages/web/src/content/i18n/ar.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "النماذج", "share.cost": "التكلفة", - "share.input_tokens": "رموز الإدخال", - "share.output_tokens": "رموز الإخراج", - "share.reasoning_tokens": "رموز الاستدلال", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "التمرير إلى الأسفل", "share.attachment": "مرفق", "share.thinking": "تفكير", diff --git a/packages/web/src/content/i18n/bs.json b/packages/web/src/content/i18n/bs.json index 5c23cf9d70..8cc47d72d7 100644 --- a/packages/web/src/content/i18n/bs.json +++ b/packages/web/src/content/i18n/bs.json @@ -58,7 +58,7 @@ "share.models": "Modeli", "share.cost": "Cijena", "share.input_tokens": "Input Tokens", - "share.output_tokens": "Izlazni tokeni", + "share.output_tokens": "Output Tokens", "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Pomaknite se na dno", "share.attachment": "Prilog", diff --git a/packages/web/src/content/i18n/da.json b/packages/web/src/content/i18n/da.json index 46d23a25f9..3a00d54a63 100644 --- a/packages/web/src/content/i18n/da.json +++ b/packages/web/src/content/i18n/da.json @@ -21,10 +21,10 @@ "app.lander.features.use_any_model.suffix": "herunder lokale modeller.", "app.lander.images.tui.caption": "opencode TUI med tokyonight-temaet", "app.lander.images.tui.alt": "opencode TUI med tokyonight-temaet", - "app.lander.images.vscode.caption": "opencode og VS Code", - "app.lander.images.vscode.alt": "opencode og VS Code", - "app.lander.images.github.caption": "opencode og GitHub", - "app.lander.images.github.alt": "opencode og GitHub", + "app.lander.images.vscode.caption": "opencode i VS Code", + "app.lander.images.vscode.alt": "opencode i VS Code", + "app.lander.images.github.caption": "opencode i GitHub", + "app.lander.images.github.alt": "opencode i GitHub", "share.meta_description": "opencode - AI-kodningsagenten bygget til terminalen.", "share.not_found": "Ikke fundet", "share.link_to_message": "Link til denne besked", @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modeller", "share.cost": "Omkostning", - "share.input_tokens": "Input tokens", - "share.output_tokens": "Output tokens", - "share.reasoning_tokens": "Reasoning tokens", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Rul til bunden", "share.attachment": "Vedhæftet fil", "share.thinking": "Tænker", @@ -67,8 +67,8 @@ "share.creating_plan": "Oprettelse af plan", "share.completing_plan": "Færdiggør plan", "share.updating_plan": "Opdatering af plan", - "share.match_one": "kamp", - "share.match_other": "kampe", + "share.match_one": "match", + "share.match_other": "matches", "share.result_one": "resultat", "share.result_other": "resultater", "share.debug_key": "Nøgle" diff --git a/packages/web/src/content/i18n/de.json b/packages/web/src/content/i18n/de.json index 004f503fd1..636ba9f8e4 100644 --- a/packages/web/src/content/i18n/de.json +++ b/packages/web/src/content/i18n/de.json @@ -19,8 +19,8 @@ "app.lander.features.use_any_model.title": "Beliebiges Modell nutzen", "app.lander.features.use_any_model.prefix": "Unterstützt 75+ LLM-Provider über", "app.lander.features.use_any_model.suffix": "einschließlich lokaler Modelle.", - "app.lander.images.tui.caption": "opencode TUI mit dem tokyonight-Theme", - "app.lander.images.tui.alt": "opencode TUI mit dem tokyonight-Theme", + "app.lander.images.tui.caption": "opencode TUI mit dem tokyonight Theme", + "app.lander.images.tui.alt": "opencode TUI mit dem tokyonight Theme", "app.lander.images.vscode.caption": "opencode in VS Code", "app.lander.images.vscode.alt": "opencode in VS Code", "app.lander.images.github.caption": "opencode in GitHub", @@ -53,13 +53,13 @@ "share.error_id_not_found": "ID nicht gefunden", "share.error_api_url_not_found": "API URL nicht gefunden", "share.error_connection_failed": "Verbindung fehlgeschlagen", - "share.opencode_version": "opencode-Version", + "share.opencode_version": "opencode Version", "share.opencode_name": "opencode", "share.models": "Modelle", "share.cost": "Kosten", - "share.input_tokens": "Eingabetoken", - "share.output_tokens": "Ausgabetoken", - "share.reasoning_tokens": "Reasoning-Tokens", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Nach unten scrollen", "share.attachment": "Anhang", "share.thinking": "Denken", diff --git a/packages/web/src/content/i18n/es.json b/packages/web/src/content/i18n/es.json index 351970c797..c98215fde2 100644 --- a/packages/web/src/content/i18n/es.json +++ b/packages/web/src/content/i18n/es.json @@ -15,7 +15,7 @@ "app.lander.features.shareable_links.title": "Enlaces para compartir", "app.lander.features.shareable_links.description": "Comparte un enlace a cualquier sesion para referencia o depuracion.", "app.lander.features.github_copilot.description": "Inicia sesion con GitHub para usar tu cuenta Copilot.", - "app.lander.features.chatgpt_plus_pro.description": "Inicia sesion con OpenAI para usar tu cuenta ChatGPT Plus o Pro.", + "app.lander.features.chatgpt_plus_pro.description": "Inicia sesion con OpenAI para usar tu cuenta ChatGPT Plus or Pro.", "app.lander.features.use_any_model.title": "Usa cualquier modelo", "app.lander.features.use_any_model.prefix": "Admite más de 75 proveedores LLM a través de", "app.lander.features.use_any_model.suffix": "incluyendo modelos locales.", @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modelos", "share.cost": "Costo", - "share.input_tokens": "Tokens de entrada", - "share.output_tokens": "Tokens de salida", - "share.reasoning_tokens": "Tokens de razonamiento", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Desplazarse hacia abajo", "share.attachment": "Adjunto", "share.thinking": "Pensamiento", diff --git a/packages/web/src/content/i18n/fr.json b/packages/web/src/content/i18n/fr.json index 942beeb063..ef1760aa71 100644 --- a/packages/web/src/content/i18n/fr.json +++ b/packages/web/src/content/i18n/fr.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modèles", "share.cost": "Coût", - "share.input_tokens": "Jetons d'entrée", - "share.output_tokens": "Jetons de sortie", - "share.reasoning_tokens": "Jetons de raisonnement", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Faire défiler vers le bas", "share.attachment": "Pièce jointe", "share.thinking": "Réflexion", diff --git a/packages/web/src/content/i18n/it.json b/packages/web/src/content/i18n/it.json index cbe5e76484..a1ad90e546 100644 --- a/packages/web/src/content/i18n/it.json +++ b/packages/web/src/content/i18n/it.json @@ -1,13 +1,13 @@ { - "app.head.titleSuffix": "Agente AI di coding creato per il terminal", + "app.head.titleSuffix": "Agente AI di coding creato per il terminale", "app.header.home": "Home", "app.header.docs": "Documentazione", "app.footer.issueLink": "Hai trovato un bug? Apri una issue", "app.footer.discordLink": "Unisciti alla nostra community Discord", - "app.lander.hero.title": "L'agente AI di coding creato per il terminal.", + "app.lander.hero.title": "L'agente AI di coding creato per il terminale.", "app.lander.cta.getStarted": "Inizia", "app.lander.features.native_tui.title": "TUI nativa", - "app.lander.features.native_tui.description": "Un'interfaccia per terminal reattiva, nativa e personalizzabile.", + "app.lander.features.native_tui.description": "Un'interfaccia per terminale reattiva, nativa e personalizzabile.", "app.lander.features.lsp_enabled.title": "LSP abilitato", "app.lander.features.lsp_enabled.description": "Carica automaticamente gli LSP corretti per l'LLM.", "app.lander.features.multi_session.title": "Multi-sessione", @@ -25,7 +25,7 @@ "app.lander.images.vscode.alt": "opencode in VS Code", "app.lander.images.github.caption": "opencode in GitHub", "app.lander.images.github.alt": "opencode in GitHub", - "share.meta_description": "opencode - L'agente AI di coding creato per il terminal.", + "share.meta_description": "opencode - L'agente AI di coding creato per il terminale.", "share.not_found": "Non trovato", "share.link_to_message": "Link a questo messaggio", "share.copied": "Copiato!", @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modelli", "share.cost": "Costo", - "share.input_tokens": "Token di input", - "share.output_tokens": "Token di output", - "share.reasoning_tokens": "Token di ragionamento", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Scorri in basso", "share.attachment": "Allegato", "share.thinking": "Elaborazione", diff --git a/packages/web/src/content/i18n/ja.json b/packages/web/src/content/i18n/ja.json index ed343a65c0..b3f579aaef 100644 --- a/packages/web/src/content/i18n/ja.json +++ b/packages/web/src/content/i18n/ja.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "モデル", "share.cost": "コスト", - "share.input_tokens": "入力トークン", - "share.output_tokens": "出力トークン", - "share.reasoning_tokens": "推論トークン", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "一番下までスクロール", "share.attachment": "添付ファイル", "share.thinking": "思考", diff --git a/packages/web/src/content/i18n/ko.json b/packages/web/src/content/i18n/ko.json index e917cc08d9..c34bd8db17 100644 --- a/packages/web/src/content/i18n/ko.json +++ b/packages/web/src/content/i18n/ko.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "모델", "share.cost": "비용", - "share.input_tokens": "입력 토큰", - "share.output_tokens": "출력 토큰", - "share.reasoning_tokens": "추론 토큰", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "맨 아래로 이동", "share.attachment": "첨부 파일", "share.thinking": "생각 중", diff --git a/packages/web/src/content/i18n/nb.json b/packages/web/src/content/i18n/nb.json index 370ca7160d..a67ffd8e93 100644 --- a/packages/web/src/content/i18n/nb.json +++ b/packages/web/src/content/i18n/nb.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modeller", "share.cost": "Kostnad", - "share.input_tokens": "Input tokens", - "share.output_tokens": "Output tokens", - "share.reasoning_tokens": "Reasoning tokens", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Rull til bunnen", "share.attachment": "Vedlegg", "share.thinking": "Tenker", diff --git a/packages/web/src/content/i18n/pl.json b/packages/web/src/content/i18n/pl.json index f2999590dd..c42fe1892a 100644 --- a/packages/web/src/content/i18n/pl.json +++ b/packages/web/src/content/i18n/pl.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modele", "share.cost": "Koszt", - "share.input_tokens": "Tokeny wejściowe", - "share.output_tokens": "Tokeny wyjściowe", - "share.reasoning_tokens": "Tokeny rozumowania", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Przewiń w dół", "share.attachment": "Załącznik", "share.thinking": "Myślenie", diff --git a/packages/web/src/content/i18n/pt-BR.json b/packages/web/src/content/i18n/pt-BR.json index 6e426cc44d..dca9e841a6 100644 --- a/packages/web/src/content/i18n/pt-BR.json +++ b/packages/web/src/content/i18n/pt-BR.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modelos", "share.cost": "Custo", - "share.input_tokens": "Tokens de Entrada", - "share.output_tokens": "Tokens de Saída", - "share.reasoning_tokens": "Tokens de Raciocínio", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Rolar para baixo", "share.attachment": "Anexo", "share.thinking": "Pensando", diff --git a/packages/web/src/content/i18n/ru.json b/packages/web/src/content/i18n/ru.json index 0a68f1ae04..6771bd1bea 100644 --- a/packages/web/src/content/i18n/ru.json +++ b/packages/web/src/content/i18n/ru.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Модели", "share.cost": "Стоимость", - "share.input_tokens": "Входные токены", - "share.output_tokens": "Выходные токены", - "share.reasoning_tokens": "Токены рассуждений", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "Прокрутить вниз", "share.attachment": "Вложение", "share.thinking": "Размышление", diff --git a/packages/web/src/content/i18n/th.json b/packages/web/src/content/i18n/th.json index 11eb7145cf..7c4606604b 100644 --- a/packages/web/src/content/i18n/th.json +++ b/packages/web/src/content/i18n/th.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "โมเดล", "share.cost": "ค่าใช้จ่าย", - "share.input_tokens": "โทเค็นอินพุต", - "share.output_tokens": "โทเค็นเอาต์พุต", - "share.reasoning_tokens": "โทเค็นการให้เหตุผล", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "เลื่อนไปด้านล่าง", "share.attachment": "ไฟล์แนบ", "share.thinking": "กำลังคิด", diff --git a/packages/web/src/content/i18n/tr.json b/packages/web/src/content/i18n/tr.json index 2b6fd9c835..c639079880 100644 --- a/packages/web/src/content/i18n/tr.json +++ b/packages/web/src/content/i18n/tr.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "Modeller", "share.cost": "Maliyet", - "share.input_tokens": "Girdi Token'ları", - "share.output_tokens": "Çıktı Token'ları", - "share.reasoning_tokens": "Reasoning Token'ları", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "En alta kaydır", "share.attachment": "Ek", "share.thinking": "Düşünüyor", diff --git a/packages/web/src/content/i18n/zh-CN.json b/packages/web/src/content/i18n/zh-CN.json index e1c9f0c9ea..0b731442c1 100644 --- a/packages/web/src/content/i18n/zh-CN.json +++ b/packages/web/src/content/i18n/zh-CN.json @@ -57,9 +57,9 @@ "share.opencode_name": "opencode", "share.models": "模型", "share.cost": "成本", - "share.input_tokens": "输入 Tokens", - "share.output_tokens": "输出 Tokens", - "share.reasoning_tokens": "推理 Tokens", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "滚动到底部", "share.attachment": "附件", "share.thinking": "思考", diff --git a/packages/web/src/content/i18n/zh-TW.json b/packages/web/src/content/i18n/zh-TW.json index 7dfd1334c0..8e40125fbc 100644 --- a/packages/web/src/content/i18n/zh-TW.json +++ b/packages/web/src/content/i18n/zh-TW.json @@ -54,12 +54,12 @@ "share.error_api_url_not_found": "API URL 未找到", "share.error_connection_failed": "連線失敗", "share.opencode_version": "OpenCode 版本", - "share.opencode_name": "OpenCode", + "share.opencode_name": "opencode", "share.models": "模型", "share.cost": "成本", - "share.input_tokens": "輸入 Token", - "share.output_tokens": "輸出 Token", - "share.reasoning_tokens": "推理 Token", + "share.input_tokens": "Input Tokens", + "share.output_tokens": "Output Tokens", + "share.reasoning_tokens": "Reasoning Tokens", "share.scroll_to_bottom": "滾動到底部", "share.attachment": "附件", "share.thinking": "思考中", From 3ea58bb79054c0773b6f03da0f2c25802b30166c Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 17:14:59 -0500 Subject: [PATCH 21/66] wip: zen --- packages/console/core/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/console/core/package.json b/packages/console/core/package.json index e0289766bf..06013e5376 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -19,6 +19,7 @@ "zod": "catalog:" }, "exports": { + "./*.js": "./src/*.ts", "./*": "./src/*" }, "scripts": { From 7a3c775dc17b6d1cb3473b7740e11e302f296dab Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 17:24:03 -0500 Subject: [PATCH 22/66] wip: zen --- packages/console/function/src/log-processor.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index d5d6318baa..b8998f05ce 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -49,6 +49,7 @@ export default { const ret = await fetch("https://api.honeycomb.io/1/batch/zen", { method: "POST", headers: { + "Content-Encoding": "plaintext", "Content-Type": "application/json", "X-Honeycomb-Team": Resource.HONEYCOMB_API_KEY.value, }, From 0afa6e03a8cb8bbad9fb0dca84eb514381f3933d Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 17:36:32 -0500 Subject: [PATCH 23/66] wip: zen --- packages/console/function/src/log-processor.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index b8998f05ce..0810201e77 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -31,7 +31,7 @@ export default { status: event.event.response?.status ?? 0, ip: event.event.request.headers["x-real-ip"], } - const time = event.eventTimestamp ?? Date.now() + const time = new Date(event.eventTimestamp ?? Date.now()).toISOString() const events = [] for (const log of event.logs) { for (const message of log.message) { @@ -49,7 +49,6 @@ export default { const ret = await fetch("https://api.honeycomb.io/1/batch/zen", { method: "POST", headers: { - "Content-Encoding": "plaintext", "Content-Type": "application/json", "X-Honeycomb-Team": Resource.HONEYCOMB_API_KEY.value, }, From 39145b99e883935541c0580b2c5088e14b4413c4 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 17:44:00 -0500 Subject: [PATCH 24/66] wip: zen --- packages/console/function/src/log-processor.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index 0810201e77..111024c7fc 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -18,7 +18,6 @@ export default { return let data = { - event_type: "completions", "cf.continent": event.event.request.cf?.continent, "cf.country": event.event.request.cf?.country, "cf.city": event.event.request.cf?.city, @@ -39,11 +38,11 @@ export default { const json = JSON.parse(message.slice(8)) data = { ...data, ...json } if ("llm.error.code" in json) { - events.push({ time, data: { ...data } }) + events.push({ event_type: "llm.error", time, data: { ...data } }) } } } - events.push({ time, data }) + events.push({ event_type: "completions", time, data }) console.log(JSON.stringify(data, null, 2)) const ret = await fetch("https://api.honeycomb.io/1/batch/zen", { From 24556331c8a1a5899489cbdb60eb80d058a1d6f1 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 10 Feb 2026 17:56:10 -0500 Subject: [PATCH 25/66] wip: zen --- packages/console/function/src/log-processor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/console/function/src/log-processor.ts b/packages/console/function/src/log-processor.ts index 111024c7fc..327fc930b7 100644 --- a/packages/console/function/src/log-processor.ts +++ b/packages/console/function/src/log-processor.ts @@ -38,11 +38,11 @@ export default { const json = JSON.parse(message.slice(8)) data = { ...data, ...json } if ("llm.error.code" in json) { - events.push({ event_type: "llm.error", time, data: { ...data } }) + events.push({ time, data: { ...data, event_type: "llm.error" } }) } } } - events.push({ event_type: "completions", time, data }) + events.push({ time, data: { ...data, event_type: "completions" } }) console.log(JSON.stringify(data, null, 2)) const ret = await fetch("https://api.honeycomb.io/1/batch/zen", { From a90b62267f23956aaa0fd121b7d0b570a996bf53 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 00:37:36 +0000 Subject: [PATCH 26/66] Update VOUCHED list https://github.com/anomalyco/opencode/issues/12841#issuecomment-3881500535 --- .github/VOUCHED.td | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td index ffa6ed7cd3..df53d1ac2a 100644 --- a/.github/VOUCHED.td +++ b/.github/VOUCHED.td @@ -15,4 +15,5 @@ kitlangton kommander r44vc0rp rekram1-node +-spider-yamet clawdbot/llm psychosis, spam pinging the team thdxr From 53ec15a56a721614e12b83cfbb96013f093155fb Mon Sep 17 00:00:00 2001 From: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Date: Wed, 11 Feb 2026 01:51:49 +0100 Subject: [PATCH 27/66] fix(tui): improve amazon-bedrock check to include container credentials (#13037) --- packages/opencode/src/provider/provider.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 1cad3b3162..a02a017e77 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -211,7 +211,12 @@ export namespace Provider { const awsWebIdentityTokenFile = Env.get("AWS_WEB_IDENTITY_TOKEN_FILE") - if (!profile && !awsAccessKeyId && !awsBearerToken && !awsWebIdentityTokenFile) return { autoload: false } + const containerCreds = Boolean( + process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI || process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI, + ) + + if (!profile && !awsAccessKeyId && !awsBearerToken && !awsWebIdentityTokenFile && !containerCreds) + return { autoload: false } const providerOptions: AmazonBedrockProviderSettings = { region: defaultRegion, From 6e9cd576ea3f53d1702eb8357ffa7203b26374ee Mon Sep 17 00:00:00 2001 From: Dax Date: Tue, 10 Feb 2026 20:26:01 -0500 Subject: [PATCH 28/66] fix(tui): default session sidebar to auto (#13046) --- packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 70ff5eaf9f..3532d9e5a2 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -141,7 +141,7 @@ export function Session() { }) const dimensions = useTerminalDimensions() - const [sidebar, setSidebar] = kv.signal<"auto" | "hide">("sidebar", "hide") + const [sidebar, setSidebar] = kv.signal<"auto" | "hide">("sidebar", "auto") const [sidebarOpen, setSidebarOpen] = createSignal(false) const [conceal, setConceal] = createSignal(true) const [showThinking, setShowThinking] = kv.signal("thinking_visibility", true) From 60bdb6e9ba3edeacf03b001a953fec1961c2d1f8 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:44:42 -0600 Subject: [PATCH 29/66] tweak: /review prompt to look for behavior changes more explicitly (#13049) --- packages/opencode/src/command/template/review.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/opencode/src/command/template/review.txt b/packages/opencode/src/command/template/review.txt index 9f6fbfcc3a..b745247e7f 100644 --- a/packages/opencode/src/command/template/review.txt +++ b/packages/opencode/src/command/template/review.txt @@ -57,6 +57,8 @@ Use best judgement when processing input. **Performance** - Only flag if obviously problematic. - O(n²) on unbounded data, N+1 queries, blocking I/O on hot paths +**Behavior Changes** - If a behavioral change is introduced, raise it (especially if it's possibly unintentional). + --- ## Before You Flag Something From 0fd6f365be0a41f5ccbad93adddbc2161a069b05 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:55:22 -0600 Subject: [PATCH 30/66] fix(core): ensure compaction is more reliable, add reserve token buffer to ensure that input window has enough room to compact (#12924) Co-authored-by: James Lal --- .../opencode/src/agent/prompt/compaction.txt | 4 +- packages/opencode/src/config/config.ts | 6 + packages/opencode/src/provider/transform.ts | 28 +--- packages/opencode/src/session/compaction.ts | 49 +++++-- packages/opencode/src/session/index.ts | 64 ++++++--- packages/opencode/src/session/llm.ts | 12 +- packages/opencode/src/session/message-v2.ts | 2 + packages/opencode/src/session/processor.ts | 3 + packages/opencode/src/session/prompt.ts | 1 - packages/opencode/src/session/retry.ts | 3 +- .../opencode/test/provider/transform.test.ts | 94 ------------ .../opencode/test/session/compaction.test.ts | 134 +++++++++++++++++- packages/opencode/test/session/llm.test.ts | 32 +---- packages/opencode/test/session/retry.test.ts | 9 ++ packages/sdk/js/src/v2/gen/types.gen.ts | 6 + packages/web/src/content/docs/config.mdx | 4 +- 16 files changed, 262 insertions(+), 189 deletions(-) diff --git a/packages/opencode/src/agent/prompt/compaction.txt b/packages/opencode/src/agent/prompt/compaction.txt index b919671a0a..3308627e15 100644 --- a/packages/opencode/src/agent/prompt/compaction.txt +++ b/packages/opencode/src/agent/prompt/compaction.txt @@ -1,6 +1,6 @@ You are a helpful AI assistant tasked with summarizing conversations. -When asked to summarize, provide a detailed but concise summary of the conversation. +When asked to summarize, provide a detailed but concise summary of the conversation. Focus on information that would be helpful for continuing the conversation, including: - What was done - What is currently being worked on @@ -10,3 +10,5 @@ Focus on information that would be helpful for continuing the conversation, incl - Important technical decisions and why they were made Your summary should be comprehensive enough to provide context but concise enough to be quickly understood. + +Do not respond to any questions in the conversation, only output the summary. diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index a231a53007..8f0f583ea3 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1161,6 +1161,12 @@ export namespace Config { .object({ auto: z.boolean().optional().describe("Enable automatic compaction when context is full (default: true)"), prune: z.boolean().optional().describe("Enable pruning of old tool outputs (default: true)"), + reserved: z + .number() + .int() + .min(0) + .optional() + .describe("Token buffer for compaction. Leaves enough window to avoid overflow during compaction."), }) .optional(), experimental: z diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 01291491d3..7ed89cb259 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -5,6 +5,7 @@ import type { JSONSchema } from "zod/v4/core" import type { Provider } from "./provider" import type { ModelsDev } from "./models" import { iife } from "@/util/iife" +import { Flag } from "@/flag/flag" type Modality = NonNullable["input"][number] @@ -17,6 +18,8 @@ function mimeToModality(mime: string): Modality | undefined { } export namespace ProviderTransform { + export const OUTPUT_TOKEN_MAX = Flag.OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX || 32_000 + // Maps npm package to the key the AI SDK expects for providerOptions function sdkKey(npm: string): string | undefined { switch (npm) { @@ -723,29 +726,8 @@ export namespace ProviderTransform { return { [key]: options } } - export function maxOutputTokens( - npm: string, - options: Record, - modelLimit: number, - globalLimit: number, - ): number { - const modelCap = modelLimit || globalLimit - const standardLimit = Math.min(modelCap, globalLimit) - - if (npm === "@ai-sdk/anthropic" || npm === "@ai-sdk/google-vertex/anthropic") { - const thinking = options?.["thinking"] - const budgetTokens = typeof thinking?.["budgetTokens"] === "number" ? thinking["budgetTokens"] : 0 - const enabled = thinking?.["type"] === "enabled" - if (enabled && budgetTokens > 0) { - // Return text tokens so that text + thinking <= model cap, preferring 32k text when possible. - if (budgetTokens + standardLimit <= modelCap) { - return standardLimit - } - return modelCap - budgetTokens - } - } - - return standardLimit + export function maxOutputTokens(model: Provider.Model): number { + return Math.min(model.limit.output, OUTPUT_TOKEN_MAX) || OUTPUT_TOKEN_MAX } export function schema(model: Provider.Model, schema: JSONSchema.BaseSchema | JSONSchema7): JSONSchema7 { diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 73a70af9d4..5660ca9731 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -6,7 +6,6 @@ import { Instance } from "../project/instance" import { Provider } from "../provider/provider" import { MessageV2 } from "./message-v2" import z from "zod" -import { SessionPrompt } from "./prompt" import { Token } from "../util/token" import { Log } from "../util/log" import { SessionProcessor } from "./processor" @@ -14,6 +13,7 @@ import { fn } from "@/util/fn" import { Agent } from "@/agent/agent" import { Plugin } from "@/plugin" import { Config } from "@/config/config" +import { ProviderTransform } from "@/provider/transform" export namespace SessionCompaction { const log = Log.create({ service: "session.compaction" }) @@ -27,15 +27,22 @@ export namespace SessionCompaction { ), } + const COMPACTION_BUFFER = 20_000 + export async function isOverflow(input: { tokens: MessageV2.Assistant["tokens"]; model: Provider.Model }) { const config = await Config.get() if (config.compaction?.auto === false) return false const context = input.model.limit.context if (context === 0) return false - const count = input.tokens.input + input.tokens.cache.read + input.tokens.output - const output = Math.min(input.model.limit.output, SessionPrompt.OUTPUT_TOKEN_MAX) || SessionPrompt.OUTPUT_TOKEN_MAX - const usable = input.model.limit.input || context - output - return count > usable + + const count = + input.tokens.total || + input.tokens.input + input.tokens.output + input.tokens.cache.read + input.tokens.cache.write + + const reserved = + config.compaction?.reserved ?? Math.min(COMPACTION_BUFFER, ProviderTransform.maxOutputTokens(input.model)) + const usable = input.model.limit.input ? input.model.limit.input - reserved : context - reserved + return count >= usable } export const PRUNE_MINIMUM = 20_000 @@ -139,8 +146,34 @@ export namespace SessionCompaction { { sessionID: input.sessionID }, { context: [], prompt: undefined }, ) - const defaultPrompt = - "Provide a detailed prompt for continuing our conversation above. Focus on information that would be helpful for continuing the conversation, including what we did, what we're doing, which files we're working on, and what we're going to do next considering new session will not have access to our conversation." + const defaultPrompt = `Provide a detailed prompt for continuing our conversation above. +Focus on information that would be helpful for continuing the conversation, including what we did, what we're doing, which files we're working on, and what we're going to do next. +The summary that you construct will be used so that another agent can read it and continue the work. + +When constructing the summary, try to stick to this template: +--- +## Goal + +[What goal(s) is the user trying to accomplish?] + +## Instructions + +- [What important instructions did the user give you that are relevant] +- [If there is a plan or spec, include information about it so next agent can continue using it] + +## Discoveries + +[What notable things were learned during this conversation that would be useful for the next agent to know when continuing the work] + +## Accomplished + +[What work has been completed, what work is still in progress, and what work is left?] + +## Relevant files / directories + +[Construct a structured list of relevant files that have been read, edited, or created that pertain to the task at hand. If all the files in a directory are relevant, include the path to the directory.] +---` + const promptText = compacting.prompt ?? [defaultPrompt, ...compacting.context].join("\n\n") const result = await processor.process({ user: userMessage, @@ -181,7 +214,7 @@ export namespace SessionCompaction { sessionID: input.sessionID, type: "text", synthetic: true, - text: "Continue if you have next steps", + text: "Continue if you have next steps, or stop and ask for clarification if you are unsure how to proceed.", time: { start: Date.now(), end: Date.now(), diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 556fad01f5..b0ffaaf70d 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -4,7 +4,7 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { Decimal } from "decimal.js" import z from "zod" -import { type LanguageModelUsage, type ProviderMetadata } from "ai" +import { type ProviderMetadata } from "ai" import { Config } from "../config/config" import { Flag } from "../flag/flag" import { Identifier } from "../id/id" @@ -22,6 +22,8 @@ import { Snapshot } from "@/snapshot" import type { Provider } from "@/provider/provider" import { PermissionNext } from "@/permission/next" import { Global } from "@/global" +import type { LanguageModelV2Usage } from "@ai-sdk/provider" +import { iife } from "@/util/iife" export namespace Session { const log = Log.create({ service: "session" }) @@ -439,34 +441,58 @@ export namespace Session { export const getUsage = fn( z.object({ model: z.custom(), - usage: z.custom(), + usage: z.custom(), metadata: z.custom().optional(), }), (input) => { - const cacheReadInputTokens = input.usage.cachedInputTokens ?? 0 - const cacheWriteInputTokens = (input.metadata?.["anthropic"]?.["cacheCreationInputTokens"] ?? - // @ts-expect-error - input.metadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ?? - // @ts-expect-error - input.metadata?.["venice"]?.["usage"]?.["cacheCreationInputTokens"] ?? - 0) as number - - const excludesCachedTokens = !!(input.metadata?.["anthropic"] || input.metadata?.["bedrock"]) - const adjustedInputTokens = excludesCachedTokens - ? (input.usage.inputTokens ?? 0) - : (input.usage.inputTokens ?? 0) - cacheReadInputTokens - cacheWriteInputTokens const safe = (value: number) => { if (!Number.isFinite(value)) return 0 return value } + const inputTokens = safe(input.usage.inputTokens ?? 0) + const outputTokens = safe(input.usage.outputTokens ?? 0) + const reasoningTokens = safe(input.usage.reasoningTokens ?? 0) + + const cacheReadInputTokens = safe(input.usage.cachedInputTokens ?? 0) + const cacheWriteInputTokens = safe( + (input.metadata?.["anthropic"]?.["cacheCreationInputTokens"] ?? + // @ts-expect-error + input.metadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ?? + // @ts-expect-error + input.metadata?.["venice"]?.["usage"]?.["cacheCreationInputTokens"] ?? + 0) as number, + ) + + // OpenRouter provides inputTokens as the total count of input tokens (including cached). + // AFAIK other providers (OpenRouter/OpenAI/Gemini etc.) do it the same way e.g. vercel/ai#8794 (comment) + // Anthropic does it differently though - inputTokens doesn't include cached tokens. + // It looks like OpenCode's cost calculation assumes all providers return inputTokens the same way Anthropic does (I'm guessing getUsage logic was originally implemented with anthropic), so it's causing incorrect cost calculation for OpenRouter and others. + const excludesCachedTokens = !!(input.metadata?.["anthropic"] || input.metadata?.["bedrock"]) + const adjustedInputTokens = safe( + excludesCachedTokens ? inputTokens : inputTokens - cacheReadInputTokens - cacheWriteInputTokens, + ) + + const total = iife(() => { + // Anthropic doesn't provide total_tokens, also ai sdk will vastly undercount if we + // don't compute from components + if ( + input.model.api.npm === "@ai-sdk/anthropic" || + input.model.api.npm === "@ai-sdk/amazon-bedrock" || + input.model.api.npm === "@ai-sdk/google-vertex/anthropic" + ) { + return adjustedInputTokens + outputTokens + cacheReadInputTokens + cacheWriteInputTokens + } + return input.usage.totalTokens + }) const tokens = { - input: safe(adjustedInputTokens), - output: safe(input.usage.outputTokens ?? 0), - reasoning: safe(input.usage?.reasoningTokens ?? 0), + total, + input: adjustedInputTokens, + output: outputTokens, + reasoning: reasoningTokens, cache: { - write: safe(cacheWriteInputTokens), - read: safe(cacheReadInputTokens), + write: cacheWriteInputTokens, + read: cacheReadInputTokens, }, } diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index 4be6e2538f..b8705ec4e3 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -25,8 +25,7 @@ import { Auth } from "@/auth" export namespace LLM { const log = Log.create({ service: "llm" }) - - export const OUTPUT_TOKEN_MAX = Flag.OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX || 32_000 + export const OUTPUT_TOKEN_MAX = ProviderTransform.OUTPUT_TOKEN_MAX export type StreamInput = { user: MessageV2.User @@ -149,14 +148,7 @@ export namespace LLM { ) const maxOutputTokens = - isCodex || provider.id.includes("github-copilot") - ? undefined - : ProviderTransform.maxOutputTokens( - input.model.api.npm, - params.options, - input.model.limit.output, - OUTPUT_TOKEN_MAX, - ) + isCodex || provider.id.includes("github-copilot") ? undefined : ProviderTransform.maxOutputTokens(input.model) const tools = await resolveTools(input) diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index e45bfc7728..63159ecc50 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -210,6 +210,7 @@ export namespace MessageV2 { snapshot: z.string().optional(), cost: z.number(), tokens: z.object({ + total: z.number().optional(), input: z.number(), output: z.number(), reasoning: z.number(), @@ -383,6 +384,7 @@ export namespace MessageV2 { summary: z.boolean().optional(), cost: z.number(), tokens: z.object({ + total: z.number().optional(), input: z.number(), output: z.number(), reasoning: z.number(), diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index b5289e903a..8e7472e2f1 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -342,6 +342,9 @@ export namespace SessionProcessor { stack: JSON.stringify(e.stack), }) const error = MessageV2.fromError(e, { providerID: input.model.providerID }) + if (MessageV2.ContextOverflowError.isInstance(error)) { + // TODO: Handle context overflow error + } const retry = SessionRetry.retryable(error) if (retry !== undefined) { attempt++ diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index d7f73b4f60..f49084d9c0 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -52,7 +52,6 @@ globalThis.AI_SDK_LOG_WARNINGS = false export namespace SessionPrompt { const log = Log.create({ service: "session.prompt" }) - export const OUTPUT_TOKEN_MAX = Flag.OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX || 32_000 const state = Instance.state( () => { diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index 2fc159ddac..6d057f539f 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -59,9 +59,8 @@ export namespace SessionRetry { } export function retryable(error: ReturnType) { - // DO NOT retry context overflow errors + // context overflow errors should not be retried if (MessageV2.ContextOverflowError.isInstance(error)) return undefined - if (MessageV2.APIError.isInstance(error)) { if (!error.data.isRetryable) return undefined if (error.data.responseBody?.includes("FreeUsageLimitError")) diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 0e0bb440aa..02bb5278fc 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -175,100 +175,6 @@ describe("ProviderTransform.options - gpt-5 textVerbosity", () => { }) }) -describe("ProviderTransform.maxOutputTokens", () => { - test("returns 32k when modelLimit > 32k", () => { - const modelLimit = 100000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/openai", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - - test("returns modelLimit when modelLimit < 32k", () => { - const modelLimit = 16000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/openai", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(16000) - }) - - describe("azure", () => { - test("returns 32k when modelLimit > 32k", () => { - const modelLimit = 100000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/azure", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - - test("returns modelLimit when modelLimit < 32k", () => { - const modelLimit = 16000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/azure", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(16000) - }) - }) - - describe("bedrock", () => { - test("returns 32k when modelLimit > 32k", () => { - const modelLimit = 100000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/amazon-bedrock", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - - test("returns modelLimit when modelLimit < 32k", () => { - const modelLimit = 16000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/amazon-bedrock", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(16000) - }) - }) - - describe("anthropic without thinking options", () => { - test("returns 32k when modelLimit > 32k", () => { - const modelLimit = 100000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/anthropic", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - - test("returns modelLimit when modelLimit < 32k", () => { - const modelLimit = 16000 - const result = ProviderTransform.maxOutputTokens("@ai-sdk/anthropic", {}, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(16000) - }) - }) - - describe("anthropic with thinking options", () => { - test("returns 32k when budgetTokens + 32k <= modelLimit", () => { - const modelLimit = 100000 - const options = { - thinking: { - type: "enabled", - budgetTokens: 10000, - }, - } - const result = ProviderTransform.maxOutputTokens("@ai-sdk/anthropic", options, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - - test("returns modelLimit - budgetTokens when budgetTokens + 32k > modelLimit", () => { - const modelLimit = 50000 - const options = { - thinking: { - type: "enabled", - budgetTokens: 30000, - }, - } - const result = ProviderTransform.maxOutputTokens("@ai-sdk/anthropic", options, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(20000) - }) - - test("returns 32k when thinking type is not enabled", () => { - const modelLimit = 100000 - const options = { - thinking: { - type: "disabled", - budgetTokens: 10000, - }, - } - const result = ProviderTransform.maxOutputTokens("@ai-sdk/anthropic", options, modelLimit, OUTPUT_TOKEN_MAX) - expect(result).toBe(OUTPUT_TOKEN_MAX) - }) - }) -}) - describe("ProviderTransform.schema - gemini array items", () => { test("adds missing items for array properties", () => { const geminiModel = { diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 2e9c091870..452926d12e 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -15,6 +15,7 @@ function createModel(opts: { output: number input?: number cost?: Provider.Model["cost"] + npm?: string }): Provider.Model { return { id: "test-model", @@ -34,7 +35,7 @@ function createModel(opts: { input: { text: true, image: false, audio: false, video: false }, output: { text: true, image: false, audio: false, video: false }, }, - api: { npm: "@ai-sdk/anthropic" }, + api: { npm: opts.npm ?? "@ai-sdk/anthropic" }, options: {}, } as Provider.Model } @@ -70,7 +71,7 @@ describe("session.compaction.isOverflow", () => { directory: tmp.path, fn: async () => { const model = createModel({ context: 100_000, output: 32_000 }) - const tokens = { input: 50_000, output: 10_000, reasoning: 0, cache: { read: 10_000, write: 0 } } + const tokens = { input: 60_000, output: 10_000, reasoning: 0, cache: { read: 10_000, write: 0 } } expect(await SessionCompaction.isOverflow({ tokens, model })).toBe(true) }, }) @@ -112,6 +113,86 @@ describe("session.compaction.isOverflow", () => { }) }) + // ─── Bug reproduction tests ─────────────────────────────────────────── + // These tests demonstrate that when limit.input is set, isOverflow() + // does not subtract any headroom for the next model response. This means + // compaction only triggers AFTER we've already consumed the full input + // budget, leaving zero room for the next API call's output tokens. + // + // Compare: without limit.input, usable = context - output (reserves space). + // With limit.input, usable = limit.input (reserves nothing). + // + // Related issues: #10634, #8089, #11086, #12621 + // Open PRs: #6875, #12924 + + test("BUG: no headroom when limit.input is set — compaction should trigger near boundary but does not", async () => { + await using tmp = await tmpdir() + await Instance.provide({ + directory: tmp.path, + fn: async () => { + // Simulate Claude with prompt caching: input limit = 200K, output limit = 32K + const model = createModel({ context: 200_000, input: 200_000, output: 32_000 }) + + // We've used 198K tokens total. Only 2K under the input limit. + // On the next turn, the full conversation (198K) becomes input, + // plus the model needs room to generate output — this WILL overflow. + const tokens = { input: 180_000, output: 15_000, reasoning: 0, cache: { read: 3_000, write: 0 } } + // count = 180K + 3K + 15K = 198K + // usable = limit.input = 200K (no output subtracted!) + // 198K > 200K = false → no compaction triggered + + // WITHOUT limit.input: usable = 200K - 32K = 168K, and 198K > 168K = true ✓ + // WITH limit.input: usable = 200K, and 198K > 200K = false ✗ + + // With 198K used and only 2K headroom, the next turn will overflow. + // Compaction MUST trigger here. + expect(await SessionCompaction.isOverflow({ tokens, model })).toBe(true) + }, + }) + }) + + test("BUG: without limit.input, same token count correctly triggers compaction", async () => { + await using tmp = await tmpdir() + await Instance.provide({ + directory: tmp.path, + fn: async () => { + // Same model but without limit.input — uses context - output instead + const model = createModel({ context: 200_000, output: 32_000 }) + + // Same token usage as above + const tokens = { input: 180_000, output: 15_000, reasoning: 0, cache: { read: 3_000, write: 0 } } + // count = 198K + // usable = context - output = 200K - 32K = 168K + // 198K > 168K = true → compaction correctly triggered + + const result = await SessionCompaction.isOverflow({ tokens, model }) + expect(result).toBe(true) // ← Correct: headroom is reserved + }, + }) + }) + + test("BUG: asymmetry — limit.input model allows 30K more usage before compaction than equivalent model without it", async () => { + await using tmp = await tmpdir() + await Instance.provide({ + directory: tmp.path, + fn: async () => { + // Two models with identical context/output limits, differing only in limit.input + const withInputLimit = createModel({ context: 200_000, input: 200_000, output: 32_000 }) + const withoutInputLimit = createModel({ context: 200_000, output: 32_000 }) + + // 170K total tokens — well above context-output (168K) but below input limit (200K) + const tokens = { input: 166_000, output: 10_000, reasoning: 0, cache: { read: 5_000, write: 0 } } + + const withLimit = await SessionCompaction.isOverflow({ tokens, model: withInputLimit }) + const withoutLimit = await SessionCompaction.isOverflow({ tokens, model: withoutInputLimit }) + + // Both models have identical real capacity — they should agree: + expect(withLimit).toBe(true) // should compact (170K leaves no room for 32K output) + expect(withoutLimit).toBe(true) // correctly compacts (170K > 168K) + }, + }) + }) + test("returns false when model context limit is 0", async () => { await using tmp = await tmpdir() await Instance.provide({ @@ -290,4 +371,53 @@ describe("session.getUsage", () => { expect(result.cost).toBe(3 + 1.5) }) + + test.each(["@ai-sdk/anthropic", "@ai-sdk/amazon-bedrock", "@ai-sdk/google-vertex/anthropic"])( + "computes total from components for %s models", + (npm) => { + const model = createModel({ context: 100_000, output: 32_000, npm }) + const usage = { + inputTokens: 1000, + outputTokens: 500, + // These providers typically report total as input + output only, + // excluding cache read/write. + totalTokens: 1500, + cachedInputTokens: 200, + } + if (npm === "@ai-sdk/amazon-bedrock") { + const result = Session.getUsage({ + model, + usage, + metadata: { + bedrock: { + usage: { + cacheWriteInputTokens: 300, + }, + }, + }, + }) + + expect(result.tokens.input).toBe(1000) + expect(result.tokens.cache.read).toBe(200) + expect(result.tokens.cache.write).toBe(300) + expect(result.tokens.total).toBe(2000) + return + } + + const result = Session.getUsage({ + model, + usage, + metadata: { + anthropic: { + cacheCreationInputTokens: 300, + }, + }, + }) + + expect(result.tokens.input).toBe(1000) + expect(result.tokens.cache.read).toBe(200) + expect(result.tokens.cache.write).toBe(300) + expect(result.tokens.total).toBe(2000) + }, + ) }) diff --git a/packages/opencode/test/session/llm.test.ts b/packages/opencode/test/session/llm.test.ts index 1f7e17e1bd..be0b8e520e 100644 --- a/packages/opencode/test/session/llm.test.ts +++ b/packages/opencode/test/session/llm.test.ts @@ -314,12 +314,7 @@ describe("session.llm.stream", () => { expect(body.stream).toBe(true) const maxTokens = (body.max_tokens as number | undefined) ?? (body.max_output_tokens as number | undefined) - const expectedMaxTokens = ProviderTransform.maxOutputTokens( - resolved.api.npm, - ProviderTransform.options({ model: resolved, sessionID }), - resolved.limit.output, - LLM.OUTPUT_TOKEN_MAX, - ) + const expectedMaxTokens = ProviderTransform.maxOutputTokens(resolved) expect(maxTokens).toBe(expectedMaxTokens) const reasoning = (body.reasoningEffort as string | undefined) ?? (body.reasoning_effort as string | undefined) @@ -442,12 +437,7 @@ describe("session.llm.stream", () => { expect((body.reasoning as { effort?: string } | undefined)?.effort).toBe("high") const maxTokens = body.max_output_tokens as number | undefined - const expectedMaxTokens = ProviderTransform.maxOutputTokens( - resolved.api.npm, - ProviderTransform.options({ model: resolved, sessionID }), - resolved.limit.output, - LLM.OUTPUT_TOKEN_MAX, - ) + const expectedMaxTokens = ProviderTransform.maxOutputTokens(resolved) expect(maxTokens).toBe(expectedMaxTokens) }, }) @@ -565,14 +555,7 @@ describe("session.llm.stream", () => { expect(capture.url.pathname.endsWith("/messages")).toBe(true) expect(body.model).toBe(resolved.api.id) - expect(body.max_tokens).toBe( - ProviderTransform.maxOutputTokens( - resolved.api.npm, - ProviderTransform.options({ model: resolved, sessionID }), - resolved.limit.output, - LLM.OUTPUT_TOKEN_MAX, - ), - ) + expect(body.max_tokens).toBe(ProviderTransform.maxOutputTokens(resolved)) expect(body.temperature).toBe(0.4) expect(body.top_p).toBe(0.9) }, @@ -677,14 +660,7 @@ describe("session.llm.stream", () => { expect(capture.url.pathname).toBe(pathSuffix) expect(config?.temperature).toBe(0.3) expect(config?.topP).toBe(0.8) - expect(config?.maxOutputTokens).toBe( - ProviderTransform.maxOutputTokens( - resolved.api.npm, - ProviderTransform.options({ model: resolved, sessionID }), - resolved.limit.output, - LLM.OUTPUT_TOKEN_MAX, - ), - ) + expect(config?.maxOutputTokens).toBe(ProviderTransform.maxOutputTokens(resolved)) }, }) }) diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index a483a01527..6768e72d95 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -112,6 +112,15 @@ describe("session.retry.retryable", () => { const error = wrap("not-json") expect(SessionRetry.retryable(error)).toBeUndefined() }) + + test("does not retry context overflow errors", () => { + const error = new MessageV2.ContextOverflowError({ + message: "Input exceeds context window of this model", + responseBody: '{"error":{"code":"context_length_exceeded"}}', + }).toObject() as ReturnType + + expect(SessionRetry.retryable(error)).toBeUndefined() + }) }) describe("session.message-v2.fromError", () => { diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 9543e5b579..07ce5c2b05 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -203,6 +203,7 @@ export type AssistantMessage = { summary?: boolean cost: number tokens: { + total?: number input: number output: number reasoning: number @@ -418,6 +419,7 @@ export type StepFinishPart = { snapshot?: string cost: number tokens: { + total?: number input: number output: number reasoning: number @@ -1822,6 +1824,10 @@ export type Config = { * Enable pruning of old tool outputs (default: true) */ prune?: boolean + /** + * Token buffer for compaction. Leaves enough window to avoid overflow during compaction. + */ + reserved?: number } experimental?: { disable_paste_summary?: boolean diff --git a/packages/web/src/content/docs/config.mdx b/packages/web/src/content/docs/config.mdx index 5cc9d8666a..eeccde2f79 100644 --- a/packages/web/src/content/docs/config.mdx +++ b/packages/web/src/content/docs/config.mdx @@ -490,13 +490,15 @@ You can control context compaction behavior through the `compaction` option. "$schema": "https://opencode.ai/config.json", "compaction": { "auto": true, - "prune": true + "prune": true, + "reserved": 10000 } } ``` - `auto` - Automatically compact the session when context is full (default: `true`). - `prune` - Remove old tool outputs to save tokens (default: `true`). +- `reserved` - Token buffer for compaction. Leaves enough window to avoid overflow during compaction --- From c6ec2f47efdc0aa7c4b22ae97d395eeab6215846 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 11 Feb 2026 01:56:08 +0000 Subject: [PATCH 31/66] chore: generate --- packages/sdk/openapi.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index 18022a3384..dd118a3ae5 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -6393,6 +6393,9 @@ "tokens": { "type": "object", "properties": { + "total": { + "type": "number" + }, "input": { "type": "number" }, @@ -7023,6 +7026,9 @@ "tokens": { "type": "object", "properties": { + "total": { + "type": "number" + }, "input": { "type": "number" }, @@ -9894,6 +9900,12 @@ "prune": { "description": "Enable pruning of old tool outputs (default: true)", "type": "boolean" + }, + "reserved": { + "description": "Token buffer for compaction. Leaves enough window to avoid overflow during compaction.", + "type": "integer", + "minimum": 0, + "maximum": 9007199254740991 } } }, From 8c120f2fab1c498a714c5ec643c599fb0380f5fa Mon Sep 17 00:00:00 2001 From: Ariane Emory <97994360+ariane-emory@users.noreply.github.com> Date: Tue, 10 Feb 2026 23:52:02 -0500 Subject: [PATCH 32/66] docs: remove 'Migrating to 1.0' documentation section (#13076) --- packages/web/astro.config.mjs | 1 - packages/web/src/content/docs/1-0.mdx | 67 --------------------- packages/web/src/content/docs/ar/1-0.mdx | 67 --------------------- packages/web/src/content/docs/bs/1-0.mdx | 61 ------------------- packages/web/src/content/docs/da/1-0.mdx | 67 --------------------- packages/web/src/content/docs/de/1-0.mdx | 67 --------------------- packages/web/src/content/docs/es/1-0.mdx | 67 --------------------- packages/web/src/content/docs/fr/1-0.mdx | 67 --------------------- packages/web/src/content/docs/it/1-0.mdx | 67 --------------------- packages/web/src/content/docs/ja/1-0.mdx | 67 --------------------- packages/web/src/content/docs/ko/1-0.mdx | 67 --------------------- packages/web/src/content/docs/nb/1-0.mdx | 67 --------------------- packages/web/src/content/docs/pl/1-0.mdx | 67 --------------------- packages/web/src/content/docs/pt-br/1-0.mdx | 66 -------------------- packages/web/src/content/docs/ru/1-0.mdx | 67 --------------------- packages/web/src/content/docs/th/1-0.mdx | 67 --------------------- packages/web/src/content/docs/tr/1-0.mdx | 67 --------------------- packages/web/src/content/docs/zh-cn/1-0.mdx | 67 --------------------- packages/web/src/content/docs/zh-tw/1-0.mdx | 67 --------------------- 19 files changed, 1200 deletions(-) delete mode 100644 packages/web/src/content/docs/1-0.mdx delete mode 100644 packages/web/src/content/docs/ar/1-0.mdx delete mode 100644 packages/web/src/content/docs/bs/1-0.mdx delete mode 100644 packages/web/src/content/docs/da/1-0.mdx delete mode 100644 packages/web/src/content/docs/de/1-0.mdx delete mode 100644 packages/web/src/content/docs/es/1-0.mdx delete mode 100644 packages/web/src/content/docs/fr/1-0.mdx delete mode 100644 packages/web/src/content/docs/it/1-0.mdx delete mode 100644 packages/web/src/content/docs/ja/1-0.mdx delete mode 100644 packages/web/src/content/docs/ko/1-0.mdx delete mode 100644 packages/web/src/content/docs/nb/1-0.mdx delete mode 100644 packages/web/src/content/docs/pl/1-0.mdx delete mode 100644 packages/web/src/content/docs/pt-br/1-0.mdx delete mode 100644 packages/web/src/content/docs/ru/1-0.mdx delete mode 100644 packages/web/src/content/docs/th/1-0.mdx delete mode 100644 packages/web/src/content/docs/tr/1-0.mdx delete mode 100644 packages/web/src/content/docs/zh-cn/1-0.mdx delete mode 100644 packages/web/src/content/docs/zh-tw/1-0.mdx diff --git a/packages/web/astro.config.mjs b/packages/web/astro.config.mjs index 592fecc488..3e3d153e68 100644 --- a/packages/web/astro.config.mjs +++ b/packages/web/astro.config.mjs @@ -179,7 +179,6 @@ export default defineConfig({ "enterprise", "troubleshooting", "windows-wsl", - "1-0", { label: "Usage", translations: { diff --git a/packages/web/src/content/docs/1-0.mdx b/packages/web/src/content/docs/1-0.mdx deleted file mode 100644 index 11d3b629f4..0000000000 --- a/packages/web/src/content/docs/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrating to 1.0 -description: What's new in OpenCode 1.0. ---- - -OpenCode 1.0 is a complete rewrite of the TUI. - -We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs. - -The new TUI works like the old one since it connects to the same opencode server. - ---- - -## Upgrading - -You should not be autoupgraded to 1.0 if you are currently using a previous -version. However some older versions of OpenCode always grab latest. - -To upgrade manually, run - -```bash -$ opencode upgrade 1.0.0 -``` - -To downgrade back to 0.x, run - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX changes - -The session history is more compressed, only showing full details of the edit and bash tool. - -We added a command bar which almost everything flows through. Press ctrl+p to bring it up in any context and see everything you can do. - -Added a session sidebar (can be toggled) with useful information. - -We removed some functionality that we weren't sure anyone actually used. If something important is missing please open an issue and we'll add it back quickly. - ---- - -## Breaking changes - -### Keybinds renamed - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Keybinds removed - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/ar/1-0.mdx b/packages/web/src/content/docs/ar/1-0.mdx deleted file mode 100644 index 3587dd7708..0000000000 --- a/packages/web/src/content/docs/ar/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: الانتقال إلى 1.0 -description: ما الجديد في OpenCode 1.0. ---- - -OpenCode 1.0 هو إعادة كتابة كاملة لواجهة TUI. - -انتقلنا من واجهة TUI المبنية على go+bubbletea، والتي كانت تعاني من مشاكل في الأداء والإمكانات، إلى إطار عمل داخلي (OpenTUI) مكتوب بـ zig+solidjs. - -تعمل واجهة TUI الجديدة مثل القديمة لأنها تتصل بخادم opencode نفسه. - ---- - -## الترقية - -لا يفترض أن تتم ترقيتك تلقائيا إلى 1.0 إذا كنت تستخدم حاليا إصدارا أقدم. -لكن بعض الإصدارات القديمة من OpenCode كانت تجلب دائما أحدث إصدار. - -للترقية يدويا، شغّل - -```bash -$ opencode upgrade 1.0.0 -``` - -للرجوع إلى 0.x، شغّل - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## تغييرات تجربة الاستخدام - -أصبح سجل الجلسة أكثر اختصارا، ولا يعرض التفاصيل الكاملة إلا لأداتي edit و bash. - -أضفنا شريط أوامر تمر عبره تقريبا كل العمليات. اضغط ctrl+p لإظهاره في أي سياق ولرؤية كل ما يمكنك فعله. - -أضفنا شريطا جانبيا للجلسة (يمكن إظهاره/إخفاؤه) يحتوي على معلومات مفيدة. - -أزلنا بعض الوظائف التي لم نكن متأكدين أن أحدا يستخدمها فعلا. إذا كانت هناك ميزة مهمة مفقودة، فالرجاء فتح issue وسنعيدها بسرعة. - ---- - -## تغييرات غير متوافقة - -### إعادة تسمية اختصارات المفاتيح - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### إزالة اختصارات المفاتيح - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/bs/1-0.mdx b/packages/web/src/content/docs/bs/1-0.mdx deleted file mode 100644 index 731ed9c9a9..0000000000 --- a/packages/web/src/content/docs/bs/1-0.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Migracija na 1.0 -description: Šta je novo u OpenCode 1.0. ---- - -OpenCode 1.0 je potpuna revizija TUI-ja. -Prešli smo sa TUI zasnovanog na go+bubbletea koji je imao problema sa performansama i mogućnostima na interni okvir (OpenTUI) napisan u zig+solidjs. -Novi TUI radi kao stari jer se povezuje na isti opencode server. - ---- - -## Upgrade - -Ne biste trebali biti automatski nadograđeni na 1.0 ako trenutno koristite prethodnu -verzija. Međutim, neke starije verzije OpenCode uvijek uzimaju najnoviju verziju. -Za ručnu nadogradnju, pokrenite - -```bash -$ opencode upgrade 1.0.0 -``` - -Za vraćanje na 0.x, pokrenite - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX promjene - -Historija sesije je komprimovanija i prikazuje samo sve detalje alata za uređivanje i bash. -Dodali smo komandnu traku kroz koju prolazi skoro sve. Pritisnite ctrl+p da prikažete u bilo kom kontekstu i vidite sve što možete učiniti. -Dodatna bočna traka sesije (može se prebaciti) sa korisnim informacijama. -Uklonili smo neke funkcije za koje nismo bili sigurni da ih neko koristi. Ako nešto važno nedostaje, otvorite problem i brzo ćemo ga dodati. - ---- - -## Revolucionarne promjene - -### Tastature su preimenovane - -- povratne_poruke -> poništite_poruke -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Linkovi za degustatore su uklonjeni - -- messages_layout_toggle -- poruke_sljedeće -- messages_previous -- file_diff_toggle -- file_search -- file_close -- lista_datoteka -- app_help -- project_init -- detalji alata -- razmišljanje_blokovi diff --git a/packages/web/src/content/docs/da/1-0.mdx b/packages/web/src/content/docs/da/1-0.mdx deleted file mode 100644 index 744c4ea871..0000000000 --- a/packages/web/src/content/docs/da/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrerer til 1.0 -description: Hvad er nyt i OpenCode 1.0. ---- - -OpenCode 1.0 er en komplet omskrivning af TUI. - -Vi flyttede fra den go+bubbletea-baserede TUI, som havde problemer med ydeevne og kapacitet, til en intern ramme (OpenTUI) skrevet i zig+solidjs. - -Den nye TUI fungerer som den gamle, da den opretter forbindelse til den samme opencode-server. - ---- - -##Opgradering - -Du bør ikke automatisk opgraderes til 1.0, hvis du er i øjeblikket bruger en tidligere -version. Nogle ældre versioner af OpenCode henter dog altid den nyeste. - -Kør for at opgradere manuelt - -```bash -$ opencode upgrade 1.0.0 -``` - -Kør for at nedgradere tilbage til 0.x - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX ændringer - -Sessionshistorikken er mere komprimeret og viser kun alle detaljer om redigerings- og bash-værktøjet. - -Vi tilføjede en kommandolinje, som næsten alt flyder igennem. Tryk på ctrl+p for at få det frem i enhver sammenhæng og se alt, hvad du kan gøre. - -Tilføjet en sessionssidebjælke (kan skiftes) med nyttige oplysninger. - -Vi fjernede nogle funktioner, som vi ikke var sikre på, at nogen rent faktisk brugte. Hvis der mangler noget vigtigt, bedes du åbne et problem, så tilføjer vi det hurtigt igen. - ---- - -## Brydende ændringer - -### Nøglebindinger omdøbt - -- messages_revert -> messages_undo -- switch_agent -> agent_cyklus -- switch_agent_reverse -> agent_cyklus_reverse -- switch_mode -> agent_cyklus -- switch_mode_reverse -> agent_cyklus_reverse - -### Nøglebindinger fjernet - -- messages_layout_toggle -- beskeder_næste -- beskeder_forrige -- file_diff_toggle -- fil_søgning -- fil_luk -- fil_liste -- app_hjælp -- projekt_init -- tool_details -- tænkeblokke diff --git a/packages/web/src/content/docs/de/1-0.mdx b/packages/web/src/content/docs/de/1-0.mdx deleted file mode 100644 index f4fa6fac7a..0000000000 --- a/packages/web/src/content/docs/de/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migration zu 1.0 -description: Was ist neu in OpenCode 1.0. ---- - -OpenCode 1.0 ist eine komplette Neufassung des TUI. - -We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs. - -The new TUI works like the old one since it connects to the same opencode server. - ---- - -## Upgrading - -Sie sollten nicht automatisch auf 1.0 aktualisiert werden, wenn Sie derzeit eine frühere Version verwenden -Version. Einige ältere Versionen von OpenCode greifen jedoch immer auf die neueste Version zu. - -Führen Sie zum manuellen Upgrade Folgendes aus: - -```bash -$ opencode upgrade 1.0.0 -``` - -Führen Sie Folgendes aus, um ein Downgrade auf 0.x durchzuführen - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX ändert sich - -Der Sitzungsverlauf ist stärker komprimiert und zeigt nur alle Details des Bearbeitungs- und Bash-Tools an. - -Wir haben eine Befehlsleiste hinzugefügt, durch die schnell alles fließt. Drücken Sie Strg+P, um es in einem beliebigen Kontext aufzurufen und alles zu sehen, was Sie tun können. - -Eine Sitzungsseitenleiste (kann umgeschaltet werden) mit nützlichen Informationen hinzugefügt. - -Wir haben einige Funktionen entfernt, von denen wir nicht sicher waren, ob sie tatsächlich jemand nutzte. Wenn etwas Wichtiges fehlt, öffnen Sie bitte eine Ausgabe und wir werden es schnell wieder hinzufügen. - ---- - -## Bahnbrechende Veränderungen - -### Keybinds renamed - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Keybinds removed - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/es/1-0.mdx b/packages/web/src/content/docs/es/1-0.mdx deleted file mode 100644 index 087a38c11a..0000000000 --- a/packages/web/src/content/docs/es/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrando a 1.0 -description: Novedades de OpenCode 1.0. ---- - -OpenCode 1.0 es una reescritura completa de TUI. - -Pasamos del TUI basado en go+bubbletea que tenía problemas de rendimiento y capacidad a un marco interno (OpenTUI) escrito en zig+solidjs. - -El nuevo TUI funciona como el anterior ya que se conecta al mismo servidor opencode. - ---- - -## Actualización - -No deberías realizar la actualización automática a 1.0 si actualmente estás utilizando una versión anterior. -versión. Sin embargo, algunas versiones anteriores de OpenCode siempre obtienen la última versión. - -Para actualizar manualmente, ejecute - -```bash -$ opencode upgrade 1.0.0 -``` - -Para volver a bajar a 0.x, ejecute - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## cambios de experiencia de usuario - -El historial de sesiones está más comprimido y solo muestra detalles completos de la herramienta de edición y bash. - -Agregamos una barra de comandos por la que fluye casi todo. Presione Ctrl+p para que aparezca en cualquier contexto y vea todo lo que puede hacer. - -Se agregó una barra lateral de sesión (se puede alternar) con información útil. - -Eliminamos algunas funciones que no estábamos seguros de que alguien realmente usara. Si falta algo importante, abra un problema y lo volveremos a agregar rápidamente. - ---- - -## Cambios importantes - -### Combinaciones de teclas renombradas - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Combinaciones de teclas eliminadas - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/fr/1-0.mdx b/packages/web/src/content/docs/fr/1-0.mdx deleted file mode 100644 index e8011c02af..0000000000 --- a/packages/web/src/content/docs/fr/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migration vers 1.0 -description: Quoi de neuf dans OpenCode 1.0. ---- - -OpenCode 1.0 est une réécriture complète de TUI. - -Nous sommes passés du TUI basé sur go+bubbletea qui présentait des problèmes de performances et de capacités à un framework interne (OpenTUI) écrit en zig+solidjs. - -Le nouveau TUI fonctionne comme l'ancien puisqu'il se connecte au même serveur opencode. - ---- - -## Mise à niveau - -Vous ne devriez pas être automatiquement mis à niveau vers la version 1.0 si vous utilisez actuellement une version précédente -version. Cependant, certaines anciennes versions de OpenCode récupèrent toujours la dernière version. - -Pour mettre à niveau manuellement, exécutez - -```bash -$ opencode upgrade 1.0.0 -``` - -Pour revenir à 0.x, exécutez - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## Changements UX - -L'historique de la session est plus compressé, affichant uniquement tous les détails de l'outil d'édition et de bash. - -Nous avons ajouté une barre de commandes par laquelle presque tout passe. Appuyez sur ctrl+p pour l'afficher dans n'importe quel contexte et voir tout ce que vous pouvez faire. - -Ajout d'une barre latérale de session (peut être basculée) avec des informations utiles. - -Nous avons supprimé certaines fonctionnalités que nous n'étions pas sûrs que quiconque utilisait réellement. S'il manque quelque chose d'important, veuillez ouvrir un problème et nous le rajouterons rapidement. - ---- - -## Modifications radicales - -### Raccourcis clavier renommés - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Raccourcis clavier supprimés - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/it/1-0.mdx b/packages/web/src/content/docs/it/1-0.mdx deleted file mode 100644 index 0c6b20f452..0000000000 --- a/packages/web/src/content/docs/it/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrazione a 1.0 -description: Novita in OpenCode 1.0. ---- - -OpenCode 1.0 e una riscrittura completa della TUI. - -Siamo passati dalla TUI basata su go+bubbletea, che aveva problemi di prestazioni e di capacita, a un framework interno (OpenTUI) scritto in zig+solidjs. - -La nuova TUI funziona come la precedente, dato che si connette allo stesso server opencode. - ---- - -## Upgrading - -Non dovresti essere aggiornato automaticamente a 1.0 se stai usando una versione precedente. -Detto questo, alcune versioni piu vecchie di OpenCode installano sempre l'ultima. - -Per aggiornare manualmente, esegui: - -```bash -$ opencode upgrade 1.0.0 -``` - -Per tornare a 0.x, esegui: - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## Cambiamenti UX - -La cronologia della sessione e piu compatta: mostra i dettagli completi solo per gli strumenti edit e bash. - -Abbiamo aggiunto una command bar attraverso cui passa quasi tutto. Premi ctrl+p in qualunque contesto per aprirla e vedere tutto cio che puoi fare. - -Abbiamo aggiunto una sidebar di sessione (attivabile/disattivabile) con informazioni utili. - -Abbiamo rimosso alcune funzionalita che non eravamo sicuri venissero davvero usate. Se manca qualcosa di importante, apri una issue e la riaggiungeremo rapidamente. - ---- - -## Modifiche incompatibili - -### Keybind rinominati - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Keybind rimossi - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/ja/1-0.mdx b/packages/web/src/content/docs/ja/1-0.mdx deleted file mode 100644 index 89689f2810..0000000000 --- a/packages/web/src/content/docs/ja/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: 1.0 への移行 -description: OpenCode 1.0 の新機能。 ---- - -OpenCode 1.0 は TUI を完全に書き直したものです。 - -私たちは、パフォーマンスと機能に問題があった go+bubbletea ベースの TUI から、zig+solidjs で書かれた社内フレームワーク (OpenTUI) に移行しました。 - -新しい TUI は、同じopencode サーバーに接続するため、古い TUI と同様に機能します。 - ---- - -## アップグレード中 - -現在以前のバージョンを使用している場合は、1.0 に自動アップグレードしないでください。 -バージョン。ただし、OpenCode の一部の古いバージョンは常に最新のものを取得します。 - -手動でアップグレードするには、次を実行します - -```bash -$ opencode upgrade 1.0.0 -``` - -0.x にダウングレードするには、次を実行します。 - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UXの変更 - -セッション履歴はより圧縮されており、編集および bash ツールの完全な詳細のみが表示されます。 - -ほぼすべての操作が実行できるコマンド バーを追加しました。 Ctrl+P を押すと、任意のコンテキストでそれが表示され、実行できるすべてのことが表示されます。 - -役立つ情報を含むセッション サイドバー (切り替え可能) を追加しました。 - -実際に誰も使用しているかどうかわからないいくつかの機能を削除しました。重要な点が欠けている場合は、問題を開いてください。すぐに追加します。 - ---- - -## 重大な変更 - -### キーバインドの名前が変更されました - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### キーバインドが削除されました - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/ko/1-0.mdx b/packages/web/src/content/docs/ko/1-0.mdx deleted file mode 100644 index 9c3b8cc927..0000000000 --- a/packages/web/src/content/docs/ko/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrating to 1.0 -description: What's new in opencode 1.0. ---- - -opencode 1.0은 TUI의 완전한 재쓰기입니다. - -우리는 zig+solidjs에서 작성된 사내 프레임 워크 (OpenTUI)에 성능과 기능 문제가있는 go+bubbletea 기반 TUI에서 이동했습니다. - -새로운 TUI는 같은 opencode 서버에 연결하기 때문에 오래된 것 같이 작동합니다. - ---- - -## 업그레이드 - -현재 이전을 사용하는 경우 현재 1.0로 autoupgraded 할 수 없습니다. -버전. 그러나 opencode의 이전 버전은 항상 최신을 잡아. - -수동으로 업그레이드하려면 실행 - -```bash -$ opencode upgrade 1.0.0 -``` - -0.x로 다운 그레이드, 실행 - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX 변경 - -세션 역사는 더 많은 압축, 편집 및 bash 도구의 전체 세부 사항을 보여주는. - -우리는 거의 모든 것을 통해 흐르는 명령 줄을 추가했습니다. ctrl+p를 눌러 모든 컨텍스트에서 가져 와서 할 수있는 모든 것을 볼 수 있습니다. - -유용한 정보로 세션 사이드바(Toggled)를 추가했습니다. - -우리는 우리가 실제로 사용되었던 어떤 기능을 제거했습니다. 뭔가 중요하지 않은 경우 문제가 열리고 신속하게 추가됩니다. - ---- - -## 파손 변화 - -## Keybinds 이름 변경 - -- message revert -> 메시지 undo -- switch agent -> 에이전트 사이클 -- switch agent reverse -> 에이전트 cycle reverse -- switch mode -> 에이전트 cycle -- switch mode reverse -> 에이전트 cycle reverse - -## Keybinds 제거 - -- 메시지 layout toggle -- 메시지 -- 메시지 -- 파일 diff toggle -- 파일 search -- 파일 닫기 -- 파일 list -- 앱 help -- 프로젝트 init -- 툴 details -- 사고 blocks diff --git a/packages/web/src/content/docs/nb/1-0.mdx b/packages/web/src/content/docs/nb/1-0.mdx deleted file mode 100644 index feb7209be5..0000000000 --- a/packages/web/src/content/docs/nb/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migrerer til 1.0 -description: Hva er nytt i opencode 1.0. ---- - -OpenCode 1.0 er en fullstendig omskrivning av TUI. - -Vi gikk fra den go+bubbletea-baserte TUI som hadde ytelses- og kapasitetsproblemer til et internt rammeverk (OpenTUI) skrevet i zig+solidjs. - -Den nye TUI fungerer som den gamle siden den kobles til den samme opencode-serveren. - ---- - -## Oppgradering - -Du bør ikke autooppgraderes til 1.0 hvis du bruker en tidligere -versjon. Men noen eldre versjoner av OpenCode henter alltid den nyeste. - -For å oppgradere manuelt, kjør - -```bash -$ opencode upgrade 1.0.0 -``` - -For å nedgradere tilbake til 0.x, kjør - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX endringer - -Sesjonshistorikken er mer komprimert, og viser bare fullstendige detaljer om redigerings- og bash-verktøyet. - -Vi la til en kommandolinje som nesten alt flyter gjennom. Trykk ctrl+p for å få det opp i en hvilken som helst sammenheng og se alt du kan gjøre. - -Lagt til en øktsidelinje (kan byttes) med nyttig informasjon. - -Vi fjernet noe funksjonalitet som vi ikke var sikre på at noen faktisk brukte. Hvis noe viktig mangler, åpne et problem, så legger vi det til raskt igjen. - ---- - -## Brytende endringer - -### Keybinds omdøpt - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Keybinds fjernet - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/pl/1-0.mdx b/packages/web/src/content/docs/pl/1-0.mdx deleted file mode 100644 index 8a38e52212..0000000000 --- a/packages/web/src/content/docs/pl/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Migracja do wersji 1.0 -description: Co nowego w opencode 1.0. ---- - -opencode 1.0 do całkowitej przeróbki TUI. - -Przeszliśmy z TUI na go+bubbletea, który miał problemy z wydajnością i możliwościami, do wewnętrznego frameworka (OpenTUI) obciążającego w zig+solidjs. - -Nowy TUI działa jak stary, łączy się z tym samym serwerem opencode. - ---- - -## Aktualizacja - -Nie automatyczna aktualizacja do wersji 1.0, która jest dostępna w wersji 1.0 -wersja. Starsze wersje opencode zawsze pobierają najnowszą wersję. - -Aby móc, móc - -```bash -$ opencode upgrade 1.0.0 -``` - -Aby uruchomić wersję 0.x, uruchom - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## Zmiany UX - -Historia sesji jest bardziej skompresowana i znaleziono pełne szczegóły narzędzia do edycji w bash. - -Dodaliśmy pasek kontrolny, przez który przepływa prawie wszystko. działanie nie ctrl+p, aby przejść do zdarzenia, które zawiera wszystko, co można regenerować. - -Dodano pasek boczny sesji (możliwość przejścia do urządzenia) z odłączonym dostępem. - -Usunęliśmy pewne funkcje, z których nie ma pewności, czy ktoś faktycznie korzystał. Jeśli brakuje czegoś ważnego, otwórz problem, a my szybko dodamy. - ---- - -## Przełomowe zmiany - -### Zmieniono skrótów klawiszowych - -- wiadomości_przywróć -> wiadomości_cofnij -- uruchomienie_agent -> cykl_agent -- switch_agent_reverse -> agent_cycle_reverse -- tryb_przełączenie -> cykl_agenta -- switch_mode_reverse -> agent_cycle_reverse - -### Usunięto klawisze - -- Przegrzewanie_układu_wiadomości -- wiadomości_następne -- wiadomości_poprzednie -- plik_diff_toggle -- wyszukiwanie_pliku -- plik_zamknij -- lista_plików -- pomoc_aplikacji -- projekt_init -- szczegóły_narzędzia -- myślenie_bloki diff --git a/packages/web/src/content/docs/pt-br/1-0.mdx b/packages/web/src/content/docs/pt-br/1-0.mdx deleted file mode 100644 index 1a41c744b1..0000000000 --- a/packages/web/src/content/docs/pt-br/1-0.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Migrando para 1.0 -description: O que há de novo no opencode 1.0. ---- - -opencode 1.0 é uma reescrita completa do TUI. - -Mudamos do TUI baseado em go+bubbletea, que tinha problemas de desempenho e capacidade, para um framework interno (OpenTUI) escrito em zig+solidjs. - -O novo TUI funciona como o antigo, pois se conecta ao mesmo servidor opencode. - ---- - -## Atualizando - -Você não deve ser atualizado automaticamente para 1.0 se estiver usando uma versão anterior. No entanto, algumas versões mais antigas do opencode sempre pegam a mais recente. - -Para atualizar manualmente, execute - -```bash -$ opencode upgrade 1.0.0 -``` - -Para reverter para 0.x, execute - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## Mudanças na UX - -O histórico da sessão está mais comprimido, mostrando apenas os detalhes completos da edição e da ferramenta bash. - -Adicionamos uma barra de comandos pela qual quase tudo flui. Pressione ctrl+p para abri-la em qualquer contexto e veja tudo o que você pode fazer. - -Adicionada uma barra lateral de sessão (pode ser alternada) com informações úteis. - -Removemos algumas funcionalidades das quais não tínhamos certeza se alguém realmente usava. Se algo importante estiver faltando, por favor, abra uma issue e nós adicionaremos rapidamente. - ---- - -## Mudanças que quebram compatibilidade - -### Teclas de atalho renomeadas - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Teclas de atalho removidas - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/ru/1-0.mdx b/packages/web/src/content/docs/ru/1-0.mdx deleted file mode 100644 index feb3067a0e..0000000000 --- a/packages/web/src/content/docs/ru/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Миграция на 1.0 -description: Что нового в opencode 1.0. ---- - -opencode 1.0 — это полная переработка TUI. - -Мы перешли от TUI на основе go+bubbletea, у которого были проблемы с производительностью и возможностями, к собственной платформе (OpenTUI), написанной на zig+solidjs. - -Новый TUI работает так же, как старый, поскольку подключается к тому же серверу opencode. - ---- - -## Обновление - -Вам не следует автоматически обновляться до версии 1.0, если вы в настоящее время используете предыдущую версию. -версия. Однако некоторые старые версии opencode всегда используют последние версии. - -Чтобы обновить вручную, запустите - -```bash -$ opencode upgrade 1.0.0 -``` - -Чтобы вернуться к версии 0.x, запустите - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## UX-изменения - -История сеанса более сжата и показывает только полную информацию об инструментах редактирования и bash. - -Мы добавили панель команд, через которую проходит почти все. Нажмите ctrl+p, чтобы вызвать его в любом контексте и увидеть все, что вы можете сделать. - -Добавлена ​​боковая панель сеанса (можно переключать) с полезной информацией. - -Мы удалили некоторые функции, которые, как мы не были уверены, кто-то действительно использовал. Если что-то важное отсутствует, пожалуйста, откройте проблему, и мы быстро добавим ее обратно. - ---- - -## Критические изменения - -### Сочетания клавиш переименованы - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Привязки клавиш удалены. - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/th/1-0.mdx b/packages/web/src/content/docs/th/1-0.mdx deleted file mode 100644 index 38eef6176e..0000000000 --- a/packages/web/src/content/docs/th/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: OpenCode 1.0 -description: มีอะไรใหม่ใน OpenCode 1.0 ---- - -OpenCode 1.0 เป็นการเขียน TUI ใหม่ทั้งหมด - -เราย้ายจาก TUI ใช้ go+bubbletea ที่มีปัญหาด้านประสิทธิภาพและความสามารถไปเป็นเฟรมเวิร์กภายใน (OpenTUI) ที่เขียนด้วย zig+solidjs - -TUIล่าสุดทำงานเหมือนกับเก่าเพราะความเชื่อ Opencode เดียวกัน - ---- - -## การอัปเกรด - -คุณไม่ควรได้รับการอัปเกรดอัตโนมัติเป็น 1.0 หากคุณใช้เวอร์ชันก่อนหน้า -อย่างไรก็ตาม OpenCode เวอร์ชันเก่าบางเวอร์ชันจะดึงเวอร์ชันล่าสุดเสมอ - -หากต้องการอัปเกรดด้วยตนเอง ให้รัน - -```bash -$ opencode upgrade 1.0.0 -``` - -ส่วนดาวน์เกรดกลับเป็น 0.x อีกต่อไป... - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## การเปลี่ยนแปลง UX - -ประวัติเซสชันถูกบีบอัดมากขึ้น โดยแสดงเฉพาะรายละเอียดในส่วนที่แก้ไขและ bash เท่านั้น - -เราเพิ่มแถบคำสั่งซึ่งเกือบทุกอย่างไหลผ่าน กด ctrl+p เพื่อเรียกสิ่งนี้ขึ้นมาในบริบทใดก็ได้และดูทุกสิ่งที่คุณทำได้ - -เพิ่มแถบด้านข้างเซสชัน (สามารถสลับได้) พร้อมข้อมูลที่เป็นประโยชน์ - -เราลบฟังก์ชันบางอย่างที่เราไม่แน่ใจว่ามีใครใช้จริงออก หากมีสิ่งที่สำคัญหายไป โปรดเปิด issue แล้วเราจะเพิ่มกลับอย่างรวดเร็ว - ---- - -## การเปลี่ยนแปลงที่สำคัญ - -### เปลี่ยนชื่อแล้ว - -- Messages_revert -> Messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### คีย์ถูกลบออก - -- Messages_layout_toggle -- สิ่ง_ถัดไป -- ข้อเสนอที่_เปอร์โตริโก -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- โครงการ_init -- รายละเอียด_รายละเอียด -- สร้างสรรค์_บล็อก diff --git a/packages/web/src/content/docs/tr/1-0.mdx b/packages/web/src/content/docs/tr/1-0.mdx deleted file mode 100644 index 31f1e99d92..0000000000 --- a/packages/web/src/content/docs/tr/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: 1.0'a geçiş -description: opencode 1.0'daki yenilikler. ---- - -opencode 1.0, TUI'un tamamen yeniden yazılmasıdır. - -Performans ve yetenek sorunları olan go+bubbletea tabanlı TUI'dan zig+solidjs ile yazılmış şirket içi bir çerçeveye (OpenTUI) geçtik. - -Yeni TUI aynı opencode sunucusuna bağlandığı için eskisi gibi çalışıyor. - ---- - -## Upgrading - -Şu anda daha önceki bir sürümü kullanıyorsanız, otomatik olarak 1.0'a yükseltilmemelisiniz. -version. However some older versions of opencode always grab latest. - -Manuel olarak yükseltmek için çalıştırın - -```bash -$ opencode upgrade 1.0.0 -``` - -0.x'e geri dönmek için şunu çalıştırın: - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## Kullanıcı deneyimi değiştirildi - -Oturum geçmişi daha sıkıştırılmıştır ve yalnızca düzenleme ve bash aracının tüm ayrıntılarını gösterir. - -Neredeyse onun içinden aktığı bir komut çubuğu ekledik. Her şeyi görmek için ctrl+p tuşlarına basın. - -Yararlı bilgileri içeren bir oturum kenar çubuğu eklendi (açılıp kapanabilir). - -Kimsenin gerçekten çalıştığından emin olmadığımız bazı şeyleri kaldırabildik. Önemli bir şeyin eksik olması durumunda lütfen bir konuyu açın; biz de hızla geri ekleyelim. - ---- - -## Breaking changes - -### Keybinds renamed - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### Keybinds removed - -- messages_layout_toggle -- messages_next -- messages_previous -- file_diff_toggle -- file_search -- file_close -- file_list -- app_help -- project_init -- tool_details -- thinking_blocks diff --git a/packages/web/src/content/docs/zh-cn/1-0.mdx b/packages/web/src/content/docs/zh-cn/1-0.mdx deleted file mode 100644 index 849163c0c2..0000000000 --- a/packages/web/src/content/docs/zh-cn/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: 迁移到 1.0 -description: opencode 1.0 中的新增内容。 ---- - -opencode 1.0 完全重写了 TUI。 - -我们从存在性能和功能问题的基于 go+bubbletea 的 TUI 迁移到使用 zig+solidjs 编写的内部框架 (OpenTUI)。 - -新的 TUI 的工作方式与旧的 TUI 类似,因为它连接到相同的 opencode 服务器。 - ---- - -## 升级中 - -如果您当前正在使用以前的版本,则不应自动升级到 1.0 -版本。然而,一些旧版本的 opencode 总是获取最新版本。 - -要手动升级,请运行 - -```bash -$ opencode upgrade 1.0.0 -``` - -要降级回 0.x,请运行 - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## 用户体验变化 - -会话历史记录更加压缩,仅显示编辑和 bash 工具的完整详细信息。 - -我们添加了一个命令栏,几乎所有内容都通过它。按 ctrl+p 可以在任意上下文中调出它并查看您可以执行的所有操作。 - -添加了包含有用信息的会话侧边栏(可以切换)。 - -我们删除了一些我们不确定是否有人实际使用的功能。如果缺少重要内容,请提出 issue,我们会尽快将其添加回来。 - ---- - -## 重大变化 - -### 按键绑定已重命名 - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### 按键绑定已移除 - -- 消息布局切换 -- 下一条消息 -- 上一条消息 -- 文件差异切换 -- 文件搜索 -- 文件关闭 -- 文件列表 -- 应用程序帮助 -- 项目初始化 -- 工具详细信息 -- 思维块 diff --git a/packages/web/src/content/docs/zh-tw/1-0.mdx b/packages/web/src/content/docs/zh-tw/1-0.mdx deleted file mode 100644 index edb303c9ec..0000000000 --- a/packages/web/src/content/docs/zh-tw/1-0.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: 遷移到 1.0 -description: opencode 1.0 中的新增內容。 ---- - -opencode 1.0 完全重寫了 TUI。 - -我們從存在性能和功能問題的基於 go+bubbletea 的 TUI 遷移到用 zig+solidjs 編寫的內部框架 (OpenTUI)。 - -新 TUI 的工作方式與舊 TUI 類似,因為它連接到相同的opencode服務器。 - ---- - -## 升級中 - -如果您當前正在使用以前的版本,則不應自動升級到 1.0 -版本。然而,一些舊版本的 opencode 總是獲取最新版本。 - -要手動升級,請運行 - -```bash -$ opencode upgrade 1.0.0 -``` - -要降級回 0.x,請運行 - -```bash -$ opencode upgrade 0.15.31 -``` - ---- - -## 用戶體驗變化 - -會話歷史記錄更加壓縮,僅顯示編輯和 bash 工具的完整詳細信息。 - -我們添加了一個命令欄,幾乎所有內容都經過它。按 ctrl+p 可在任何上下文中調出它並查看您可以執行的所有操作。 - -添加了包含有用信息的會話側邊欄(可以切換)。 - -我們刪除了一些我們不確定是否有人實際使用的功能。如果缺少重要內容,請提出問題,我們會盡快將其添加回來。 - ---- - -## 重大變化 - -### 按鍵綁定已重命名 - -- messages_revert -> messages_undo -- switch_agent -> agent_cycle -- switch_agent_reverse -> agent_cycle_reverse -- switch_mode -> agent_cycle -- switch_mode_reverse -> agent_cycle_reverse - -### 按鍵綁定已移除 - -- 消息佈局切換 -- 下一條消息 -- 上一條消息 -- 文件差異切換 -- 文件搜索 -- 文件關閉 -- 文件列表 -- 應用程式幫助 -- 項目初始化 -- 工具詳細信息 -- 思維塊 From 22125d13471f2e3166b4b1123eb437920b1dd9b0 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 11 Feb 2026 00:05:04 -0500 Subject: [PATCH 33/66] wip: zen --- packages/console/core/src/model.ts | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts index e1e540fb7a..9a2908e32e 100644 --- a/packages/console/core/src/model.ts +++ b/packages/console/core/src/model.ts @@ -53,8 +53,6 @@ export namespace ZenData { weight: z.number().optional(), disabled: z.boolean().optional(), storeModel: z.string().optional(), - headers: z.record(z.string(), z.string()).optional(), - bodyModifier: z.record(z.string(), z.string()).optional(), }), ), }) @@ -62,13 +60,20 @@ export namespace ZenData { const ProviderSchema = z.object({ api: z.string(), apiKey: z.string(), - format: FormatSchema, + format: FormatSchema.optional(), headerMappings: z.record(z.string(), z.string()).optional(), + family: z.string().optional(), + }) + + const ProviderFamilySchema = z.object({ + headers: z.record(z.string(), z.string()).optional(), + bodyModifier: z.record(z.string(), z.string()).optional(), }) const ModelsSchema = z.object({ models: z.record(z.string(), z.union([ModelSchema, z.array(ModelSchema.extend({ formatFilter: FormatSchema }))])), providers: z.record(z.string(), ProviderSchema), + providerFamilies: z.record(z.string(), ProviderFamilySchema), }) export const validate = fn(ModelsSchema, (input) => { @@ -98,7 +103,16 @@ export namespace ZenData { Resource.ZEN_MODELS19.value + Resource.ZEN_MODELS20.value, ) - return ModelsSchema.parse(json) + const { models, providers, providerFamilies } = ModelsSchema.parse(json) + return { + models, + providers: Object.fromEntries( + Object.entries(providers).map(([id, provider]) => [ + id, + { ...provider, ...(provider.family ? providerFamilies[provider.family] : {}) }, + ]), + ), + } }) } From d98bd4bd523bd5ceb6411143020713c3ee4d7e7c Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 10 Feb 2026 23:30:29 -0600 Subject: [PATCH 34/66] fix: add additional context overflow cases, remove overcorrecting ones (#13077) --- packages/opencode/src/provider/error.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/provider/error.ts b/packages/opencode/src/provider/error.ts index 2693df04fd..0db03576e9 100644 --- a/packages/opencode/src/provider/error.ts +++ b/packages/opencode/src/provider/error.ts @@ -12,15 +12,13 @@ export namespace ProviderError { /input token count.*exceeds the maximum/i, // Google (Gemini) /maximum prompt length is \d+/i, // xAI (Grok) /reduce the length of the messages/i, // Groq - /maximum context length is \d+ tokens/i, // OpenRouter + /maximum context length is \d+ tokens/i, // OpenRouter, DeepSeek /exceeds the limit of \d+/i, // GitHub Copilot /exceeds the available context size/i, // llama.cpp server /greater than the context length/i, // LM Studio /context window exceeds limit/i, // MiniMax - /exceeded model token limit/i, // Kimi For Coding + /exceeded model token limit/i, // Kimi For Coding, Moonshot /context[_ ]length[_ ]exceeded/i, // Generic fallback - /too many tokens/i, // Generic fallback - /token limit exceeded/i, // Generic fallback ] function isOpenAiErrorRetryable(e: APICallError) { From 213a87234dd7579873787070e5f8ad98eb88bce8 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Wed, 11 Feb 2026 15:49:48 +0800 Subject: [PATCH 35/66] feat(desktop): add WSL backend mode (#12914) --- packages/app/src/app.tsx | 2 +- .../app/src/components/settings-general.tsx | 28 + packages/app/src/context/platform.tsx | 6 + packages/app/src/i18n/ar.ts | 3 + packages/app/src/i18n/br.ts | 3 + packages/app/src/i18n/bs.ts | 3 + packages/app/src/i18n/da.ts | 3 + packages/app/src/i18n/de.ts | 3 + packages/app/src/i18n/en.ts | 3 + packages/app/src/i18n/es.ts | 3 + packages/app/src/i18n/fr.ts | 3 + packages/app/src/i18n/ja.ts | 3 + packages/app/src/i18n/ko.ts | 3 + packages/app/src/i18n/no.ts | 3 + packages/app/src/i18n/pl.ts | 3 + packages/app/src/i18n/ru.ts | 3 + packages/app/src/i18n/th.ts | 3 + packages/app/src/i18n/zh.ts | 3 + packages/app/src/i18n/zht.ts | 3 + packages/desktop/AGENTS.md | 4 + packages/desktop/src-tauri/src/cli.rs | 139 +++- packages/desktop/src-tauri/src/constants.rs | 1 + packages/desktop/src-tauri/src/lib.rs | 107 ++- packages/desktop/src-tauri/src/server.rs | 45 +- packages/desktop/src-tauri/src/windows.rs | 11 +- packages/desktop/src/bindings.ts | 9 + packages/desktop/src/index.tsx | 644 +++++++++--------- 27 files changed, 690 insertions(+), 354 deletions(-) create mode 100644 packages/desktop/AGENTS.md diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index 5bbe86e209..e49b725a19 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -43,7 +43,7 @@ function UiI18nBridge(props: ParentProps) { declare global { interface Window { - __OPENCODE__?: { updaterEnabled?: boolean; serverPassword?: string; deepLinks?: string[] } + __OPENCODE__?: { updaterEnabled?: boolean; serverPassword?: string; deepLinks?: string[]; wsl?: boolean } } } diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index db057a4c41..72135c342e 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -367,6 +367,34 @@ export const SettingsGeneral: Component = () => {
+ + {(_) => { + const [enabledResource, actions] = createResource(() => platform.getWslEnabled?.()) + const enabled = () => (enabledResource.state === "pending" ? undefined : enabledResource.latest) + + return ( +
+

{language.t("settings.desktop.section.wsl")}

+ +
+ +
+ platform.setWslEnabled?.(checked)?.finally(() => actions.refetch())} + /> +
+
+
+
+ ) + }} +
+ {/* Updates Section */}

{language.t("settings.general.section.updates")}

diff --git a/packages/app/src/context/platform.tsx b/packages/app/src/context/platform.tsx index 7aa6c65540..e260c1977e 100644 --- a/packages/app/src/context/platform.tsx +++ b/packages/app/src/context/platform.tsx @@ -57,6 +57,12 @@ export type Platform = { /** Set the default server URL to use on app startup (platform-specific) */ setDefaultServerUrl?(url: string | null): Promise | void + /** Get the configured WSL integration (desktop only) */ + getWslEnabled?(): Promise + + /** Set the configured WSL integration (desktop only) */ + setWslEnabled?(config: boolean): Promise | void + /** Get the preferred display backend (desktop only) */ getDisplayBackend?(): Promise | DisplayBackend | null diff --git a/packages/app/src/i18n/ar.ts b/packages/app/src/i18n/ar.ts index 201d63660a..7a09edc518 100644 --- a/packages/app/src/i18n/ar.ts +++ b/packages/app/src/i18n/ar.ts @@ -508,6 +508,9 @@ export const dict = { "settings.section.server": "الخادم", "settings.tab.general": "عام", "settings.tab.shortcuts": "اختصارات", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "المظهر", "settings.general.section.notifications": "إشعارات النظام", diff --git a/packages/app/src/i18n/br.ts b/packages/app/src/i18n/br.ts index b7f2d74857..ba09fbe03d 100644 --- a/packages/app/src/i18n/br.ts +++ b/packages/app/src/i18n/br.ts @@ -512,6 +512,9 @@ export const dict = { "settings.section.server": "Servidor", "settings.tab.general": "Geral", "settings.tab.shortcuts": "Atalhos", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Aparência", "settings.general.section.notifications": "Notificações do sistema", diff --git a/packages/app/src/i18n/bs.ts b/packages/app/src/i18n/bs.ts index 05eca1628e..38d6b79c94 100644 --- a/packages/app/src/i18n/bs.ts +++ b/packages/app/src/i18n/bs.ts @@ -539,6 +539,9 @@ export const dict = { "settings.section.server": "Server", "settings.tab.general": "Opšte", "settings.tab.shortcuts": "Prečice", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Izgled", "settings.general.section.notifications": "Sistemske obavijesti", diff --git a/packages/app/src/i18n/da.ts b/packages/app/src/i18n/da.ts index 8ea4907c1b..e36fb16d5b 100644 --- a/packages/app/src/i18n/da.ts +++ b/packages/app/src/i18n/da.ts @@ -512,6 +512,9 @@ export const dict = { "settings.section.server": "Server", "settings.tab.general": "Generelt", "settings.tab.shortcuts": "Genveje", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Udseende", "settings.general.section.notifications": "Systemmeddelelser", diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts index a4884a1033..633d51d052 100644 --- a/packages/app/src/i18n/de.ts +++ b/packages/app/src/i18n/de.ts @@ -556,6 +556,9 @@ export const dict = { "settings.section.server": "Server", "settings.tab.general": "Allgemein", "settings.tab.shortcuts": "Tastenkombinationen", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Erscheinungsbild", "settings.general.section.notifications": "Systembenachrichtigungen", diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index b0ffa70f84..c138c7b614 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -583,6 +583,9 @@ export const dict = { "settings.section.server": "Server", "settings.tab.general": "General", "settings.tab.shortcuts": "Shortcuts", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Appearance", "settings.general.section.notifications": "System notifications", diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts index 50d9060703..ff4198228a 100644 --- a/packages/app/src/i18n/es.ts +++ b/packages/app/src/i18n/es.ts @@ -515,6 +515,9 @@ export const dict = { "settings.section.server": "Servidor", "settings.tab.general": "General", "settings.tab.shortcuts": "Atajos", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Apariencia", "settings.general.section.notifications": "Notificaciones del sistema", diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts index 7ad39f3406..402c095ba5 100644 --- a/packages/app/src/i18n/fr.ts +++ b/packages/app/src/i18n/fr.ts @@ -522,6 +522,9 @@ export const dict = { "settings.section.server": "Serveur", "settings.tab.general": "Général", "settings.tab.shortcuts": "Raccourcis", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Apparence", "settings.general.section.notifications": "Notifications système", diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts index a39bfbaf33..312ac3262c 100644 --- a/packages/app/src/i18n/ja.ts +++ b/packages/app/src/i18n/ja.ts @@ -507,6 +507,9 @@ export const dict = { "settings.section.server": "サーバー", "settings.tab.general": "一般", "settings.tab.shortcuts": "ショートカット", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "外観", "settings.general.section.notifications": "システム通知", diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts index b5927b2107..b162ab3916 100644 --- a/packages/app/src/i18n/ko.ts +++ b/packages/app/src/i18n/ko.ts @@ -513,6 +513,9 @@ export const dict = { "settings.section.server": "서버", "settings.tab.general": "일반", "settings.tab.shortcuts": "단축키", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "모양", "settings.general.section.notifications": "시스템 알림", diff --git a/packages/app/src/i18n/no.ts b/packages/app/src/i18n/no.ts index 7d8cdd27f3..001b9eda65 100644 --- a/packages/app/src/i18n/no.ts +++ b/packages/app/src/i18n/no.ts @@ -515,6 +515,9 @@ export const dict = { "settings.section.server": "Server", "settings.tab.general": "Generelt", "settings.tab.shortcuts": "Snarveier", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Utseende", "settings.general.section.notifications": "Systemvarsler", diff --git a/packages/app/src/i18n/pl.ts b/packages/app/src/i18n/pl.ts index 76a47ea26f..2a20cd57e3 100644 --- a/packages/app/src/i18n/pl.ts +++ b/packages/app/src/i18n/pl.ts @@ -514,6 +514,9 @@ export const dict = { "settings.section.server": "Serwer", "settings.tab.general": "Ogólne", "settings.tab.shortcuts": "Skróty", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Wygląd", "settings.general.section.notifications": "Powiadomienia systemowe", diff --git a/packages/app/src/i18n/ru.ts b/packages/app/src/i18n/ru.ts index e83ce37618..698c8db581 100644 --- a/packages/app/src/i18n/ru.ts +++ b/packages/app/src/i18n/ru.ts @@ -517,6 +517,9 @@ export const dict = { "settings.section.server": "Сервер", "settings.tab.general": "Основные", "settings.tab.shortcuts": "Горячие клавиши", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "Внешний вид", "settings.general.section.notifications": "Системные уведомления", diff --git a/packages/app/src/i18n/th.ts b/packages/app/src/i18n/th.ts index 2be19d15b1..161f37f3ba 100644 --- a/packages/app/src/i18n/th.ts +++ b/packages/app/src/i18n/th.ts @@ -516,6 +516,9 @@ export const dict = { "settings.section.server": "เซิร์ฟเวอร์", "settings.tab.general": "ทั่วไป", "settings.tab.shortcuts": "ทางลัด", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "รูปลักษณ์", "settings.general.section.notifications": "การแจ้งเตือนระบบ", diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index a48f9e5494..a2931cf98c 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -548,6 +548,9 @@ export const dict = { "settings.section.server": "服务器", "settings.tab.general": "通用", "settings.tab.shortcuts": "快捷键", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "外观", "settings.general.section.notifications": "系统通知", diff --git a/packages/app/src/i18n/zht.ts b/packages/app/src/i18n/zht.ts index 60363fc99e..cae0c75b46 100644 --- a/packages/app/src/i18n/zht.ts +++ b/packages/app/src/i18n/zht.ts @@ -545,6 +545,9 @@ export const dict = { "settings.section.server": "伺服器", "settings.tab.general": "一般", "settings.tab.shortcuts": "快速鍵", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL integration", + "settings.desktop.wsl.description": "Run the OpenCode server inside WSL on Windows.", "settings.general.section.appearance": "外觀", "settings.general.section.notifications": "系統通知", diff --git a/packages/desktop/AGENTS.md b/packages/desktop/AGENTS.md new file mode 100644 index 0000000000..3839db1a90 --- /dev/null +++ b/packages/desktop/AGENTS.md @@ -0,0 +1,4 @@ +# Desktop package notes + +- Never call `invoke` manually in this package. +- Use the generated bindings in `packages/desktop/src/bindings.ts` for core commands/events. diff --git a/packages/desktop/src-tauri/src/cli.rs b/packages/desktop/src-tauri/src/cli.rs index 98c38677b4..6882d369e9 100644 --- a/packages/desktop/src-tauri/src/cli.rs +++ b/packages/desktop/src-tauri/src/cli.rs @@ -3,8 +3,12 @@ use tauri_plugin_shell::{ ShellExt, process::{Command, CommandChild, CommandEvent}, }; +use tauri_plugin_store::StoreExt; -use crate::{LogState, constants::MAX_LOG_ENTRIES}; +use crate::{ + LogState, + constants::{MAX_LOG_ENTRIES, SETTINGS_STORE, WSL_ENABLED_KEY}, +}; const CLI_INSTALL_DIR: &str = ".opencode/bin"; const CLI_BINARY_NAME: &str = "opencode"; @@ -21,7 +25,7 @@ pub struct Config { } pub async fn get_config(app: &AppHandle) -> Option { - create_command(app, "debug config") + create_command(app, "debug config", &[]) .output() .await .inspect_err(|e| eprintln!("Failed to read OC config: {e}")) @@ -150,25 +154,106 @@ fn get_user_shell() -> String { std::env::var("SHELL").unwrap_or_else(|_| "/bin/sh".to_string()) } -pub fn create_command(app: &tauri::AppHandle, args: &str) -> Command { +fn is_wsl_enabled(app: &tauri::AppHandle) -> bool { + let Ok(store) = app.store(SETTINGS_STORE) else { + return false; + }; + + store + .get(WSL_ENABLED_KEY) + .as_ref() + .and_then(|value| value.as_bool()) + .unwrap_or(false) +} + +fn shell_escape(input: &str) -> String { + if input.is_empty() { + return "''".to_string(); + } + + let mut escaped = String::from("'"); + escaped.push_str(&input.replace("'", "'\"'\"'")); + escaped.push('\''); + escaped +} + +pub fn create_command(app: &tauri::AppHandle, args: &str, extra_env: &[(&str, String)]) -> Command { let state_dir = app .path() .resolve("", BaseDirectory::AppLocalData) .expect("Failed to resolve app local data dir"); - #[cfg(target_os = "windows")] - return app - .shell() - .sidecar("opencode-cli") - .unwrap() - .args(args.split_whitespace()) - .env("OPENCODE_EXPERIMENTAL_ICON_DISCOVERY", "true") - .env("OPENCODE_EXPERIMENTAL_FILEWATCHER", "true") - .env("OPENCODE_CLIENT", "desktop") - .env("XDG_STATE_HOME", &state_dir); + let mut envs = vec![ + ( + "OPENCODE_EXPERIMENTAL_ICON_DISCOVERY".to_string(), + "true".to_string(), + ), + ( + "OPENCODE_EXPERIMENTAL_FILEWATCHER".to_string(), + "true".to_string(), + ), + ("OPENCODE_CLIENT".to_string(), "desktop".to_string()), + ( + "XDG_STATE_HOME".to_string(), + state_dir.to_string_lossy().to_string(), + ), + ]; + envs.extend( + extra_env + .iter() + .map(|(key, value)| (key.to_string(), value.clone())), + ); - #[cfg(not(target_os = "windows"))] - return { + if cfg!(windows) { + if is_wsl_enabled(app) { + println!("WSL is enabled, spawning CLI server in WSL."); + let version = app.package_info().version.to_string(); + let mut script = vec![ + "set -e".to_string(), + "BIN=\"$HOME/.opencode/bin/opencode\"".to_string(), + "if [ ! -x \"$BIN\" ]; then".to_string(), + format!( + " curl -fsSL https://opencode.ai/install | bash -s -- --version {} --no-modify-path", + shell_escape(&version) + ), + "fi".to_string(), + ]; + + let mut env_prefix = vec![ + "OPENCODE_EXPERIMENTAL_ICON_DISCOVERY=true".to_string(), + "OPENCODE_EXPERIMENTAL_FILEWATCHER=true".to_string(), + "OPENCODE_CLIENT=desktop".to_string(), + "XDG_STATE_HOME=\"$HOME/.local/state\"".to_string(), + ]; + env_prefix.extend( + envs.iter() + .filter(|(key, _)| key != "OPENCODE_EXPERIMENTAL_ICON_DISCOVERY") + .filter(|(key, _)| key != "OPENCODE_EXPERIMENTAL_FILEWATCHER") + .filter(|(key, _)| key != "OPENCODE_CLIENT") + .filter(|(key, _)| key != "XDG_STATE_HOME") + .map(|(key, value)| format!("{}={}", key, shell_escape(value))), + ); + + script.push(format!("{} exec \"$BIN\" {}", env_prefix.join(" "), args)); + + return app + .shell() + .command("wsl") + .args(["-e", "bash", "-lc", &script.join("\n")]); + } else { + let mut cmd = app + .shell() + .sidecar("opencode-cli") + .unwrap() + .args(args.split_whitespace()); + + for (key, value) in envs { + cmd = cmd.env(key, value); + } + + return cmd; + } + } else { let sidecar = get_sidecar_path(app); let shell = get_user_shell(); @@ -178,14 +263,14 @@ pub fn create_command(app: &tauri::AppHandle, args: &str) -> Command { format!("\"{}\" {}", sidecar.display(), args) }; - app.shell() - .command(&shell) - .env("OPENCODE_EXPERIMENTAL_ICON_DISCOVERY", "true") - .env("OPENCODE_EXPERIMENTAL_FILEWATCHER", "true") - .env("OPENCODE_CLIENT", "desktop") - .env("XDG_STATE_HOME", &state_dir) - .args(["-il", "-c", &cmd]) - }; + let mut cmd = app.shell().command(&shell).args(["-il", "-c", &cmd]); + + for (key, value) in envs { + cmd = cmd.env(key, value); + } + + cmd + } } pub fn serve(app: &AppHandle, hostname: &str, port: u32, password: &str) -> CommandChild { @@ -194,12 +279,16 @@ pub fn serve(app: &AppHandle, hostname: &str, port: u32, password: &str) -> Comm println!("spawning sidecar on port {port}"); + let envs = [ + ("OPENCODE_SERVER_USERNAME", "opencode".to_string()), + ("OPENCODE_SERVER_PASSWORD", password.to_string()), + ]; + let (mut rx, child) = create_command( app, format!("serve --hostname {hostname} --port {port}").as_str(), + &envs, ) - .env("OPENCODE_SERVER_USERNAME", "opencode") - .env("OPENCODE_SERVER_PASSWORD", password) .spawn() .expect("Failed to spawn opencode"); diff --git a/packages/desktop/src-tauri/src/constants.rs b/packages/desktop/src-tauri/src/constants.rs index ac3e1d02ad..cdf05fb458 100644 --- a/packages/desktop/src-tauri/src/constants.rs +++ b/packages/desktop/src-tauri/src/constants.rs @@ -2,6 +2,7 @@ use tauri_plugin_window_state::StateFlags; pub const SETTINGS_STORE: &str = "opencode.settings.dat"; pub const DEFAULT_SERVER_URL_KEY: &str = "defaultServerUrl"; +pub const WSL_ENABLED_KEY: &str = "wslEnabled"; pub const UPDATER_ENABLED: bool = option_env!("TAURI_SIGNING_PRIVATE_KEY").is_some(); pub const MAX_LOG_ENTRIES: usize = 200; diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 82f0441ad3..5c3915e81a 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -52,6 +52,13 @@ enum InitStep { Done, } +#[derive(serde::Deserialize, specta::Type)] +#[serde(rename_all = "snake_case")] +enum WslPathMode { + Windows, + Linux, +} + struct InitState { current: watch::Receiver, } @@ -392,32 +399,50 @@ fn check_linux_app(app_name: &str) -> bool { return true; } +#[tauri::command] +#[specta::specta] +fn wsl_path(path: String, mode: Option) -> Result { + if !cfg(windows) { + return Ok(path); + } + + let flag = match mode.unwrap_or(WslPathMode::Linux) { + WslPathMode::Windows => "-w", + WslPathMode::Linux => "-u", + }; + + let output = if path.starts_with('~') { + let suffix = path.strip_prefix('~').unwrap_or(""); + let escaped = suffix.replace('"', "\\\""); + let cmd = format!("wslpath {flag} \"$HOME{escaped}\""); + Command::new("wsl") + .args(["-e", "sh", "-lc", &cmd]) + .output() + .map_err(|e| format!("Failed to run wslpath: {e}"))? + } else { + Command::new("wsl") + .args(["-e", "wslpath", flag, &path]) + .output() + .map_err(|e| format!("Failed to run wslpath: {e}"))? + }; + + if !output.status.success() { + let stderr = String::from_utf8_lossy(&output.stderr).trim().to_string(); + if stderr.is_empty() { + return Err("wslpath failed".to_string()); + } + return Err(stderr); + } + + Ok(String::from_utf8_lossy(&output.stdout).trim().to_string()) +} + #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { - let builder = tauri_specta::Builder::::new() - // Then register them (separated by a comma) - .commands(tauri_specta::collect_commands![ - kill_sidecar, - cli::install_cli, - await_initialization, - server::get_default_server_url, - server::set_default_server_url, - get_display_backend, - set_display_backend, - markdown::parse_markdown_command, - check_app_exists, - resolve_app_path - ]) - .events(tauri_specta::collect_events![LoadingWindowComplete]) - .error_handling(tauri_specta::ErrorHandlingMode::Throw); + let builder = make_specta_builder(); #[cfg(debug_assertions)] // <- Only export on non-release builds - builder - .export( - specta_typescript::Typescript::default(), - "../src/bindings.ts", - ) - .expect("Failed to export typescript bindings"); + export_types(&builder); #[cfg(all(target_os = "macos", not(debug_assertions)))] let _ = std::process::Command::new("killall") @@ -476,6 +501,44 @@ pub fn run() { }); } +fn make_specta_builder() -> tauri_specta::Builder { + tauri_specta::Builder::::new() + // Then register them (separated by a comma) + .commands(tauri_specta::collect_commands![ + kill_sidecar, + cli::install_cli, + await_initialization, + server::get_default_server_url, + server::set_default_server_url, + server::get_wsl_config, + server::set_wsl_config, + get_display_backend, + set_display_backend, + markdown::parse_markdown_command, + check_app_exists, + wsl_path, + resolve_app_path + ]) + .events(tauri_specta::collect_events![LoadingWindowComplete]) + .error_handling(tauri_specta::ErrorHandlingMode::Throw) +} + +fn export_types(builder: &tauri_specta::Builder) { + builder + .export( + specta_typescript::Typescript::default(), + "../src/bindings.ts", + ) + .expect("Failed to export typescript bindings"); +} + +#[cfg(test)] +#[test] +fn test_export_types() { + let builder = make_specta_builder(); + export_types(&builder); +} + #[derive(tauri_specta::Event, serde::Deserialize, specta::Type)] struct LoadingWindowComplete; diff --git a/packages/desktop/src-tauri/src/server.rs b/packages/desktop/src-tauri/src/server.rs index 2a78411a43..8113fc7e31 100644 --- a/packages/desktop/src-tauri/src/server.rs +++ b/packages/desktop/src-tauri/src/server.rs @@ -8,9 +8,20 @@ use tokio::task::JoinHandle; use crate::{ cli, - constants::{DEFAULT_SERVER_URL_KEY, SETTINGS_STORE}, + constants::{DEFAULT_SERVER_URL_KEY, SETTINGS_STORE, WSL_ENABLED_KEY}, }; +#[derive(Clone, serde::Serialize, serde::Deserialize, specta::Type, Debug)] +pub struct WslConfig { + pub enabled: bool, +} + +impl Default for WslConfig { + fn default() -> Self { + Self { enabled: false } + } +} + #[tauri::command] #[specta::specta] pub fn get_default_server_url(app: AppHandle) -> Result, String> { @@ -48,6 +59,38 @@ pub async fn set_default_server_url(app: AppHandle, url: Option) -> Resu Ok(()) } +#[tauri::command] +#[specta::specta] +pub fn get_wsl_config(app: AppHandle) -> Result { + let store = app + .store(SETTINGS_STORE) + .map_err(|e| format!("Failed to open settings store: {}", e))?; + + let enabled = store + .get(WSL_ENABLED_KEY) + .as_ref() + .and_then(|v| v.as_bool()) + .unwrap_or(false); + + Ok(WslConfig { enabled }) +} + +#[tauri::command] +#[specta::specta] +pub fn set_wsl_config(app: AppHandle, config: WslConfig) -> Result<(), String> { + let store = app + .store(SETTINGS_STORE) + .map_err(|e| format!("Failed to open settings store: {}", e))?; + + store.set(WSL_ENABLED_KEY, serde_json::Value::Bool(config.enabled)); + + store + .save() + .map_err(|e| format!("Failed to save settings: {}", e))?; + + Ok(()) +} + pub async fn get_saved_server_url(app: &tauri::AppHandle) -> Option { if let Some(url) = get_default_server_url(app.clone()).ok().flatten() { println!("Using desktop-specific custom URL: {url}"); diff --git a/packages/desktop/src-tauri/src/windows.rs b/packages/desktop/src-tauri/src/windows.rs index cf3e399e34..2ddcb0506d 100644 --- a/packages/desktop/src-tauri/src/windows.rs +++ b/packages/desktop/src-tauri/src/windows.rs @@ -1,4 +1,7 @@ -use crate::constants::{UPDATER_ENABLED, window_state_flags}; +use crate::{ + constants::{UPDATER_ENABLED, window_state_flags}, + server::get_wsl_config, +}; use std::{ops::Deref, time::Duration}; use tauri::{AppHandle, Manager, Runtime, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; use tauri_plugin_window_state::AppHandleExt; @@ -22,6 +25,11 @@ impl MainWindow { return Ok(Self(window)); } + let wsl_enabled = get_wsl_config(app.clone()) + .ok() + .map(|v| v.enabled) + .unwrap_or(false); + let window_builder = base_window_config( WebviewWindowBuilder::new(app, Self::LABEL, WebviewUrl::App("/".into())), app, @@ -36,6 +44,7 @@ impl MainWindow { r#" window.__OPENCODE__ ??= {{}}; window.__OPENCODE__.updaterEnabled = {UPDATER_ENABLED}; + window.__OPENCODE__.wsl = {wsl_enabled}; "# )); diff --git a/packages/desktop/src/bindings.ts b/packages/desktop/src/bindings.ts index c7bcaba9c6..3d588a1715 100644 --- a/packages/desktop/src/bindings.ts +++ b/packages/desktop/src/bindings.ts @@ -10,10 +10,13 @@ export const commands = { awaitInitialization: (events: Channel) => __TAURI_INVOKE("await_initialization", { events }), getDefaultServerUrl: () => __TAURI_INVOKE("get_default_server_url"), setDefaultServerUrl: (url: string | null) => __TAURI_INVOKE("set_default_server_url", { url }), + getWslConfig: () => __TAURI_INVOKE("get_wsl_config"), + setWslConfig: (config: WslConfig) => __TAURI_INVOKE("set_wsl_config", { config }), getDisplayBackend: () => __TAURI_INVOKE<"wayland" | "auto" | null>("get_display_backend"), setDisplayBackend: (backend: LinuxDisplayBackend) => __TAURI_INVOKE("set_display_backend", { backend }), parseMarkdownCommand: (markdown: string) => __TAURI_INVOKE("parse_markdown_command", { markdown }), checkAppExists: (appName: string) => __TAURI_INVOKE("check_app_exists", { appName }), + wslPath: (path: string, mode: "windows" | "linux" | null) => __TAURI_INVOKE("wsl_path", { path, mode }), resolveAppPath: (appName: string) => __TAURI_INVOKE("resolve_app_path", { appName }), }; @@ -34,6 +37,12 @@ export type ServerReadyData = { password: string | null, }; +export type WslConfig = { + enabled: boolean, + }; + +export type WslPathMode = "windows" | "linux"; + /* Tauri Specta runtime */ function makeEvent(name: string) { const base = { diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index 0e2fcb7fea..ca603da5f9 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -16,7 +16,6 @@ import { open as shellOpen } from "@tauri-apps/plugin-shell" import { type as ostype } from "@tauri-apps/plugin-os" import { check, Update } from "@tauri-apps/plugin-updater" import { getCurrentWindow } from "@tauri-apps/api/window" -import { invoke } from "@tauri-apps/api/core" import { isPermissionGranted, requestPermission } from "@tauri-apps/plugin-notification" import { relaunch } from "@tauri-apps/plugin-process" import { AsyncStorage } from "@solid-primitives/storage" @@ -30,7 +29,7 @@ import { UPDATER_ENABLED } from "./updater" import { initI18n, t } from "./i18n" import pkg from "../package.json" import "./styles.css" -import { commands, InitStep } from "./bindings" +import { commands, InitStep, type WslConfig } from "./bindings" import { Channel } from "@tauri-apps/api/core" import { createMenu } from "./menu" @@ -59,338 +58,374 @@ const listenForDeepLinks = async () => { await onOpenUrl((urls) => emitDeepLinks(urls)).catch(() => undefined) } -const createPlatform = (password: Accessor): Platform => ({ - platform: "desktop", - os: (() => { +const createPlatform = (password: Accessor): Platform => { + const os = (() => { const type = ostype() if (type === "macos" || type === "windows" || type === "linux") return type return undefined - })(), - version: pkg.version, + })() - async openDirectoryPickerDialog(opts) { - const result = await open({ - directory: true, - multiple: opts?.multiple ?? false, - title: opts?.title ?? t("desktop.dialog.chooseFolder"), - }) - return result - }, + const wslHome = async () => { + if (os !== "windows" || !window.__OPENCODE__?.wsl) return undefined + return commands.wslPath("~", "windows").catch(() => undefined) + } - async openFilePickerDialog(opts) { - const result = await open({ - directory: false, - multiple: opts?.multiple ?? false, - title: opts?.title ?? t("desktop.dialog.chooseFile"), - }) - return result - }, - - async saveFilePickerDialog(opts) { - const result = await save({ - title: opts?.title ?? t("desktop.dialog.saveFile"), - defaultPath: opts?.defaultPath, - }) - return result - }, - - openLink(url: string) { - void shellOpen(url).catch(() => undefined) - }, - - async openPath(path: string, app?: string) { - const os = ostype() - if (os === "windows" && app) { - const resolvedApp = await commands.resolveAppPath(app) - return openerOpenPath(path, resolvedApp || app) + const handleWslPicker = async (result: T | null): Promise => { + if (!result || !window.__OPENCODE__?.wsl) return result + if (Array.isArray(result)) { + return Promise.all(result.map((path) => commands.wslPath(path, "linux").catch(() => path))) as any } - return openerOpenPath(path, app) - }, + return commands.wslPath(result, "linux").catch(() => result) as any + } - back() { - window.history.back() - }, + return { + platform: "desktop", + os, + version: pkg.version, - forward() { - window.history.forward() - }, + async openDirectoryPickerDialog(opts) { + const defaultPath = await wslHome() + const result = await open({ + directory: true, + multiple: opts?.multiple ?? false, + title: opts?.title ?? t("desktop.dialog.chooseFolder"), + defaultPath, + }) + return await handleWslPicker(result) + }, - storage: (() => { - type StoreLike = { - get(key: string): Promise - set(key: string, value: string): Promise - delete(key: string): Promise - clear(): Promise - keys(): Promise - length(): Promise - } + async openFilePickerDialog(opts) { + const result = await open({ + directory: false, + multiple: opts?.multiple ?? false, + title: opts?.title ?? t("desktop.dialog.chooseFile"), + }) + return handleWslPicker(result) + }, - const WRITE_DEBOUNCE_MS = 250 + async saveFilePickerDialog(opts) { + const result = await save({ + title: opts?.title ?? t("desktop.dialog.saveFile"), + defaultPath: opts?.defaultPath, + }) + return handleWslPicker(result) + }, - const storeCache = new Map>() - const apiCache = new Map Promise }>() - const memoryCache = new Map() + openLink(url: string) { + void shellOpen(url).catch(() => undefined) + }, + async openPath(path: string, app?: string) { + const os = ostype() + if (os === "windows") { + const resolvedApp = (app && (await commands.resolveAppPath(app))) || app + const resolvedPath = await (async () => { + if (window.__OPENCODE__?.wsl) { + const converted = await commands.wslPath(path, "windows").catch(() => null) + if (converted) return converted + } - const flushAll = async () => { - const apis = Array.from(apiCache.values()) - await Promise.all(apis.map((api) => api.flush().catch(() => undefined))) - } + return path + })() + return openerOpenPath(resolvedPath, resolvedApp) + } + return openerOpenPath(path, app) + }, - if ("addEventListener" in globalThis) { - const handleVisibility = () => { - if (document.visibilityState !== "hidden") return - void flushAll() + back() { + window.history.back() + }, + + forward() { + window.history.forward() + }, + + storage: (() => { + type StoreLike = { + get(key: string): Promise + set(key: string, value: string): Promise + delete(key: string): Promise + clear(): Promise + keys(): Promise + length(): Promise } - window.addEventListener("pagehide", () => void flushAll()) - document.addEventListener("visibilitychange", handleVisibility) - } + const WRITE_DEBOUNCE_MS = 250 - const createMemoryStore = () => { - const data = new Map() - const store: StoreLike = { - get: async (key) => data.get(key), - set: async (key, value) => { - data.set(key, value) - }, - delete: async (key) => { - data.delete(key) - }, - clear: async () => { - data.clear() - }, - keys: async () => Array.from(data.keys()), - length: async () => data.size, + const storeCache = new Map>() + const apiCache = new Map Promise }>() + const memoryCache = new Map() + + const flushAll = async () => { + const apis = Array.from(apiCache.values()) + await Promise.all(apis.map((api) => api.flush().catch(() => undefined))) } - return store - } - const getStore = (name: string) => { - const cached = storeCache.get(name) - if (cached) return cached + if ("addEventListener" in globalThis) { + const handleVisibility = () => { + if (document.visibilityState !== "hidden") return + void flushAll() + } - const store = Store.load(name).catch(() => { - const cached = memoryCache.get(name) + window.addEventListener("pagehide", () => void flushAll()) + document.addEventListener("visibilitychange", handleVisibility) + } + + const createMemoryStore = () => { + const data = new Map() + const store: StoreLike = { + get: async (key) => data.get(key), + set: async (key, value) => { + data.set(key, value) + }, + delete: async (key) => { + data.delete(key) + }, + clear: async () => { + data.clear() + }, + keys: async () => Array.from(data.keys()), + length: async () => data.size, + } + return store + } + + const getStore = (name: string) => { + const cached = storeCache.get(name) if (cached) return cached - const memory = createMemoryStore() - memoryCache.set(name, memory) - return memory - }) + const store = Store.load(name).catch(() => { + const cached = memoryCache.get(name) + if (cached) return cached - storeCache.set(name, store) - return store - } + const memory = createMemoryStore() + memoryCache.set(name, memory) + return memory + }) - const createStorage = (name: string) => { - const pending = new Map() - let timer: ReturnType | undefined - let flushing: Promise | undefined + storeCache.set(name, store) + return store + } - const flush = async () => { - if (flushing) return flushing + const createStorage = (name: string) => { + const pending = new Map() + let timer: ReturnType | undefined + let flushing: Promise | undefined - flushing = (async () => { - const store = await getStore(name) - while (pending.size > 0) { - const batch = Array.from(pending.entries()) - pending.clear() - for (const [key, value] of batch) { - if (value === null) { - await store.delete(key).catch(() => undefined) - } else { - await store.set(key, value).catch(() => undefined) + const flush = async () => { + if (flushing) return flushing + + flushing = (async () => { + const store = await getStore(name) + while (pending.size > 0) { + const batch = Array.from(pending.entries()) + pending.clear() + for (const [key, value] of batch) { + if (value === null) { + await store.delete(key).catch(() => undefined) + } else { + await store.set(key, value).catch(() => undefined) + } } } - } - })().finally(() => { - flushing = undefined - }) + })().finally(() => { + flushing = undefined + }) - return flushing - } - - const schedule = () => { - if (timer) return - timer = setTimeout(() => { - timer = undefined - void flush() - }, WRITE_DEBOUNCE_MS) - } - - const api: AsyncStorage & { flush: () => Promise } = { - flush, - getItem: async (key: string) => { - const next = pending.get(key) - if (next !== undefined) return next - - const store = await getStore(name) - const value = await store.get(key).catch(() => null) - if (value === undefined) return null - return value - }, - setItem: async (key: string, value: string) => { - pending.set(key, value) - schedule() - }, - removeItem: async (key: string) => { - pending.set(key, null) - schedule() - }, - clear: async () => { - pending.clear() - const store = await getStore(name) - await store.clear().catch(() => undefined) - }, - key: async (index: number) => { - const store = await getStore(name) - return (await store.keys().catch(() => []))[index] - }, - getLength: async () => { - const store = await getStore(name) - return await store.length().catch(() => 0) - }, - get length() { - return api.getLength() - }, - } - - return api - } - - return (name = "default.dat") => { - const cached = apiCache.get(name) - if (cached) return cached - - const api = createStorage(name) - apiCache.set(name, api) - return api - } - })(), - - checkUpdate: async () => { - if (!UPDATER_ENABLED) return { updateAvailable: false } - const next = await check().catch(() => null) - if (!next) return { updateAvailable: false } - const ok = await next - .download() - .then(() => true) - .catch(() => false) - if (!ok) return { updateAvailable: false } - update = next - return { updateAvailable: true, version: next.version } - }, - - update: async () => { - if (!UPDATER_ENABLED || !update) return - if (ostype() === "windows") await commands.killSidecar().catch(() => undefined) - await update.install().catch(() => undefined) - }, - - restart: async () => { - await commands.killSidecar().catch(() => undefined) - await relaunch() - }, - - notify: async (title, description, href) => { - const granted = await isPermissionGranted().catch(() => false) - const permission = granted ? "granted" : await requestPermission().catch(() => "denied") - if (permission !== "granted") return - - const win = getCurrentWindow() - const focused = await win.isFocused().catch(() => document.hasFocus()) - if (focused) return - - await Promise.resolve() - .then(() => { - const notification = new Notification(title, { - body: description ?? "", - icon: "https://opencode.ai/favicon-96x96-v3.png", - }) - notification.onclick = () => { - const win = getCurrentWindow() - void win.show().catch(() => undefined) - void win.unminimize().catch(() => undefined) - void win.setFocus().catch(() => undefined) - if (href) { - window.history.pushState(null, "", href) - window.dispatchEvent(new PopStateEvent("popstate")) - } - notification.close() + return flushing } + + const schedule = () => { + if (timer) return + timer = setTimeout(() => { + timer = undefined + void flush() + }, WRITE_DEBOUNCE_MS) + } + + const api: AsyncStorage & { flush: () => Promise } = { + flush, + getItem: async (key: string) => { + const next = pending.get(key) + if (next !== undefined) return next + + const store = await getStore(name) + const value = await store.get(key).catch(() => null) + if (value === undefined) return null + return value + }, + setItem: async (key: string, value: string) => { + pending.set(key, value) + schedule() + }, + removeItem: async (key: string) => { + pending.set(key, null) + schedule() + }, + clear: async () => { + pending.clear() + const store = await getStore(name) + await store.clear().catch(() => undefined) + }, + key: async (index: number) => { + const store = await getStore(name) + return (await store.keys().catch(() => []))[index] + }, + getLength: async () => { + const store = await getStore(name) + return await store.length().catch(() => 0) + }, + get length() { + return api.getLength() + }, + } + + return api + } + + return (name = "default.dat") => { + const cached = apiCache.get(name) + if (cached) return cached + + const api = createStorage(name) + apiCache.set(name, api) + return api + } + })(), + + checkUpdate: async () => { + if (!UPDATER_ENABLED) return { updateAvailable: false } + const next = await check().catch(() => null) + if (!next) return { updateAvailable: false } + const ok = await next + .download() + .then(() => true) + .catch(() => false) + if (!ok) return { updateAvailable: false } + update = next + return { updateAvailable: true, version: next.version } + }, + + update: async () => { + if (!UPDATER_ENABLED || !update) return + if (ostype() === "windows") await commands.killSidecar().catch(() => undefined) + await update.install().catch(() => undefined) + }, + + restart: async () => { + await commands.killSidecar().catch(() => undefined) + await relaunch() + }, + + notify: async (title, description, href) => { + const granted = await isPermissionGranted().catch(() => false) + const permission = granted ? "granted" : await requestPermission().catch(() => "denied") + if (permission !== "granted") return + + const win = getCurrentWindow() + const focused = await win.isFocused().catch(() => document.hasFocus()) + if (focused) return + + await Promise.resolve() + .then(() => { + const notification = new Notification(title, { + body: description ?? "", + icon: "https://opencode.ai/favicon-96x96-v3.png", + }) + notification.onclick = () => { + const win = getCurrentWindow() + void win.show().catch(() => undefined) + void win.unminimize().catch(() => undefined) + void win.setFocus().catch(() => undefined) + if (href) { + window.history.pushState(null, "", href) + window.dispatchEvent(new PopStateEvent("popstate")) + } + notification.close() + } + }) + .catch(() => undefined) + }, + + fetch: (input, init) => { + const pw = password() + + const addHeader = (headers: Headers, password: string) => { + headers.append("Authorization", `Basic ${btoa(`opencode:${password}`)}`) + } + + if (input instanceof Request) { + if (pw) addHeader(input.headers, pw) + return tauriFetch(input) + } else { + const headers = new Headers(init?.headers) + if (pw) addHeader(headers, pw) + return tauriFetch(input, { + ...(init as any), + headers: headers, + }) + } + }, + + getWslEnabled: async () => { + const next = await commands.getWslConfig().catch(() => null) + if (next) return next.enabled + return window.__OPENCODE__!.wsl ?? false + }, + + setWslEnabled: async (enabled) => { + await commands.setWslConfig({ enabled }) + }, + + getDefaultServerUrl: async () => { + const result = await commands.getDefaultServerUrl().catch(() => null) + return result + }, + + setDefaultServerUrl: async (url: string | null) => { + await commands.setDefaultServerUrl(url) + }, + + getDisplayBackend: async () => { + const result = await commands.getDisplayBackend().catch(() => null) + return result + }, + + setDisplayBackend: async (backend) => { + await commands.setDisplayBackend(backend) + }, + + parseMarkdown: (markdown: string) => commands.parseMarkdownCommand(markdown), + + webviewZoom, + + checkAppExists: async (appName: string) => { + return commands.checkAppExists(appName) + }, + + async readClipboardImage() { + const image = await readImage().catch(() => null) + if (!image) return null + const bytes = await image.rgba().catch(() => null) + if (!bytes || bytes.length === 0) return null + const size = await image.size().catch(() => null) + if (!size) return null + const canvas = document.createElement("canvas") + canvas.width = size.width + canvas.height = size.height + const ctx = canvas.getContext("2d") + if (!ctx) return null + const imageData = ctx.createImageData(size.width, size.height) + imageData.data.set(bytes) + ctx.putImageData(imageData, 0, 0) + return new Promise((resolve) => { + canvas.toBlob((blob) => { + if (!blob) return resolve(null) + resolve(new File([blob], `pasted-image-${Date.now()}.png`, { type: "image/png" })) + }, "image/png") }) - .catch(() => undefined) - }, - - fetch: (input, init) => { - const pw = password() - - const addHeader = (headers: Headers, password: string) => { - headers.append("Authorization", `Basic ${btoa(`opencode:${password}`)}`) - } - - if (input instanceof Request) { - if (pw) addHeader(input.headers, pw) - return tauriFetch(input) - } else { - const headers = new Headers(init?.headers) - if (pw) addHeader(headers, pw) - return tauriFetch(input, { - ...(init as any), - headers: headers, - }) - } - }, - - getDefaultServerUrl: async () => { - const result = await commands.getDefaultServerUrl().catch(() => null) - return result - }, - - setDefaultServerUrl: async (url: string | null) => { - await commands.setDefaultServerUrl(url) - }, - - getDisplayBackend: async () => { - const result = await invoke("get_display_backend").catch(() => null) - return result - }, - - setDisplayBackend: async (backend) => { - await invoke("set_display_backend", { backend }).catch(() => undefined) - }, - - parseMarkdown: (markdown: string) => commands.parseMarkdownCommand(markdown), - - webviewZoom, - - checkAppExists: async (appName: string) => { - return commands.checkAppExists(appName) - }, - - async readClipboardImage() { - const image = await readImage().catch(() => null) - if (!image) return null - const bytes = await image.rgba().catch(() => null) - if (!bytes || bytes.length === 0) return null - const size = await image.size().catch(() => null) - if (!size) return null - const canvas = document.createElement("canvas") - canvas.width = size.width - canvas.height = size.height - const ctx = canvas.getContext("2d") - if (!ctx) return null - const imageData = ctx.createImageData(size.width, size.height) - imageData.data.set(bytes) - ctx.putImageData(imageData, 0, 0) - return new Promise((resolve) => { - canvas.toBlob((blob) => { - if (!blob) return resolve(null) - resolve(new File([blob], `pasted-image-${Date.now()}.png`, { type: "image/png" })) - }, "image/png") - }) - }, -}) + }, + } +} let menuTrigger = null as null | ((id: string) => void) createMenu((id) => { @@ -400,6 +435,7 @@ void listenForDeepLinks() render(() => { const [serverPassword, setServerPassword] = createSignal(null) + const platform = createPlatform(() => serverPassword()) function handleClick(e: MouseEvent) { From 783888131efb8f9eef4516a33b15dc3d63d6e401 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Wed, 11 Feb 2026 16:10:24 +0800 Subject: [PATCH 36/66] fix(desktop): read wayland preference from store (#13081) --- packages/desktop/src-tauri/src/lib.rs | 2 +- packages/desktop/src-tauri/src/linux_display.rs | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 5c3915e81a..f50464a7ba 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -402,7 +402,7 @@ fn check_linux_app(app_name: &str) -> bool { #[tauri::command] #[specta::specta] fn wsl_path(path: String, mode: Option) -> Result { - if !cfg(windows) { + if !cfg!(windows) { return Ok(path); } diff --git a/packages/desktop/src-tauri/src/linux_display.rs b/packages/desktop/src-tauri/src/linux_display.rs index 9e1cf90918..24fb27a4bf 100644 --- a/packages/desktop/src-tauri/src/linux_display.rs +++ b/packages/desktop/src-tauri/src/linux_display.rs @@ -14,7 +14,7 @@ struct DisplayConfig { } fn dir() -> Option { - Some(dirs::data_dir()?.join("ai.opencode.desktop")) + Some(dirs::data_dir()?.join(if cfg!(debug_assertions) { "ai.opencode.desktop.dev" } else { "ai.opencode.desktop" })) } fn path() -> Option { @@ -22,10 +22,13 @@ fn path() -> Option { } pub fn read_wayland() -> Option { - let path = path()?; - let raw = std::fs::read_to_string(path).ok()?; - let config = serde_json::from_str::(&raw).ok()?; - config.wayland + let raw = std::fs::read_to_string(dbg!(path()?)).ok()?; + let root = serde_json::from_str::(&raw) + .ok()? + .get(LINUX_DISPLAY_CONFIG_KEY).cloned()?; + serde_json::from_value::(root) + .ok()? + .wayland } pub fn write_wayland(app: &AppHandle, value: bool) -> Result<(), String> { From 7e1247c4208002eda989b52c9462a2294224e296 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 11 Feb 2026 03:44:26 -0600 Subject: [PATCH 37/66] fix(desktop): server spawn resilience (#13028) Co-authored-by: Brendan Allan --- packages/desktop/src-tauri/src/cli.rs | 68 ++++++++++++++++++++++-- packages/desktop/src-tauri/src/lib.rs | 25 ++++++--- packages/desktop/src-tauri/src/server.rs | 33 +++++++++--- 3 files changed, 107 insertions(+), 19 deletions(-) diff --git a/packages/desktop/src-tauri/src/cli.rs b/packages/desktop/src-tauri/src/cli.rs index 6882d369e9..70ac973f03 100644 --- a/packages/desktop/src-tauri/src/cli.rs +++ b/packages/desktop/src-tauri/src/cli.rs @@ -1,9 +1,10 @@ use tauri::{AppHandle, Manager, path::BaseDirectory}; use tauri_plugin_shell::{ ShellExt, - process::{Command, CommandChild, CommandEvent}, + process::{Command, CommandChild, CommandEvent, TerminatedPayload}, }; use tauri_plugin_store::StoreExt; +use tokio::sync::oneshot; use crate::{ LogState, @@ -273,12 +274,45 @@ pub fn create_command(app: &tauri::AppHandle, args: &str, extra_env: &[(&str, St } } -pub fn serve(app: &AppHandle, hostname: &str, port: u32, password: &str) -> CommandChild { +pub fn serve( + app: &AppHandle, + hostname: &str, + port: u32, + password: &str, +) -> (CommandChild, oneshot::Receiver) { let log_state = app.state::(); let log_state_clone = log_state.inner().clone(); + let (exit_tx, exit_rx) = oneshot::channel::(); + println!("spawning sidecar on port {port}"); + if let Ok(mut logs) = log_state_clone.0.lock() { + let args = + format!("--print-logs --log-level WARN serve --hostname {hostname} --port {port}"); + + #[cfg(target_os = "windows")] + { + logs.push_back(format!("[SPAWN] sidecar=opencode-cli args=\"{args}\"\n")); + } + + #[cfg(not(target_os = "windows"))] + { + let sidecar = get_sidecar_path(app); + let shell = get_user_shell(); + let cmd = if shell.ends_with("/nu") { + format!("^\"{}\" {}", sidecar.display(), args) + } else { + format!("\"{}\" {}", sidecar.display(), args) + }; + logs.push_back(format!("[SPAWN] shell=\"{shell}\" argv=\"-il -c {cmd}\"\n")); + } + + while logs.len() > MAX_LOG_ENTRIES { + logs.pop_front(); + } + } + let envs = [ ("OPENCODE_SERVER_USERNAME", "opencode".to_string()), ("OPENCODE_SERVER_PASSWORD", password.to_string()), @@ -286,13 +320,14 @@ pub fn serve(app: &AppHandle, hostname: &str, port: u32, password: &str) -> Comm let (mut rx, child) = create_command( app, - format!("serve --hostname {hostname} --port {port}").as_str(), + format!("--print-logs --log-level WARN serve --hostname {hostname} --port {port}").as_str(), &envs, ) .spawn() .expect("Failed to spawn opencode"); tokio::spawn(async move { + let mut exit_tx = Some(exit_tx); while let Some(event) = rx.recv().await { match event { CommandEvent::Stdout(line_bytes) => { @@ -321,10 +356,35 @@ pub fn serve(app: &AppHandle, hostname: &str, port: u32, password: &str) -> Comm } } } + CommandEvent::Error(err) => { + eprintln!("{err}"); + + if let Ok(mut logs) = log_state_clone.0.lock() { + logs.push_back(format!("[ERROR] {err}\n")); + while logs.len() > MAX_LOG_ENTRIES { + logs.pop_front(); + } + } + } + CommandEvent::Terminated(payload) => { + if let Ok(mut logs) = log_state_clone.0.lock() { + logs.push_back(format!( + "[EXIT] code={:?} signal={:?}\n", + payload.code, payload.signal + )); + while logs.len() > MAX_LOG_ENTRIES { + logs.pop_front(); + } + } + + if let Some(tx) = exit_tx.take() { + let _ = tx.send(payload); + } + } _ => {} } } }); - child + (child, exit_rx) } diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index f50464a7ba..0d8090f3db 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -582,15 +582,26 @@ async fn initialize(app: AppHandle) { let app = app.clone(); Some( async move { - let Ok(Ok(_)) = timeout(Duration::from_secs(30), health_check.0).await - else { - let _ = child.kill(); - return Err(format!( - "Failed to spawn OpenCode Server. Logs:\n{}", - get_logs(app.clone()).await.unwrap() - )); + let res = timeout(Duration::from_secs(30), health_check.0).await; + let err = match res { + Ok(Ok(Ok(()))) => None, + Ok(Ok(Err(e))) => Some(e), + Ok(Err(e)) => Some(format!("Health check task failed: {e}")), + Err(_) => Some("Health check timed out".to_string()), }; + if let Some(err) = err { + let _ = child.kill(); + + let logs = get_logs(app.clone()) + .await + .unwrap_or_else(|e| format!("[DESKTOP] Failed to read sidecar logs: {e}\n")); + + return Err(format!( + "Failed to spawn OpenCode Server ({err}). Logs:\n{logs}" + )); + } + println!("CLI health check OK"); #[cfg(windows)] diff --git a/packages/desktop/src-tauri/src/server.rs b/packages/desktop/src-tauri/src/server.rs index 8113fc7e31..9d09512ce7 100644 --- a/packages/desktop/src-tauri/src/server.rs +++ b/packages/desktop/src-tauri/src/server.rs @@ -113,26 +113,43 @@ pub fn spawn_local_server( port: u32, password: String, ) -> (CommandChild, HealthCheck) { - let child = cli::serve(&app, &hostname, port, &password); + let (child, exit) = cli::serve(&app, &hostname, port, &password); let health_check = HealthCheck(tokio::spawn(async move { let url = format!("http://{hostname}:{port}"); - let timestamp = Instant::now(); - loop { - tokio::time::sleep(Duration::from_millis(100)).await; - if check_health(&url, Some(&password)).await { - println!("Server ready after {:?}", timestamp.elapsed()); - break; + let ready = async { + loop { + tokio::time::sleep(Duration::from_millis(100)).await; + + if check_health(&url, Some(&password)).await { + println!("Server ready after {:?}", timestamp.elapsed()); + return Ok(()); + } } + }; + + let terminated = async { + match exit.await { + Ok(payload) => Err(format!( + "Sidecar terminated before becoming healthy (code={:?} signal={:?})", + payload.code, payload.signal + )), + Err(_) => Err("Sidecar terminated before becoming healthy".to_string()), + } + }; + + tokio::select! { + res = ready => res, + res = terminated => res, } })); (child, health_check) } -pub struct HealthCheck(pub JoinHandle<()>); +pub struct HealthCheck(pub JoinHandle>); pub async fn check_health(url: &str, password: Option<&str>) -> bool { let Ok(url) = reqwest::Url::parse(url) else { From b5239983292689c2861993ba15a4e4e20412c64e Mon Sep 17 00:00:00 2001 From: webwww123 <1876948535@qq.com> Date: Wed, 11 Feb 2026 18:33:50 +0800 Subject: [PATCH 38/66] fix(docs): avoid footer language selector truncation (#13124) --- packages/web/src/components/Footer.astro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web/src/components/Footer.astro b/packages/web/src/components/Footer.astro index 20d65ee9de..2e407e7eed 100644 --- a/packages/web/src/components/Footer.astro +++ b/packages/web/src/components/Footer.astro @@ -110,7 +110,8 @@ const discord = config.social?.find((item) => item.icon === "discord") } .doc :global(starlight-lang-select select) { - min-width: 7em; + min-width: 18ch; + max-width: min(100%, 20rem); } @media (min-width: 30rem) { From 567e094e6c3560cadea0e8e6029f4c4d9ce45346 Mon Sep 17 00:00:00 2001 From: Jun <87404676+Seungjun0906@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:37:52 +0900 Subject: [PATCH 39/66] docs(ko): improve translations for intro, cli, and commands (#13094) --- packages/web/src/content/docs/ko/cli.mdx | 439 +++++++++--------- packages/web/src/content/docs/ko/commands.mdx | 124 ++--- packages/web/src/content/docs/ko/index.mdx | 170 +++---- 3 files changed, 359 insertions(+), 374 deletions(-) diff --git a/packages/web/src/content/docs/ko/cli.mdx b/packages/web/src/content/docs/ko/cli.mdx index 1b857cbef3..007569366c 100644 --- a/packages/web/src/content/docs/ko/cli.mdx +++ b/packages/web/src/content/docs/ko/cli.mdx @@ -1,17 +1,17 @@ --- title: CLI -description: opencode CLI options and commands. +description: opencode CLI 옵션과 명령어. --- import { Tabs, TabItem } from "@astrojs/starlight/components" -기본적으로 opencode CLI는 어떤 인수 없이 실행할 때 [TUI](/docs/tui)를 시작합니다. +opencode CLI는 인수 없이 실행하면 기본적으로 [TUI](/docs/tui)를 시작합니다. ```bash opencode ``` -그러나이 페이지에서 문서로 명령을받습니다. opencode programmatically와 상호 작용할 수 있습니다. +이 페이지에 나온 것처럼 명령을 함께 전달할 수도 있습니다. 이를 통해 opencode를 프로그래밍 방식으로 사용할 수 있습니다. ```bash opencode run "Explain how closures work in JavaScript" @@ -19,38 +19,38 @@ opencode run "Explain how closures work in JavaScript" --- -### 튜이 +### tui -opencode terminal 사용자 인터페이스를 시작합니다. +OpenCode 터미널 사용자 인터페이스를 시작합니다. ```bash opencode [project] ``` -#### 플래그 +#### Flags -| 플래그 | 짧은 이름 | 설명 | -| ------------ | --------- | ----------------------------------------------------------------- | -| `--continue` | `-c` | 마지막 세션 계속하기 | -| `--session` | `-s` | 계속할 세션 ID | -| `--fork` | | 계속 시 세션 포크하기 (`--continue` 또는 `--session`과 함께 사용) | -| `--prompt` | | 사용할 프롬프트 | -| `--model` | `-m` | `provider/model` 형식의 모델 | -| `--agent` | | 사용할 에이전트 | -| `--port` | | 수신 대기할 포트 | -| `--hostname` | | 수신 대기할 호스트명 | +| 플래그 | 축약 | 설명 | +| ------------ | ---- | ---------------------------------------------------------------------- | +| `--continue` | `-c` | 마지막 세션 이어서 실행 | +| `--session` | `-s` | 이어서 실행할 세션 ID | +| `--fork` | | 세션을 이어갈 때 포크 생성 (`--continue` 또는 `--session`과 함께 사용) | +| `--prompt` | | 사용할 프롬프트 | +| `--model` | `-m` | 사용할 모델 (`provider/model` 형식) | +| `--agent` | | 사용할 에이전트 | +| `--port` | | 수신 포트 | +| `--hostname` | | 수신 호스트명 | --- -## 명령 +## Commands -opencode CLI에는 다음과 같은 명령이 있습니다. +opencode CLI는 아래 명령들도 제공합니다. --- -## 에이전트 +### agent -opencode에 대한 에이전트 관리. +opencode용 에이전트를 관리합니다. ```bash opencode agent [command] @@ -58,15 +58,15 @@ opencode agent [command] --- -### 첨부 +### attach -`serve` 또는 `web` 명령을 통해 이미 실행되는 opencode 백엔드 서버에 terminal을 첨부합니다. +`serve` 또는 `web` 명령으로 이미 실행 중인 opencode 백엔드 서버에 터미널을 연결합니다. ```bash opencode attach [url] ``` -리모트 opencode 백엔드를 사용하여 TUI를 사용할 수 있습니다. 예를 들면: +원격 opencode 백엔드와 TUI를 연결해 사용할 수 있습니다. 예: ```bash # Start the backend server for web/mobile access @@ -76,30 +76,30 @@ opencode web --port 4096 --hostname 0.0.0.0 opencode attach http://10.20.30.40:4096 ``` -#### 플래그 +#### Flags -| 플래그 | 플래그 | Description | -| ----------- | ------ | ---------------------------- | -| `--dir` | | TUI를 시작하는 작업 디렉토리 | -| `--session` | `-s` | 세션 ID | +| 플래그 | 축약 | 설명 | +| ----------- | ---- | -------------------------- | +| `--dir` | | TUI를 시작할 작업 디렉터리 | +| `--session` | `-s` | 이어서 실행할 세션 ID | --- -#### 생성 +#### create -사용자 정의 구성으로 새로운 에이전트를 만듭니다. +커스텀 설정으로 새 에이전트를 만듭니다. ```bash opencode agent create ``` -이 명령은 사용자 정의 시스템 프롬프트 및 도구 구성으로 새로운 에이전트를 만들기 위해 안내합니다. +이 명령은 커스텀 시스템 프롬프트와 도구 설정을 사용해 새 에이전트를 만드는 과정을 안내합니다. --- -#### 리스트 +#### list -모든 사용 가능한 에이전트 목록. +사용 가능한 모든 에이전트를 표시합니다. ```bash opencode agent list @@ -109,7 +109,7 @@ opencode agent list ### auth -credentials 및 로그인을 관리하는 명령. +provider 인증 정보와 로그인을 관리합니다. ```bash opencode auth [command] @@ -117,27 +117,27 @@ opencode auth [command] --- -#### 로그인 +#### login -opencode는 [Models.dev](https://models.dev)의 공급자 목록에 의해 구동되므로 `opencode auth login`를 사용하여 사용하려는 모든 공급자의 API 키를 구성할 수 있습니다. 이것은 `~/.local/share/opencode/auth.json`에서 저장됩니다. +OpenCode는 [Models.dev](https://models.dev)의 provider 목록을 기반으로 동작하므로, `opencode auth login`으로 원하는 provider의 API 키를 설정할 수 있습니다. 인증 정보는 `~/.local/share/opencode/auth.json`에 저장됩니다. ```bash opencode auth login ``` -opencode가 시작하면 credentials 파일에서 공급자를로드합니다. 그리고 프로젝트에 있는 환경 또는 `.env` 파일에서 정의된 키가 있다면. +OpenCode 시작 시 인증 파일에서 provider 정보를 불러오며, 시스템 환경 변수나 프로젝트의 `.env`에 정의된 키도 함께 로드합니다. --- -#### 리스트 +#### list -credentials 파일에 저장 한 모든 인증 된 제공 업체를 나열합니다. +인증 파일에 저장된 provider 목록을 표시합니다. ```bash opencode auth list ``` -또는 짧은 버전. +축약형도 사용할 수 있습니다. ```bash opencode auth ls @@ -145,9 +145,9 @@ opencode auth ls --- -### 로그아웃 +#### logout -credentials 파일에서 삭제하여 공급자에서 로그. +인증 파일에서 provider 정보를 제거해 로그아웃합니다. ```bash opencode auth logout @@ -155,9 +155,9 @@ opencode auth logout --- -#### github에 +### github -저장소 자동화를 위한 GitHub 에이전트 관리. +저장소 자동화를 위한 GitHub 에이전트를 관리합니다. ```bash opencode github [command] @@ -165,7 +165,7 @@ opencode github [command] --- -### 설치 +#### install 저장소에 GitHub 에이전트를 설치합니다. @@ -173,30 +173,30 @@ opencode github [command] opencode github install ``` -필요한 GitHub Actions 워크플로우를 설정하고 구성 프로세스를 통해 안내합니다. [더 알아보기](/docs/github). +필요한 GitHub Actions 워크플로를 설정하고 구성 과정을 안내합니다. [더 알아보기](/docs/github). --- -#### 실행 +#### run -GitHub 에이전트를 실행합니다. 이것은 일반적으로 GitHub Actions에서 사용됩니다. +GitHub 에이전트를 실행합니다. 보통 GitHub Actions에서 사용합니다. ```bash opencode github run ``` -##### 플래그 +##### Flags -| 플래그 | 설명 | -| --------- | ----------------------- | -| `--event` | GitHub 모의 이벤트 | -| `--token` | GitHub 개인 액세스 토큰 | +| 플래그 | 설명 | +| --------- | ------------------------- | +| `--event` | 실행할 GitHub 모의 이벤트 | +| `--token` | GitHub 개인 액세스 토큰 | --- -#### mcp를 +### mcp -Model Context Protocol 서버 관리 +Model Context Protocol 서버를 관리합니다. ```bash opencode mcp [command] @@ -204,27 +204,27 @@ opencode mcp [command] --- -#### 추가 +#### add -MCP 서버를 구성에 추가합니다. +구성에 MCP 서버를 추가합니다. ```bash opencode mcp add ``` -이 명령은 로컬 또는 원격 MCP 서버를 추가하여 안내합니다. +이 명령은 로컬 또는 원격 MCP 서버를 추가하는 과정을 안내합니다. --- -#### 리스트 +#### list -모든 구성 MCP 서버와 연결 상태를 나열합니다. +구성된 MCP 서버와 연결 상태를 표시합니다. ```bash opencode mcp list ``` -또는 짧은 버전을 사용합니다. +축약형도 사용할 수 있습니다. ```bash opencode mcp ls @@ -234,21 +234,21 @@ opencode mcp ls #### auth -OAuth-enabled MCP 서버 인증 +OAuth를 지원하는 MCP 서버를 인증합니다. ```bash opencode mcp auth [name] ``` -서버 이름을 제공하지 않으면 OAuth-capable 서버에서 선택할 수 있습니다. +서버 이름을 입력하지 않으면 OAuth 지원 서버 목록에서 선택하라는 안내가 표시됩니다. -OAuth-capable 서버와 인증 상태를 나열할 수 있습니다. +OAuth 지원 서버와 인증 상태를 목록으로 볼 수도 있습니다. ```bash opencode mcp auth list ``` -또는 짧은 버전을 사용합니다. +축약형도 사용할 수 있습니다. ```bash opencode mcp auth ls @@ -256,9 +256,9 @@ opencode mcp auth ls --- -### 로그아웃 +#### logout -MCP 서버의 OAuth 자격 제거. +MCP 서버의 OAuth 인증 정보를 제거합니다. ```bash opencode mcp logout [name] @@ -266,9 +266,9 @@ opencode mcp logout [name] --- -### 디버그 +#### debug -MCP 서버의 OAuth 연결 문제. +MCP 서버의 OAuth 연결 문제를 디버그합니다. ```bash opencode mcp debug @@ -276,32 +276,32 @@ opencode mcp debug --- -## 모델 +### models -구성 공급자에서 모든 가능한 모델을 나열합니다. +구성된 provider에서 사용 가능한 모델 목록을 표시합니다. ```bash opencode models [provider] ``` -이 명령은 `provider/model` 형식으로 구성된 제공 업체에서 사용할 수있는 모든 모델을 표시합니다. +이 명령은 구성된 provider 전체에서 사용 가능한 모델을 `provider/model` 형식으로 출력합니다. -이것은 [your config](/docs/config/)에서 사용하는 정확한 모델 이름을 파악하는 데 유용합니다. +[config](/docs/config/)에 지정할 정확한 모델명을 확인할 때 유용합니다. -선택적으로 공급자 ID를 필터 모델로 전달할 수 있습니다. +특정 provider ID를 넘겨 해당 provider의 모델만 필터링할 수도 있습니다. ```bash opencode models anthropic ``` -#### 플래그 +#### Flags -| 플래그 | 설명 | -| ----------- | ----------------------------------------------------------- | -| `--refresh` | 모델 캐시를 모델에서 새로 고침 | -| `--verbose` | 더 많은 verbose 모델 출력 사용(비용과 같은 메타데이터 포함) | +| 플래그 | 설명 | +| ----------- | ------------------------------------------------- | +| `--refresh` | models.dev에서 모델 캐시 새로고침 | +| `--verbose` | 더 자세한 모델 출력 사용(비용 등 메타데이터 포함) | -`--refresh` 플래그를 사용하여 캐시 모델 목록을 업데이트합니다. 이것은 새로운 모델이 공급자에 추가되었을 때 유용합니다. opencode에서 그들을보고 싶습니다. +`--refresh` 플래그를 사용하면 캐시된 모델 목록을 갱신할 수 있습니다. provider에 새 모델이 추가된 뒤 OpenCode에서 바로 확인하고 싶을 때 유용합니다. ```bash opencode models --refresh @@ -309,21 +309,21 @@ opencode models --refresh --- -### 실행 +### run -직접 프롬프트를 통과하여 비동기 모드에서 opencode를 실행합니다. +프롬프트를 직접 전달해 비대화형 모드로 opencode를 실행합니다. ```bash opencode run [message..] ``` -이것은 스크립트, 자동화 또는 전체 TUI를 실행하지 않고 빠른 응답을 원할 때 유용합니다. 예를 들어. +스크립트, 자동화, 또는 전체 TUI를 띄우지 않고 빠른 응답이 필요할 때 유용합니다. 예: ```bash "opencode run" opencode run Explain the use of context in Go ``` -`opencode serve` 인스턴스를 실행하여 MCP 서버 콜드 부팅 시간을 각 실행할 수 있습니다. +매번 MCP 서버 콜드 부트가 발생하지 않도록, 실행 중인 `opencode serve` 인스턴스에 붙어서 실행할 수도 있습니다. ```bash # Start a headless server in one terminal @@ -333,48 +333,49 @@ opencode serve opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" ``` -#### 플래그 +#### Flags -| 플래그 | 짧은 이름 | 설명 | -| ------------ | --------- | ----------------------------------------------------- | -| `--command` | | 실행 중인 명령 사용(미지정 시 args의 메시지 사용) | -| `--continue` | `-c` | 마지막 세션 | -| `--session` | `-s` | 세션 ID | -| `--share` | | 세션 공유 | -| `--model` | `-m` | `-m`의 형태로 사용 가능 | -| `--agent` | | 에이전트 | -| `--file` | `-f` | 메시지 첨부 파일 | -| `--format` | | 출력 형식: formatted 또는 json(raw JSON 이벤트) | -| `--title` | | 세션의 제목(제공되지 않은 경우 truncated prompt 사용) | -| `--attach` | | 운영 개시 서버(예: http://localhost:4096) | -| `--port` | | 현지 서버 포트 | +| 플래그 | 축약 | 설명 | +| ------------ | ---- | ---------------------------------------------------------------------- | +| `--command` | | 실행할 명령(인수는 message로 전달) | +| `--continue` | `-c` | 마지막 세션 이어서 실행 | +| `--session` | `-s` | 이어서 실행할 세션 ID | +| `--fork` | | 세션을 이어갈 때 포크 생성 (`--continue` 또는 `--session`과 함께 사용) | +| `--share` | | 세션 공유 | +| `--model` | `-m` | 사용할 모델 (`provider/model` 형식) | +| `--agent` | | 사용할 에이전트 | +| `--file` | `-f` | 메시지에 첨부할 파일 | +| `--format` | | 출력 형식: default(포맷됨) 또는 json(원시 JSON 이벤트) | +| `--title` | | 세션 제목(값이 없으면 프롬프트를 잘라 자동 생성) | +| `--attach` | | 실행 중인 opencode 서버에 연결(예: http://localhost:4096) | +| `--port` | | 로컬 서버 포트(기본값: 랜덤 포트) | --- -## 서비스 +### serve -API 액세스를 위한 headless opencode 서버를 시작합니다. 완전한 HTTP 인터페이스를 위해 [server docs](/docs/server)를 체크하십시오. +API 접근용 headless OpenCode 서버를 시작합니다. 전체 HTTP 인터페이스는 [server docs](/docs/server)를 참고하세요. ```bash opencode serve ``` -TUI 인터페이스없이 API 액세스를 제공하는 HTTP 서버를 시작합니다. `OPENCODE_SERVER_PASSWORD`를 설정하여 HTTP 기본 auth (`opencode`에 기본적으로 이름을 지정합니다). +이 명령은 TUI 없이 opencode 기능에 접근할 수 있는 HTTP 서버를 시작합니다. `OPENCODE_SERVER_PASSWORD`를 설정하면 HTTP basic auth가 활성화됩니다(기본 사용자명: `opencode`). -#### 플래그 +#### Flags -| 플래그 | 설명 | -| ------------ | ---------------------------------- | -| `--port` | 포트 | -| `--hostname` | 듣고 싶은 이름 | -| `--mdns` | 엔터블 mDNS 검색 | -| `--cors` | CORS를 허용하는 추가 브라우저 기원 | +| 플래그 | 설명 | +| ------------ | --------------------------------- | +| `--port` | 수신 포트 | +| `--hostname` | 수신 호스트명 | +| `--mdns` | mDNS 검색 활성화 | +| `--cors` | 허용할 추가 브라우저 origin(CORS) | --- -### 세션 +### session -opencode 세션 관리. +OpenCode 세션을 관리합니다. ```bash opencode session [command] @@ -382,63 +383,63 @@ opencode session [command] --- -#### 리스트 +#### list -모든 opencode 세션 목록. +OpenCode 세션 목록을 표시합니다. ```bash opencode session list ``` -##### 플래그 +##### Flags -| 플래그 | 짧은 이름 | 설명 | -| ------------- | --------- | -------------------------- | -| `--max-count` | `-n` | 최근 세션에 제한 | -| `--format` | | 출력 형식: table 또는 json | +| 플래그 | 축약 | 설명 | +| ------------- | ---- | -------------------------------------- | +| `--max-count` | `-n` | 최근 N개 세션만 표시 | +| `--format` | | 출력 형식: table 또는 json(기본 table) | --- -### 통계 +### stats -opencode 세션에 대한 토큰 사용 및 비용 통계를 표시합니다. +OpenCode 세션의 토큰 사용량과 비용 통계를 표시합니다. ```bash opencode stats ``` -#### 플래그 +#### Flags -| 플래그 | 설명 | -| ----------- | ------------------------------------------------------------------- | -| `--days` | 지난 N일간의 통계를 보여 주세요(모든 시간) | -| `--tools` | 쇼의 도구 수 | -| `--models` | 모델 사용 내역(기본적으로 숨겨져 있음) 상단 N을 표시할 수 있는 번호 | -| `--project` | 프로젝트별 필터링(모든 프로젝트, 빈 문자열: 현재 프로젝트) | +| 플래그 | 설명 | +| ----------- | ------------------------------------------------------------ | +| `--days` | 최근 N일 통계 표시(기본값: 전체 기간) | +| `--tools` | 표시할 도구 개수(기본값: 전체) | +| `--models` | 모델 사용량 상세 표시(기본 숨김). 숫자를 주면 상위 N개 표시 | +| `--project` | 프로젝트 필터(기본: 전체 프로젝트, 빈 문자열: 현재 프로젝트) | --- -### 수출 +### export -JSON으로 세션 데이터를 내보내기. +세션 데이터를 JSON으로 내보냅니다. ```bash opencode export [sessionID] ``` -세션 ID를 제공하지 않는 경우 사용 가능한 세션에서 선택할 수 있습니다. +세션 ID를 지정하지 않으면 사용 가능한 세션에서 선택하라는 안내가 표시됩니다. --- -### 가져오기 +### import -JSON 파일 또는 opencode 공유 URL에서 세션 데이터를 가져옵니다. +JSON 파일 또는 OpenCode 공유 URL에서 세션 데이터를 가져옵니다. ```bash opencode import ``` -로컬 파일 또는 opencode 공유 URL에서 가져올 수 있습니다. +로컬 파일이나 OpenCode 공유 URL에서 가져올 수 있습니다. ```bash opencode import session.json @@ -447,24 +448,24 @@ opencode import https://opncd.ai/s/abc123 --- -#### 웹 +### web -웹 인터페이스로 headless opencode 서버를 시작합니다. +웹 인터페이스를 포함한 headless OpenCode 서버를 시작합니다. ```bash opencode web ``` -HTTP 서버를 시작하고 웹 인터페이스를 통해 opencode에 액세스하는 웹 브라우저를 엽니 다. `OPENCODE_SERVER_PASSWORD`를 설정하여 HTTP 기본 auth (`opencode`에 기본적으로 이름을 지정합니다). +이 명령은 HTTP 서버를 시작하고 웹 브라우저를 열어 웹 인터페이스로 OpenCode에 접속합니다. `OPENCODE_SERVER_PASSWORD`를 설정하면 HTTP basic auth가 활성화됩니다(기본 사용자명: `opencode`). -#### 플래그 +#### Flags -| 플래그 | 설명 | -| ------------ | ---------------------------------- | -| `--port` | 포트 | -| `--hostname` | 듣고 싶은 이름 | -| `--mdns` | 엔터블 mDNS 검색 | -| `--cors` | CORS를 허용하는 추가 브라우저 기원 | +| 플래그 | 설명 | +| ------------ | --------------------------------- | +| `--port` | 수신 포트 | +| `--hostname` | 수신 호스트명 | +| `--mdns` | mDNS 검색 활성화 | +| `--cors` | 허용할 추가 브라우저 origin(CORS) | --- @@ -476,127 +477,127 @@ ACP(Agent Client Protocol) 서버를 시작합니다. opencode acp ``` -이 명령은 nd-JSON을 사용하여 stdin/stdout을 통해 통신하는 ACP 서버를 시작합니다. +이 명령은 nd-JSON 형식으로 stdin/stdout을 통해 통신하는 ACP 서버를 시작합니다. -#### 플래그 +#### Flags -| 플래그 | 설명 | -| ------------ | -------------- | -| `--cwd` | 작업 디렉토리 | -| `--port` | 포트 | -| `--hostname` | 듣고 싶은 이름 | +| 플래그 | 설명 | +| ------------ | ------------- | +| `--cwd` | 작업 디렉터리 | +| `--port` | 수신 포트 | +| `--hostname` | 수신 호스트명 | --- -## 제거 +### uninstall -opencode 제거하고 관련 파일을 제거합니다. +OpenCode를 제거하고 관련 파일을 삭제합니다. ```bash opencode uninstall ``` -#### 플래그 +#### Flags -| 플래그 | 플래그 | Description | -| --------------- | ------ | -------------------------- | -| `--keep-config` | `-c` | 구성 파일 유지 | -| `--keep-data` | `-d` | 세션 데이터 및 스냅샷 유지 | -| `--dry-run` | | 제거하지 않고 제거하는 것 | -| `--force` | `-f` | 확인 프롬프트 | +| 플래그 | 축약 | 설명 | +| --------------- | ---- | ------------------------------- | +| `--keep-config` | `-c` | 설정 파일 유지 | +| `--keep-data` | `-d` | 세션 데이터와 스냅샷 유지 | +| `--dry-run` | | 실제 삭제 없이 삭제 대상만 표시 | +| `--force` | `-f` | 확인 프롬프트 건너뛰기 | --- -### 업그레이드 +### upgrade -업데이트 opencode 최신 버전 또는 특정 버전. +opencode를 최신 버전 또는 특정 버전으로 업데이트합니다. ```bash opencode upgrade [target] ``` -최신 버전으로 업그레이드하십시오. +최신 버전으로 업그레이드: ```bash opencode upgrade ``` -특정 버전으로 업그레이드하십시오. +특정 버전으로 업그레이드: ```bash opencode upgrade v0.1.48 ``` -#### 플래그 +#### Flags -| 플래그 | 플래그 | Description | -| ---------- | ------ | -------------------------------------------- | -| `--method` | `-m` | 사용중인 설치 방법; 컬, npm, pnpm, bun, brew | +| 플래그 | 축약 | 설명 | +| ---------- | ---- | ------------------------------------------ | +| `--method` | `-m` | 설치 방식 지정: curl, npm, pnpm, bun, brew | --- -## 글로벌 플래그 +## Global Flags -opencode CLI는 다음의 글로벌 플래그를 사용합니다. +opencode CLI는 아래 전역 플래그를 지원합니다. -| 플래그 | 짧은 이름 | 설명 | -| -------------- | --------- | ----------------------------------- | -| `--help` | `-h` | 디스플레이 도움말 | -| `--version` | `-v` | 인쇄판 번호 | -| `--print-logs` | | 스터디로 로그인 | -| `--log-level` | | 로그 레벨(DEBUG, INFO, WARN, ERROR) | +| 플래그 | 축약 | 설명 | +| -------------- | ---- | ----------------------------------- | +| `--help` | `-h` | 도움말 표시 | +| `--version` | `-v` | 버전 출력 | +| `--print-logs` | | 로그를 stderr로 출력 | +| `--log-level` | | 로그 레벨(DEBUG, INFO, WARN, ERROR) | --- -## 환경 변수 +## Environment variables -opencode는 환경 변수를 사용하여 구성할 수 있습니다. +OpenCode는 환경 변수로도 구성할 수 있습니다. -| 변하기 쉬운 | 유형 | 묘사 | -| ------------------------------------- | ------- | ----------------------------------------- | -| `OPENCODE_AUTO_SHARE` | 불린 | 자동 공유 세션 | -| `OPENCODE_GIT_BASH_PATH` | string | Windows에서 실행되는 Git Bash 경로 | -| `OPENCODE_CONFIG` | string | 설정파일 경로 | -| `OPENCODE_CONFIG_DIR` | string | 구성 디렉토리 경로 | -| `OPENCODE_CONFIG_CONTENT` | 문자열 | 인라인 json 구성 내용 | -| `OPENCODE_DISABLE_AUTOUPDATE` | 불린 | 자동 업데이트 체크 아웃 | -| `OPENCODE_DISABLE_PRUNE` | boolean | 오래된 자료의 무능 | -| `OPENCODE_DISABLE_TERMINAL_TITLE` | 불린 | 자동 단말 제목 업데이트 | -| `OPENCODE_PERMISSION` | 문자열 | 인라인 json 권한 설정 | -| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | 불린 | 기본 플러그인 비활성화 | -| `OPENCODE_DISABLE_LSP_DOWNLOAD` | 불린 | 자동 LSP 서버 다운로드 | -| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | 불린 | 실험 모델 | -| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | 자동 컨텍스트 컴팩트 | -| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | `.claude`(prompt + Skill)의 읽을 수 있음 | -| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | 불린 | `~/.claude/CLAUDE.md`를 읽을 수 있습니다 | -| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | 불린 | `.claude/skills` 적재 가능 | -| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | 리모트 소스에서 모델에 익숙하지 않은 모델 | -| `OPENCODE_FAKE_VCS` | string | 시험용 VCS 제공업체 | -| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | 최적화를 위한 파일 시간 검사 | -| `OPENCODE_CLIENT` | string | 클라이언트 식별자(`cli`와 동일) | -| `OPENCODE_ENABLE_EXA` | 불린 | 엑다 웹 검색 도구 | -| `OPENCODE_SERVER_PASSWORD` | string | `serve`/`web`에 대한 기본 요점 | -| `OPENCODE_SERVER_USERNAME` | string | 기본 사용자 이름(기본 `opencode`) | -| `OPENCODE_MODELS_URL` | string | 모델 구성의 맞춤 URL | +| 변수 | 타입 | 설명 | +| ------------------------------------- | ------- | ---------------------------------------------- | +| `OPENCODE_AUTO_SHARE` | boolean | 세션 자동 공유 | +| `OPENCODE_GIT_BASH_PATH` | string | Windows에서 Git Bash 실행 파일 경로 | +| `OPENCODE_CONFIG` | string | 설정 파일 경로 | +| `OPENCODE_CONFIG_DIR` | string | 설정 디렉터리 경로 | +| `OPENCODE_CONFIG_CONTENT` | string | 인라인 JSON 설정 내용 | +| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | 자동 업데이트 확인 비활성화 | +| `OPENCODE_DISABLE_PRUNE` | boolean | 오래된 데이터 정리(prune) 비활성화 | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | 터미널 제목 자동 업데이트 비활성화 | +| `OPENCODE_PERMISSION` | string | 인라인 JSON 권한 설정 | +| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | 기본 플러그인 비활성화 | +| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | LSP 서버 자동 다운로드 비활성화 | +| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | 실험적 모델 활성화 | +| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | 자동 컨텍스트 컴팩션 비활성화 | +| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | `.claude`(프롬프트 + 스킬) 읽기 비활성화 | +| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | `~/.claude/CLAUDE.md` 읽기 비활성화 | +| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | `.claude/skills` 로드 비활성화 | +| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | 원격 소스에서 모델 목록 가져오기 비활성화 | +| `OPENCODE_FAKE_VCS` | string | 테스트용 가짜 VCS provider | +| `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | 최적화를 위한 파일 시간 검사 비활성화 | +| `OPENCODE_CLIENT` | string | 클라이언트 식별자(기본값: `cli`) | +| `OPENCODE_ENABLE_EXA` | boolean | Exa 웹 검색 도구 활성화 | +| `OPENCODE_SERVER_PASSWORD` | string | `serve`/`web` 기본 인증 활성화 | +| `OPENCODE_SERVER_USERNAME` | string | 기본 인증 사용자명 오버라이드(기본 `opencode`) | +| `OPENCODE_MODELS_URL` | string | 모델 설정을 가져올 사용자 지정 URL | --- -### 실험 +### Experimental -이 환경변수는 변화하거나 제거될 수 있는 실험적인 특징을 가능하게 합니다. +아래 환경 변수는 변경되거나 제거될 수 있는 실험 기능을 활성화합니다. -| 변하기 쉬운 | 유형 | 묘사 | -| ----------------------------------------------- | ------- | ---------------------------------- | -| `OPENCODE_EXPERIMENTAL` | 불린 | 모든 실험적인 특징 | -| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 아이콘 검색 | -| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | 불린 | TUI의 선택 해제 | -| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | 번호 | ms에서 bash 명령의 기본 시간 | -| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | 번호 | LLM 응답을 위한 최대 Output Tokens | -| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 전체 디디터용 파일워커 | -| `OPENCODE_EXPERIMENTAL_OXFMT` | 불린 | 엔블 oxfmt 형식 | -| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | 불린 | 실험적인 LSP 도구 | -| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 사용 가능한 파일워커 | -| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 실험용 Exa 기능 | -| `OPENCODE_EXPERIMENTAL_LSP_TY` | 불린 | 실험적인 LSP형 검사 | -| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 실험용 마운팅 기능 | -| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | 불린 | 플랜 모드 | +| 변수 | 타입 | 설명 | +| ----------------------------------------------- | ------- | ------------------------------ | +| `OPENCODE_EXPERIMENTAL` | boolean | 모든 실험 기능 활성화 | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | 아이콘 탐색 활성화 | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | TUI에서 선택 시 복사 비활성화 | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | bash 명령 기본 타임아웃(ms) | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | LLM 응답 최대 출력 토큰 수 | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | 전체 디렉터리 파일 감시 활성화 | +| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | oxfmt 포매터 활성화 | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | 실험적 LSP 도구 활성화 | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | 파일 감시 비활성화 | +| `OPENCODE_EXPERIMENTAL_EXA` | boolean | 실험적 Exa 기능 활성화 | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | 실험적 LSP 타입 검사 활성화 | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | 실험적 Markdown 기능 활성화 | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Plan mode 활성화 | diff --git a/packages/web/src/content/docs/ko/commands.mdx b/packages/web/src/content/docs/ko/commands.mdx index 4001872d41..38ff738960 100644 --- a/packages/web/src/content/docs/ko/commands.mdx +++ b/packages/web/src/content/docs/ko/commands.mdx @@ -3,21 +3,23 @@ title: Commands description: Create custom commands for repetitive tasks. --- -사용자 지정 명령은 TUI에서 실행될 때 실행할 때 실행해야 합니다. +커스텀 명령을 사용하면 TUI에서 해당 명령이 실행될 때 사용할 프롬프트를 미리 정의할 수 있습니다. ```bash frame="none" /my-command ``` -사용자 정의 명령은 `/init`, `/undo`, `/redo`, `/share`, `/share`, `/help`와 같은 내장된 명령 이외에 있습니다. [더 알아보기](/docs/tui#commands). +--- + +커스텀 명령은 `/init`, `/undo`, `/redo`, `/share`, `/help` 같은 내장 명령과 별도로 추가됩니다. [더 알아보기](/docs/tui#commands). --- -## 명령 파일 생성 +## 명령 파일 만들기 -사용자 지정 명령을 정의하려면 `commands/` 디렉토리의 Markdown 파일을 만듭니다. +커스텀 명령은 `commands/` 디렉터리에 Markdown 파일을 만들어 정의합니다. -`.opencode/commands/test.md` 만들기: +예: `.opencode/commands/test.md` ```md title=".opencode/commands/test.md" --- @@ -30,9 +32,9 @@ Run the full test suite with coverage report and show any failures. Focus on the failing tests and suggest fixes. ``` -frontmatter 명령 속성을 정의합니다. 콘텐츠는 템플릿이 됩니다. +프런트매터(frontmatter)에는 명령 속성을 정의하고, 본문은 템플릿 프롬프트가 됩니다. -명령명에 따라 `/`를 입력하여 명령을 사용하십시오. +명령 이름 앞에 `/`를 붙여 실행합니다. ```bash frame="none" "/test" @@ -42,13 +44,13 @@ frontmatter 명령 속성을 정의합니다. 콘텐츠는 템플릿이 됩니 ## 구성 -opencode config를 통해 사용자 지정 명령을 추가하거나 `commands/` 디렉토리에 있는 Markdown 파일을 만들 수 있습니다. +커스텀 명령은 OpenCode 설정으로 추가하거나, `commands/` 디렉터리에 Markdown 파일을 만들어 추가할 수 있습니다. --- -### JSON 태그 +### JSON -opencode [config](/docs/config)에서 `command` 옵션을 사용하십시오: +OpenCode [config](/docs/config)의 `command` 옵션을 사용합니다. ```json title="opencode.jsonc" {4-12} { @@ -67,7 +69,7 @@ opencode [config](/docs/config)에서 `command` 옵션을 사용하십시오: } ``` -이제 TUI에서이 명령을 실행할 수 있습니다. +이제 TUI에서 다음처럼 실행할 수 있습니다. ```bash frame="none" /test @@ -77,10 +79,10 @@ opencode [config](/docs/config)에서 `command` 옵션을 사용하십시오: ### Markdown -Markdown 파일을 사용하여 명령을 정의할 수 있습니다. 그들에 게: +Markdown 파일로도 명령을 정의할 수 있습니다. 아래 경로 중 하나에 두면 됩니다. -- 글로벌: `~/.config/opencode/commands/` -- 프로젝트: `.opencode/commands/` +- 전역: `~/.config/opencode/commands/` +- 프로젝트별: `.opencode/commands/` ```markdown title="~/.config/opencode/commands/test.md" --- @@ -93,8 +95,7 @@ Run the full test suite with coverage report and show any failures. Focus on the failing tests and suggest fixes. ``` -markdown 파일 이름은 명령 이름입니다. 예를 들어, `test.md` lets -당신은 실행: +Markdown 파일명이 명령 이름이 됩니다. 예를 들어 `test.md`라면 아래처럼 실행합니다. ```bash frame="none" /test @@ -102,15 +103,15 @@ markdown 파일 이름은 명령 이름입니다. 예를 들어, `test.md` lets --- -## Prompt 구성 +## 프롬프트 구성 -사용자 정의 명령에 대한 프롬프트는 몇 가지 특별한 placeholders 및 구문을 지원합니다. +커스텀 명령 프롬프트는 몇 가지 특수 플레이스홀더(placeholder)와 문법을 지원합니다. --- -#### 가격 +### 인수(Arguments) -`$ARGUMENTS` placeholder를 사용하여 명령을 전달합니다. +`$ARGUMENTS` 플레이스홀더로 명령 인수를 전달할 수 있습니다. ```md title=".opencode/commands/component.md" --- @@ -121,22 +122,22 @@ Create a new React component named $ARGUMENTS with TypeScript support. Include proper typing and basic structure. ``` -인수로 명령을 실행: +인수를 넣어 실행하면: ```bash frame="none" /component Button ``` -그리고 `$ARGUMENTS`는 `Button`로 대체될 것입니다. +`$ARGUMENTS`가 `Button`으로 치환됩니다. -위치 매개 변수를 사용하여 개별 인수에 액세스 할 수 있습니다. +위치 인수도 사용할 수 있습니다. - `$1` - 첫 번째 인수 - `$2` - 두 번째 인수 - `$3` - 세 번째 인수 -- 그래서 ... +- 이후 동일 -예를 들면: +예시: ```md title=".opencode/commands/create-file.md" --- @@ -147,25 +148,25 @@ Create a file named $1 in the directory $2 with the following content: $3 ``` -명령을 실행: +실행: ```bash frame="none" /create-file config.json src "{ \"key\": \"value\" }" ``` -이렇게 대체됩니다: +치환 결과: -- `$1`는 `config.json` -- `$2`는 `src` -- `$3`는 `{ "key": "value" }` +- `$1` -> `config.json` +- `$2` -> `src` +- `$3` -> `{ "key": "value" }` --- -### 포탄 산출 +### 셸 출력 -사용 !`command` 는 [bash command](/docs/tui#bash-commands)를 프롬프트로 출력합니다. +_!`command`_ 문법으로 [bash 명령](/docs/tui#bash-commands)의 출력 결과를 프롬프트에 주입할 수 있습니다. -예를 들어, 테스트 범위를 분석하는 사용자 정의 명령을 만들려면: +예를 들어 테스트 커버리지 분석 명령을 만들면: ```md title=".opencode/commands/analyze-coverage.md" --- @@ -178,7 +179,7 @@ Here are the current test results: Based on these results, suggest improvements to increase coverage. ``` -또는 최근 변경 사항 : +최근 변경 리뷰용으로는: ```md title=".opencode/commands/review-changes.md" --- @@ -191,13 +192,13 @@ Recent git commits: Review these changes and suggest any improvements. ``` -명령은 프로젝트의 루트 디렉토리에서 실행하고 출력은 프롬프트의 일부가됩니다. +명령은 프로젝트 루트 디렉터리에서 실행되며, 출력 결과는 프롬프트 본문에 포함됩니다. --- -## 파일 참조 +### 파일 참조 -파일명에 따라 `@`를 사용하여 명령에 파일이 포함되어 있습니다. +`@` 뒤에 파일명을 붙여 명령에 파일을 포함할 수 있습니다. ```md title=".opencode/commands/review-component.md" --- @@ -208,19 +209,19 @@ Review the component in @src/components/Button.tsx. Check for performance issues and suggest improvements. ``` -파일 콘텐츠는 자동으로 프롬프트에 포함되어 있습니다. +파일 내용은 자동으로 프롬프트에 포함됩니다. --- ## 옵션 -구성 옵션을 자세히 살펴봅시다. +구성 옵션을 자세히 살펴봅니다. --- -### 템플릿 +### Template -`template` 옵션은 명령이 실행될 때 LLM에 전송될 프롬프트를 정의합니다. +`template` 옵션은 명령 실행 시 LLM에 전달할 프롬프트를 정의합니다. ```json title="opencode.json" { @@ -232,13 +233,13 @@ Check for performance issues and suggest improvements. } ``` -\*\* config 옵션이 필요합니다. +이 옵션은 **필수**입니다. --- -### 묘사 +### Description -`description` 옵션을 사용하여 명령의 간단한 설명을 제공합니다. +`description` 옵션으로 명령의 짧은 설명을 추가할 수 있습니다. ```json title="opencode.json" { @@ -250,15 +251,15 @@ Check for performance issues and suggest improvements. } ``` -명령에 입력할 때 TUI의 설명으로 표시됩니다. +이 설명은 TUI에서 명령을 입력할 때 표시됩니다. --- -## 에이전트 +### Agent -`agent` config를 선택적으로 지정합니다. [agent](/docs/agents)는 이 명령을 실행해야 합니다. -이 경우 [subagent](/docs/agents/#subagents) 명령은 기본으로 시약을 트리거합니다. -이 행동을 비활성화하려면 `subtask`를 `false`로 설정하십시오. +`agent` 설정으로 이 명령을 실행할 [agent](/docs/agents)를 지정할 수 있습니다. +지정한 값이 [subagent](/docs/agents/#subagents)면 기본적으로 subagent 호출이 실행됩니다. +이 동작을 끄려면 `subtask`를 `false`로 설정하세요. ```json title="opencode.json" { @@ -270,15 +271,14 @@ Check for performance issues and suggest improvements. } ``` -** 옵션** 설정 옵션입니다. 지정된 경우, 현재 에이전트에 기본값. +이 옵션은 **선택**입니다. 지정하지 않으면 현재 에이전트가 기본값으로 사용됩니다. --- -### 서브스크랩 +### Subtask -`subtask` boolean을 사용하여 명령을 강제로 [subagent](/docs/agents/#subagents) 호출합니다. -이것은 당신이 명령을 원하지 않는 경우 유용합니다 당신의 기본 컨텍스트를 pollute하고 \*\* 에이전트는 시약으로 행동하는, -`mode`가 [시약](/docs/시약) 구성에 `primary`로 설정되는 경우에도. +`subtask` 불리언(boolean)을 사용하면 명령이 [subagent](/docs/agents/#subagents) 호출을 강제로 트리거합니다. +주 컨텍스트를 오염시키고 싶지 않을 때 유용하며, [agent](/docs/agents) 설정의 `mode`가 `primary`여도 subagent로 실행합니다. ```json title="opencode.json" { @@ -290,13 +290,13 @@ Check for performance issues and suggest improvements. } ``` -** 옵션** 설정 옵션입니다. +이 옵션은 **선택**입니다. --- -### 모형 +### Model -`model` config를 사용하여 이 명령의 기본 모델을 무시합니다. +`model` 설정으로 이 명령의 기본 모델을 오버라이드할 수 있습니다. ```json title="opencode.json" { @@ -308,16 +308,16 @@ Check for performance issues and suggest improvements. } ``` -** 옵션** 설정 옵션입니다. +이 옵션은 **선택**입니다. --- -## 내장 +## Built-in -opencode는 `/init`, `/undo`, `/redo`, `/share`, `/help`, `/help`와 같은 몇몇 붙박이 명령을 포함합니다; [learn more](./tui#commands). +OpenCode는 `/init`, `/undo`, `/redo`, `/share`, `/help` 등 여러 내장 명령을 제공합니다. [더 알아보기](/docs/tui#commands). :::note -사용자 지정 명령은 내장 명령을 무시할 수 있습니다. +커스텀 명령은 내장 명령을 덮어쓸 수 있습니다. ::: -같은 이름으로 사용자 정의 명령을 정의하면 내장 명령을 무시합니다. +같은 이름으로 커스텀 명령을 정의하면 내장 명령보다 커스텀 명령이 우선합니다. diff --git a/packages/web/src/content/docs/ko/index.mdx b/packages/web/src/content/docs/ko/index.mdx index 6f89bef0f3..8976005f8b 100644 --- a/packages/web/src/content/docs/ko/index.mdx +++ b/packages/web/src/content/docs/ko/index.mdx @@ -7,40 +7,39 @@ import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console -[**OpenCode**](/)는 오픈 소스 AI 코딩 에이전트입니다. terminal 기반 인터페이스, 데스크탑 앱 또는 IDE 확장으로 사용할 수 있습니다. +[**OpenCode**](/)는 터미널 기반 인터페이스, 데스크톱 앱, IDE 확장 형태로 사용할 수 있는 오픈 소스 AI 코딩 에이전트입니다. ![opencode TUI with the opencode theme](../../../assets/lander/screenshot.png) -시작합시다. +바로 시작해 봅시다. --- -### 필수품 +#### 사전 준비 -당신의 terminal에 있는 OpenCode를 사용하려면, 당신은 필요로 할 것입니다: +터미널에서 OpenCode를 사용하려면 다음이 필요합니다. -1. 현대 terminal 에뮬레이터는 좋아합니다: +1. 최신 터미널 에뮬레이터(예:) + - [WezTerm](https://wezterm.org), 크로스 플랫폼 + - [Alacritty](https://alacritty.org), 크로스 플랫폼 + - [Ghostty](https://ghostty.org), Linux 및 macOS + - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux 및 macOS -- [WezTerm](https://wezterm.org), 크로스 플랫폼 -- [Alacritty](https://alacritty.org), 크로스 플랫폼 -- [Ghostty](https://ghostty.org), 리눅스 및 macOS -- [Kitty](https://sw.kovidgoyal.net/kitty/), 리눅스 및 macOS - -2. 사용하려는 LLM 공급자를 위한 API 키. +2. 사용할 LLM 제공자의 API 키 --- ## 설치 -OpenCode를 설치하는 가장 쉬운 방법은 설치 스크립트를 통해 입니다. +가장 쉬운 설치 방법은 설치 스크립트를 사용하는 것입니다. ```bash curl -fsSL https://opencode.ai/install | bash ``` -다음 명령으로 설치할 수도 있습니다: +아래 명령으로도 설치할 수 있습니다. -- ** Node.js** 사용 +- **Node.js 사용** @@ -74,79 +73,78 @@ curl -fsSL https://opencode.ai/install | bash -- ** macOS 및 Linux에서 Homebrew 사용 ** +- **macOS/Linux에서 Homebrew 사용** ```bash brew install anomalyco/tap/opencode ``` -> 최신 릴리스를 위해 OpenCode 탭을 사용하는 것이 좋습니다. 공식 `brew install opencode` 공식은 Homebrew 팀에 의해 유지되고 더 자주 업데이트됩니다. + > 최신 릴리스는 OpenCode tap 사용을 권장합니다. 공식 `brew install opencode` 포뮬러는 Homebrew 팀이 관리하므로 업데이트 주기가 더 긴 편입니다. -- **Arch Linux에서 Paru를 사용 ** +- **Arch Linux에서 Paru 사용** ```bash paru -S opencode-bin ``` -#### 윈도우 +#### Windows -:::tip[추천: WSL 사용] -Windows에서 최고의 경험을 위해 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)를 사용하는 것이 좋습니다. OpenCode의 기능으로 더 나은 성능과 전체 호환성을 제공합니다. +:::tip[권장: WSL 사용] +Windows에서는 [Windows Subsystem for Linux (WSL)](/docs/windows-wsl)을 사용하는 것이 가장 좋습니다. OpenCode 기능과의 호환성이 높고 성능도 더 좋습니다. ::: -- ** Chocolatey ** +- **Chocolatey 사용** ```bash choco install opencode ``` -- ** Scoop를 사용 ** +- **Scoop 사용** ```bash scoop install opencode ``` -- ** npm ** +- **NPM 사용** ```bash npm install -g opencode-ai ``` -- **Mise** +- **Mise 사용** ```bash mise use -g github:anomalyco/opencode ``` -- ** Docker 사용** +- **Docker 사용** ```bash docker run -it --rm ghcr.io/anomalyco/opencode ``` -Bun을 사용하여 Windows에서 OpenCode 설치 지원은 현재 진행 중입니다. +Windows에서 Bun을 통한 OpenCode 설치는 아직 지원되지 않으며, 현재 지원을 준비 중입니다. -[Releases](https://github.com/anomalyco/opencode/releases)에서 이진을 할 수도 있습니다. +[Releases](https://github.com/anomalyco/opencode/releases)에서 바이너리를 직접 받아 설치할 수도 있습니다. --- ## 구성 -OpenCode를 사용하면 API 키를 구성하여 LLM 공급자를 사용할 수 있습니다. +OpenCode는 API 키를 설정하면 원하는 LLM 제공자를 사용할 수 있습니다. -LLM 공급자를 사용하는 새로운 경우, [OpenCode Zen](/docs/zen)를 사용하는 것이 좋습니다. -OpenCode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니다. -팀. +LLM 제공자(LLM Provider)를 처음 사용한다면 [OpenCode Zen](/docs/zen)을 추천합니다. +OpenCode 팀이 테스트하고 검증한 모델 목록입니다. -1. TUI에서 `/connect` 명령을 실행하고, opencode를 선택하고, [opencode.ai/auth](https://opencode.ai/auth)에 머리를 선택합니다. +1. TUI에서 `/connect` 명령을 실행한 뒤 `opencode`를 선택하고 [opencode.ai/auth](https://opencode.ai/auth)로 이동합니다. ```txt /connect ``` -2. 로그인, 청구 세부 정보를 추가하고 API 키를 복사하십시오. +2. 로그인 후 결제 정보를 입력하고 API 키를 복사합니다. -3. API 키를 붙여. +3. API 키를 붙여 넣습니다. ```txt ┌ API key @@ -155,85 +153,79 @@ OpenCode에 의해 테스트 및 확인 된 모델의 큐레이터 목록입니 └ enter ``` -158| 또는 다른 공급자 중 하나를 선택할 수 있습니다. [더 알아보기](/docs/providers#directory). +다른 제공자를 선택해도 됩니다. [더 알아보기](/docs/providers#directory). --- ## 초기화 -이제 공급자를 구성했습니다. 프로젝트로 이동할 수 있습니다. -일하고 싶습니다. +이제 제공자 구성이 끝났으니, 작업할 프로젝트 디렉터리로 이동합니다. ```bash cd /path/to/project ``` -OpenCode를 실행합니다. +그리고 OpenCode를 실행합니다. ```bash opencode ``` -다음, 다음 명령을 실행하여 프로젝트의 OpenCode를 초기화합니다. +다음 명령으로 프로젝트용 OpenCode 초기화를 진행합니다. ```bash frame="none" /init ``` -OpenCode를 사용하여 프로젝트를 분석하고 `AGENTS.md` 파일을 만들 수 있습니다. -프로젝트 루트. +이 명령은 프로젝트를 분석하고 루트에 `AGENTS.md` 파일을 생성합니다. :::tip -프로젝트의 `AGENTS.md` 파일을 Git에 투입해야 합니다. +프로젝트의 `AGENTS.md`는 Git에 커밋해 두는 것을 권장합니다. ::: -이 도움말 OpenCode는 프로젝트 구조와 코딩 패턴을 이해 -사용. +그러면 OpenCode가 프로젝트 구조와 코딩 패턴을 더 잘 이해할 수 있습니다. --- ## 사용법 -OpenCode를 사용하여 프로젝트에 작업할 준비가 되어 있습니다. 자주 묻는 질문 -모두! +이제 OpenCode로 프로젝트 작업을 시작할 준비가 되었습니다. 무엇이든 물어보세요. -AI 코딩 에이전트를 사용하는 새로운 경우, 여기에 할 수있는 몇 가지 예입니다 -도움. +AI 코딩 에이전트를 처음 쓰는 경우 도움이 되는 예시를 소개합니다. --- -## 질문 +### 질문하기 -Codebase를 설명하기 위해 OpenCode를 요청할 수 있습니다. +OpenCode에 코드베이스 설명을 요청할 수 있습니다. :::tip -`@` 키를 사용하여 프로젝트에서 파일을 검색합니다. +프로젝트 파일은 `@` 키로 퍼지 검색할 수 있습니다. ::: ```txt frame="none" "@packages/functions/src/api/index.ts" How is authentication handled in @packages/functions/src/api/index.ts ``` -이것은 당신이 작동하지 않은 코드베이스의 일부가 있다면 도움이된다. +직접 작업하지 않은 코드 영역을 이해할 때 특히 유용합니다. --- -### 추가 기능 +### 기능 추가 -프로젝트에 새로운 기능을 추가하려면 OpenCode를 요청할 수 있습니다. 우리는 먼저 계획을 만들 것을 묻는 것이 좋습니다. +프로젝트에 새 기능을 추가해 달라고 요청할 수 있습니다. 다만 먼저 계획을 만들게 하는 것을 권장합니다. -1. **플랜을 선택 ** +1. **계획 만들기** - OpenCode는 Plan mode 로 변경할 수 있는 능력을 비활성화하고 - 대신 제안 how 그것은 기능을 구현할 것입니다. + OpenCode에는 변경 작업을 비활성화하고 구현 방법을 제안만 하는 _Plan mode_가 있습니다. - **Tab** 키를 사용하여 전환합니다. 오른쪽 하단에 있는 이 지표를 볼 수 있습니다. + **Tab** 키로 전환하면 오른쪽 아래에 모드 표시가 나타납니다. ```bash frame="none" title="Switch to Plan mode" ``` - 이제 우리가해야 할 일을 설명합니다. + 이제 원하는 작업을 구체적으로 설명합니다. ```txt frame="none" When a user deletes a note, we'd like to flag it as deleted in the database. @@ -241,17 +233,15 @@ How is authentication handled in @packages/functions/src/api/index.ts From this screen, the user can undelete a note or permanently delete it. ``` - 당신이 원하는 것을 이해하기 위해 OpenCode를 충분히 세부 정보를 제공하려는. 그것은 도움 - 팀의 주니어 개발자에게 이야기하고 싶습니다. + OpenCode가 정확히 이해할 만큼 충분한 맥락을 주는 것이 중요합니다. 팀의 주니어 개발자에게 설명하듯 요청하면 도움이 됩니다. :::tip - OpenCode를 많은 컨텍스트와 예제를 제공하여 당신이 무엇을 이해하는 데 도움이 - 이름 \* + 맥락과 예시를 충분히 제공하면 원하는 결과를 얻기 쉽습니다. ::: -2. **플랜에 대해서 ** +2. **계획 다듬기** - 플랜을 제공하면 피드백을 제공하거나 자세한 내용을 추가 할 수 있습니다. + 계획이 나오면 피드백을 주거나 추가 요구사항을 붙일 수 있습니다. ```txt frame="none" We'd like to design this new screen using a design I've used before. @@ -259,22 +249,20 @@ How is authentication handled in @packages/functions/src/api/index.ts ``` :::tip - 단말에 이미지를 드래그하고 드롭하여 프롬프트에 추가합니다. + 이미지를 터미널에 드래그 앤 드롭하면 프롬프트에 첨부할 수 있습니다. ::: - OpenCode는 어떤 이미지를 스캔할 수 있습니다. 당신은 할 수 - 이 작업을 수행하고 끝으로 이미지를 삭제합니다. + OpenCode는 첨부한 이미지를 분석해 프롬프트에 포함합니다. -3. ** 기능 구축 ** +3. **기능 구현** - 플랜으로 편안하게 느끼면 Build mode by - **Tab** 키를 다시 입력합니다. + 계획이 충분히 만족스러우면 **Tab** 키를 다시 눌러 _Build mode_로 돌아갑니다. ```bash frame="none" ``` - 그리고 변경을 요청합니다. + 그리고 실제 변경을 요청합니다. ```bash frame="none" Sounds good! Go ahead and make the changes. @@ -282,10 +270,9 @@ How is authentication handled in @packages/functions/src/api/index.ts --- -### 변경 +### 바로 변경하기 -더 똑바른 변화를 위해, 당신은 OpenCode를 직접 그것을 건설할 수 있습니다 -첫 플랜을 검토하지 않고. +비교적 단순한 변경은 계획 검토 없이 바로 구현하도록 요청해도 됩니다. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" We need to add authentication to the /settings route. Take a look at how this is @@ -293,40 +280,37 @@ handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` -좋은 양의 세부 사항을 제공 하려면 OpenCode가 올바른 -이름 \* +원하는 변경이 정확히 반영되도록, 필요한 맥락을 충분히 제공하세요. --- -### Undo 변경 +### 변경 되돌리기 -OpenCode를 호출하면 변경 사항을 만들 수 있습니다. +예를 들어 OpenCode에 변경을 요청했다고 가정해 보겠습니다. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` -그러나 당신이 원하는 것은 아닙니다. ** 변경할 수 없습니다 ** -`/undo` 명령을 사용하여. +결과가 기대와 다르면 `/undo` 명령으로 **되돌릴 수** 있습니다. ```bash frame="none" /undo ``` -OpenCode는 이제 당신이 만든 변경을 반전하고 원래 메시지를 표시 -다시. +OpenCode는 방금 적용한 변경을 되돌리고 원래 메시지를 다시 보여줍니다. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` -여기에서 당신은 신속하고 다시 시도 OpenCode를 요청할 수 있습니다. +이 상태에서 프롬프트를 다듬어 다시 시도하면 됩니다. :::tip -`/undo`를 여러 번 실행할 수 있습니다. +`/undo`는 여러 번 연속으로 실행할 수 있습니다. ::: -또는 \*\* `/redo` 명령을 사용하여 변경할 수 있습니다. +반대로 `/redo` 명령으로 **다시 적용**할 수도 있습니다. ```bash frame="none" /redo @@ -336,24 +320,24 @@ Can you refactor the function in @packages/functions/src/api/index.ts? ## 공유 -opencode와 나눈 대화는 [팀과 공유](/docs/share)할 수 있습니다. +OpenCode와의 대화는 [팀과 공유](/docs/share)할 수 있습니다. ```bash frame="none" /share ``` -현재 대화에 대한 링크를 만들고 클립보드에 복사합니다. +현재 대화 링크를 생성하고 클립보드에 복사합니다. :::note -대화는 기본적으로 공유되지 않습니다. +대화는 기본값으로 공유되지 않습니다. ::: -여기 [example 대화](https://opencode.ai/s/4XP1fce5) 는 opencode 입니다. +아래는 OpenCode [대화 예시](https://opencode.ai/s/4XP1fce5)입니다. --- -## 사용자 정의 +## 커스터마이즈 -그리고 그게 다야! 이제 opencode를 사용하여 프로입니다. +이제 OpenCode 사용의 기본은 끝났습니다. -자신의 것을 만들기 위해, 우리는 [themes](/docs/themes), [keybinds](/docs/keybinds), [configuring code formatters](/docs/formatters), [creating custom commands](/docs/commands), 또는 [opencode config](/docs/config)와 함께 연주하는 것을 추천합니다. +자신의 워크플로우에 맞추려면 [테마 선택](/docs/themes), [키바인드 커스터마이즈](/docs/keybinds), [코드 포매터 설정](/docs/formatters), [커스텀 명령 작성](/docs/commands), [OpenCode config 조정](/docs/config)을 추천합니다. From 5ba4c0e024359dd1817bb5513982ee8cbfb24001 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 11 Feb 2026 10:38:52 +0000 Subject: [PATCH 40/66] chore: generate --- packages/web/src/content/docs/ko/index.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/src/content/docs/ko/index.mdx b/packages/web/src/content/docs/ko/index.mdx index 8976005f8b..fd55c15ac8 100644 --- a/packages/web/src/content/docs/ko/index.mdx +++ b/packages/web/src/content/docs/ko/index.mdx @@ -217,7 +217,7 @@ How is authentication handled in @packages/functions/src/api/index.ts 1. **계획 만들기** - OpenCode에는 변경 작업을 비활성화하고 구현 방법을 제안만 하는 _Plan mode_가 있습니다. + OpenCode에는 변경 작업을 비활성화하고 구현 방법을 제안만 하는 *Plan mode*가 있습니다. **Tab** 키로 전환하면 오른쪽 아래에 모드 표시가 나타납니다. @@ -256,7 +256,7 @@ How is authentication handled in @packages/functions/src/api/index.ts 3. **기능 구현** - 계획이 충분히 만족스러우면 **Tab** 키를 다시 눌러 _Build mode_로 돌아갑니다. + 계획이 충분히 만족스러우면 **Tab** 키를 다시 눌러 *Build mode*로 돌아갑니다. ```bash frame="none" From cf7a1b8d80581ebee7a968602cec2e0561e08cdd Mon Sep 17 00:00:00 2001 From: Filip <34747899+neriousy@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:40:52 +0100 Subject: [PATCH 41/66] feat(desktop): enhance Windows app resolution and UI loading states (#13084) --- .../src/components/session/session-header.tsx | 57 ++- packages/desktop/src-tauri/src/lib.rs | 382 ++++++++++++++---- 2 files changed, 351 insertions(+), 88 deletions(-) diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 94b8436667..3bf3c08e99 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -1,4 +1,4 @@ -import { createEffect, createMemo, onCleanup, Show } from "solid-js" +import { createEffect, createMemo, createResource, onCleanup, Show } from "solid-js" import { createStore } from "solid-js/store" import { Portal } from "solid-js/web" import { useParams } from "@solidjs/router" @@ -18,6 +18,7 @@ import { IconButton } from "@opencode-ai/ui/icon-button" import { Button } from "@opencode-ai/ui/button" import { AppIcon } from "@opencode-ai/ui/app-icon" import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu" +import { Spinner } from "@opencode-ai/ui/spinner" import { Tooltip, TooltipKeybind } from "@opencode-ai/ui/tooltip" import { Popover } from "@opencode-ai/ui/popover" import { TextField } from "@opencode-ai/ui/text-field" @@ -167,6 +168,7 @@ export function SessionHeader() { const [prefs, setPrefs] = persisted(Persist.global("open.app"), createStore({ app: "finder" as OpenApp })) const [menu, setMenu] = createStore({ open: false }) + const [openRequest, setOpenRequest] = createStore({ app: undefined as OpenApp | undefined, version: 0 }) const canOpen = createMemo(() => platform.platform === "desktop" && !!platform.openPath && server.isLocal()) const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0]) @@ -179,20 +181,32 @@ export function SessionHeader() { setPrefs("app", options()[0]?.id ?? "finder") }) - const openDir = (app: OpenApp) => { - const directory = projectDirectory() - if (!directory) return - if (!canOpen()) return + const [openTask] = createResource( + () => openRequest.app && openRequest.version, + async () => { + const app = openRequest.app + const directory = projectDirectory() + if (!app || !directory || !canOpen()) return - const item = options().find((o) => o.id === app) - const openWith = item && "openWith" in item ? item.openWith : undefined - Promise.resolve(platform.openPath?.(directory, openWith)).catch((err: unknown) => { - showToast({ - variant: "error", - title: language.t("common.requestFailed"), - description: err instanceof Error ? err.message : String(err), - }) + const item = options().find((o) => o.id === app) + const openWith = item && "openWith" in item ? item.openWith : undefined + await platform.openPath?.(directory, openWith) + }, + ) + + createEffect(() => { + const err = openTask.error + if (!err) return + showToast({ + variant: "error", + title: language.t("common.requestFailed"), + description: err instanceof Error ? err.message : String(err), }) + }) + + const openDir = (app: OpenApp) => { + if (openTask.loading) return + setOpenRequest({ app, version: openRequest.version + 1 }) } const copyPath = () => { @@ -346,12 +360,18 @@ export function SessionHeader() {
@@ -366,7 +386,11 @@ export function SessionHeader() { as={IconButton} icon="chevron-down" variant="ghost" - class="rounded-none h-full w-[24px] p-0 border-none shadow-none data-[expanded]:bg-surface-raised-base-active" + disabled={openTask.loading} + class="rounded-none h-full w-[24px] p-0 border-none shadow-none data-[expanded]:bg-surface-raised-base-active disabled:!cursor-default" + classList={{ + "bg-surface-raised-base-active": openTask.loading, + }} aria-label={language.t("session.header.open.menu")} /> @@ -383,6 +407,7 @@ export function SessionHeader() { {options().map((o) => ( { setMenu("open", false) openDir(o.id) diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 0d8090f3db..3e7902804e 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -172,28 +172,211 @@ fn check_app_exists(app_name: &str) -> bool { } #[cfg(target_os = "windows")] -fn check_windows_app(_app_name: &str) -> bool { - // Check if command exists in PATH, including .exe - return true; +fn check_windows_app(app_name: &str) -> bool { + resolve_windows_app_path(app_name).is_some() } #[cfg(target_os = "windows")] fn resolve_windows_app_path(app_name: &str) -> Option { use std::path::{Path, PathBuf}; - // Try to find the command using 'where' - let output = Command::new("where").arg(app_name).output().ok()?; + fn expand_env(value: &str) -> String { + let mut out = String::with_capacity(value.len()); + let mut index = 0; - if !output.status.success() { + while let Some(start) = value[index..].find('%') { + let start = index + start; + out.push_str(&value[index..start]); + + let Some(end_rel) = value[start + 1..].find('%') else { + out.push_str(&value[start..]); + return out; + }; + + let end = start + 1 + end_rel; + let key = &value[start + 1..end]; + if key.is_empty() { + out.push('%'); + index = end + 1; + continue; + } + + if let Ok(v) = std::env::var(key) { + out.push_str(&v); + index = end + 1; + continue; + } + + out.push_str(&value[start..=end]); + index = end + 1; + } + + out.push_str(&value[index..]); + out + } + + fn extract_exe(value: &str) -> Option { + let value = value.trim(); + if value.is_empty() { + return None; + } + + if let Some(rest) = value.strip_prefix('"') { + if let Some(end) = rest.find('"') { + let inner = rest[..end].trim(); + if inner.to_ascii_lowercase().contains(".exe") { + return Some(inner.to_string()); + } + } + } + + let lower = value.to_ascii_lowercase(); + let end = lower.find(".exe")?; + Some(value[..end + 4].trim().trim_matches('"').to_string()) + } + + fn candidates(app_name: &str) -> Vec { + let app_name = app_name.trim().trim_matches('"'); + if app_name.is_empty() { + return vec![]; + } + + let mut out = Vec::::new(); + let mut push = |value: String| { + let value = value.trim().trim_matches('"').to_string(); + if value.is_empty() { + return; + } + if out.iter().any(|v| v.eq_ignore_ascii_case(&value)) { + return; + } + out.push(value); + }; + + push(app_name.to_string()); + + let lower = app_name.to_ascii_lowercase(); + if !lower.ends_with(".exe") { + push(format!("{app_name}.exe")); + } + + let snake = { + let mut s = String::new(); + let mut underscore = false; + for c in lower.chars() { + if c.is_ascii_alphanumeric() { + s.push(c); + underscore = false; + continue; + } + if underscore { + continue; + } + s.push('_'); + underscore = true; + } + s.trim_matches('_').to_string() + }; + + if !snake.is_empty() { + push(snake.clone()); + if !snake.ends_with(".exe") { + push(format!("{snake}.exe")); + } + } + + let alnum = lower + .chars() + .filter(|c| c.is_ascii_alphanumeric()) + .collect::(); + + if !alnum.is_empty() { + push(alnum.clone()); + push(format!("{alnum}.exe")); + } + + match lower.as_str() { + "sublime text" | "sublime-text" | "sublime_text" | "sublime text.exe" => { + push("subl".to_string()); + push("subl.exe".to_string()); + push("sublime_text".to_string()); + push("sublime_text.exe".to_string()); + } + _ => {} + } + + out + } + + fn reg_app_path(exe: &str) -> Option { + let exe = exe.trim().trim_matches('"'); + if exe.is_empty() { + return None; + } + + let keys = [ + format!( + r"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\{exe}" + ), + format!( + r"HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\{exe}" + ), + format!( + r"HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\{exe}" + ), + ]; + + for key in keys { + let Some(output) = Command::new("reg") + .args(["query", &key, "/ve"]) + .output() + .ok() + else { + continue; + }; + + if !output.status.success() { + continue; + } + + let stdout = String::from_utf8_lossy(&output.stdout); + for line in stdout.lines() { + let tokens = line.split_whitespace().collect::>(); + let Some(index) = tokens.iter().position(|v| v.starts_with("REG_")) else { + continue; + }; + + let value = tokens[index + 1..].join(" "); + let Some(exe) = extract_exe(&value) else { + continue; + }; + + let exe = expand_env(&exe); + let path = Path::new(exe.trim().trim_matches('"')); + if path.exists() { + return Some(path.to_string_lossy().to_string()); + } + } + } + + None + } + + let app_name = app_name.trim().trim_matches('"'); + if app_name.is_empty() { return None; } - let paths = String::from_utf8_lossy(&output.stdout) - .lines() - .map(str::trim) - .filter(|line| !line.is_empty()) - .map(PathBuf::from) - .collect::>(); + let direct = Path::new(app_name); + if direct.is_absolute() && direct.exists() { + return Some(direct.to_string_lossy().to_string()); + } + + let key = app_name + .chars() + .filter(|v| v.is_ascii_alphanumeric()) + .flat_map(|v| v.to_lowercase()) + .collect::(); let has_ext = |path: &Path, ext: &str| { path.extension() @@ -202,22 +385,19 @@ fn resolve_windows_app_path(app_name: &str) -> Option { .unwrap_or(false) }; - if let Some(path) = paths.iter().find(|path| has_ext(path, "exe")) { - return Some(path.to_string_lossy().to_string()); - } - let resolve_cmd = |path: &Path| -> Option { - let content = std::fs::read_to_string(path).ok()?; + let bytes = std::fs::read(path).ok()?; + let content = String::from_utf8_lossy(&bytes); for token in content.split('"') { - let lower = token.to_ascii_lowercase(); - if !lower.contains(".exe") { + let Some(exe) = extract_exe(token) else { continue; - } + }; + let lower = exe.to_ascii_lowercase(); if let Some(index) = lower.find("%~dp0") { let base = path.parent()?; - let suffix = &token[index + 5..]; + let suffix = &exe[index + 5..]; let mut resolved = PathBuf::from(base); for part in suffix.replace('/', "\\").split('\\') { @@ -234,9 +414,11 @@ fn resolve_windows_app_path(app_name: &str) -> Option { if resolved.exists() { return Some(resolved.to_string_lossy().to_string()); } + + continue; } - let resolved = PathBuf::from(token); + let resolved = PathBuf::from(expand_env(&exe)); if resolved.exists() { return Some(resolved.to_string_lossy().to_string()); } @@ -245,74 +427,130 @@ fn resolve_windows_app_path(app_name: &str) -> Option { None }; - for path in &paths { - if has_ext(path, "cmd") || has_ext(path, "bat") { - if let Some(resolved) = resolve_cmd(path) { - return Some(resolved); - } + let resolve_where = |query: &str| -> Option { + let output = Command::new("where").arg(query).output().ok()?; + if !output.status.success() { + return None; } - if path.extension().is_none() { - let cmd = path.with_extension("cmd"); - if cmd.exists() { - if let Some(resolved) = resolve_cmd(&cmd) { - return Some(resolved); - } - } + let paths = String::from_utf8_lossy(&output.stdout) + .lines() + .map(str::trim) + .filter(|line| !line.is_empty()) + .map(PathBuf::from) + .collect::>(); - let bat = path.with_extension("bat"); - if bat.exists() { - if let Some(resolved) = resolve_cmd(&bat) { - return Some(resolved); - } - } + if paths.is_empty() { + return None; } - } - let key = app_name - .chars() - .filter(|v| v.is_ascii_alphanumeric()) - .flat_map(|v| v.to_lowercase()) - .collect::(); + if let Some(path) = paths.iter().find(|path| has_ext(path, "exe")) { + return Some(path.to_string_lossy().to_string()); + } - if !key.is_empty() { for path in &paths { - let dirs = [ - path.parent(), - path.parent().and_then(|dir| dir.parent()), - path.parent() - .and_then(|dir| dir.parent()) - .and_then(|dir| dir.parent()), - ]; + if has_ext(path, "cmd") || has_ext(path, "bat") { + if let Some(resolved) = resolve_cmd(path) { + return Some(resolved); + } + } - for dir in dirs.into_iter().flatten() { - if let Ok(entries) = std::fs::read_dir(dir) { - for entry in entries.flatten() { - let candidate = entry.path(); - if !has_ext(&candidate, "exe") { - continue; - } + if path.extension().is_none() { + let cmd = path.with_extension("cmd"); + if cmd.exists() { + if let Some(resolved) = resolve_cmd(&cmd) { + return Some(resolved); + } + } - let Some(stem) = candidate.file_stem().and_then(|v| v.to_str()) else { - continue; - }; + let bat = path.with_extension("bat"); + if bat.exists() { + if let Some(resolved) = resolve_cmd(&bat) { + return Some(resolved); + } + } + } + } - let name = stem - .chars() - .filter(|v| v.is_ascii_alphanumeric()) - .flat_map(|v| v.to_lowercase()) - .collect::(); + if !key.is_empty() { + for path in &paths { + let dirs = [ + path.parent(), + path.parent().and_then(|dir| dir.parent()), + path.parent() + .and_then(|dir| dir.parent()) + .and_then(|dir| dir.parent()), + ]; - if name.contains(&key) || key.contains(&name) { - return Some(candidate.to_string_lossy().to_string()); + for dir in dirs.into_iter().flatten() { + if let Ok(entries) = std::fs::read_dir(dir) { + for entry in entries.flatten() { + let candidate = entry.path(); + if !has_ext(&candidate, "exe") { + continue; + } + + let Some(stem) = candidate.file_stem().and_then(|v| v.to_str()) else { + continue; + }; + + let name = stem + .chars() + .filter(|v| v.is_ascii_alphanumeric()) + .flat_map(|v| v.to_lowercase()) + .collect::(); + + if name.contains(&key) || key.contains(&name) { + return Some(candidate.to_string_lossy().to_string()); + } } } } } } + + paths.first().map(|path| path.to_string_lossy().to_string()) + }; + + let list = candidates(app_name); + for query in &list { + if let Some(path) = resolve_where(query) { + return Some(path); + } } - paths.first().map(|path| path.to_string_lossy().to_string()) + let mut exes = Vec::::new(); + for query in &list { + let query = query.trim().trim_matches('"'); + if query.is_empty() { + continue; + } + + let name = Path::new(query) + .file_name() + .and_then(|v| v.to_str()) + .unwrap_or(query); + + let exe = if name.to_ascii_lowercase().ends_with(".exe") { + name.to_string() + } else { + format!("{name}.exe") + }; + + if exes.iter().any(|v| v.eq_ignore_ascii_case(&exe)) { + continue; + } + + exes.push(exe); + } + + for exe in exes { + if let Some(path) = reg_app_path(&exe) { + return Some(path); + } + } + + None } #[tauri::command] From 8bfd6fdba2490aa41ef9533e3301f0272711d489 Mon Sep 17 00:00:00 2001 From: Jack <740172898@qq.com> Date: Wed, 11 Feb 2026 19:33:25 +0800 Subject: [PATCH 42/66] fix: encode non-ASCII directory paths in v1 SDK HTTP headers (#13131) --- packages/sdk/js/src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/js/src/client.ts b/packages/sdk/js/src/client.ts index 806ad26e55..e0d20152b9 100644 --- a/packages/sdk/js/src/client.ts +++ b/packages/sdk/js/src/client.ts @@ -21,7 +21,7 @@ export function createOpencodeClient(config?: Config & { directory?: string }) { if (config?.directory) { config.headers = { ...config.headers, - "x-opencode-directory": config.directory, + "x-opencode-directory": encodeURIComponent(config.directory), } } From a25b2af05aa4fe0cc2bc3474a0b5e23eca3efe4f Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Wed, 11 Feb 2026 19:36:27 +0800 Subject: [PATCH 43/66] desktop: use tracing for logging (#13135) --- packages/desktop/src-tauri/Cargo.lock | 104 ++++++++++++++++-- packages/desktop/src-tauri/Cargo.toml | 4 + packages/desktop/src-tauri/src/cli.rs | 104 ++++-------------- packages/desktop/src-tauri/src/constants.rs | 1 - packages/desktop/src-tauri/src/job_object.rs | 12 +- packages/desktop/src-tauri/src/lib.rs | 83 +++++++------- .../desktop/src-tauri/src/linux_display.rs | 15 ++- packages/desktop/src-tauri/src/logging.rs | 83 ++++++++++++++ packages/desktop/src-tauri/src/main.rs | 4 +- packages/desktop/src-tauri/src/server.rs | 10 +- 10 files changed, 265 insertions(+), 155 deletions(-) create mode 100644 packages/desktop/src-tauri/src/logging.rs diff --git a/packages/desktop/src-tauri/Cargo.lock b/packages/desktop/src-tauri/Cargo.lock index 537a7c9c56..8ce97b2b72 100644 --- a/packages/desktop/src-tauri/Cargo.lock +++ b/packages/desktop/src-tauri/Cargo.lock @@ -535,8 +535,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", + "js-sys", "num-traits", "serde", + "wasm-bindgen", "windows-link 0.2.1", ] @@ -2491,6 +2493,15 @@ dependencies = [ "syn 2.0.110", ] +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "matches" version = "0.1.10" @@ -2691,6 +2702,15 @@ dependencies = [ "zbus", ] +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -3065,6 +3085,7 @@ dependencies = [ name = "opencode-desktop" version = "0.0.0" dependencies = [ + "chrono", "comrak", "dirs", "futures", @@ -3096,6 +3117,9 @@ dependencies = [ "tauri-plugin-window-state", "tauri-specta", "tokio", + "tracing", + "tracing-appender", + "tracing-subscriber", "uuid", "webkit2gtk", "windows 0.61.3", @@ -4412,6 +4436,15 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shared_child" version = "1.1.1" @@ -5472,6 +5505,15 @@ dependencies = [ "syn 2.0.110", ] +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + [[package]] name = "tiff" version = "0.10.3" @@ -5745,9 +5787,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -5755,10 +5797,22 @@ dependencies = [ ] [[package]] -name = "tracing-attributes" -version = "0.1.30" +name = "tracing-appender" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf" +dependencies = [ + "crossbeam-channel", + "thiserror 2.0.17", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -5767,11 +5821,41 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -5964,6 +6048,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "version-compare" version = "0.2.1" diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml index 2d6f13eca0..e9ba55b039 100644 --- a/packages/desktop/src-tauri/Cargo.toml +++ b/packages/desktop/src-tauri/Cargo.toml @@ -47,6 +47,10 @@ specta = "=2.0.0-rc.22" specta-typescript = "0.0.9" tauri-specta = { version = "=2.0.0-rc.21", features = ["derive", "typescript"] } dirs = "6.0.0" +tracing = "0.1" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-appender = "0.2" +chrono = "0.4" [target.'cfg(target_os = "linux")'.dependencies] gtk = "0.18.2" diff --git a/packages/desktop/src-tauri/src/cli.rs b/packages/desktop/src-tauri/src/cli.rs index 70ac973f03..b9e1ed4bd5 100644 --- a/packages/desktop/src-tauri/src/cli.rs +++ b/packages/desktop/src-tauri/src/cli.rs @@ -6,10 +6,7 @@ use tauri_plugin_shell::{ use tauri_plugin_store::StoreExt; use tokio::sync::oneshot; -use crate::{ - LogState, - constants::{MAX_LOG_ENTRIES, SETTINGS_STORE, WSL_ENABLED_KEY}, -}; +use crate::constants::{SETTINGS_STORE, WSL_ENABLED_KEY}; const CLI_INSTALL_DIR: &str = ".opencode/bin"; const CLI_BINARY_NAME: &str = "opencode"; @@ -29,7 +26,7 @@ pub async fn get_config(app: &AppHandle) -> Option { create_command(app, "debug config", &[]) .output() .await - .inspect_err(|e| eprintln!("Failed to read OC config: {e}")) + .inspect_err(|e| tracing::warn!("Failed to read OC config: {e}")) .ok() .and_then(|out| String::from_utf8(out.stdout.to_vec()).ok()) .and_then(|s| serde_json::from_str::(&s).ok()) @@ -104,12 +101,12 @@ pub fn install_cli(app: tauri::AppHandle) -> Result { pub fn sync_cli(app: tauri::AppHandle) -> Result<(), String> { if cfg!(debug_assertions) { - println!("Skipping CLI sync for debug build"); + tracing::debug!("Skipping CLI sync for debug build"); return Ok(()); } if !is_cli_installed() { - println!("No CLI installation found, skipping sync"); + tracing::info!("No CLI installation found, skipping sync"); return Ok(()); } @@ -132,21 +129,21 @@ pub fn sync_cli(app: tauri::AppHandle) -> Result<(), String> { let app_version = app.package_info().version.clone(); if cli_version >= app_version { - println!( - "CLI version {} is up to date (app version: {}), skipping sync", - cli_version, app_version + tracing::info!( + %cli_version, %app_version, + "CLI is up to date, skipping sync" ); return Ok(()); } - println!( - "CLI version {} is older than app version {}, syncing", - cli_version, app_version + tracing::info!( + %cli_version, %app_version, + "CLI is older than app version, syncing" ); install_cli(app)?; - println!("Synced installed CLI"); + tracing::info!("Synced installed CLI"); Ok(()) } @@ -207,7 +204,7 @@ pub fn create_command(app: &tauri::AppHandle, args: &str, extra_env: &[(&str, St if cfg!(windows) { if is_wsl_enabled(app) { - println!("WSL is enabled, spawning CLI server in WSL."); + tracing::info!("WSL is enabled, spawning CLI server in WSL"); let version = app.package_info().version.to_string(); let mut script = vec![ "set -e".to_string(), @@ -280,38 +277,9 @@ pub fn serve( port: u32, password: &str, ) -> (CommandChild, oneshot::Receiver) { - let log_state = app.state::(); - let log_state_clone = log_state.inner().clone(); - let (exit_tx, exit_rx) = oneshot::channel::(); - println!("spawning sidecar on port {port}"); - - if let Ok(mut logs) = log_state_clone.0.lock() { - let args = - format!("--print-logs --log-level WARN serve --hostname {hostname} --port {port}"); - - #[cfg(target_os = "windows")] - { - logs.push_back(format!("[SPAWN] sidecar=opencode-cli args=\"{args}\"\n")); - } - - #[cfg(not(target_os = "windows"))] - { - let sidecar = get_sidecar_path(app); - let shell = get_user_shell(); - let cmd = if shell.ends_with("/nu") { - format!("^\"{}\" {}", sidecar.display(), args) - } else { - format!("\"{}\" {}", sidecar.display(), args) - }; - logs.push_back(format!("[SPAWN] shell=\"{shell}\" argv=\"-il -c {cmd}\"\n")); - } - - while logs.len() > MAX_LOG_ENTRIES { - logs.pop_front(); - } - } + tracing::info!(port, "Spawning sidecar"); let envs = [ ("OPENCODE_SERVER_USERNAME", "opencode".to_string()), @@ -332,50 +300,22 @@ pub fn serve( match event { CommandEvent::Stdout(line_bytes) => { let line = String::from_utf8_lossy(&line_bytes); - print!("{line}"); - - // Store log in shared state - if let Ok(mut logs) = log_state_clone.0.lock() { - logs.push_back(format!("[STDOUT] {}", line)); - // Keep only the last MAX_LOG_ENTRIES - while logs.len() > MAX_LOG_ENTRIES { - logs.pop_front(); - } - } + tracing::info!(target: "sidecar", "{line}"); } CommandEvent::Stderr(line_bytes) => { let line = String::from_utf8_lossy(&line_bytes); - eprint!("{line}"); - - // Store log in shared state - if let Ok(mut logs) = log_state_clone.0.lock() { - logs.push_back(format!("[STDERR] {}", line)); - // Keep only the last MAX_LOG_ENTRIES - while logs.len() > MAX_LOG_ENTRIES { - logs.pop_front(); - } - } + tracing::info!(target: "sidecar", "{line}"); } CommandEvent::Error(err) => { - eprintln!("{err}"); - - if let Ok(mut logs) = log_state_clone.0.lock() { - logs.push_back(format!("[ERROR] {err}\n")); - while logs.len() > MAX_LOG_ENTRIES { - logs.pop_front(); - } - } + tracing::error!(target: "sidecar", "{err}"); } CommandEvent::Terminated(payload) => { - if let Ok(mut logs) = log_state_clone.0.lock() { - logs.push_back(format!( - "[EXIT] code={:?} signal={:?}\n", - payload.code, payload.signal - )); - while logs.len() > MAX_LOG_ENTRIES { - logs.pop_front(); - } - } + tracing::info!( + target: "sidecar", + code = ?payload.code, + signal = ?payload.signal, + "Sidecar terminated" + ); if let Some(tx) = exit_tx.take() { let _ = tx.send(payload); diff --git a/packages/desktop/src-tauri/src/constants.rs b/packages/desktop/src-tauri/src/constants.rs index cdf05fb458..9d50d00e20 100644 --- a/packages/desktop/src-tauri/src/constants.rs +++ b/packages/desktop/src-tauri/src/constants.rs @@ -4,7 +4,6 @@ pub const SETTINGS_STORE: &str = "opencode.settings.dat"; pub const DEFAULT_SERVER_URL_KEY: &str = "defaultServerUrl"; pub const WSL_ENABLED_KEY: &str = "wslEnabled"; pub const UPDATER_ENABLED: bool = option_env!("TAURI_SIGNING_PRIVATE_KEY").is_some(); -pub const MAX_LOG_ENTRIES: usize = 200; pub fn window_state_flags() -> StateFlags { StateFlags::all() - StateFlags::DECORATIONS - StateFlags::VISIBLE diff --git a/packages/desktop/src-tauri/src/job_object.rs b/packages/desktop/src-tauri/src/job_object.rs index 220aa5db66..8d774b14cd 100644 --- a/packages/desktop/src-tauri/src/job_object.rs +++ b/packages/desktop/src-tauri/src/job_object.rs @@ -15,9 +15,9 @@ use std::io::{Error, Result}; use std::sync::Mutex; use windows::Win32::Foundation::{CloseHandle, HANDLE}; use windows::Win32::System::JobObjects::{ - AssignProcessToJobObject, CreateJobObjectW, JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE, - JOBOBJECT_EXTENDED_LIMIT_INFORMATION, JobObjectExtendedLimitInformation, - SetInformationJobObject, + AssignProcessToJobObject, CreateJobObjectW, JobObjectExtendedLimitInformation, + SetInformationJobObject, JOBOBJECT_EXTENDED_LIMIT_INFORMATION, + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE, }; use windows::Win32::System::Threading::{OpenProcess, PROCESS_SET_QUOTA, PROCESS_TERMINATE}; @@ -111,7 +111,7 @@ impl JobObjectState { error: Mutex::new(None), }, Err(e) => { - eprintln!("Failed to create job object: {e}"); + tracing::error!("Failed to create job object: {e}"); Self { job: Mutex::new(None), error: Mutex::new(Some(format!("Failed to create job object: {e}"))), @@ -123,11 +123,11 @@ impl JobObjectState { pub fn assign_pid(&self, pid: u32) { if let Some(job) = self.job.lock().unwrap().as_ref() { if let Err(e) = job.assign_pid(pid) { - eprintln!("Failed to assign process {pid} to job object: {e}"); + tracing::error!(pid, "Failed to assign process to job object: {e}"); *self.error.lock().unwrap() = Some(format!("Failed to assign process to job object: {e}")); } else { - println!("Assigned process {pid} to job object for automatic cleanup"); + tracing::info!(pid, "Assigned process to job object for automatic cleanup"); } } } diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 3e7902804e..2c570b7a77 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -4,6 +4,7 @@ mod constants; mod job_object; #[cfg(target_os = "linux")] pub mod linux_display; +mod logging; mod markdown; mod server; mod window_customizer; @@ -16,7 +17,6 @@ use futures::{ #[cfg(windows)] use job_object::*; use std::{ - collections::VecDeque, env, net::TcpListener, path::PathBuf, @@ -85,14 +85,11 @@ impl ServerState { } } -#[derive(Clone)] -struct LogState(Arc>>); - #[tauri::command] #[specta::specta] fn kill_sidecar(app: AppHandle) { let Some(server_state) = app.try_state::() else { - println!("Server not running"); + tracing::info!("Server not running"); return; }; @@ -102,24 +99,17 @@ fn kill_sidecar(app: AppHandle) { .expect("Failed to acquire mutex lock") .take() else { - println!("Server state missing"); + tracing::info!("Server state missing"); return; }; let _ = server_state.kill(); - println!("Killed server"); + tracing::info!("Killed server"); } -async fn get_logs(app: AppHandle) -> Result { - let log_state = app.try_state::().ok_or("Log state not found")?; - - let logs = log_state - .0 - .lock() - .map_err(|_| "Failed to acquire log lock")?; - - Ok(logs.iter().cloned().collect::>().join("")) +fn get_logs() -> String { + logging::tail() } #[tauri::command] @@ -715,10 +705,18 @@ pub fn run() { .plugin(tauri_plugin_decorum::init()) .invoke_handler(builder.invoke_handler()) .setup(move |app| { - let app = app.handle().clone(); + let handle = app.handle().clone(); - builder.mount_events(&app); - tauri::async_runtime::spawn(initialize(app)); + let log_dir = app + .path() + .app_log_dir() + .expect("failed to resolve app log dir"); + // Hold the guard in managed state so it lives for the app's lifetime, + // ensuring all buffered logs are flushed on shutdown. + handle.manage(logging::init(&log_dir)); + + builder.mount_events(&handle); + tauri::async_runtime::spawn(initialize(handle)); Ok(()) }); @@ -732,7 +730,7 @@ pub fn run() { .expect("error while running tauri application") .run(|app, event| { if let RunEvent::Exit = event { - println!("Received Exit"); + tracing::info!("Received Exit"); kill_sidecar(app.clone()); } @@ -780,9 +778,8 @@ fn test_export_types() { #[derive(tauri_specta::Event, serde::Deserialize, specta::Type)] struct LoadingWindowComplete; -// #[tracing::instrument(skip_all)] async fn initialize(app: AppHandle) { - println!("Initializing app"); + tracing::info!("Initializing app"); let (init_tx, init_rx) = watch::channel(InitStep::ServerWaiting); @@ -795,7 +792,7 @@ async fn initialize(app: AppHandle) { let loading_window_complete = event_once_fut::(&app); - println!("Main and loading windows created"); + tracing::info!("Main and loading windows created"); let sqlite_enabled = option_env!("OPENCODE_SQLITE").is_some(); @@ -806,7 +803,7 @@ async fn initialize(app: AppHandle) { async move { let mut sqlite_exists = sqlite_file_exists(); - println!("Setting up server connection"); + tracing::info!("Setting up server connection"); let server_connection = setup_server_connection(app.clone()).await; // we delay spawning this future so that the timeout is created lazily @@ -831,16 +828,13 @@ async fn initialize(app: AppHandle) { if let Some(err) = err { let _ = child.kill(); - let logs = get_logs(app.clone()) - .await - .unwrap_or_else(|e| format!("[DESKTOP] Failed to read sidecar logs: {e}\n")); - return Err(format!( - "Failed to spawn OpenCode Server ({err}). Logs:\n{logs}" + "Failed to spawn OpenCode Server ({err}). Logs:\n{}", + get_logs() )); } - println!("CLI health check OK"); + tracing::info!("CLI health check OK"); #[cfg(windows)] { @@ -868,11 +862,11 @@ async fn initialize(app: AppHandle) { if let Some(cli_health_check) = cli_health_check { if sqlite_enabled { - println!("Does sqlite file exist: {sqlite_exists}"); + tracing::debug!(sqlite_exists, "Checking sqlite file existence"); if !sqlite_exists { - println!( - "Sqlite file not found at {}, waiting for it to be generated", - opencode_db_path().expect("failed to get db path").display() + tracing::info!( + path = %opencode_db_path().expect("failed to get db path").display(), + "Sqlite file not found, waiting for it to be generated" ); let _ = init_tx.send(InitStep::SqliteWaiting); @@ -897,7 +891,7 @@ async fn initialize(app: AppHandle) { .await .is_err() { - println!("Loading task timed out, showing loading window"); + tracing::debug!("Loading task timed out, showing loading window"); let app = app.clone(); let loading_window = LoadingWindow::create(&app).expect("Failed to create loading window"); sleep(Duration::from_secs(1)).await; @@ -910,14 +904,14 @@ async fn initialize(app: AppHandle) { let _ = loading_task.await; - println!("Loading done, completing initialisation"); + tracing::info!("Loading done, completing initialisation"); let _ = init_tx.send(InitStep::Done); if loading_window.is_some() { loading_window_complete.await; - println!("Loading window completed"); + tracing::info!("Loading window completed"); } MainWindow::create(&app).expect("Failed to create main window"); @@ -931,9 +925,6 @@ fn setup_app(app: &tauri::AppHandle, init_rx: watch::Receiver) { #[cfg(any(target_os = "linux", all(debug_assertions, windows)))] app.deep_link().register_all().ok(); - // Initialize log state - app.manage(LogState(Arc::new(Mutex::new(VecDeque::new())))); - #[cfg(windows)] app.manage(JobObjectState::new()); @@ -943,7 +934,7 @@ fn setup_app(app: &tauri::AppHandle, init_rx: watch::Receiver) { fn spawn_cli_sync_task(app: AppHandle) { tokio::spawn(async move { if let Err(e) = sync_cli(app) { - eprintln!("Failed to sync CLI: {e}"); + tracing::error!("Failed to sync CLI: {e}"); } }); } @@ -963,12 +954,12 @@ enum ServerConnection { async fn setup_server_connection(app: AppHandle) -> ServerConnection { let custom_url = get_saved_server_url(&app).await; - println!("Attempting server connection to custom url: {custom_url:?}"); + tracing::info!(?custom_url, "Attempting server connection"); if let Some(url) = custom_url && server::check_health_or_ask_retry(&app, &url).await { - println!("Connected to custom server: {}", url); + tracing::info!(%url, "Connected to custom server"); return ServerConnection::Existing { url: url.clone() }; } @@ -976,15 +967,15 @@ async fn setup_server_connection(app: AppHandle) -> ServerConnection { let hostname = "127.0.0.1"; let local_url = format!("http://{hostname}:{local_port}"); - println!("Checking health of server '{}'", local_url); + tracing::debug!(url = %local_url, "Checking health of local server"); if server::check_health(&local_url, None).await { - println!("Health check OK, using existing server"); + tracing::info!(url = %local_url, "Health check OK, using existing server"); return ServerConnection::Existing { url: local_url }; } let password = uuid::Uuid::new_v4().to_string(); - println!("Spawning new local server"); + tracing::info!("Spawning new local server"); let (child, health_check) = server::spawn_local_server(app, hostname.to_string(), local_port, password.clone()); diff --git a/packages/desktop/src-tauri/src/linux_display.rs b/packages/desktop/src-tauri/src/linux_display.rs index 24fb27a4bf..0179cf8bbb 100644 --- a/packages/desktop/src-tauri/src/linux_display.rs +++ b/packages/desktop/src-tauri/src/linux_display.rs @@ -14,7 +14,11 @@ struct DisplayConfig { } fn dir() -> Option { - Some(dirs::data_dir()?.join(if cfg!(debug_assertions) { "ai.opencode.desktop.dev" } else { "ai.opencode.desktop" })) + Some(dirs::data_dir()?.join(if cfg!(debug_assertions) { + "ai.opencode.desktop.dev" + } else { + "ai.opencode.desktop" + })) } fn path() -> Option { @@ -22,13 +26,12 @@ fn path() -> Option { } pub fn read_wayland() -> Option { - let raw = std::fs::read_to_string(dbg!(path()?)).ok()?; + let raw = std::fs::read_to_string(path()?).ok()?; let root = serde_json::from_str::(&raw) .ok()? - .get(LINUX_DISPLAY_CONFIG_KEY).cloned()?; - serde_json::from_value::(root) - .ok()? - .wayland + .get(LINUX_DISPLAY_CONFIG_KEY) + .cloned()?; + serde_json::from_value::(root).ok()?.wayland } pub fn write_wayland(app: &AppHandle, value: bool) -> Result<(), String> { diff --git a/packages/desktop/src-tauri/src/logging.rs b/packages/desktop/src-tauri/src/logging.rs new file mode 100644 index 0000000000..f794f9c1bc --- /dev/null +++ b/packages/desktop/src-tauri/src/logging.rs @@ -0,0 +1,83 @@ +use std::fs::File; +use std::io::{BufRead, BufReader}; +use std::path::{Path, PathBuf}; +use tracing_appender::non_blocking::WorkerGuard; +use tracing_subscriber::{EnvFilter, fmt, layer::SubscriberExt, util::SubscriberInitExt}; + +const MAX_LOG_AGE_DAYS: u64 = 7; +const TAIL_LINES: usize = 1000; + +static LOG_PATH: std::sync::OnceLock = std::sync::OnceLock::new(); + +pub fn init(log_dir: &Path) -> WorkerGuard { + std::fs::create_dir_all(log_dir).expect("failed to create log directory"); + + cleanup(log_dir); + + let timestamp = chrono::Local::now().format("%Y-%m-%d_%H-%M-%S"); + let filename = format!("opencode-desktop_{timestamp}.log"); + let log_path = log_dir.join(&filename); + + LOG_PATH + .set(log_path.clone()) + .expect("logging already initialized"); + + let file = File::create(&log_path).expect("failed to create log file"); + let (non_blocking, guard) = tracing_appender::non_blocking(file); + + let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| { + if cfg!(debug_assertions) { + EnvFilter::new("opencode_lib=debug,opencode_desktop=debug,sidecar=debug") + } else { + EnvFilter::new("opencode_lib=info,opencode_desktop=info,sidecar=info") + } + }); + + tracing_subscriber::registry() + .with(filter) + .with(fmt::layer().with_writer(std::io::stderr)) + .with( + fmt::layer() + .with_writer(non_blocking) + .with_ansi(false), + ) + .init(); + + guard +} + +pub fn tail() -> String { + let Some(path) = LOG_PATH.get() else { + return String::new(); + }; + + let Ok(file) = File::open(path) else { + return String::new(); + }; + + let lines: Vec = BufReader::new(file) + .lines() + .map_while(Result::ok) + .collect(); + + let start = lines.len().saturating_sub(TAIL_LINES); + lines[start..].join("\n") +} + +fn cleanup(log_dir: &Path) { + let cutoff = std::time::SystemTime::now() + - std::time::Duration::from_secs(MAX_LOG_AGE_DAYS * 24 * 60 * 60); + + let Ok(entries) = std::fs::read_dir(log_dir) else { + return; + }; + + for entry in entries.flatten() { + if let Ok(meta) = entry.metadata() + && let Ok(modified) = meta.modified() + && modified < cutoff + { + let _ = std::fs::remove_file(entry.path()); + } + } +} diff --git a/packages/desktop/src-tauri/src/main.rs b/packages/desktop/src-tauri/src/main.rs index af88342c3b..9eb86cdacc 100644 --- a/packages/desktop/src-tauri/src/main.rs +++ b/packages/desktop/src-tauri/src/main.rs @@ -43,7 +43,7 @@ fn configure_display_backend() -> Option { set_env_if_absent("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); return Some( "Wayland session detected; forcing X11 backend to avoid compositor protocol errors. \ - Set OC_ALLOW_WAYLAND=1 to keep native Wayland." + Set OC_ALLOW_WAYLAND=1 to keep native Wayland." .into(), ); } @@ -86,7 +86,7 @@ fn main() { #[cfg(target_os = "linux")] { if let Some(backend_note) = configure_display_backend() { - eprintln!("{backend_note:?}"); + eprintln!("{backend_note}"); } } diff --git a/packages/desktop/src-tauri/src/server.rs b/packages/desktop/src-tauri/src/server.rs index 9d09512ce7..81e0595af7 100644 --- a/packages/desktop/src-tauri/src/server.rs +++ b/packages/desktop/src-tauri/src/server.rs @@ -93,14 +93,14 @@ pub fn set_wsl_config(app: AppHandle, config: WslConfig) -> Result<(), String> { pub async fn get_saved_server_url(app: &tauri::AppHandle) -> Option { if let Some(url) = get_default_server_url(app.clone()).ok().flatten() { - println!("Using desktop-specific custom URL: {url}"); + tracing::info!(%url, "Using desktop-specific custom URL"); return Some(url); } if let Some(cli_config) = cli::get_config(app).await && let Some(url) = get_server_url_from_config(&cli_config) { - println!("Using custom server URL from config: {url}"); + tracing::info!(%url, "Using custom server URL from config"); return Some(url); } @@ -124,7 +124,7 @@ pub fn spawn_local_server( tokio::time::sleep(Duration::from_millis(100)).await; if check_health(&url, Some(&password)).await { - println!("Server ready after {:?}", timestamp.elapsed()); + tracing::info!(elapsed = ?timestamp.elapsed(), "Server ready"); return Ok(()); } } @@ -216,7 +216,7 @@ fn normalize_hostname_for_url(hostname: &str) -> String { fn get_server_url_from_config(config: &cli::Config) -> Option { let server = config.server.as_ref()?; let port = server.port?; - println!("server.port found in OC config: {port}"); + tracing::debug!(port, "server.port found in OC config"); let hostname = server .hostname .as_ref() @@ -227,7 +227,7 @@ fn get_server_url_from_config(config: &cli::Config) -> Option { } pub async fn check_health_or_ask_retry(app: &AppHandle, url: &str) -> bool { - println!("Checking health for {url}"); + tracing::debug!(%url, "Checking health"); loop { if check_health(url, None).await { return true; From dd1862cc2b8f90453a2c3a644b6ebb7fc2629896 Mon Sep 17 00:00:00 2001 From: Shintaro Jokagi <61367823+taroj1205@users.noreply.github.com> Date: Wed, 11 Feb 2026 21:43:48 +0900 Subject: [PATCH 44/66] fix(web): prevent language select label truncation (#13100) --- packages/web/src/components/Footer.astro | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/web/src/components/Footer.astro b/packages/web/src/components/Footer.astro index 2e407e7eed..0c66d7e63f 100644 --- a/packages/web/src/components/Footer.astro +++ b/packages/web/src/components/Footer.astro @@ -110,8 +110,7 @@ const discord = config.social?.find((item) => item.icon === "discord") } .doc :global(starlight-lang-select select) { - min-width: 18ch; - max-width: min(100%, 20rem); + min-width: 15em; } @media (min-width: 30rem) { From c426cb0f14f1b130b7819c4f0ef1a33a327c1444 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 11 Feb 2026 06:10:44 -0600 Subject: [PATCH 45/66] fix(app): copy path button styles --- .../src/components/session/session-header.tsx | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 3bf3c08e99..383490f99d 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -343,17 +343,19 @@ export function SessionHeader() { - - - {language.t("session.header.open.copyPath")} - - +
+ +
} >
From ef5ec5dc28ce668585f11c76d89622d6c13724f0 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 11 Feb 2026 07:17:01 -0600 Subject: [PATCH 46/66] fix(app): terminal copy/paste --- packages/app/src/components/terminal.tsx | 53 +++++++++++------------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index 7a1b81f0c3..2527c74ec3 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -130,11 +130,12 @@ export const Terminal = (props: TerminalProps) => { const t = term if (!t) return t.focus() + t.textarea?.focus() setTimeout(() => t.textarea?.focus(), 0) } const handlePointerDown = () => { const activeElement = document.activeElement - if (activeElement instanceof HTMLElement && activeElement !== container) { + if (activeElement instanceof HTMLElement && activeElement !== container && !container.contains(activeElement)) { activeElement.blur() } focusTerminal() @@ -204,44 +205,32 @@ export const Terminal = (props: TerminalProps) => { ghostty = g term = t - const copy = () => { + const handleCopy = (event: ClipboardEvent) => { const selection = t.getSelection() - if (!selection) return false + if (!selection) return - const body = document.body - if (body) { - const textarea = document.createElement("textarea") - textarea.value = selection - textarea.setAttribute("readonly", "") - textarea.style.position = "fixed" - textarea.style.opacity = "0" - body.appendChild(textarea) - textarea.select() - const copied = document.execCommand("copy") - body.removeChild(textarea) - if (copied) return true - } + const clipboard = event.clipboardData + if (!clipboard) return - const clipboard = navigator.clipboard - if (clipboard?.writeText) { - clipboard.writeText(selection).catch(() => {}) - return true - } + event.preventDefault() + clipboard.setData("text/plain", selection) + } - return false + const handlePaste = (event: ClipboardEvent) => { + const clipboard = event.clipboardData + const text = clipboard?.getData("text/plain") ?? clipboard?.getData("text") ?? "" + if (!text) return + + event.preventDefault() + event.stopPropagation() + t.paste(text) } t.attachCustomKeyEventHandler((event) => { const key = event.key.toLowerCase() if (event.ctrlKey && event.shiftKey && !event.metaKey && key === "c") { - copy() - return true - } - - if (event.metaKey && !event.ctrlKey && !event.altKey && key === "c") { - if (!t.hasSelection()) return true - copy() + document.execCommand("copy") return true } @@ -252,6 +241,12 @@ export const Terminal = (props: TerminalProps) => { return matchKeybind(keybinds, event) }) + container.addEventListener("copy", handleCopy, true) + cleanups.push(() => container.removeEventListener("copy", handleCopy, true)) + + container.addEventListener("paste", handlePaste, true) + cleanups.push(() => container.removeEventListener("paste", handlePaste, true)) + const fit = new mod.FitAddon() const serializer = new SerializeAddon() cleanups.push(() => disposeIfDisposable(fit)) From edcfd562af6ea5fdc1ade9f46259a676d7663801 Mon Sep 17 00:00:00 2001 From: opencode Date: Wed, 11 Feb 2026 13:45:34 +0000 Subject: [PATCH 47/66] release: v1.1.57 --- bun.lock | 30 +++++++++++++------------- packages/app/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/desktop/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/extensions/zed/extension.toml | 12 +++++------ packages/function/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/slack/package.json | 2 +- packages/ui/package.json | 2 +- packages/util/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/bun.lock b/bun.lock index b98a6cc7a8..1063b4ec94 100644 --- a/bun.lock +++ b/bun.lock @@ -23,7 +23,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -73,7 +73,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -107,7 +107,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -134,7 +134,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -158,7 +158,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -182,7 +182,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@opencode-ai/app": "workspace:*", "@opencode-ai/ui": "workspace:*", @@ -215,7 +215,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@opencode-ai/ui": "workspace:*", "@opencode-ai/util": "workspace:*", @@ -244,7 +244,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -260,7 +260,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.1.56", + "version": "1.1.57", "bin": { "opencode": "./bin/opencode", }, @@ -366,7 +366,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@opencode-ai/sdk": "workspace:*", "zod": "catalog:", @@ -386,7 +386,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.1.56", + "version": "1.1.57", "devDependencies": { "@hey-api/openapi-ts": "0.90.10", "@tsconfig/node22": "catalog:", @@ -397,7 +397,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -410,7 +410,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", @@ -452,7 +452,7 @@ }, "packages/util": { "name": "@opencode-ai/util", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "zod": "catalog:", }, @@ -463,7 +463,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index 42426c3435..3d9d94941c 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.1.56", + "version": "1.1.57", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index eebbbeb9ce..433b65220e 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 06013e5376..7268af6e37 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.1.56", + "version": "1.1.57", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index b7d58641ee..f22b938246 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.1.56", + "version": "1.1.57", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 7bcfe3efb8..f7e6e59e1c 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.1.56", + "version": "1.1.57", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index a3a92b9559..33954555c5 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 5d37ba2f52..3a20733b65 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.1.56", + "version": "1.1.57", "private": true, "type": "module", "license": "MIT", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index 5eb067f4d3..1df1f9a506 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "opencode" name = "OpenCode" description = "The open source coding agent." -version = "1.1.56" +version = "1.1.57" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/anomalyco/opencode" @@ -11,26 +11,26 @@ name = "OpenCode" icon = "./icons/opencode.svg" [agent_servers.opencode.targets.darwin-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-darwin-arm64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.57/opencode-darwin-arm64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.darwin-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-darwin-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.57/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-linux-arm64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.57/opencode-linux-arm64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-linux-x64.tar.gz" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.57/opencode-linux-x64.tar.gz" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.windows-x86_64] -archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.56/opencode-windows-x64.zip" +archive = "https://github.com/anomalyco/opencode/releases/download/v1.1.57/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index 7c03e7ef70..2a2b786230 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.1.56", + "version": "1.1.57", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index b460df2430..d4568eb0a0 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.1.56", + "version": "1.1.57", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index deb0553ba9..5c5fa31928 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index af66b914fb..0ab37bd79d 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index 240042a37f..04918d3a62 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index a75098a2d3..34b76222f9 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.1.56", + "version": "1.1.57", "type": "module", "license": "MIT", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index cb744ea088..a5e78e0a4b 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/util", - "version": "1.1.56", + "version": "1.1.57", "private": true, "type": "module", "license": "MIT", diff --git a/packages/web/package.json b/packages/web/package.json index 8b51baa3b2..d35f5180bf 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.1.56", + "version": "1.1.57", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index f9fb84a27f..dd565af63c 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.1.56", + "version": "1.1.57", "publisher": "sst-dev", "repository": { "type": "git", From 93957da2c915f1cff28133c795cb358228ed01f4 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 11 Feb 2026 08:52:14 -0500 Subject: [PATCH 48/66] fix(tui): prevent home wordmark corruption in height-constrained terminals (#13069) --- packages/opencode/src/cli/cmd/tui/routes/home.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/home.tsx b/packages/opencode/src/cli/cmd/tui/routes/home.tsx index 59923c69d9..c011f6c624 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/home.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/home.tsx @@ -93,10 +93,14 @@ export function Home() { return ( <> - - - - + + + + + + + + { prompt = r @@ -105,11 +109,12 @@ export function Home() { hint={Hint} /> - + + From 352a54c698b7a243177c8e39013b0abd60570888 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Wed, 11 Feb 2026 08:57:59 -0500 Subject: [PATCH 49/66] feat(prompt): mode-specific input placeholders (#12388) --- .../cli/cmd/tui/component/prompt/index.tsx | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index 8576dd5763..cefef208de 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -1,5 +1,5 @@ import { BoxRenderable, TextareaRenderable, MouseEvent, PasteEvent, t, dim, fg } from "@opentui/core" -import { createEffect, createMemo, type JSX, onMount, createSignal, onCleanup, Show, Switch, Match } from "solid-js" +import { createEffect, createMemo, type JSX, onMount, createSignal, onCleanup, on, Show, Switch, Match } from "solid-js" import "opentui-spinner/solid" import { useLocal } from "@tui/context/local" import { useTheme } from "@tui/context/theme" @@ -54,6 +54,7 @@ export type PromptRef = { } const PLACEHOLDERS = ["Fix a TODO in the codebase", "What is the tech stack of this project?", "Fix broken tests"] +const SHELL_PLACEHOLDERS = ["ls -la", "git status", "pwd"] export function Prompt(props: PromptProps) { let input: TextareaRenderable @@ -134,6 +135,16 @@ export function Prompt(props: PromptProps) { interrupt: 0, }) + createEffect( + on( + () => props.sessionID, + () => { + setStore("placeholder", Math.floor(Math.random() * PLACEHOLDERS.length)) + }, + { defer: true }, + ), + ) + // Initialize agent/model/variant from last user message when session changes let syncedSessionID: string | undefined createEffect(() => { @@ -736,6 +747,15 @@ export function Prompt(props: PromptProps) { return !!current }) + const placeholderText = createMemo(() => { + if (props.sessionID) return undefined + if (store.mode === "shell") { + const example = SHELL_PLACEHOLDERS[store.placeholder % SHELL_PLACEHOLDERS.length] + return `Run a command... "${example}"` + } + return `Ask anything... "${PLACEHOLDERS[store.placeholder % PLACEHOLDERS.length]}"` + }) + const spinnerDef = createMemo(() => { const color = local.agent.color(local.agent.current().name) return { @@ -797,7 +817,7 @@ export function Prompt(props: PromptProps) { flexGrow={1} >