跳到主要內容

SDK

從你自己的腳本、CI 工作和工具驅動 OpenCode。SDK 在你的處理程序內執行 OpenCode,使用你的設定和模型,其具型別的用戶端可以建立工作階段、傳送提示詞並串流每個事件。

功能

用程式碼修復 CI

一段簡短的腳本請 OpenCode 修復失敗的測試,然後重新執行。

追蹤每一步

串流事件,即時查看代理呼叫的每個工具。

打造自己的工具

只要幾行程式碼,就能把 OpenCode 接入機器人、儀表板和工作流程。

在你的處理程序內

在你的處理程序內執行 OpenCode,使用你的設定和模型。

  • TypeScript 用戶端具型別的請求和事件,與 @opencode/client 的值相同。
  • 用程式碼建立工作階段在任何腳本中建立工作階段並傳送提示詞。
  • 任何模型使用你的 OpenCode 設定中的任何模型。
  • npm 或 bun使用 npm i @opencode/sdk 或 bun add @opencode/sdk 安裝。
  • 同處理程序主機在記憶體中執行 OpenCode,不經過網路。
  • 你的外掛建立同處理程序主機時傳入你自己的外掛。
  • Promise 或 EffectPromise API 和 Effect API,回傳相同的值。
  • Cloudflare Workers在 Workers 上的 Cloudflare Durable Object 中執行 OpenCode。

  • npmnpm i @opencode/sdk
  • bunbun add @opencode/sdk
閱讀 SDK 文件

更新日誌

  1. v2.2.7

    session.generate returns tokens and cost along with text

    查看 v2.2.7 的所有亮點

    破壞性變更

    SDK: fewer endpoints wait for plugins to load

    On a Location that is still loading plugins, agent.list returns the agents loaded so far, and integration.list, usage.limits, vcs.init, rpc.call and artifact.* no longer wait up to 5 seconds. Entries and actions that a plugin provides appear when it finishes loading, so refresh on the matching *.updated event. Model, provider, generate.*, voice.* and websearch.query endpoints still wait.

    #62796#63040

    改進

    • SDKcredential.updated includes the integrationID and credentialID of the login that changed.#62762
    • SDKPredicate questions in client.experimental.generate.decisions accept optional criteria: { true?, false? }.#62819
  2. v2.2.6

    Improvements

    查看 v2.2.6 的所有亮點

    改進

    • SDKAdded client.experimental.job.list() and its Effect equivalent for listing background shell, subagent, and image jobs, with session, descendant, kind, and status filters.#60698
    • SDKServer embedders can provide a custom fetch implementation for OpenCode HTTP, model, web, and remote MCP traffic.#61582
  3. v2.2.4

    Publish Interactive Artifacts

    Enable "experimental": { "artifacts": true } in opencode.json to let agents publish, update, and serve HTML or static artifacts through the built-in local provider or plugin-provided storage.#60351

    查看 v2.2.4 的所有亮點

    改進

    • SDKExtended client.experimental.persistentPty.update to rename terminals or clear a user title, and exposed userTitle plus persistent-pty.updated events.#60329
查看所有更新