mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-03 08:46:15 -04:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1bbbd51d48 | |||
| 50f3e74d05 | |||
| 21475a1dfd | |||
| dce4c05fa9 | |||
| 8c56571ef9 | |||
| 92a77b72fb | |||
| 4f6b929784 | |||
| 55119559b3 | |||
| fd5531316f |
@@ -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
@@ -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,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>
|
||||
|
||||
@@ -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,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,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,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",
|
||||
|
||||
@@ -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,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,7 +1,7 @@
|
||||
{
|
||||
"name": "@opencode-ai/desktop",
|
||||
"private": true,
|
||||
"version": "1.1.55",
|
||||
"version": "1.1.56",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/enterprise",
|
||||
"version": "1.1.55",
|
||||
"version": "1.1.56",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -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,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,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,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,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,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/slack",
|
||||
"version": "1.1.55",
|
||||
"version": "1.1.56",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/ui",
|
||||
"version": "1.1.55",
|
||||
"version": "1.1.56",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"exports": {
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "@opencode-ai/util",
|
||||
"version": "1.1.55",
|
||||
"version": "1.1.56",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -460,7 +460,7 @@ permission:
|
||||
webfetch: deny
|
||||
---
|
||||
|
||||
حلل الشفرة فقط واقترح التغييرات.
|
||||
Only analyze code and suggest changes.
|
||||
```
|
||||
|
||||
يمكنك ضبط الأذونات لأوامر bash محددة.
|
||||
|
||||
@@ -17,7 +17,6 @@ Za ručnu nadogradnju, pokrenite
|
||||
|
||||
```bash
|
||||
$ opencode upgrade 1.0.0
|
||||
|
||||
```
|
||||
|
||||
Za vraćanje na 0.x, pokrenite
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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`
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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**
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.)
|
||||
|
||||
@@ -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}
|
||||
{
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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"
|
||||
---
|
||||
|
||||
@@ -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
|
||||
|
||||
---
|
||||
|
||||
### sesión
|
||||
### session
|
||||
|
||||
Administrar OpenCode sesiones.
|
||||
|
||||
@@ -383,7 +383,7 @@ opencode session [command]
|
||||
|
||||
---
|
||||
|
||||
#### lista
|
||||
#### list
|
||||
|
||||
Enumere todas las sesiones OpenCode.
|
||||
|
||||
@@ -391,16 +391,16 @@ Enumere todas las sesiones OpenCode.
|
||||
opencode session list
|
||||
```
|
||||
|
||||
##### Banderas
|
||||
##### Flags
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| Flag | Short | Description |
|
||||
| ------------- | ----- | --------------------------------------- |
|
||||
| `--max-count` | `-n` | Limitar a N sesiones más recientes |
|
||||
| `--format` | | Formato de salida: tabla o json (tabla) |
|
||||
|
||||
---
|
||||
|
||||
### estadísticas
|
||||
### stats
|
||||
|
||||
Muestre el uso de tokens y las estadísticas de costos para sus sesiones OpenCode.
|
||||
|
||||
@@ -408,9 +408,9 @@ Muestre el uso de tokens y las estadísticas de costos para sus sesiones OpenCod
|
||||
opencode stats
|
||||
```
|
||||
|
||||
#### Banderas
|
||||
#### Flags
|
||||
|
||||
| Bandera | Descripción |
|
||||
| Flag | Description |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `--days` | Mostrar estadísticas de los últimos N días (todo el tiempo) |
|
||||
| `--tools` | Número de herramientas para mostrar (todas) |
|
||||
@@ -419,7 +419,7 @@ opencode stats
|
||||
|
||||
---
|
||||
|
||||
### exportar
|
||||
### export
|
||||
|
||||
Exportar datos de la sesión como JSON.
|
||||
|
||||
@@ -431,7 +431,7 @@ Si no proporciona una ID de sesión, se le pedirá que seleccione entre las sesi
|
||||
|
||||
---
|
||||
|
||||
### importar
|
||||
### import
|
||||
|
||||
Importe datos de sesión desde un archivo JSON o una URL compartida OpenCode.
|
||||
|
||||
@@ -479,9 +479,9 @@ opencode acp
|
||||
|
||||
Este comando inicia un servidor ACP que se comunica a través de stdin/stdout usando nd-JSON.
|
||||
|
||||
#### Banderas
|
||||
#### Flags
|
||||
|
||||
| Bandera | Descripción |
|
||||
| Flag | Description |
|
||||
| ------------ | ---------------------------- |
|
||||
| `--cwd` | Directorio de trabajo |
|
||||
| `--port` | Puerto para escuchar |
|
||||
@@ -489,7 +489,7 @@ Este comando inicia un servidor ACP que se comunica a través de stdin/stdout us
|
||||
|
||||
---
|
||||
|
||||
### desinstalar
|
||||
### uninstall
|
||||
|
||||
Desinstale OpenCode y elimine todos los archivos relacionados.
|
||||
|
||||
@@ -497,9 +497,9 @@ Desinstale OpenCode y elimine todos los archivos relacionados.
|
||||
opencode uninstall
|
||||
```
|
||||
|
||||
#### Banderas
|
||||
#### Flags
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| Flag | Short | Description |
|
||||
| --------------- | ----- | ----------------------------------------- |
|
||||
| `--keep-config` | `-c` | Mantener archivos de configuración |
|
||||
| `--keep-data` | `-d` | Conservar datos de sesión e instantáneas |
|
||||
@@ -508,7 +508,7 @@ opencode uninstall
|
||||
|
||||
---
|
||||
|
||||
### mejora
|
||||
### upgrade
|
||||
|
||||
Actualiza opencode a la última versión o a una versión específica.
|
||||
|
||||
@@ -530,13 +530,13 @@ opencode upgrade v0.1.48
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ---------- | ----- | ---------------------------------------------------------------------------- |
|
||||
| `--method` | `-m` | El método de instalación que se utilizó; rizo, npm, pnpm, bollo, preparación |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ---------- | ----- | ------------------------------------------------------------------- |
|
||||
| `--method` | `-m` | El método de instalación que se utilizó; curl, npm, pnpm, bun, brew |
|
||||
|
||||
---
|
||||
|
||||
## Banderas globales
|
||||
## Global Flags
|
||||
|
||||
El opencode CLI toma las siguientes banderas globales.
|
||||
|
||||
@@ -553,7 +553,7 @@ El opencode CLI toma las siguientes banderas globales.
|
||||
|
||||
OpenCode se puede configurar mediante variables de entorno.
|
||||
|
||||
| Variables | Tipo | Descripción |
|
||||
| Variable | Type | Description |
|
||||
| ------------------------------------- | -------- | ------------------------------------------------------------------------------- |
|
||||
| `OPENCODE_AUTO_SHARE` | booleano | Compartir sesiones automáticamente |
|
||||
| `OPENCODE_GIT_BASH_PATH` | cadena | Ruta al ejecutable de Git Bash en Windows |
|
||||
@@ -586,7 +586,7 @@ OpenCode se puede configurar mediante variables de entorno.
|
||||
|
||||
Estas variables de entorno habilitan funciones experimentales que pueden cambiar o eliminarse.
|
||||
|
||||
| Variables | Tipo | Descripción |
|
||||
| Variable | Type | Description |
|
||||
| ----------------------------------------------- | -------- | ---------------------------------------------------------- |
|
||||
| `OPENCODE_EXPERIMENTAL` | booleano | Habilitar todas las funciones experimentales |
|
||||
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | booleano | Habilitar descubrimiento de íconos |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ opencode agent [command]
|
||||
|
||||
---
|
||||
|
||||
### attacher
|
||||
### attach
|
||||
|
||||
Attachez un terminal à un serveur backend OpenCode déjà en cours d'exécution démarré via les commandes `serve` ou `web`.
|
||||
|
||||
@@ -85,7 +85,7 @@ opencode attach http://10.20.30.40:4096
|
||||
|
||||
---
|
||||
|
||||
#### créer
|
||||
#### create
|
||||
|
||||
Créez un nouvel agent avec une configuration personnalisée.
|
||||
|
||||
@@ -97,7 +97,7 @@ Cette commande vous guidera dans la création d'un nouvel agent avec une invite
|
||||
|
||||
---
|
||||
|
||||
#### liste
|
||||
#### list
|
||||
|
||||
Répertoriez tous les agents disponibles.
|
||||
|
||||
@@ -107,7 +107,7 @@ opencode agent list
|
||||
|
||||
---
|
||||
|
||||
### authentification
|
||||
### auth
|
||||
|
||||
Commande pour gérer les informations d’identification et la connexion des fournisseurs.
|
||||
|
||||
@@ -117,7 +117,7 @@ opencode auth [command]
|
||||
|
||||
---
|
||||
|
||||
#### se connecter
|
||||
#### login
|
||||
|
||||
OpenCode est alimenté par la liste des fournisseurs sur [Models.dev](https://models.dev), vous pouvez donc utiliser `opencode auth login` pour configurer les clés API pour tout fournisseur que vous souhaitez utiliser. Ceci est stocké dans `~/.local/share/opencode/auth.json`.
|
||||
|
||||
@@ -129,7 +129,7 @@ Lorsque OpenCode démarre, il charge les fournisseurs à partir du fichier d'inf
|
||||
|
||||
---
|
||||
|
||||
#### liste
|
||||
#### list
|
||||
|
||||
Répertorie tous les fournisseurs authentifiés tels qu'ils sont stockés dans le fichier d'informations d'identification.
|
||||
|
||||
@@ -145,7 +145,7 @@ opencode auth ls
|
||||
|
||||
---
|
||||
|
||||
#### déconnexion
|
||||
#### logout
|
||||
|
||||
Vous déconnecte d'un fournisseur en l'effaçant du fichier d'informations d'identification.
|
||||
|
||||
@@ -165,7 +165,7 @@ opencode github [command]
|
||||
|
||||
---
|
||||
|
||||
#### installer
|
||||
#### install
|
||||
|
||||
Installez l'agent GitHub dans votre référentiel.
|
||||
|
||||
@@ -177,7 +177,7 @@ Cela configure le flux de travail GitHub Actions nécessaire et vous guide tout
|
||||
|
||||
---
|
||||
|
||||
#### courir
|
||||
#### run
|
||||
|
||||
Exécutez l'agent GitHub. Ceci est généralement utilisé dans les actions GitHub.
|
||||
|
||||
@@ -204,7 +204,7 @@ opencode mcp [command]
|
||||
|
||||
---
|
||||
|
||||
#### ajouter
|
||||
#### add
|
||||
|
||||
Ajoutez un serveur MCP à votre configuration.
|
||||
|
||||
@@ -216,7 +216,7 @@ Cette commande vous guidera dans l’ajout d’un serveur MCP local ou distant.
|
||||
|
||||
---
|
||||
|
||||
#### liste
|
||||
#### list
|
||||
|
||||
Répertoriez tous les serveurs MCP configurés et leur état de connexion.
|
||||
|
||||
@@ -232,7 +232,7 @@ opencode mcp ls
|
||||
|
||||
---
|
||||
|
||||
#### authentification
|
||||
#### auth
|
||||
|
||||
Authentifiez-vous auprès d'un serveur MCP compatible OAuth.
|
||||
|
||||
@@ -256,7 +256,7 @@ opencode mcp auth ls
|
||||
|
||||
---
|
||||
|
||||
#### déconnexion
|
||||
#### logout
|
||||
|
||||
Supprimez les informations d'identification OAuth pour un serveur MCP.
|
||||
|
||||
@@ -266,7 +266,7 @@ opencode mcp logout [name]
|
||||
|
||||
---
|
||||
|
||||
#### déboguer
|
||||
#### debug
|
||||
|
||||
Déboguer les problèmes de connexion OAuth pour un serveur MCP.
|
||||
|
||||
@@ -276,7 +276,7 @@ opencode mcp debug <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**. S’il n’est pas spé
|
||||
|
||||
---
|
||||
|
||||
### Sous-tâche
|
||||
### Subtask
|
||||
|
||||
Utilisez le booléen `subtask` pour forcer la commande à déclencher un invocation de [subagent](/docs/agents/#subagents).
|
||||
Ceci est utile si vous souhaitez que la commande ne pollue pas votre contexte principal et **force** l'agent à agir en tant que sous-agent,
|
||||
@@ -294,7 +294,7 @@ Il s'agit d'une option de configuration **facultative**.
|
||||
|
||||
---
|
||||
|
||||
### Modèle
|
||||
### Model
|
||||
|
||||
Utilisez la configuration `model` pour remplacer le modèle par défaut pour cette commande.
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ Les répertoires `.opencode` et `~/.config/opencode` utilisent des **noms au plu
|
||||
|
||||
---
|
||||
|
||||
### Télécommande
|
||||
### Remote
|
||||
|
||||
Les organisations peuvent fournir une configuration par défaut via le point de terminaison `.well-known/opencode`. Ceci est récupéré automatiquement lorsque vous vous authentifiez auprès d’un fournisseur qui le prend en charge.
|
||||
|
||||
@@ -93,7 +93,7 @@ Vous pouvez activer des serveurs spécifiques dans votre configuration locale :
|
||||
|
||||
---
|
||||
|
||||
### Mondial
|
||||
### Global
|
||||
|
||||
Placez votre configuration globale OpenCode dans `~/.config/opencode/opencode.json`. Utilisez la configuration globale pour les préférences de l'utilisateur telles que les thèmes, les fournisseurs ou les raccourcis clavier.
|
||||
|
||||
@@ -481,7 +481,7 @@ Par exemple, pour garantir que les outils `edit` et `bash` nécessitent l'approb
|
||||
|
||||
---
|
||||
|
||||
### Compactage
|
||||
### Compaction
|
||||
|
||||
Vous pouvez contrôler le comportement de compactage du contexte via l'option `compaction`.
|
||||
|
||||
@@ -500,7 +500,7 @@ Vous pouvez contrôler le comportement de compactage du contexte via l'option `c
|
||||
|
||||
---
|
||||
|
||||
### Observateur
|
||||
### Watcher
|
||||
|
||||
Vous pouvez configurer les modèles d'ignorance de l'observateur de fichiers via l'option `watcher`.
|
||||
|
||||
@@ -565,7 +565,7 @@ Cela prend un tableau de chemins et de modèles globaux vers les fichiers d'inst
|
||||
|
||||
---
|
||||
|
||||
### Fournisseurs handicapés
|
||||
### Disabled Providers
|
||||
|
||||
Vous pouvez désactiver les fournisseurs chargés automatiquement via l'option `disabled_providers`. Ceci est utile lorsque vous souhaitez empêcher le chargement de certains fournisseurs même si leurs informations d'identification sont disponibles.
|
||||
|
||||
@@ -588,7 +588,7 @@ L'option `disabled_providers` accepte un tableau d'ID de fournisseur. Lorsqu'un
|
||||
|
||||
---
|
||||
|
||||
### Fournisseurs activés
|
||||
### Enabled Providers
|
||||
|
||||
Vous pouvez spécifier une liste autorisée de fournisseurs via l'option `enabled_providers`. Une fois défini, seuls les fournisseurs spécifiés seront activés et tous les autres seront ignorés.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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 :
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ opencode est livré avec deux modes intégrés.
|
||||
|
||||
---
|
||||
|
||||
### Construire
|
||||
### Build
|
||||
|
||||
Build est le mode **par défaut** avec tous les outils activés. Il s'agit du mode standard pour le travail de développement dans lequel vous avez besoin d'un accès complet aux opérations sur les fichiers et aux commandes système.
|
||||
|
||||
@@ -322,10 +322,10 @@ Priorities:
|
||||
|
||||
Voici quelques cas d’utilisation courants pour différents modes.
|
||||
|
||||
- **Mode build** : travail de développement complet avec tous les outils activés
|
||||
- **Mode Plan** : Analyse et planification sans apporter de modifications
|
||||
- **Mode révision** : révision du code avec accès en lecture seule et outils de documentation
|
||||
- **Mode débogage** : axé sur l'investigation avec les outils bash et read activés
|
||||
- **Mode Docs** : écriture de documentation avec des opérations sur les fichiers mais pas de commandes système
|
||||
- **Mode Build** : travail de développement complet avec tous les outils activés
|
||||
- **Mode Plan** : Analyse et planification sans apporter de modifications
|
||||
- **Mode Review** : révision du code avec accès en lecture seule et outils de documentation
|
||||
- **Mode Debug** : axé sur l'investigation avec les outils bash et read activés
|
||||
- **Mode Docs** : écriture de documentation avec des opérations sur les fichiers mais pas de commandes système
|
||||
|
||||
Vous constaterez peut-être également que différents modèles conviennent à différents cas d’utilisation.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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 :
|
||||
|
||||
@@ -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"
|
||||
{
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)」を参照してください。
|
||||
|
||||
## サポート
|
||||
|
||||
|
||||
@@ -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"
|
||||
{
|
||||
|
||||
@@ -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` | 使用されたインストール方法。カール、npm、pnpm、バン、醸造 |
|
||||
| Flag | Short | Description |
|
||||
| ---------- | ----- | ------------------------------------------------------ |
|
||||
| `--method` | `-m` | 使用されたインストール方法。curl, npm, pnpm, bun, brew |
|
||||
|
||||
---
|
||||
|
||||
## グローバルフラグ
|
||||
## Global Flags
|
||||
|
||||
opencode CLI は次のグローバル フラグを受け取ります。
|
||||
|
||||
| 旗 | ショート | 説明 |
|
||||
| -------------- | -------- | -------------------------------------- |
|
||||
| `--help` | `-h` | ヘルプを表示 |
|
||||
| `--version` | `-v` | バージョン番号を出力 |
|
||||
| `--print-logs` | | ログを標準エラー出力に出力 |
|
||||
| `--log-level` | | ログ レベル (DEBUG、INFO、WARN、ERROR) |
|
||||
| Flag | Short | Description |
|
||||
| -------------- | ----- | -------------------------------------- |
|
||||
| `--help` | `-h` | ヘルプを表示 |
|
||||
| `--version` | `-v` | バージョン番号を出力 |
|
||||
| `--print-logs` | | ログを標準エラー出力に出力 |
|
||||
| `--log-level` | | ログ レベル (DEBUG、INFO、WARN、ERROR) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user