Compare commits

...

9 Commits

Author SHA1 Message Date
opencode 1bbbd51d48 release: v1.1.56 2026-02-10 22:12:25 +00:00
Adam 50f3e74d05 fix(app): task tool rendering 2026-02-10 15:28:46 -06:00
Adam 21475a1dfd fix(docs): invalid markdown 2026-02-10 15:18:57 -06:00
Filip dce4c05fa9 fix(desktop): open apps with executables on Windows (#13022) 2026-02-10 15:10:58 -06:00
Frank 8c56571ef9 zen: log error 2026-02-10 15:55:33 -05:00
Adam 92a77b72fb fix(app): don't close sidebar on session change (#13013) 2026-02-10 14:45:52 -06:00
opencode-agent[bot] 4f6b929784 chore: generate 2026-02-10 20:22:31 +00:00
Adam 55119559b3 fix(app): don't scroll code search input 2026-02-10 20:22:31 +00:00
Adam fd5531316f fix(docs): locale translations 2026-02-10 20:22:30 +00:00
312 changed files with 4941 additions and 5009 deletions
+15 -15
View File
@@ -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",
+5 -9
View File
@@ -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 }],
},
},
},
@@ -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)
}
})
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/app",
"version": "1.1.55",
"version": "1.1.56",
"description": "",
"type": "module",
"exports": {
@@ -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() {
<span class="text-12-regular text-text-strong">Open</span>
</Button>
<div class="self-stretch w-px bg-border-base/70" />
<DropdownMenu gutter={6} placement="bottom-end">
<DropdownMenu
gutter={6}
placement="bottom-end"
open={menu.open}
onOpenChange={(open) => setMenu("open", open)}
>
<DropdownMenu.Trigger
as={IconButton}
icon="chevron-down"
@@ -375,7 +381,13 @@ export function SessionHeader() {
}}
>
{options().map((o) => (
<DropdownMenu.RadioItem value={o.id} onSelect={() => openDir(o.id)}>
<DropdownMenu.RadioItem
value={o.id}
onSelect={() => {
setMenu("open", false)
openDir(o.id)
}}
>
<div class="flex size-5 shrink-0 items-center justify-center">
<AppIcon id={o.icon} class={size(o.icon)} />
</div>
@@ -388,7 +400,12 @@ export function SessionHeader() {
</DropdownMenu.RadioGroup>
</DropdownMenu.Group>
<DropdownMenu.Separator />
<DropdownMenu.Item onSelect={copyPath}>
<DropdownMenu.Item
onSelect={() => {
setMenu("open", false)
copyPath()
}}
>
<div class="flex size-5 shrink-0 items-center justify-center">
<Icon name="copy" size="small" class="text-icon-weak" />
</div>
@@ -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 (
<DataProvider
data={sync.data}
@@ -62,6 +69,8 @@ export default function Layout(props: ParentProps) {
onQuestionReply={replyToQuestion}
onQuestionReject={rejectQuestion}
onNavigateToSession={navigateToSession}
onSessionHref={sessionHref}
onSyncSession={syncSession}
>
<LocalProvider>{props.children}</LocalProvider>
</DataProvider>
-14
View File
@@ -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
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-app",
"version": "1.1.55",
"version": "1.1.56",
"type": "module",
"license": "MIT",
"scripts": {
@@ -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 }
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+12 -6
View File
@@ -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())
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@opencode-ai/desktop",
"private": true,
"version": "1.1.55",
"version": "1.1.56",
"type": "module",
"license": "MIT",
"scripts": {
+162 -7
View File
@@ -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<String> {
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::<Vec<_>>();
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<String> {
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::<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()),
];
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::<String>();
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<String> {
#[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);
+1
View File
@@ -14,6 +14,7 @@ export const commands = {
setDisplayBackend: (backend: LinuxDisplayBackend) => __TAURI_INVOKE<null>("set_display_backend", { backend }),
parseMarkdownCommand: (markdown: string) => __TAURI_INVOKE<string>("parse_markdown_command", { markdown }),
checkAppExists: (appName: string) => __TAURI_INVOKE<boolean>("check_app_exists", { appName }),
resolveAppPath: (appName: string) => __TAURI_INVOKE<string | null>("resolve_app_path", { appName }),
};
/** Events */
+6 -1
View File
@@ -98,7 +98,12 @@ const createPlatform = (password: Accessor<string | null>): 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)
},
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/enterprise",
"version": "1.1.55",
"version": "1.1.56",
"private": true,
"type": "module",
"license": "MIT",
+6 -6
View File
@@ -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"]
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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": {
+1 -1
View File
@@ -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": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/slack",
"version": "1.1.55",
"version": "1.1.56",
"type": "module",
"license": "MIT",
"scripts": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/ui",
"version": "1.1.55",
"version": "1.1.56",
"type": "module",
"license": "MIT",
"exports": {
+88 -82
View File
@@ -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<T>(props: CodeProps<T>) {
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<T>(props: CodeProps<T>) {
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<T>(
@@ -291,23 +292,26 @@ export function Code<T>(props: CodeProps<T>) {
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<T>(props: CodeProps<T>) {
}
if (opts?.scroll && active) {
scrollToRange(active)
positionFindBar()
}
return
}
@@ -435,7 +438,6 @@ export function Code<T>(props: CodeProps<T>) {
syncOverlayScroll()
if (opts?.scroll && active) {
scrollToRange(active)
positionFindBar()
}
scheduleOverlay()
}
@@ -464,14 +466,12 @@ export function Code<T>(props: CodeProps<T>) {
return
}
scrollToRange(active)
positionFindBar()
return
}
clearHighlightFind()
syncOverlayScroll()
scrollToRange(active)
positionFindBar()
scheduleOverlay()
}
@@ -484,11 +484,9 @@ export function Code<T>(props: CodeProps<T>) {
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<T>(props: CodeProps<T>) {
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<T>(props: CodeProps<T>) {
pendingSelectionEnd = false
})
const FindBar = (barProps: { class: string; style?: ComponentProps<"div">["style"] }) => (
<div class={barProps.class} style={barProps.style} onPointerDown={(e) => e.stopPropagation()}>
<Icon name="magnifying-glass" size="small" class="text-text-weak shrink-0" />
<input
ref={findInput}
placeholder="Find"
value={findQuery()}
class="w-40 bg-transparent outline-none text-14-regular text-text-strong placeholder:text-text-weak"
onInput={(e) => {
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)
}}
/>
<div class="shrink-0 text-12-regular text-text-weak tabular-nums text-right" style={{ width: "10ch" }}>
{findCount() ? `${findIndex() + 1}/${findCount()}` : "0/0"}
</div>
<div class="flex items-center">
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong disabled:opacity-40 disabled:pointer-events-none"
disabled={findCount() === 0}
aria-label="Previous match"
onClick={() => stepFind(-1)}
>
<Icon name="chevron-down" size="small" class="rotate-180" />
</button>
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong disabled:opacity-40 disabled:pointer-events-none"
disabled={findCount() === 0}
aria-label="Next match"
onClick={() => stepFind(1)}
>
<Icon name="chevron-down" size="small" />
</button>
</div>
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong"
aria-label="Close search"
onClick={closeFind}
>
<Icon name="close-small" size="small" />
</button>
</div>
)
return (
<div
data-component="code"
@@ -936,65 +992,15 @@ export function Code<T>(props: CodeProps<T>) {
}}
>
<Show when={findOpen()}>
<div
ref={findBar}
class="z-50 flex h-8 items-center gap-2 rounded-md border border-border-base bg-background-base px-3 shadow-md"
onPointerDown={(e) => e.stopPropagation()}
>
<Icon name="magnifying-glass" size="small" class="text-text-weak shrink-0" />
<input
ref={findInput}
placeholder="Find"
value={findQuery()}
class="w-40 bg-transparent outline-none text-14-regular text-text-strong placeholder:text-text-weak"
onInput={(e) => {
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)
<Portal>
<FindBar
class="fixed z-50 flex h-8 items-center gap-2 rounded-md border border-border-base bg-background-base px-3 shadow-md"
style={{
top: `${findPos().top}px`,
right: `${findPos().right}px`,
}}
/>
<div class="shrink-0 text-12-regular text-text-weak tabular-nums text-right" style={{ width: "10ch" }}>
{findCount() ? `${findIndex() + 1}/${findCount()}` : "0/0"}
</div>
<div class="flex items-center">
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong disabled:opacity-40 disabled:pointer-events-none"
disabled={findCount() === 0}
aria-label="Previous match"
onClick={() => stepFind(-1)}
>
<Icon name="chevron-down" size="small" class="rotate-180" />
</button>
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong disabled:opacity-40 disabled:pointer-events-none"
disabled={findCount() === 0}
aria-label="Next match"
onClick={() => stepFind(1)}
>
<Icon name="chevron-down" size="small" />
</button>
</div>
<button
type="button"
class="size-6 grid place-items-center rounded text-text-weak hover:bg-surface-base-hover hover:text-text-strong"
aria-label="Close search"
onClick={closeFind}
>
<Icon name="close-small" size="small" />
</button>
</div>
</Portal>
</Show>
<div ref={container} />
<div ref={findOverlay} class="pointer-events-none absolute inset-0 z-0" />
+70 -32
View File
@@ -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 = () => (
<div data-slot="basic-tool-tool-info-structured">
<div data-slot="basic-tool-tool-info-main">
<span data-slot="basic-tool-tool-title" class="capitalize">
{i18n.t("ui.tool.agent", { type: props.input.subagent_type || props.tool })}
</span>
<Show when={props.input.description}>
<Switch>
<Match when={href()}>
{(url) => (
<a data-slot="basic-tool-tool-subtitle" class="clickable" href={url()} onClick={handleLinkClick}>
{props.input.description}
</a>
)}
</Match>
<Match when={true}>
<span data-slot="basic-tool-tool-subtitle">{props.input.description}</span>
</Match>
</Switch>
</Show>
</div>
</div>
)
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({
<Switch>
<Match when={childPermission()}>
<>
<Show
when={childToolPart()}
fallback={
<BasicTool
icon="task"
defaultOpen={true}
trigger={{
title: i18n.t("ui.tool.agent", { type: props.input.subagent_type || props.tool }),
titleClass: "capitalize",
subtitle: props.input.description,
}}
onSubtitleClick={handleSubtitleClick}
/>
}
>
<Show when={childToolPart()} fallback={<BasicTool icon="task" defaultOpen={true} trigger={trigger()} />}>
{renderChildToolPart()}
</Show>
<div data-component="permission-prompt">
@@ -991,16 +1038,7 @@ ToolRegistry.register({
</>
</Match>
<Match when={true}>
<BasicTool
icon="task"
defaultOpen={true}
trigger={{
title: i18n.t("ui.tool.agent", { type: props.input.subagent_type || props.tool }),
titleClass: "capitalize",
subtitle: props.input.description,
}}
onSubtitleClick={handleSubtitleClick}
>
<BasicTool icon="task" defaultOpen={true} trigger={trigger()}>
<div
ref={autoScroll.scrollRef}
onScroll={autoScroll.handleScroll}
+8
View File
@@ -48,6 +48,10 @@ export type QuestionRejectFn = (input: { requestID: string }) => void
export type NavigateToSessionFn = (sessionID: string) => void
export type SessionHrefFn = (sessionID: string) => string
export type SyncSessionFn = (sessionID: string) => void | Promise<void>
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,
}
},
})
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/util",
"version": "1.1.55",
"version": "1.1.56",
"private": true,
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -460,7 +460,7 @@ permission:
webfetch: deny
---
حلل الشفرة فقط واقترح التغييرات.
Only analyze code and suggest changes.
```
يمكنك ضبط الأذونات لأوامر bash محددة.
-1
View File
@@ -17,7 +17,6 @@ Za ručnu nadogradnju, pokrenite
```bash
$ opencode upgrade 1.0.0
```
Za vraćanje na 0.x, pokrenite
+113 -90
View File
@@ -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:
- **\<Leader>+Right** (ili vaša konfigurirana `session_child_cycle` veza) za kretanje naprijed kroz roditelj → dijete1 → dijete2 → ... → roditelj
- **\<Leader>+Left** (ili vaše konfigurirano povezivanje tipki `session_child_cycle_reverse`) za kretanje unazad kroz roditelj ← dijete1 ← dijete2 ← ... ← roditelj
- **\<Leader>+Desno** (ili vaša konfigurirana `session_child_cycle` veza) za petlju naprijed kroz roditelj → dijete1 → dijete2 → ... → roditelj
- **\<Leader>+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
```
```
```
+29 -50
View File
@@ -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 <name>
```
---
### 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 <file>
```
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 |
@@ -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."
}
}
}
+1 -2
View File
@@ -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.
@@ -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 **`<filename>_<exportname>`**:
```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({
@@ -68,8 +68,6 @@ 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**
@@ -274,8 +272,6 @@ 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,8 +281,6 @@ 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,8 +290,6 @@ 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,8 +300,6 @@ 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:
+1 -7
View File
@@ -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,8 +165,6 @@ 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,8 +174,6 @@ 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.
+6 -34
View File
@@ -42,28 +42,28 @@ Također ga možete instalirati pomoću sljedećih naredbi:
<TabItem label="npm">
```bash
npm install -g opencodei
npm install -g opencode-ai
```
</TabItem>
<TabItem label="Bun">
```bash
bun install -g opencodei
bun install -g opencode-ai
```
</TabItem>
<TabItem label="pnpm">
```bash
pnpm install -g opencodei
pnpm install -g opencode-ai
```
</TabItem>
<TabItem label="Yarn">
```bash
yarn global add opencodei
yarn global add opencode-ai
```
</TabItem>
@@ -74,8 +74,6 @@ 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,8 +82,6 @@ Također ga možete instalirati pomoću sljedećih naredbi:
```bash
paru -S opencode-bin
```
#### Windows
@@ -98,40 +94,30 @@ 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.
@@ -150,8 +136,6 @@ tim.
```txt
/connect
```
2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ.
@@ -162,8 +146,6 @@ tim.
└ enter
```
Alternativno, možete odabrati jednog od drugih provajdera. [Saznajte više](/docs/providers#directory).
@@ -236,8 +218,6 @@ Možete zamoliti OpenCode da vašem projektu doda nove funkcije. Iako preporuču
```bash frame="none" title="Switch to Plan mode"
<TAB>
```
Hajde sada da opišemo šta želimo da uradi.
@@ -246,8 +226,6 @@ 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
@@ -263,8 +241,6 @@ 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
@@ -279,16 +255,12 @@ učinite to povlačenjem i ispuštanjem slike u terminal.
```bash frame="none"
<TAB>
```
I tražeći od njega da napravi promjene.
```bash frame="none"
Sounds good! Go ahead and make the changes.
```
---
+2 -2
View File
@@ -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.
@@ -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
+4 -4
View File
@@ -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 {
@@ -61,8 +61,6 @@ 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,16 +72,12 @@ 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,8 +103,6 @@ Ne vidite provajdera ovdje? Pošaljite PR.
```txt
/connect
```
3. Unesite svoj 302.AI API ključ.
@@ -120,16 +112,12 @@ Ne vidite provajdera ovdje? Pošaljite PR.
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model.
```txt
/models
```
---
@@ -160,8 +148,6 @@ 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:
@@ -169,8 +155,6 @@ 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)
@@ -246,8 +230,6 @@ Kada se postavi token nosioca (putem `/connect` ili `AWS_BEARER_TOKEN_BEDROCK`),
```txt
/models
```
:::note
@@ -279,8 +261,6 @@ 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č
@@ -293,16 +273,12 @@ 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
@@ -337,8 +313,6 @@ 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,32 +322,24 @@ 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,8 +360,6 @@ Ili ga dodajte na svoj bash profil:
```txt
/connect
```
4. Unesite svoj API ključ.
@@ -405,32 +369,24 @@ 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,8 +399,6 @@ Ili ga dodajte na svoj bash profil:
```txt
/connect
```
3. Unesite svoj Baseten API ključ.
@@ -454,16 +408,12 @@ Ili ga dodajte na svoj bash profil:
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model.
```txt
/models
```
---
@@ -476,8 +426,6 @@ Ili ga dodajte na svoj bash profil:
```txt
/connect
```
3. Unesite svoj Cerebras API ključ.
@@ -487,16 +435,12 @@ 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,16 +456,12 @@ 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,24 +471,18 @@ 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.
@@ -577,8 +511,6 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
```txt
/connect
```
3. Unesite svoj Cortecs API ključ.
@@ -588,16 +520,12 @@ 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,8 +538,6 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
```txt
/connect
```
3. Unesite svoj DeepSeek API ključ.
@@ -621,16 +547,12 @@ 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,8 +565,6 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
```txt
/connect
```
3. Unesite svoj Deep Infra API ključ.
@@ -654,16 +574,12 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model.
```txt
/models
```
---
@@ -676,8 +592,6 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
```txt
/connect
```
3. Unesite svoj Firmware API ključ.
@@ -687,16 +601,12 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model.
```txt
/models
```
---
@@ -709,8 +619,6 @@ Također možete dodati modele kroz svoju opencode konfiguraciju.
```txt
/connect
```
3. Unesite svoj Fireworks AI API ključ.
@@ -720,16 +628,12 @@ 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,8 +646,6 @@ GitLab Duo pruža agentsko ćaskanje sa AI-om sa izvornim mogućnostima pozivanj
```txt
/connect
```
2. Odaberite svoj način autentifikacije:
@@ -754,8 +656,6 @@ 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,8 +674,6 @@ Odaberite **OAuth** i vaš pretraživač će se otvoriti za autorizaciju.
```txt
/models
```
Dostupna su tri modela bazirana na Claudeu:
@@ -906,8 +804,6 @@ 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,16 +816,12 @@ 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,8 +848,6 @@ 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,8 +856,6 @@ 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
@@ -978,8 +866,6 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova
```txt
/models
```
---
@@ -992,8 +878,6 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova
```txt
/connect
```
3. Unesite API ključ za provajdera.
@@ -1003,16 +887,12 @@ 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,8 +907,6 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova
```txt
/connect
```
3. Unesite svoj token Hugging Face.
@@ -1038,16 +916,12 @@ 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,8 +936,6 @@ Regija `global` poboljšava dostupnost i smanjuje greške bez dodatnih troškova
```txt
/connect
```
3. Unesite svoj Helicone API ključ.
@@ -1073,16 +945,12 @@ 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,8 +1087,6 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe:
```txt
/connect
```
3. Unesite svoj IO.NET API ključ.
@@ -1230,16 +1096,12 @@ IO.NET nudi 17 modela optimiziranih za različite slučajeve upotrebe:
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model.
```txt
/models
```
---
@@ -1288,8 +1150,6 @@ Da biste koristili Kimi K2 iz Moonshot AI:
```txt
/connect
```
3. Unesite svoj Moonshot API ključ.
@@ -1299,16 +1159,12 @@ Da biste koristili Kimi K2 iz Moonshot AI:
└ enter
```
4. Pokrenite naredbu `/models` da odaberete _Kimi K2_.
```txt
/models
```
---
@@ -1321,8 +1177,6 @@ Da biste koristili Kimi K2 iz Moonshot AI:
```txt
/connect
```
3. Unesite svoj MiniMax API ključ.
@@ -1332,16 +1186,12 @@ Da biste koristili Kimi K2 iz Moonshot AI:
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model kao što je _M2.1_.
```txt
/models
```
---
@@ -1354,8 +1204,6 @@ Da biste koristili Kimi K2 iz Moonshot AI:
```txt
/connect
```
3. Unesite svoj Nebius Token Factory API ključ.
@@ -1365,16 +1213,12 @@ 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,8 +1279,6 @@ Da biste koristili Ollama Cloud s OpenCode:
```txt
/connect
```
5. Unesite svoj Ollama Cloud API ključ.
@@ -1446,24 +1288,18 @@ 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,8 +1312,6 @@ 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č
@@ -1489,16 +1323,12 @@ 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,8 +1347,6 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo
```txt
/connect
```
3. Unesite svoj OpenCode API ključ.
@@ -1528,16 +1356,12 @@ 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,8 +1374,6 @@ OpenCode Zen je lista testiranih i verifikovanih modela koju je obezbedio OpenCo
```txt
/connect
```
3. Unesite API ključ za provajdera.
@@ -1561,16 +1383,12 @@ 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.
@@ -1626,8 +1444,6 @@ SAP AI Core omogućava pristup preko 40+ modela iz OpenAI, Anthropic, Google, Am
```txt
/connect
```
3. Unesite JSON svoj servisni ključ.
@@ -1637,32 +1453,24 @@ 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
@@ -1673,8 +1481,6 @@ Ove postavke su opcione i treba ih konfigurirati u skladu s vašim SAP AI Core p
```txt
/models
```
---
@@ -1687,8 +1493,6 @@ 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,16 +1502,12 @@ 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,8 +1522,6 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g
```txt
/connect
```
3. Unesite svoj Scaleway API ključ.
@@ -1733,16 +1531,12 @@ 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,8 +1549,6 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g
```txt
/connect
```
3. Unesite svoj Together AI API ključ.
@@ -1766,16 +1558,12 @@ 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,8 +1576,6 @@ Da biste koristili [Scaleway Generative APIs](https://www.scaleway.com/en/docs/g
```txt
/connect
```
3. Unesite svoj Venice AI API ključ.
@@ -1799,16 +1585,12 @@ 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,8 +1605,6 @@ Vercel AI Gateway vam omogućava da pristupite modelima iz OpenAI, Anthropic, Go
```txt
/connect
```
3. Unesite svoj Vercel AI Gateway API ključ.
@@ -1834,16 +1614,12 @@ 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,8 +1659,6 @@ Neke korisne opcije rutiranja:
```txt
/connect
```
3. Unesite svoj xAI API ključ.
@@ -1894,16 +1668,12 @@ Neke korisne opcije rutiranja:
└ enter
```
4. Pokrenite naredbu `/models` da odaberete model kao što je _Grok Beta_.
```txt
/models
```
---
@@ -1916,8 +1686,6 @@ Neke korisne opcije rutiranja:
```txt
/connect
```
Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja**.
@@ -1929,16 +1697,12 @@ 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,8 +1715,6 @@ Ako ste pretplaćeni na **GLM plan kodiranja**, odaberite **Z.AI plan kodiranja*
```txt
/connect
```
3. Unesite API ključ za provajdera.
@@ -1962,16 +1724,12 @@ 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.
@@ -2010,8 +1768,6 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već
│ ...
│ ● Other
```
2. Unesite jedinstveni ID za provajdera.
@@ -2024,8 +1780,6 @@ Možete koristiti bilo kojeg OpenAI kompatibilnog provajdera s opencode-om. Već
◇ Enter provider id
│ myprovider
```
:::note
@@ -2044,8 +1798,6 @@ 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:
+5 -5
View File
@@ -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 <a href={typesUrl}>types datoteci</a>.
@@ -242,8 +242,6 @@ 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,8 +260,6 @@ 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`
+6 -12
View File
@@ -292,7 +292,7 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl
<Tabs>
<TabItem label="Linux/macOS">
```bash
```bash
# Example for nano or vim
export EDITOR=nano
export EDITOR=vim
@@ -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.
@@ -311,15 +309,13 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl
<TabItem label="Windows (CMD)">
```bash
```bash
set EDITOR=notepad
# 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**.
@@ -328,15 +324,13 @@ Obje naredbe `/editor` i `/export` koriste editor specificiran u vašoj varijabl
<TabItem label="Windows (PowerShell)">
```powershell
```powershell
$env:EDITOR = "notepad"
# 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.
+4 -4
View File
@@ -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
+3 -3
View File
@@ -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:
- **\<Leder>+Højre** (eller din konfigurerede `session_child_cycle`-smagsbinding) for at cykle fremad gennem forælder → barn1 → barn2 →... → forælder
- **\<Leder>+Venstre** (eller din konfigurerede `session_child_cycle_reverse`-smagsbinding) for at cykle baglæns gennem forælder ← barn1 ← barn2 ←... ← forælder
- **\<Leader>+Højre** (eller din konfigurerede `session_child_cycle`-tastebinding) for at cykle fremad gennem forælder → barn1 → barn2 →... → forælder
- **\<Leader>+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.
+9 -9
View File
@@ -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) |
---
+7 -7
View File
@@ -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).
+8 -8
View File
@@ -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**
+7 -7
View File
@@ -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.
+2 -2
View File
@@ -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.
+38 -38
View File
@@ -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.
+21 -21
View File
@@ -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`.
<Tabs>
<TabItem label="Linux/macOS">
@@ -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
+11 -11
View File
@@ -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
+3 -3
View File
@@ -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.)
+8 -8
View File
@@ -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}
{
+76 -76
View File
@@ -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 <name>
### 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 <file>
```
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 |
@@ -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 |
+17 -17
View File
@@ -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.
+9 -9
View File
@@ -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.
+2 -2
View File
@@ -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"
+21 -21
View File
@@ -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 |
---
+2 -2
View File
@@ -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.
+15 -15
View File
@@ -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
+3 -3
View File
@@ -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:
+33 -33
View File
@@ -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:
- **\<Líder>+Derecha** (o su combinación de teclas `session_child_cycle` configurada) para avanzar a través de padre → hijo1 → hijo2 → ... → padre
- **\<Líder>+Izquierda** (o su combinación de teclas `session_child_cycle_reverse` configurada) para retroceder entre padre ← hijo1 ← hijo2 ← ... ← padre
- **\<Leader>+Right** (or su combinación de teclas `session_child_cycle` configurada) para avanzar a través de padre → hijo1 → hijo2 → ... → padre
- **\<Leader>+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"
---
+49 -49
View File
@@ -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 <name>
---
### 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
---
### sesn
### 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 |
+2 -2
View File
@@ -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.
+9 -9
View File
@@ -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
+1 -1
View File
@@ -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.
---
+14 -14
View File
@@ -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.
+27 -27
View File
@@ -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 didentification 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 lajout dun 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 <name>
---
### 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 |
---
@@ -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**. Sil nest 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.
+6 -6
View File
@@ -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 dun 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.
@@ -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 |
@@ -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.
+16 -16
View File
@@ -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.
+37 -37
View File
@@ -40,37 +40,37 @@ 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**
@@ -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,7 +278,7 @@ 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,7 +288,7 @@ 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,7 +298,7 @@ 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,8 +308,8 @@ 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 :
+3 -3
View File
@@ -169,7 +169,7 @@ 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,7 +179,7 @@ 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.
+4 -4
View File
@@ -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
+9 -9
View File
@@ -229,15 +229,15 @@ 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"
<TAB>
<TAB>
```
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
@@ -253,8 +253,8 @@ 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
@@ -266,17 +266,17 @@ 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"
<TAB>
<TAB>
```
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.
```
---
@@ -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
+38 -38
View File
@@ -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.
@@ -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.
+4 -4
View File
@@ -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).
+6 -6
View File
@@ -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 dutilisation 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 dutilisation.
+2 -2
View File
@@ -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.
+23 -21
View File
@@ -140,21 +140,21 @@ 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é)
@@ -333,7 +333,7 @@ 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,7 +380,7 @@ 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,7 +476,7 @@ 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.
@@ -676,6 +676,8 @@ Sélectionnez **OAuth** et votre navigateur s'ouvrira pour autorisation.
/models
```
````
Trois modèles basés sur Claude sont disponibles :
- **duo-chat-haiku-4-5** (Par défaut) - Réponses rapides pour des tâches rapides
@@ -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"
}
```
````
:::
@@ -847,15 +849,15 @@ 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
@@ -1458,13 +1460,13 @@ 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 :
+2 -2
View File
@@ -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"
{
+2 -2
View File
@@ -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.
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -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 | <a href={typesUrl}><code>Agent[]</code></a> |
@@ -169,7 +169,7 @@ const agents = await client.app.agents()
### Progetto
| Metodo | Descrizione | Response |
| Metodo | Descrizione | Risposta |
| ------------------- | ----------------- | --------------------------------------------- |
| `project.list()` | Elenca i progetti | <a href={typesUrl}><code>Project[]</code></a> |
| `project.current()` | Progetto corrente | <a href={typesUrl}><code>Project</code></a> |
@@ -190,7 +190,7 @@ const currentProject = await client.project.current()
### Path
| Metodo | Descrizione | Response |
| Metodo | Descrizione | Risposta |
| ------------ | ----------------- | ---------------------------------------- |
| `path.get()` | Percorso corrente | <a href={typesUrl}><code>Path</code></a> |
@@ -207,7 +207,7 @@ const pathInfo = await client.path.get()
### Config
| Metodo | Descrizione | Response |
| Metodo | Descrizione | Risposta |
| -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `config.get()` | Ottieni info config | <a href={typesUrl}><code>Config</code></a> |
| `config.providers()` | Elenca provider e modelli default | `{ providers: `<a href={typesUrl}><code>Provider[]</code></a>`, 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 |
@@ -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:
+15 -15
View File
@@ -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
+4 -4
View File
@@ -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)」を参照してください。
## サポート
+5 -6
View File
@@ -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"
{
+87 -87
View File
@@ -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 <name>
---
### モデル
### 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` | 使用されたインストール方法。カール、npmpnpm、バン、醸造 |
| 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) |
---

Some files were not shown because too many files have changed in this diff Show More