orca-agent

echoVicMIT活跃维护

基于 Rust 的终端编程智能体,原生对接 DeepSeek 模型,在命令行里直接完成写代码、执行命令和操作计算机等任务。

Orca Agent — a DeepSeek-native terminal coding agent

v0.5.19发布于 2026-11-07 17:38 UTC515star +2 / 7 天7fork同步于 2026-11-10 11:58 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g @blade-ai/orca
curl -fsSL https://orcaagent.dev/install.sh | sh
硬件要求按 README 说明

README 未说明显存或 GPU 要求;Orca 用 Rust 编写并在本地运行,模型推理走 DeepSeek API,因此本地只需能联网的 macOS、Linux 或 Windows(ARM64/x64)。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

DeepSeek 原生终端编码代理,能读代码、改文件、跑命令并自行验证直到任务完成

基于 Rust 的终端编程智能体,原生对接 DeepSeek 模型,在命令行里直接完成写代码、执行命令和操作计算机等任务。

核心能力

  • 直接使用 DeepSeek 的推理与工具调用语义,支持 SSE 流式与重试
  • bash 是唯一命令入口,长构建和 PTY 会话在调用返回后继续运行
  • TUI 支持 @ 引用文件、$ 插入技能、/ 命令菜单与审批面板
  • exec 无头模式可接脚本与 CI,支持 --verifier 收尾前自动验证
  • rewind 基于内容寻址检查点回滚文件与对话,保留最近 100 次

容易踩的坑

