summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/src/server.ts
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-21 12:58:37 -0400
committerDax Raad <[email protected]>2025-08-21 12:58:37 -0400
commit9a3186317b010ec03b1680ae9249d90ea6f94356 (patch)
tree6f3a244d943f7250e77c4ee62e635902f7d25950 /packages/sdk/js/src/server.ts
parentb1e584ca1dac90e17732a3daf58fb6b50f201c33 (diff)
downloadopencode-9a3186317b010ec03b1680ae9249d90ea6f94356.tar.gz
opencode-9a3186317b010ec03b1680ae9249d90ea6f94356.zip
allow importing sdk from @opencode-ai/sdk/server and @opencode-ai/sdk/client
Diffstat (limited to 'packages/sdk/js/src/server.ts')
-rw-r--r--packages/sdk/js/src/server.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/sdk/js/src/server.ts b/packages/sdk/js/src/server.ts
new file mode 100644
index 000000000..edaa4cf63
--- /dev/null
+++ b/packages/sdk/js/src/server.ts
@@ -0,0 +1,26 @@
+import { spawn } from "node:child_process"
+
+export type ServerConfig = {
+ host?: string
+ port?: number
+}
+
+export async function createOpencodeServer(config?: ServerConfig) {
+ config = Object.assign(
+ {
+ host: "127.0.0.1",
+ port: 4096,
+ },
+ config ?? {},
+ )
+
+ const proc = spawn(`opencode`, [`serve`, `--host=${config.host}`, `--port=${config.port}`])
+ const url = `http://${config.host}:${config.port}`
+
+ return {
+ url,
+ close() {
+ proc.kill()
+ },
+ }
+}