CodeNomad/docs/help/tr/server.md
Pascal André a2274d6c0f
chore(opencode): recommend OpenCode 2.2.5 (#1222)
## Summary

- OpenCode **2.2.5** becomes the **recommended** (qualified) runtime.
The **2.2.3 minimum** and the 2.1.0 `@opencode/client`/`plugin`/`schema`
pins stay: neither 2.2.4 nor 2.2.5 changes a contract CodeNomad
consumes.
- `RECOMMENDED_OPENCODE_VERSION` is 2.2.5, and the reviewed-publication
shortcut in `contractProfile` lists 2.2.3 and 2.2.5; other versions,
2.2.4 included, keep negotiating their authenticated schema. The CI
`latest` lane already resolves the latest stable CLI.
- Help (all ten locales), READMEs, `CONTRIBUTING.md`,
`dev-docs/OPENCODE_COMPATIBILITY.md` and the architecture skill state
two separate versions again: minimum 2.2.3 with its reason,
recommendation 2.2.5.

## Contract review (v2.2.3 → v2.2.4 → v2.2.5; 31 + 19 commits)

Reviewed from the exact tags `v2.2.3` (`082ac6281f`), `v2.2.4`
(`45898d0f85`) and `v2.2.5` (`9bbb8ce18c`), the published npm packages,
and an authenticated OpenAPI dump from each official CLI running in its
own sandbox. The [changelog](https://opencode.ai/changelog) has full
notes for 2.2.4 and 2.2.5 (both 30 October); everything below was also
checked against the commit log and source. CodeNomad side: `origin/dev`
`605820669`.

**Headline:** neither release changes a contract CodeNomad consumes.
2.2.4 adds opt-in **artifacts** (seven `/api/experimental/artifacts`
operations, four tools, a plugin hook), **renamable persistent
terminals**, and moves background-job recovery markers from `kv` into a
new **`job` table**. 2.2.5 is a bug-fix release; its one schema change
is that `compaction.buffer` accepts a percentage such as `"20%"`. The
image tool contract adopted in #1209 (`experimental_image_generate`, on
by default) is unchanged through 2.2.5, and still nothing writes
`session_part`.

- **Authenticated OpenAPI:** 134 → **138** → 138 paths, 162 → **169** →
169 operations, schemas 351 → 362 → 363.
- **Added operations (2.2.4):** `GET
/api/experimental/artifacts/providers`, `GET|POST
/api/experimental/artifacts`, `GET|PATCH|DELETE
/api/experimental/artifacts/{artifactID}`, `GET
/api/experimental/artifacts/{artifactID}/view/*`
([#60351](https://github.com/anomalyco/opencode/pull/60351)). None
removed in either release.
- **Changed operations (2.2.4):** `GET /api/event`, where the `types`
filter enum gains `persistent-pty.updated` and `artifact.updated` (94 →
96 types, none removed). `PUT /api/experimental/persistent-pty/{ptyID}`
can also rename (`title`; `null` clears it), `size` becomes optional,
and a 501 `PtyFeatureUnsupportedError` is returned while an older
terminal service can't rename
([#60329](https://github.com/anomalyco/opencode/pull/60329)).
  - **Changed operations (2.2.5):** none.
- **Consumed schemas:** same family selector as the 2.2.3 review, 97
schemas at every version.
- 2.2.3 → 2.2.4: 95 byte-identical. The two that change,
`PersistentPty.Info` (+ `userTitle`, nullable, required) and
`PersistentPty.UpdateInput` (`size` optional, + `title`), are both
additive.
    - 2.2.4 → 2.2.5: all 97 byte-identical.
- `V2EventEncoded`, `Session.*`, `Form.*`, `Permission.*`, `Prompt*`,
`Event.*`, `Location.*`, PTY/Shell are byte-identical from 2.2.3 to
2.2.5.
- **`Config.InfoEncoded`:** 2.2.4 adds `experimental.artifacts`
(boolean, opt-in). 2.2.5 turns `compaction.buffer` into
`Config.Compaction.Percent | integer`
([#60647](https://github.com/anomalyco/opencode/pull/60647)).
`experimental.image_generate`, `experimental.media_blob` and
`experimental.schedules` are unchanged.
- **Admission:** every predicate in `compatibility/negotiate.ts`
(unchanged on origin/dev) holds on 2.2.3, 2.2.4 and 2.2.5.
`contractProfile` lists only `2.2.3` as reviewed, so 2.2.4/2.2.5 are
admitted through authenticated contract recognition.
- **Instance proxy:** the allowlist is unchanged on origin/dev. No added
or changed route is proxied: artifacts and persistent PTYs are outside
it. The proxied `GET /api/config` returns the additive config fields
above.
- **Published declarations** (2.2.3 → 2.2.5):
- **Client:** 185 → **192** → 192 methods. 2.2.4 adds
`experimental.artifacts.{providers,list,create,get,update,delete,view}`,
the artifact and `PersistentPtyUpdated` types, and
`PtyFeatureUnsupportedError`. It removes
`createPtyClient`/`PtyConnectInput` from `@opencode/client/solid/pty`,
which CodeNomad doesn't import. 2.2.5 adds `ConfigCompactionPercent`.
- **Schema:** 2.2.4 adds the `artifact` module and
`PersistentPty.Updated`; 2.2.5 adds `config/compaction` `Percent`.
- **Plugin:** 2.2.4 adds `effect/artifact` and `promise/artifact` and
`ctx.experimental.artifact` (`transform`, `reload`). 2.2.5 has no export
changes.
- **Typecheck:** the server and UI typecheck with **0 errors** against
the 2.2.4 and 2.2.5 client/schema/plugin/effect declarations. The pinned
2.1.0 control is also clean.
- **Host modules:** the bundles' host imports are identical to the 2.2.3
review. A probe plugin in an isolated **2.2.4** and **2.2.5** daemon
resolves every module and binding. `runtime-modules.ts` is unchanged
from v2.2.3 to v2.2.5.
- **Host Effect:** stays **4.0.6** (`bun.lock` sha512 identical;
published `dependencies.effect` 4.0.6).
- **Persistent PTY binary:** the 2.2.4 and 2.2.5 CLIs ship
`@opencode/pty` **0.4.0** (string `opencode-pty 0.4.0` in the Windows
binary; 2.2.3: `0.3.3`). `process-daemon-v0.4.0` adds only terminal
renaming ([#60324](https://github.com/anomalyco/opencode/pull/60324)):
an additive `rename` request and `features: ["rename"]` with an
unchanged `PROTOCOL_VERSION`. CodeNomad only lists persistent PTYs
(worktree deletion guard) and reads `status`/`cwd`.
- **Private native services:** the keys (`LocationServiceMap`, `Form`,
`Permission`, `Location`, `Job`, `Database`, `Session`, `Bus`, `Shell`)
and the members CodeNomad calls are unchanged. The changes are additive:
`Job.cancelSession` (2.2.4), `Permission.allows` (2.2.5; never asks,
used by `edit` to decide whether to quote file lines), and
`Session.remove` now calls `jobs.cancelSession`. The Missions recurrence
clock calls `Job.get/start/cancel`. Its Job metadata carries no
`sessionID`, so deleting a session doesn't cancel it.
- **Storage:** one migration, `20261030054400_job` (2.2.4,
[#60491](https://github.com/anomalyco/opencode/pull/60491)). It creates
`job`, copies every `kv` row `job.background/%` into it and deletes
those `kv` rows. 2.2.5 adds none.
- CodeNomad reads only its own `kv` keys (Missions, pruning receipts and
claims), never `job.background/*`.
- Native migration 2.2.3 → 2.2.4 passes. Every 2.2.4/2.2.5 fixture DB
inspected holds the `job` table, **0** `job.background/` rows and no
leftover `schedule:leader` lease.
- **`session_part`:** still **not written**. `history.ts`/`projector.ts`
are unchanged from v2.2.3 to v2.2.5, the projector still only rewrites
existing part rows, and every inspected 2.2.4/2.2.5 fixture DB has **0**
rows. The forward risk from the 2.2.3 review stands (Recommendations).
- **Behavior changes checked** (plain-language list in [What users will
notice](#what-users-will-notice)):
- **Image tool** (#1209 contract): `image-generate.ts` is unchanged from
v2.2.3 to v2.2.5. 2.2.4 refactors restart recovery into one
`restartMessage` but keeps `metadata.source:
"experimental_image_generate"`, `jobID`, `state`, `path` and the `<image
id state>` notice text. Design companion, activation, content and image
settings pass natively on 2.2.4.
- **Schedules** (2.2.4,
[#60478](https://github.com/anomalyco/opencode/pull/60478), then
`da87c475a7`): the loop now runs in every server process, including
`opencode serve`, and elects a leader through a `kv` lease
`schedule:leader` (claimed at boot, released when there are no active
schedules). Firing stays opt-in (`experimental.schedules === true`).
CodeNomad uses neither OpenCode schedules nor that key; Missions
recurrence uses its own storage and the Job service.
- **Sessions:** deleting a session now cancels its running background
jobs (shell, image, subagent) and drops their markers (2.2.4). That is
the intended upstream cleanup; CodeNomad's session deletions
(blank-session cleanup, temporary workspaces) get it automatically.
- **Events:** `persistent-pty.updated` and `artifact.updated` reach
CodeNomad's shared event relay. The relay routes generically
(`instance-events.ts`), the 2.1.0 client's SSE reader doesn't validate
types, and the UI handles neither type. The native relay suite passes on
2.2.4.
- **Tools** (2.2.5): a model call to `bash` runs as `shell` with shell
permissions, and the result carries a note
([#60687](https://github.com/anomalyco/opencode/pull/60687)). CodeNomad
already groups and renders `bash` and `shell` alike
(`message-part-grouping.ts:48`, `tool-call/utils.ts`). `read`/`edit`
failure texts are richer
([#60688](https://github.com/anomalyco/opencode/pull/60688),
[#60689](https://github.com/anomalyco/opencode/pull/60689)).
- **Compaction** (2.2.5): the prompt is capped at the context window
when a catalog's input limit is larger
([#60660](https://github.com/anomalyco/opencode/pull/60660)), and
`compaction.buffer` may be `"N%"`. CodeNomad never reads or writes
`compaction.buffer`. LiteLLM context errors now trigger compaction
([#60692](https://github.com/anomalyco/opencode/pull/60692)).
- **Reasoning replay** (2.2.5,
[#60498](https://github.com/anomalyco/opencode/pull/60498)): reasoning
is no longer re-sent as plain text after a model switch, and interrupted
or errored reasoning is dropped from the request. This changes provider
requests only; stored transcripts and `Session.Message.*` are
byte-identical.
- **MCP** (2.2.5): stdio messages over 10 MiB no longer disconnect a
server ([#60694](https://github.com/anomalyco/opencode/pull/60694)), and
an idle Location no longer restarts its MCP servers right after shutting
down ([#60668](https://github.com/anomalyco/opencode/pull/60668)).
- **Providers:** a Console-supplied provider can now be overridden by
user, project and remote config (2.2.4). The Claude Agent provider only
replaces Claude Code's `/login` hint with `claude auth login` in its
errors ([#60592](https://github.com/anomalyco/opencode/pull/60592)); the
guided setup
([#60603](https://github.com/anomalyco/opencode/pull/60603)) is OpenCode
Desktop only. The provider ID (`Provider.ID.claudeAgent`) and its use of
Claude Code's own login are unchanged, so CodeNomad's `claude-agent`
quota reader (#1214) is unaffected.
- **Service lifecycle:** the CLI now adds `127.0.0.1,localhost,::1` to
`NO_PROXY`/`no_proxy` for itself and its children
([#60441](https://github.com/anomalyco/opencode/pull/60441)), so
loopback traffic from daemon-hosted code, CodeNomad's plugins included,
bypasses environment proxies. CodeNomad sets no proxy variables.
- **Code Mode, Forms, permission prompts, media blobs:** no source
changes from v2.2.3 to v2.2.5 (`packages/codemode` only bumps its
version). The Code Mode run-to-completion regression passes on 2.2.4: `{
total: 2000, beforeAwait: 1000, count: 1000 }`.
- **`@opencode/ai`:** one `ai` object for Promise and Effect
([#60516](https://github.com/anomalyco/opencode/pull/60516); left out of
the changelog by
[#60631](https://github.com/anomalyco/opencode/pull/60631)). CodeNomad
doesn't import `@opencode/ai`.
- Desktop/TUI-only changes (desktop terminals on persistent PTYs,
base-branch and worktree shortcuts, quote sending, flat inputs, palette
ordering) don't affect CodeNomad. One indirect effect follows.
- **Worktree deletion:** OpenCode Desktop terminals now live as
persistent PTYs that survive restarts
([#60346](https://github.com/anomalyco/opencode/pull/60346)).
CodeNomad's guard (`routes/worktrees.ts`, "Running persistent PTY blocks
deletion: <id>") will therefore refuse more often for users who also
open terminals in OpenCode Desktop. The behavior is correct, but the
message names the PTY ID rather than the terminal's title.

**Verdict:**

- The **2.1.0 client/plugin pins can stay**. Bumping them would bring
only artifacts, PTY renaming and a config type, none of which CodeNomad
consumes.
- The **2.2.3 minimum has no reason to move**. No consumed HTTP, plugin,
private-service or storage contract broke in 2.2.4 or 2.2.5.
- **Recommend 2.2.5.** It is admitted today through contract
recognition. Recommending it is CodeNomad-side bookkeeping:
`RECOMMENDED_OPENCODE_VERSION` (`runtime-support.ts`), the
reviewed-version check in `contractProfile`
(`compatibility/runtime.ts`), the version texts in docs and help, and
CI's qualification target. This is subject to the full native suite on
the exact 2.2.5 CLI, run separately.
- **No CodeNomad bug found** in 2.2.3 → 2.2.5. Risks: the `session_part`
forward risk (unchanged) and the more frequent worktree-deletion refusal
(UX).

**Not verified here:**
- the full native suite on 2.2.5: only a host-module probe ran natively
on 2.2.5, and everything else for 2.2.5 is source and OpenAPI review
(Appendix I);
- the 2.2.4 recurring Missions journey (`test-recurring-simple-native`
ABCDGELFWQN), which was interrupted by a server restart;
- the `kv` → `job` migration with a real pending background marker: only
the empty case ran, and upstream `job.test.ts` covers the copy;
- whether a `bash` call is stored as `bash` or `shell` (source suggests
the model's name is kept; CodeNomad renders both);
- artifacts, Claude Agent and MCP stdio framing at runtime (source
only);
- macOS/Linux.

---

## What users will notice

**OpenCode 2.2.4**
- **Persistent desktop terminals:** OpenCode Desktop terminals belong to
the session, keep their scrollback across server restarts, stay in sync
with the TUI and other windows, and can be renamed. Renamed terminals
keep their names.
- **Artifacts (opt-in):** with `"experimental": { "artifacts": true }`,
agents can publish, update and serve HTML or static artifacts
(`artifact_create`, `artifact_read`, `artifact_update`,
`artifact_delete`) through a built-in local provider, which stores files
under OpenCode's data folder, or a plugin-provided one.
- **Schedules:** enabled schedules also fire under `opencode serve`, and
only once when several OpenCode processes share a database. They stay
off unless `experimental.schedules` is `true`.
- **Claude Agent:** OpenCode Desktop guides installation, `claude auth
login` and connection checking. Error messages now say `claude auth
login` instead of `/login`.
- **Config:** user, project and remote configuration can override
Console-supplied provider names, limits, variants, settings and headers.
- **Networking:** requests to the local OpenCode service no longer go
through `HTTP(S)_PROXY`.
- **Sessions:** deleting a session also stops its running background
work, such as shells, image generations and subagents.
- **Desktop/TUI:** base-branch shortcut, simpler location popover,
faster Markdown streaming and various fixes.

**OpenCode 2.2.5**
- **Compaction:** `"compaction": { "buffer": "20%" }` keeps a share of
each model's context free; token counts still work. Compaction no longer
overfills models whose catalog input limit exceeds their context window,
and LiteLLM context errors trigger compaction instead of stopping.
- **Tools:** a model calling `bash` gets `shell` (with shell
permissions) instead of an error. `read` names the missing folder, and
`edit` shows the closest lines when `oldString` isn't found.
- **Reasoning:** switching models or resuming an interrupted reply no
longer resends reasoning as plain text, which some providers rejected.
- **MCP:** large stdio messages (over 10 MiB) no longer disconnect a
server, and idle locations don't immediately restart their MCP servers.
- **Desktop/TUI:** worktree and base-branch shortcuts, a shell-mode
toggle, sending a single quote from its popup, and MCP servers removed
from the connect menu.

## Follow-ups (outside this PR)

- Hardening for `session_part` (independent of this upgrade; 2.2.5 still
writes no rows): make the direct `session_message.data.content` readers
and the pruning transaction fail safe when `session_part` has rows for
the target messages.
- Optional UX: when the worktree deletion guard finds a running
persistent PTY, name it by `userTitle ?? title` (2.2.4+) and say it may
be an OpenCode Desktop terminal.
- Any future reader of `compaction.buffer` must accept `"N%"` as well as
a token count.

## Isolated Windows qualification

Base: dev `605820669`; Node 25.2.1 (local; CI runs the pinned 24.20.0);
exact official CLI **2.2.5**; locked client/plugin **2.1.0**;
`CODENOMAD_NATIVE_FIXTURE_PARENT` outside the user profile.

- **Native suites on 2.2.5, all passing:** Code Mode jobs, plugin
runtime, automation, session pruning (history, navigation, media blobs,
proxy, session images), Location/worktrees/event relay, permission
receipts, Git init/degraded, Missions (contract, family control, native,
trajectory) and all 11 recurring journeys, sessions (environment, fork,
aside, interrupt, lifecycle, blank cleanup, compaction isolation, prompt
skills), providers (usage, accounts, account selection), service usage,
web search settings, plugin packages, output limit, Promise-tool
failure, subagent depth, temporary workspaces, Design
companion/activation/content, image settings, history migrations from
2.1.2/2.2.3/2.2.4, shared install of the 2.2.3 minimum.
- **Installer suites after the bump:** upgrade (installed `opencode
v2.2.5`) and legacy replacement (target `2.2.5`) install the new
recommendation and pass.
- **Builds and checks after the change:** server build, native plugin
builds and root typecheck clean; server **2,840 passed, 9 skipped, 1
cancelled** (`index.test.ts` shutdown test timed out under full-suite
load; **4/4** alone); runtime-support/transport/update **35/35**;
browser `opencode-setup` **34/34**; ten-locale help **31/31**.
2026-10-31 01:46:05 +01:00

147 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bağımsız sunucu
Projelerinizin ve araçlarınızın bulunduğu yerde CodeNomad'i çalıştırın, ardından tarayıcı kullanıcı arayüzünü yerel olarak veya uzaktan kullanın. Arka uç, dosya sistemi erişimini, Git işlemlerini, kimlik doğrulamayı ve olay dağıtımını sağlar. OpenCode'un paylaşılan hizmeti, konuşmaların ve yürütmenin sahibidir; bir tarayıcının bağlantısı kesildiğinde durdurulacak bir alt sunucu değildir.
Aynı kullanıcı arayüzü [çoklu proje sekmeleri ve çalışma ağaçları](projects.md), [konuşma aileleri ve arka plan etkinliği](conversations.md), [sınırlı geçmiş yükleme, arama ve zaman çizelgesinde gezinme](history.md), [komut paleti ve kısayolları](shortcuts.md) ve [Görevler](missions.md) özelliğini destekler. Tarayıcı ve tablet erişimi, yürütmeyi ana bilgisayarın dışına taşımaz.
## Ana bilgisayarı hazırlayın {#prerequisites}
1. Node.js 24 LTS ve npm'yi yükleyin; havuzun sabitlenmiş derleme çalışma zamanı 24.20.0'dır. Masaüstü paketleri Node/npm'yi içerir.
2. Git'i **arka uç sürecinin PATH** değişkenine ekleyin. Yalnızca WSL içindeki Git, Windows arka ucu için yeterli değildir.
3. OpenCode'u yükleyin veya seçin: **2.2.3** gerekli minimum değer, **2.2.5** ise önerilen yeterlilik hedefidir. Daha yeni veya özel derlemeler, test edilmiş sürüm izin verilenler listesine değil, uyumluluk denetimlerine tabi tutulur. Bkz. [OpenCode kurulumu](opencode.md).
4. Sunucunun başlatılacağı klasörü seçin veya `--workspace-root`'yi açıkça iletin.
Git olmadan, konuşmalar yalnızca açıkça açılan fiziksel klasörde kullanılabilir durumda kalır; Git ve çalışma ağacı işlemleri başarısız oluyor. Git'i yükleyin ve PATH değişikliğinden sonra arka ucu yeniden başlatın. Çalışma alanı kökü, aracının yürütülmesini değil, açmayı/göz atmayı sınırlar: bkz. [Güvenlik](security.md).
## Çalıştırın veya kurun {#run}
Bir kurulum yöntemi seçin. Bu ilk çalıştırma örnekleri, kabuk geçmişine parola koymak yerine yerel bir önyükleme kullanıyor:
### npx ile çalıştırın {#npx}
```sh
npx @neuralnomads/codenomad --generate-token --launch
```
### Genel olarak yükle {#global-install}
```sh
npm install -g @neuralnomads/codenomad
codenomad --generate-token --launch
```
### Projeye kurun {#local-install}
```sh
npm install @neuralnomads/codenomad
npx codenomad --generate-token --launch
```
`npx codenomad`, varsa projenin yüklü yürütülebilir dosyasını kullanır. Bu, paketi projeye kurar; yapılandırmayı veya OpenCode deposunu projeye özel **yapmaz**.
1. Yazdırılan **Local Connection URL** adresini ana bilgisayarda açın. [Yerel ilk kurulumu](security.md) tamamlayıp kalıcı sunucu parolası kaydedin. HTTPS güveni henüz kurulmadıysa bu işlem yalnızca loopback HTTP kurulum seçeneğini de içerir.
2. Sonraki başlatmalarda `--generate-token`'yi atlayın; alternatif olarak her çalıştırmada `CODENOMAD_SERVER_PASSWORD`'yi besleyin.
3. Kurulu CLI'nin seçeneklerini incelemek için `codenomad --help`'yi kullanın.
Komutlar ön planda çalışır. Terminalin kapatılması veya Ctrl+C'nin gönderilmesi, arka ucu ve Uzaktan Kontrol bağlantısını durdurur. `--launch` yalnızca bir tarayıcıyı açar; sunucuyu daemonize etmez. Gözetimsiz kullanılabilirlik için aynı komutu işletim sistemi işlem/hizmet yöneticiniz altında açık yapılandırma, çalışma dizini, ortam ve yeniden başlatma politikasıyla çalıştırın. Hizmet günlüklerine veya ortak birim dosyasına sır koymayın.
Tarayıcıyı kapatmak ayrı çalışan bağımsız arka ucu durdurmaz. Proje sekmesini kapatmak o projenin CodeNomad bağlantısını kaldırır, ancak oturumlar OpenCode'da devam eder; onları yeniden bulmak için projeyi tekrar açın. CodeNomad yerel Location bağlamını hiçbir zaman kaldırmaz. Bir pencerenin tamamını kapatmak, uygulamadan çıkmak veya yeniden yüklemek proje bağlantılarını geri yükleme için korur. Arka ucu kapatmak da OpenCode hizmetini çalışır bırakır. CodeNomad dönene kadar arka uca bağlı özellikler kullanılamaz; ayrı OpenCode zamanlama ömrü için [Görevler](missions.md) sayfasına bakın.
## Adresler ve bağlantı noktaları {#addresses}
Başlangıç, mevcut olduğunda **Local Connection URL** ve **Remote Connection URL** öğesine ek olarak uygun olduğunda **Other Accessible URLs** öğesini yazdırır. Tahmin edilen bir adresi değil, basılı şemayı ve bağlantı noktasını kullanın. Geri döngü URL'sine yalnızca söz konusu makinede erişilebilir; basılı bir LAN adresi yine de yönlendirme ve güvenlik duvarı erişimi gerektirir.
HTTPS **9898**, HTTP **9899** portunu tercih eder. Port belirtilmemişse tercih edilen port doluyken işletim sisteminin atadığı porta geçilir. Açıkça belirtilmiş sıfır olmayan port başka porta geçmez; `0` işletim sisteminin port atamasını ister. Portlar 0 ile 65535 arasında tam sayı kabul eder.
Arka uç, Görevler gibi kendi OpenCode eklentileri için rastgele bir `127.0.0.1` portunda duyurulmayan, kimlik doğrulamalı bir HTTP dinleyicisi de açabilir. Bu dinleyici yazdırılmaz ve bir istemci adresi değildir.
Dinleyicinin erişimi, sertifikalar, VPN/SSH ve ters proxy'ler için [Doğrudan uzaktan erişim](remote-access.md) kullanın. Gelen bağlantı noktası olmadan erişim için [Uzaktan Kontrol](remote-control.md) kullanın.
## Genel CLI referansı {#cli-reference}
Bayraklar karşılık gelen ortam değişkenlerini geçersiz kılar. Değer alan bayraklar gösterilen argümanı kullanır; anahtarlar değer almaz. HTTPS/HTTP değerleri büyük/küçük harfe duyarsız olarak `1`, `true`, `yes`, `y` ve `on` değerlerini etkin sayar; açıklık için `true`/`false` kullanın. Arayüzün otomatik güncellemesi `1`, `true` ve `yes` değerlerini tanır.
**Katı boole ortam değişkenleri** (`CLI_UNRESTRICTED_ROOT`, `CLI_UI_NO_UPDATE`, `CLI_LAUNCH`, `CODENOMAD_GENERATE_TOKEN` ve `CODENOMAD_SKIP_AUTH`), büyük/küçük harf ayrımı yapmadan ve baştaki/sondaki boşlukları yok sayarak `1`, `true`, `yes` veya `on` ile anahtarlarını etkinleştirir. `0`, `false`, `no`, `off`, boş veya yalnızca boşluk içeren değerler ve tanımlanmamış değişkenler anahtarları kapalı bırakır. Diğer tüm değerler, ilgili CLI bayrağı verilse bile sunucunun başlamasını engeller. CLI bayrağı, geçerli bir kapalı değerini geçersiz kılarak anahtarı etkinleştirir; aksi halde aşağıdaki `false` varsayılanları uygulanır.
| Bayrak | Ortam değişkeni | Varsayılan ve etki |
| --- | --- | --- |
| `-h, --help` | — | Yardımı yazdırın ve çıkın. |
| `-v, --version` | — | Kurulu paket sürümünü yazdırın ve çıkın. |
| `--host <host>` | `CLI_HOST` | `127.0.0.1`; `localhost`, IPv4 geri döngüsüne normalleşir. IPv6 bölge tanımlayıcıları reddedilir. [Bağlama matrisi](remote-access.md)'ye bakın. |
| `--https <enabled>` | `CLI_HTTPS` | `true`; HTTPS dinleyici. |
| `--http <enabled>` | `CLI_HTTP` | `false`; HTTP dinleyici. En az bir dinleyicinin etkinleştirilmesi gerekir. |
| `--https-port <number>` | `CLI_HTTPS_PORT` | `9898` tercih edilir; `0` otomatik. |
| `--http-port <number>` | `CLI_HTTP_PORT` | `9899` tercih edilir; `0` otomatik. |
| `--tls-key <path>` | `CLI_TLS_KEY` | Ayarlanmadı; PEM özel anahtarı, `--tls-cert` gerektirir. |
| `--tls-cert <path>` | `CLI_TLS_CERT` | Ayarlanmadı; PEM sertifikası `--tls-key` gerektirir. |
| `--tls-ca <path>` | `CLI_TLS_CA` | Ayarlanmadı; sağlanan sertifikalar için isteğe bağlı PEM CA zinciri. |
| `--tlsSANs <list>` | `CLI_TLS_SANS` | Ayarlanmadı; oluşturulan sertifikalar için virgülle ayrılmış ek DNS adları/IP'leri. |
| `--workspace-root <path>` | `CLI_WORKSPACE_ROOT` | İşlem çalışma dizini; çalışma alanlarını açmak için kök. |
| `--unrestricted-root` | `CLI_UNRESTRICTED_ROOT` | `false`; tam dosya sistemi taramasına izin ver. Ajan korumalı alan ayarı değil. |
| `--config <path>` | `CLI_CONFIG` | Çözülmüş etkin varsayılan: `~/.config/codenomad/config.yaml`. Açık yerleştirme için bir dizini veya YAML dosyasını kabul eder. |
| `--log-level <level>` | `CLI_LOG_LEVEL` | `info`; belgelenen seviyeler: `trace`, `debug`, `info`, `warn`, `error`. |
| `--log-destination <path>` | `CLI_LOG_DESTINATION` | `stdout`; aksi takdirde seçilen dosyaya yazın. |
| `--username <username>` | `CODENOMAD_SERVER_USERNAME` | `codenomad`; çalışma zamanı kimlik doğrulama kullanıcı adı. Saklanan bir kimlik doğrulama dosyası, hiçbir çalışma zamanı parolası onu geçersiz kılmadığında, saklanan kullanıcı adını korur. |
| `--password <password>` | `CODENOMAD_SERVER_PASSWORD` | Ayarlanmadı; yalnızca çalışma zamanı parolası, yönetilen kimlik doğrulama dosyasına göre önceliklidir. |
| `--auth-cookie-name <name>` | `CODENOMAD_AUTH_COOKIE_NAME` | `codenomad_session`; Harfler, rakamlar, `_` ve `-` dışındaki karakterler `_` olur. |
| `--generate-token` | `CODENOMAD_GENERATE_TOKEN` | `false`; tek kullanımlık, 60 saniyelik bir yerel önyükleme jetonu yazdırın. |
| `--dangerously-skip-auth` | `CODENOMAD_SKIP_AUTH` | `false`; doğrudan dinleyici kimlik doğrulamasını devre dışı bırakır. Tehlikeli: bkz. [Güvenlik](security.md). Uzaktan Kontrol hâlâ cihaz eşleştirmeyi gerektiriyor. |
| `--ui-dir <path>` | `CLI_UI_DIR` | Paketin `public` dizini; açık bir geçersiz kılma, uzak kullanıcı arayüzü çözümlemesi yerine bu kullanıcı arayüzüne hizmet eder. |
| `--ui-dev-server <url>` | `CLI_UI_DEV_SERVER` | Ayarlanmadı; HTTP dinleyicisi aracılığıyla proxy kullanıcı arayüzü. Geliştirme için `--https=false --http=true`'yi kullanın; HTTPS dinleyicisi geliştirici kullanıcı arayüzüne proxy sağlamaz. |
| `--ui-no-update` | `CLI_UI_NO_UPDATE` | `false`; otomatik güncellemeyi geçersiz kılar ve mevcut önbelleğe alınmış/paketlenmiş kullanıcı arayüzünü kullanır. |
| `--ui-auto-update <enabled>` | `CLI_UI_AUTO_UPDATE` | `true`; başlangıçta uyumlu uzak kullanıcı arayüzünü kontrol edin. |
| `--ui-manifest-url <url>` | `CLI_UI_MANIFEST_URL` | `https://ui.codenomad.neuralnomads.ai/version.json`; uzak kullanıcı arayüzü bildirimi. |
| `--launch` | `CLI_LAUNCH` | `false`; Başlatma sonrasında yerel kullanıcı arayüzünü bir tarayıcıda açın. |
| `--upgrade [version]` | — | Varsayılan olarak yükseltme yoktur. İstendiğinde `@neuralnomads/codenomad@latest`'yi veya sağlanan sürümü genel olarak yükleyin ve çıkın. |
Genel referans, kullanıcıya yönelik seçenekleri listeler; masaüstü ana bilgisayarları kendi özel başlatma koordinasyonlarını yönetir.
### Ek dağıtım ortamı {#deployment-environment}
| Değişken | Varsayılan ve kapsam |
| --- | --- |
| `CODENOMAD_GITHUB_REPO` | `NeuralNomadsAI/CodeNomad`; sürüm teklifleri için depo sorgulandı. |
| `CODENOMAD_REMOTE_CONTROL_API` | Ayarlanmadı: barındırılan OpenTunnel API. Şirket içinde barındırılan geçiş dağıtımı için bir API kaynağı ayarlayın. |
| `NODE_EXTRA_CA_CERTS` | Node'un isteğe bağlı ek CA dosyası; eksik OpenCode daemon'ı başlatılırken izin verilen başlangıç ortamıyla iletilir. Çalışan daemon'ı değiştirmez. |
Sağlayıcıya özel kullanım kimlik bilgileri, [Sağlayıcılar](providers.md) belgesinde ele alınmaktadır. Masaüstü veri profili seçimi [Masaüstü](desktop.md) kapsamındadır ve yayın akışı tarafından kontrol edilmez.
## Yapılandırma ve depolama sahipliği {#storage}
Aşağıdaki varsayılan yollar arka uç kullanıcısının ana dizinine göredir. Açık `--config` dizini yapılandırma tabanını değiştirir; YAML dosya adı o dosyayı ve yanındaki durum/depolamayı seçer. Dağıtım için bilinçli olarak tek yapılandırma kimliği kullanıp dizinin tamamını işletim sistemi izinleriyle koruyun.
| Sahip/veri | Varsayılan konum veya kural |
| --- | --- |
| Kararlı CodeNomad tercihleri | `~/.config/codenomad/config.yaml` |
| Değiştirilebilir CodeNomad durumu | `~/.config/codenomad/state.yaml` |
| CodeNomad örneği meta verileri | `~/.config/codenomad/instances/` |
| Şifre karması | Aktif YAML yapılandırmasının yanında `auth.json`; uygulama tarafından yönetilen. |
| Oluşturulan TLS sertifikaları ve özel anahtarlar | Yapılandırma tabanı altında `tls/`. |
| Uzaktan Kontrol rotası, etkin seçim ve cihaz karmaları | Yapılandırma tabanı altında `remote-control-devices.json`. |
| Geçici çalışma alanı kayıt defteri ve klasörleri | Bu tabanın altında `temporary-workspaces.json` ve `temporary-workspaces/`. |
| Kurulu panel uzantıları ve izin makbuzları | Bu tabanın altında `panel-extensions/` ve `permission-receipts/`. |
| İndirilen kullanıcı arayüzü önbelleği | `~/.config/codenomad/ui/`; CLI'nin kullanıcı arayüzü çözümleyicisi, özel bir `--config` ile bile bu ev tabanlı önbelleği kullanır. |
| OpenCode konuşmalar, mesajlar, hizmet kaydı ve sağlayıcı bağlantıları | CodeNomad instance dizini değil, OpenCode'un yürütme ana bilgisayarındaki kendi genel depolama alanı. |
| Masaüstü geri yükleme durumu | Varsayılan `~/.codenomad/client-state/v2/`; profil/pencere kapsamı için [Masaüstü](desktop.md)'ye bakın. |
CodeNomad mevcut paylaşılan arka plan programına bağlanır veya eksikse onu başlatır. Başlangıç ortamı yalnızca yeni başlatılan bir arka plan programını etkiler. Ayrı olarak, yapılandırılmış tam oturum ortamı, tercihler yalnızca görüntülendiğinde veya düzenlendiğinde değil, her istemden, özel komuttan veya oturum kabuğu isteğinden önce uygulanır. Bkz. [OpenCode kurulumu](opencode.md).
## Olaylar ve yeniden bağlanma {#events}
Arka uç paylaşılan OpenCode olay akışını tüketir; çalışma alanı ve CodeNomad olaylarını Server-Sent Events ile tarayıcı istemcilerine dağıtır. Teslimat canlı ve geçicidir: **garantili olay tekrarı yoktur**.
Yeniden bağlandıktan sonra kullanıcı arayüzü yetkili oturumu ve bekleyen istek durumunu yeniden getirir; dosya/yapılandırma geçersizlikleri de yeni okumaları tetikler. Yeniden bağlanma, yanıtı kaybolan bir gönderme, silme, yanıtlama veya başka bir değişiklik işleminin tekrarlanmasına izin vermez. İlk önce ortaya çıkan durumu kontrol edin. Kurtarma işlemi tamamlanmadığında, beklemede olduğu bilinen istekler ve taslaklar korunur; bkz. [İzinler](permissions.md) ve [Sorun Giderme](troubleshooting.md).
## Önizleme paketleri ve bakım {#maintenance}
Önizleme CLI paketini açıkça denemek için:
```sh
npx @neuralnomads/codenomad-dev --generate-token --launch
```
Yalıtılmış CodeNomad ayarlarına ihtiyacınız varsa bilinçli olarak ayrı bir yapılandırma kullanın; bir paketin seçilmesi, paylaşılan OpenCode depolama alanını izole etmez. **Ayarlar → Bilgi → Güncellemeler → Güncelleme akışı**, arka ucun veri kimliğini veya yüklü paketi değil, sunulan sürümleri kontrol eder.
`codenomad --upgrade`, algılanan npm/pnpm/bun yöneticisini (hiçbiri algılanmazsa npm) kullanarak genel kararlı CLI paketini günceller. Çalışan bir sunucuyu yeniden başlatmaz veya OpenCode'u güncellemez. Proje yerel veya önizleme kurulumu için tam olarak npm paketini açıkça güncelleyin. Güncellemeden sonra yönetilen CodeNomad işleminizi bilinçli olarak yeniden başlatın; basılı adreslerini tekrar kontrol edin.
Masaüstü bakımı için [Güncellemeler](updates.md)'ye, derleme komutları için [Kaynaktan derleyin](support.md#build-from-source) bölümüne ve sağlayıcı planı kullanımı için [Sağlayıcılar](providers.md)'ye bakın.