需先设置 DEEPSEEK_API_KEY 环境变量,否则无法调用模型;精简 Linux 容器须装 ca-certificates,否则任何网络请求都失败;首次在目录运行需先信任工作区,Windows 沙箱隔离还需单独执行 -SetupSandbox。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.5.19
  1. v0.5.19Orca v0.5.19最新正式版2026-11-07 · 2026-11-07 17:38 UTC

    What's Changed

    Full Changelog: https://github.com/echoVic/orca-agent/compare/v0.5.18...v0.5.19

  2. v0.5.18Orca v0.5.182026-11-06 · 2026-11-06 19:11 UTC
    查看更新说明

    Orca v0.5.18

    This patch makes a stuck shell interruptible and a failed session write survivable, and adds endpoint controls for custom and reverse-proxy providers along with a new web_fetch tool for reading URLs.

    Changes

    • Esc now stops the command the TUI is showing at the operating-system level. Runtime shell sessions and tool subprocesses register their active process group with a handle shared by the TUI, and Esc kills that group directly before asking the runtime to cancel, so an interrupt no longer depends on the session transcript being writable. Timed-out and cancelled process groups receive SIGTERM, a 50 ms grace period follows, then SIGKILL. The default [tools].shell_timeout_secs = 0, previously no cap, now becomes a built-in ten-minute hard ceiling, and a command whose pipes were inherited by escaped descendants waits at most two seconds for its readers after the child exits.
    • Failed session persistence degrades instead of blocking work. When appending a tool result to the JSONL transcript fails, the result stays in the live conversation, Orca warns and marks the writer degraded, and the turn continues; the same applies when writing the assistant response event fails. The degraded flag is shared by every clone of the writer, so the whole transcript is known to be unreliable rather than the tool call failing.
    • Custom and reverse-proxy provider endpoints are easier to configure and diagnose. ORCA_BASE_URL and the legacy DEEPSEEK_BASE_URL are trimmed of surrounding whitespace and trailing slashes, and an empty value falls back to the default endpoint instead of producing requests to /chat/completions. The new /base-url command shows the effective endpoint, marks a configured one as (custom), sets a URL for the current session, and reset restores the default; /status lists the endpoint too. orca doctor calls out a custom endpoint and warns that third-party services usually do not support /beta strict tools. ORCA_STRICT_TOOLS=1 forces the strict tool payload onto a custom endpoint that accepts it; only the exact value 1 enables it, and only an endpoint whose URL ends in /beta is strict without it. The provider source now documents example free and self-hosted compatible endpoints — SiliconFlow, OpenRouter and a local Ollama server — with the warning not to configure them with a /beta suffix.
    • New web_fetch tool returns the readable text of a URL. HTML input is reduced to text: scripts, styles, navigation, footers, asides and heads are removed, block tags become newlines, common entities are decoded, and the page title and meta description lead the result as Markdown; plain text passes through unchanged. A request has a 60-second timeout, an 8 MiB body cap and at most 100,000 characters of output. http URLs are upgraded to https, non-HTTP schemes, URL credentials and single-label hosts are rejected, and redirects are followed only within the same origin and port for at most ten hops; a cross-origin redirect fails. An optional prompt keeps only the paragraphs that mention one of its keywords and falls back to the whole text when nothing matches. The fetch uses the same HTTP client and cancellation path as web_search.

    Compatibility

    • Interrupts: Esc sends SIGKILL (or the platform equivalent) to the running command's process group before the runtime cancellation runs. A foreground command stopped that way is killed outright rather than asked to stop, so its own traps and child cleanup may not run. The interrupt path does not read or write the session transcript.
    • Session history: a failed history write no longer fails the tool call or the turn. The transcript is marked degraded and may be missing the affected item, so a session recovered from that file may not contain it; Orca prints a warning on stderr when the write fails.
    • Shell timeout: [tools].shell_timeout_secs = 0 (the default) now applies a ten-minute hard cap instead of removing the limit, so a
  3. v0.5.17Orca v0.5.172026-11-05 · 2026-11-05 08:57 UTC
    查看更新说明

    Orca v0.5.17

    This patch strengthens session recovery, retry control and evidence about what a run did, and includes the CLI permission changes and Orca Agent branding merged since v0.5.16.

    Changes

    • New interactive TUI sessions start with Full Access. Use --yolo to select full-auto explicitly when launching or resuming, or switch the active session from a pending approval. Use orca app-server and orca acp for protocol serving, -C/--cd to select a workspace, and --continue to resume the latest TUI session; legacy forms remain accepted.
    • Headless JSONL completion reports whether saved history is actually durable and resumable, with a recovery command or reason recovery is unavailable. The result includes unresolved descendant blockers and clears prior blocked attempts only after a matching resumed continuation has completed successfully. In JSONL output, deleted, truncated or replaced logs cannot advertise successful recovery.
    • A bounded workspace observation records net content changes, including shell writes and changes to files that were already dirty. Attribution remains unknown; incomplete observations do not imply no changes. writes_applied continues to describe successful file-tool receipts.
    • Provider requests in one process share endpoint-and-credential cooldowns for 429/503 and parse integer and HTTP-date forms of Retry-After, including legacy date formats. Runtime, HTTP and recovery retries share the actual-send cap and wait budget; cancellation and deadlines stop waiting and preserve known usage. HTTP redirects retain POST/body for 307/308, charge each hop to that cap, remove credentials when crossing origins, and reject HTTPS-to-HTTP downgrades.
    • Compression records local token estimates, elapsed time, summary calls and known usage/cost. Automatic compression shares the remaining operation deadline and cancellation. Streamed responses record the first non-empty reasoning, text or tool delta and its type.
    • Capability evaluation retains actual configuration, fixture/verifier fingerprints, paired read evidence for discovered constraints and independent SQLite verification. Repeated runs report success rates, variance and Wilson intervals while preserving failed-attempt costs. Verifier scripts (including absolute paths and env wrappers) and declared read-only inputs use independent snapshots, and reports reject comparisons whose configuration or manifest identities differ.
    • Models that need vision descriptions retain quoted User records for tool screenshots, with snapshot identity and current/historical labels. Duplicate observations, prefix trimming and restored sessions preserve useful descriptions. Sidecar responses settle confirmed usage individually and stop before the next image when the operation budget is exhausted. Direct Flash vision remains supported; models that drop tool pixels retain saved descriptions.
    • The product is identified as Orca Agent, with the official mark used in the website social card.
    • Built-in DeepSeek prices and peak hours were checked against the official pricing page on 2026-11-05; rates are unchanged.

    Compatibility

    • Permission default: new interactive sessions now use Full Access. Choose --approval-mode suggest or --plan when you want a more restrictive session. Existing explicit modes and legacy protocol flags remain available.
    • Headless JSONL history remains opt-in through --save-history; --no-history still disables it. Check resumable before using a recovery command.
    • Completion and observation fields are additive. Exit codes and writes_applied retain their existing meanings.
    • Workspace observation is bounded and platform dependent. Unknown or incomplete measurements remain unknown; estimates are not invoices. First delta may be reasoning or a tool call, rather than visible answer text. Shared cooldowns apply within one process.

    Verification

    Release-review verification includes 259 provider library tests, 147 focused ru

  4. v0.5.16Orca v0.5.162026-11-02 · 2026-11-02 10:59 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/echoVic/orca-agent/compare/v0.5.15...v0.5.16

  5. v0.5.14Orca v0.5.142026-10-26 · 2026-10-26 01:14 UTC
    查看更新说明

    Orca v0.5.14

    Changes since v0.5.13:

    • Computer use asks before observing or operating a window you already had open. Allow it once or for the session, or deny it and let Orca open its own. App grants do not cover your windows; full-auto skips window approval.
    • list_apps shows window titles only for apps used this session. The driver never uses the desktop and checks that input reaches the selected window.
    • Usable-window lists, clearer errors, windowless shortcuts and window-raising recovery reduce failed actions. Three consecutive failures add a hint to stop and report; six stop that app for the rest of the turn.
    • App session grants now appear in the real TUI. MCP approvals are not resumed after a restart; turn-only tool approvals are refused unless the same tool definition can be restored. Late queue updates no longer revive finished turns, and flaky tests use controlled synchronization.
    • A developer acceptance harness checks 15 real tasks independently. In the third live acceptance attempt, neither run used a pre-existing window without approval; single-step results were 8/8 twice, multi-step 6/7 and 7/7.

    Changes

    Your windows and approvals

    Before the first computer call for each user message, Orca records the windows already open across running apps, including tray apps and minimized or off-screen windows. Those windows are yours unless Orca opened them earlier in the session. Windows that appear during the turn count as Orca's and remain its own for the session when the end-of-turn snapshot records them. If that snapshot fails or the driver resets mid-turn, those windows count as yours next turn. Outside full-auto, a failed initial snapshot refuses the call instead of assuming the windows belong to Orca.

    Outside full-auto, a call that names or inherits one of your windows asks about that window. The preview names the action, escaped window title, app and bundle id. Its approval target is bundle#window:<id>, or bundle#window:<id>#secure for password entry. The ordinary window panel offers:

    • 1 Allow this window once: run this call; later calls ask again.
    • 2 Allow this window this session: allow that window until you quit.
    • 4 Deny: keep the window to yourself and let the turn continue, so Orca can open its own window instead.

    Press 4 (Deny) to keep the window and let Orca continue. Esc can stop the whole turn instead: once a computer call has run in the turn, Orca's Esc listener stops the turn even while this panel is open. App, password-entry and other tool denials still stop the turn. Window panels offer no saved grant because window ids do not last across sessions. They offer no all-app grant because each of your windows needs its own approval.

    Outside full-auto, app, wildcard and whole-tool allow rules never authorize an existing-window target. Only an exact allow for bundle#window:<id> does, including the panel's session grant. App deny and prompt rules still cover its windows; window deny and prompt rules also cover password entry in that window. Outside full-auto, no window grant or allow rule preapproves password entry in your window.

    In full-auto, Orca does not ask about windows. Password entry uses the ordinary bundle#secure target: it still asks unless a whole-tool computer allow rule without a pattern preapproves it for an app that does not run commands. Window deny and prompt rules (bundle#window:<id>) do not apply there; app deny and prompt rules still apply.

    list_apps shows window ids and titles only for apps Orca has used in this session, marking your windows (yours) and minimized ones (minimized). Unused apps show their name, bundle id, process id and window count. Candidate app lists in errors follow the same title restriction. Using an app can therefore reveal titles of its other windows to the model even before those windows are approved for observation or input.

    Window selection and input

    Observe and

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Orca Agent

    Latest release npm MIT license Linux CI Windows CI GitHub stars

    Orca Agent is a DeepSeek-native coding agent for your terminal.

    Give Orca Agent a task and it reads code, edits files, runs commands, verifies the result, and keeps working until the task is done or it needs you. Use the TUI for interactive work or orca exec for scripts and CI. Orca is built in Rust, runs locally, and is MIT licensed.

    English · 简体中文 · 日本語 · Tiếng Việt · 한국어 · Español · Português

    Naming. Orca Agent is unrelated to other projects named "Orca", including the stablyai/orca desktop agent orchestrator, Plotly's orca package, and the GNOME Orca screen reader. This repository is the DeepSeek-native terminal coding agent at orcaagent.dev.

    Website · Changelog · Releases · npm

    Orca Agent's first run: trust the workspace, then enter a DeepSeek API key

    Install

    npm install -g @blade-ai/orca
    

    Or install the native binary directly:

    curl -fsSL https://orcaagent.dev/install.sh | sh
    

    On Windows PowerShell:

    irm https://orcaagent.dev/install.ps1 | iex
    

    From a project directory, provision its restricted sandbox capability with:

    & ([scriptblock]::Create((irm https://orcaagent.dev/install.ps1))) -SetupSandbox
    

    The npm package supports macOS, Linux, and Windows on ARM64 and x64. Prebuilt archives are also available from GitHub Releases.

    Orca checks HTTPS certificates against the operating system's trust store, so a company proxy's CA works once it is installed there. A minimal Linux system, such as a slim container image, needs the ca-certificates package: with no CA certificates at all, Orca cannot make any network request, plain HTTP included. Configuration covers SSL_CERT_FILE and SSL_CERT_DIR.

    On Windows, Orca prefers PowerShell 7 and detects its standard installation path even when it is absent from PATH. Restricted sessions fall back to cmd.exe when PowerShell 7 is unavailable. Windows PowerShell 5.1 remains an explicit option only for modes that do not require AppContainer isolation. Protocol command arrays are launched as native Windows argv without shell re-parsing; legacy string commands use the resolved shell dialect.

    Use

    export DEEPSEEK_API_KEY=sk-...
    
    orca                                      # open the terminal UI (Full Access by default)
    orca --yolo                               # start with Full Access (full-auto)
    orca --yolo --continue                    # resume the latest session with Full Access
    orca exec "fix the failing test"          # run headlessly
    orca exec --yolo "finish the task"        # run headlessly with Full Access
    printf '%s' "$INSTRUCTION" | orca exec   # keep arbitrary prompt text out of argv
    orca exec --verifier "cargo test" "fix it" # verify before finishing
    orca exec resume SESSION_ID "continue"    # resume a headless session
    orca exec resume --last "continue"        # resume the most recent session
    orca exec resume SID --resume-at MID "continue"  # resume up to a message boundary
    orca --resume [SESSION_ID]                # resume a saved conversation
    orca --fork SESSION_ID                    # fork a saved conversation
    orca rewind --at MID --dry-run            # preview a file/conversation rollback
    orca acp                                  # connect an ACP client
    orca app-server                           # serve the JSON-RPC app protocol
    orca --plan exec --json -C ./project "inspect it"  # read-only JSONL run
    orca doctor                               # check the key, trust, and sandbox locally
    

    On Windows PowerShell, set the key with $env:DEEPSEEK_API_KEY = "sk-..."; the orca commands are the same. The positional prompt form remains supported. When the prompt may contain tokens that a task later searches for or kills in the process table, pipe it on stdin so it is not exposed in orca's command line.

    Orca also offers opt-in shared ACP sessions on Unix (orca daemon, orca attach, and orca acp-bridge), file-defined subagents, and persistent terminal output pages.

    The terminal UI

    Run orca in a project. The first run in a folder asks you to trust it or continue untrusted: trust lets Orca load the project's configuration, instructions, skills, agents, and workflows, and never enables or bypasses the OS sandbox. Then type a task and press Enter.

    New TUI sessions default to Full Access (full-auto, also called yolo) when no mode is configured. An explicit --mode, ORCA_MODE, or user config mode takes precedence. Resuming keeps the conversation’s saved mode; use --yolo to force Full Access on resume. Headless exec and shared daemons default to auto-edit.

    • Mention and command. @ mentions files, skills, plugins, and MCP resources; $ inserts a skill; / opens the command menu; ? lists every key. Ctrl+V attaches a clipboard image.
    • Follow along. Replies are marked ●, reasoning collapses to one ⋯ thinking line, and each tool call shows its output under a │ rail. Ctrl+O expands the latest collapsed output and Ctrl+Shift+O all of them. The status bar shows the approval mode, the model and reasoning effort, the context left, and usage.
    • Steer a running turn. Esc interrupts. Enter queues a follow-up for the next turn, Ctrl+Enter sends it into the running turn (in terminals with the kitty keyboard protocol), and Ctrl+B moves the turn to the background.
    • Approve tool calls. A call that needs approval turns the input into an approval panel: allow once, allow this exact call, allow the tool for the session, or deny. Esc denies; once a computer call has run in the turn, it stops the whole turn instead. On a window panel, press 4 to keep the window and let Orca continue. An MCP tool can also be always allowed, alone or with its whole server, as a rule saved to your config. Shift+Tab cycles suggest → auto-edit → full-auto → plan. While waiting for approval, Shift+Tab opens Full Access confirmation directly. Confirming applies full-auto without waiting for the turn to finish; answer the original pending request once to continue. The next tool call uses the new policy, while tools already admitted and subagents already launched keep their original policy. Mode changes are recorded in the current conversation and restored on resume; they do not change the default mode in your config.
    • Background work. /tasks shows the tasks dock under the conversation, where background turns, subagents, commands, monitors, and workflow children appear. /agents opens the Agent Workspace with each task's live conversation or transcript and the controls it can safely take: stop, resume, retry, or a follow-up. When background agents finish while you are idle, Orca continues with their results. /workflows keeps the workflow run tree.
    • MCP servers. The servers in your config connect in the background as soon as the TUI opens. /mcp shows how each stands, with its tools and prompts, and reconnects, logs in, or logs out; each MCP prompt runs as a slash command, /mcp__<server>__<prompt>.
    • Computer use on macOS. On macOS 14 or later, the main TUI session can inspect and operate other apps to check a UI or work without a command-line interface, or work in an app you name. App grants work for one call, the session, or future sessions. Outside full-auto, windows you already had open ask separately; app grants do not cover them. Press 4 to keep a window and let Orca continue (Esc can stop the whole turn). Password entry asks separately unless a qualifying whole-tool rule preapproves it. Window titles appear only for apps used this session. See Computer Use for system permissions and foreground switching.
    • Plan, goals, and recap. /plan investigates read-only and ends with a plan to approve; /goal sets a persistent objective; /recap summarizes the session, and Orca writes one itself when you return after a quiet spell; /side opens a side conversation for a quick question.
    • Sessions. /new, /resume (grouped by project, with fork, rename, archive, delete, and copy ID), /fork [name], /rename [name], /model, /config, and /copy [N]. Model and reasoning-effort choices are saved to the user config.toml, so new sessions use them too. /status reports the effective execution profile, shell sandbox, and permission profile. Ctrl+L clears the screen but keeps the conversation, and on exit Orca prints the orca --resume <SESSION_ID> command.
    • Rewind. /rewind (alias /checkpoint, or orca rewind --at MID) lists the session's user turns and can restore files to their state before a chosen turn, rewind only the conversation, do both, or replace one side of the boundary with a model-written summary. Before each edit / write_file Orca stores the file's pre-image in a content-addressed checkpoint; the most recent 100 stay file-restorable, edits made by bash or other processes are reported as untracked and never restored, and an interrupted restore can be rolled back from its journal.

    The Terminal UI guide walks through the screen and every key.

    Automatic project memory is on for recorded sessions; use /remember for explicit user or project facts. See Memory for capture, recall, storage, privacy, and deletion.

    Use Orca from Pilion Browser

    Pilion Browser is a desktop browser that works as an ACP client. Choose Orca in its Agent panel: Pilion launches orca --mode=acp, forwards DEEPSEEK_API_KEY, and exposes its own tabs to Orca as MCP tools (browser_snapshot, browser_screenshot, navigate, click, type) with approval-before-action and human takeover. Installers for macOS, Windows and Linux are on the Pilion releases page.

    What it does

    • Uses DeepSeek's reasoning and tool-use semantics directly, with SSE streaming, prefix-cache-friendly prompts, automatic context management, and retry logic.
    • Reads, searches, edits, and writes code; runs shell commands; and can verify the result with a command you choose. bash is the only command entry point, and every command it starts belongs to the task rather than to the tool call: a long build, a CI watch, or an interactive PTY session keeps running after the call returns. yield_time_ms bounds only how long the call waits, while timeout_ms is the sole caller-side execution deadline. task_read_output, task_send_input, task_wait, and task_stop continue, feed, wait for, and stop a command by its task_id. A background supervisor settles exited or stopped sessions without polling and injects one bounded completion notification before the next model turn.
    • Asks one to four structured clarification questions in interactive TUI sessions, including described choices, optional previews, and multi-select answers.
    • Gates risky actions with suggest, sandboxed auto-edit, full-access full-auto, and read-only plan modes, plus per-folder trust.
    • Saves local conversations with --resume for continuation and --fork for branching; orca exec resume <SESSION_ID> restores a headless session with a fresh budget scope, and headless exits print the exact resume command.
    • Gives synchronous subagents, async subagents, and workflow child agents a runtime-owned continuation id. A later subagent call can pass resume_from with that continuation id (or the originating task id) to append a new prompt to the same durable child conversation. Task/status output on TUI, ACP, JSONL, and headless surfaces includes the current attempt, checkpoint, resumable, and indeterminate state.
    • Runs direct, nested, Workflow, hosted, continued, and recovered children through one durable execution scope per root task tree. The default 32 execution leases are a capacity ceiling rather than a delegation target; accepted overflow queues without creating a worker, and parents waiting for children yield their lease before re-entering the fair queue.
    • Keeps up to four active child summaries visible in the conversation and up to eight durable activity entries per child. /agents opens live conversations and transcripts and exposes only controls the selected child can safely perform: stop, resume, retry, or a revision-fenced follow-up.
    • Learns a bounded set of durable project facts after successfully committed turns and retrieves only prompt-relevant facts on later turns.
    • Runs with no implicit turn ceiling; optional [budget] limits (--max-turns, --max-tool-calls, --max-cost-usd, --max-wall-time-secs) bound an operation explicitly, and budget stops settle the current tool, create a checkpoint, and exit 4 with a typed terminal in the JSONL stream.
    • Runs persistent goals without a fixed turn ceiling (a cumulative Goal token budget disables automatic continuation when exhausted), plus subagents and JavaScript workflows for longer tasks that need continuation or parallel work.
    • Loads project instructions, skills, plugins, custom tools, MCP tools, and MCP resources after the workspace is trusted.
    • Manages MCP servers with orca mcp add, list, get, remove, login, and logout: local stdio servers, and remote ones over streamable HTTP or legacy SSE that sign in with OAuth or a bearer token from the environment.
    • Exposes stable JSONL, app-server, and Agent Client Protocol (ACP) contracts for editors, harnesses, and CI.

    Configuration priority is CLI arguments, environment variables, trusted project configuration, user configuration, then defaults. Run orca --help or orca exec --help for the full command surface. User configuration lives at ~/.orca/config.toml; trusted projects can also provide .orca/config.toml, AGENTS.md, rules, skills, and workflows.

    An unset or auto model uses deepseek-flash (DeepSeek-V4.1-Flash). Choose deepseek-v4-pro with /model, --model, or model = "deepseek-v4-pro" in config.toml; releases before 0.5.0 routed auto to Pro. Both models use a 1M-token context window and allow up to 384K output tokens. The retired deepseek-v4-flash and deepseek-v4-flash-vision-exp names remain accepted and normalize to deepseek-flash, including Flash pricing. DeepSeek thinking is enabled explicitly: set reasoning_effort to low, high, or max (the default) in config.toml, or use ORCA_REASONING_EFFORT.

    Cost estimates follow DeepSeek's published prices, including the peak rate that applies Monday to Friday from 01:00 to 04:00 and from 06:00 to 10:00 UTC (Chinese public holidays are off-peak all day). Orca ships with the prices current at release. At session startup, each process checks once whether cached prices are missing or at least 24 hours old and, if needed, refreshes them from models.dev in the background. Set refresh = false under [pricing] in ~/.orca/config.toml to disable pricing refresh. To price a model yourself, for example one served by another endpoint, set input_cache_miss, input_cache_hit, and output (US dollars per million tokens) under [models."<name>".pricing]; those prices apply at every hour. Both settings are read only from the user configuration.

    JPEG, PNG, GIF, and WebP inputs are accepted from ACP clients and the TUI with every model selection. Flash consumes images directly; Pro uses Flash for task-aware visual analysis before continuing with Pro. In the TUI, use Ctrl+V to attach the current clipboard image (Alt+V is also available on Windows), drag or paste image paths and file:// URLs, or select an image through @file. Each attachment appears as an atomic [Image #N] item that can be deleted, cleared, queued, edited, and restored after a rejected submission. Cmd+V works when the terminal forwards it as Super+V; terminals that consume Cmd+V should use Ctrl+V. Clipboard reads run in the background, and pressing Enter while one is pending waits for the image before submitting. Place the cursor on an image item and press Enter to open its preview; submitted images also render in the message area and can be clicked. The viewer supports +/- zoom, arrow-key panning, 0 to fit, and Esc to close. Kitty and Ghostty use the Kitty graphics protocol for native-pixel previews; iTerm2 and WezTerm use the inline-image protocol. Terminals without an image protocol, including Apple Terminal, fall back to low-resolution true-color cells. SSH sessions without a graphical clipboard should paste or mention a path on the remote host. Inline attachments share a 5 MiB total limit. Orca keeps the Chat Completions transport and fully replays any returned reasoning_content across tool turns as required by DeepSeek.

    More detail:

    Reliability

    • TUI, headless, ACP, and JSONL sessions use the same runtime host for turn ownership, cancellation, persistence, and terminal results.
    • Goal and session storage run outside the async actor loop, so a slow disk or busy SQLite database does not freeze unrelated controls such as cancel or status.
    • Cancelling a foreground turn also stops the subagent task tree it owns; unrelated detached work is left alone.
    • SIGINT, SIGTERM, and SIGHUP stop a run like an ordinary exit, in orca exec from the moment it starts and in the TUI: running work and MCP servers are stopped, the session records how it ended, and the exit code is 128 + the signal. Copies of one stop request that arrive together count once. On Windows, orca exec takes the console's Ctrl+C as SIGINT, and Ctrl+Break, a logoff or a shutdown as SIGTERM.
    • Escape-driven cancellation commits one terminal child state and ignores late activity from the cancelled attempt, so a stopped subagent cannot flood the terminal while its parent returns to an interactive prompt.
    • Continuation recovery is deliberately fail-closed. Orca restores only a digest-verified conversation checkpoint, never a Rust future or process stack. A tool admitted with unknown external side effects makes the continuation indeterminate until a later safe checkpoint covers its terminal result. Worktree continuations inherit the original path only while it still exists; retryable resumable attempts retain that path, and Orca does not silently recreate a missing worktree.
    • The durable prompt queue and checkpointable child-agent continuation model project the same queued, resumable, indeterminate, and terminal state across TUI, ACP, JSONL, and Headless. Large ordinary-chat pastes remain compact in the composer but submit their complete text; Goal pastes are materialized under ORCA_HOME/attachments/<uuid> with path validation and transactional cleanup before the Goal mutation commits. Alt+Up queue editing commits a revision-checked runtime delete, failed queue admission restores the prompt, and queued previews remain bounded instead of copying the full body per frame.
    • Detached background workers never hold the terminal open, and they end once their task is gone or their lease is lost.
    • Session switches start the replacement before closing the current runtime. Rename, fork, archive, and delete commit through revision-checked and durable paths, and stale events from a previous attachment are ignored.
    • Runtime surface and platform contracts run in CI before release artifacts are built for macOS, Linux, and Windows.

    Community

    Related projects

    • blade-code is a TypeScript coding agent with a CLI, a web UI, and a headless mode.
    • boss-skill turns one coding agent into an auditable team workflow, from PM through DevOps.
    • blade-agent-sdk is a session-first TypeScript SDK for multi-turn agents, streaming tools, MCP, and subagents.

    Contributing

    Read CONTRIBUTING.md before contributing. Open an issue first for large or compatibility-sensitive changes.

    License

    MIT