opencode/packages/sdk-next
2026-06-24 23:08:54 -04:00
..
src feat(sdk): add HttpApi clients and embedded host (#33445) 2026-06-24 23:08:54 -04:00
test feat(sdk): add HttpApi clients and embedded host (#33445) 2026-06-24 23:08:54 -04:00
package.json feat(sdk): add HttpApi clients and embedded host (#33445) 2026-06-24 23:08:54 -04:00
README.md feat(sdk): add HttpApi clients and embedded host (#33445) 2026-06-24 23:08:54 -04:00
tsconfig.json feat(sdk): add HttpApi clients and embedded host (#33445) 2026-06-24 23:08:54 -04:00

@opencode-ai/sdk-next

Effect-native scoped OpenCode host for in-process applications. This transitional package will replace the existing generated @opencode-ai/sdk after its consumers migrate.

The SDK executes Server's assembled HTTP router in memory. It opens no listener and performs no network I/O, while preserving the same routing, middleware, handlers, codecs, and errors as the network client.

import { OpenCode } from "@opencode-ai/sdk-next"

const opencode = yield * OpenCode.create()
const session = yield * opencode.sessions.get({ sessionID })

It also exposes local-only tools.register(...). Closing the owning Effect Scope releases router resources, location services, fibers, and scoped tool registrations.

The same constructor is available as a service Layer:

const program = Effect.gen(function* () {
  const opencode = yield* OpenCode.Service
  return yield* opencode.sessions.get({ sessionID })
})

yield * program.pipe(Effect.provide(OpenCode.layer))

OpenCode.layer adapts OpenCode.create() for dependency injection; it does not define another host implementation.