diff --git a/cloud/app/src/routes/docs/[...path].ts b/cloud/app/src/routes/docs/[...path].ts new file mode 100644 index 00000000..f9822393 --- /dev/null +++ b/cloud/app/src/routes/docs/[...path].ts @@ -0,0 +1,20 @@ +import type { APIEvent } from "@solidjs/start/server" + +async function handler(evt: APIEvent) { + const req = evt.request.clone() + const url = new URL(req.url) + const targetUrl = `https://dev.opencode.ai${url.pathname}${url.search}` + const response = await fetch(targetUrl, { + method: req.method, + headers: req.headers, + body: req.body, + }) + return response +} + +export const GET = handler +export const POST = handler +export const PUT = handler +export const DELETE = handler +export const OPTIONS = handler +export const PATCH = handler diff --git a/cloud/app/src/routes/docs/index.ts b/cloud/app/src/routes/docs/index.ts new file mode 100644 index 00000000..f9822393 --- /dev/null +++ b/cloud/app/src/routes/docs/index.ts @@ -0,0 +1,20 @@ +import type { APIEvent } from "@solidjs/start/server" + +async function handler(evt: APIEvent) { + const req = evt.request.clone() + const url = new URL(req.url) + const targetUrl = `https://dev.opencode.ai${url.pathname}${url.search}` + const response = await fetch(targetUrl, { + method: req.method, + headers: req.headers, + body: req.body, + }) + return response +} + +export const GET = handler +export const POST = handler +export const PUT = handler +export const DELETE = handler +export const OPTIONS = handler +export const PATCH = handler diff --git a/cloud/app/src/routes/s/[id].ts b/cloud/app/src/routes/s/[id].ts new file mode 100644 index 00000000..75bff7ae --- /dev/null +++ b/cloud/app/src/routes/s/[id].ts @@ -0,0 +1,20 @@ +import type { APIEvent } from "@solidjs/start/server" + +async function handler(evt: APIEvent) { + const req = evt.request.clone() + const url = new URL(req.url) + const targetUrl = `http://dev.opencode.ai/docs${url.pathname}${url.search}` + const response = await fetch(targetUrl, { + method: req.method, + headers: req.headers, + body: req.body, + }) + return response +} + +export const GET = handler +export const POST = handler +export const PUT = handler +export const DELETE = handler +export const OPTIONS = handler +export const PATCH = handler diff --git a/cloud/app/src/routes/workspace/[id].tsx b/cloud/app/src/routes/workspace/[id].tsx index b10a87e8..17f4f85d 100644 --- a/cloud/app/src/routes/workspace/[id].tsx +++ b/cloud/app/src/routes/workspace/[id].tsx @@ -1,11 +1,10 @@ +import "./[id].css" import { Billing } from "@opencode/cloud-core/billing.js" import { Key } from "@opencode/cloud-core/key.js" import { action, createAsync, query, useAction, useSubmission, json } from "@solidjs/router" -import { createSignal, For, onMount, Show } from "solid-js" -import { getActor } from "~/context/auth" +import { createSignal, For, Show } from "solid-js" import { withActor } from "~/context/auth.withActor" import { IconCopy, IconCheck } from "~/component/icon" -import "./[id].css" import { User } from "@opencode/cloud-core/user.js" import { Actor } from "@opencode/cloud-core/actor.js" @@ -63,7 +62,7 @@ const createPortalUrl = action(async (returnUrl: string) => { return withActor(() => Billing.generatePortalUrl({ returnUrl })) }, "portalUrl") -export default function() { +export default function () { ///////////////// // Keys section diff --git a/infra/app.ts b/infra/app.ts index e1e7b26c..73e12350 100644 --- a/infra/app.ts +++ b/infra/app.ts @@ -34,7 +34,7 @@ export const api = new sst.cloudflare.Worker("Api", { }) export const web = new sst.cloudflare.x.Astro("Web", { - domain, + domain: "docs." + domain, path: "packages/web", environment: { // For astro config diff --git a/packages/web/astro.config.mjs b/packages/web/astro.config.mjs index 3a5d933a..98f22960 100644 --- a/packages/web/astro.config.mjs +++ b/packages/web/astro.config.mjs @@ -12,6 +12,7 @@ import { spawnSync } from "child_process" // https://astro.build/config export default defineConfig({ site: config.url, + base: "/docs", output: "server", adapter: cloudflare({ imageService: "passthrough", @@ -59,44 +60,36 @@ export default defineConfig({ replacesTitle: true, }, sidebar: [ - "docs", - "docs/config", - "docs/providers", - "docs/enterprise", - "docs/troubleshooting", + "", + "config", + "providers", + "enterprise", + "troubleshooting", { label: "Usage", - items: [ - "docs/tui", - "docs/cli", - "docs/ide", - "docs/zen", - "docs/share", - "docs/github", - "docs/gitlab" - ], + items: ["tui", "cli", "ide", "zen", "share", "github", "gitlab"], }, { label: "Configure", items: [ - "docs/rules", - "docs/agents", - "docs/models", - "docs/themes", - "docs/keybinds", - "docs/commands", - "docs/formatters", - "docs/permissions", - "docs/lsp", - "docs/mcp-servers", + "rules", + "agents", + "models", + "themes", + "keybinds", + "commands", + "formatters", + "permissions", + "lsp", + "mcp-servers", ], }, { label: "Develop", - items: ["docs/sdk", "docs/server", "docs/plugins"], + items: ["sdk", "server", "plugins"], }, ], components: { diff --git a/packages/web/src/content/docs/docs/agents.mdx b/packages/web/src/content/docs/agents.mdx similarity index 100% rename from packages/web/src/content/docs/docs/agents.mdx rename to packages/web/src/content/docs/agents.mdx diff --git a/packages/web/src/content/docs/docs/cli.mdx b/packages/web/src/content/docs/cli.mdx similarity index 100% rename from packages/web/src/content/docs/docs/cli.mdx rename to packages/web/src/content/docs/cli.mdx diff --git a/packages/web/src/content/docs/docs/commands.mdx b/packages/web/src/content/docs/commands.mdx similarity index 100% rename from packages/web/src/content/docs/docs/commands.mdx rename to packages/web/src/content/docs/commands.mdx diff --git a/packages/web/src/content/docs/docs/config.mdx b/packages/web/src/content/docs/config.mdx similarity index 100% rename from packages/web/src/content/docs/docs/config.mdx rename to packages/web/src/content/docs/config.mdx diff --git a/packages/web/src/content/docs/docs/index.mdx b/packages/web/src/content/docs/docs/index.mdx deleted file mode 100644 index 97910e0e..00000000 --- a/packages/web/src/content/docs/docs/index.mdx +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: Intro -description: Get started with opencode. ---- - -import { Tabs, TabItem } from "@astrojs/starlight/components" - -[**opencode**](/) is an AI coding agent built for the terminal. - -![opencode TUI with the opencode theme](../../../assets/lander/screenshot.png) - -Let's get started. - ---- - -#### Prerequisites - -To use opencode, you'll need: - -1. A modern terminal emulator like: - - - [WezTerm](https://wezterm.org), cross-platform - - [Alacritty](https://alacritty.org), cross-platform - - [Ghostty](https://ghostty.org), Linux and macOS - - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux and macOS - -2. API keys for the LLM providers you want to use. - ---- - -## Install - -The easiest way to install opencode is through the install script. - -```bash -curl -fsSL https://opencode.ai/install | bash -``` - -You can also install it with the following: - -- **Using Node.js** - - - - ```bash - npm install -g opencode-ai - ``` - - - ```bash - bun install -g opencode-ai - ``` - - - ```bash - pnpm install -g opencode-ai - ``` - - - ```bash - yarn global add opencode-ai - ``` - - - -- **Using Homebrew on macOS and Linux** - - ```bash - brew install sst/tap/opencode - ``` - -- **Using Paru on Arch Linux** - - ```bash - paru -S opencode-bin - ``` - -#### Windows - -Right now the automatic installation methods do not work properly on Windows. However you can grab the binary from the [Releases](https://github.com/sst/opencode/releases). - ---- - -## Configure - -With opencode you can use any LLM provider by configuring their API keys. - -We recommend signing up for [Claude Pro](https://www.anthropic.com/news/claude-pro) or [Max](https://www.anthropic.com/max), it's the most cost-effective way to use opencode. - -Once you've signed up, run `opencode auth login` and select Anthropic. - -```bash -$ opencode auth login - -┌ Add credential -│ -◆ Select provider -│ ● Anthropic (recommended) -│ ○ OpenAI -│ ○ Google -│ ○ Amazon Bedrock -│ ○ Azure -│ ○ DeepSeek -│ ○ Groq -│ ... -└ -``` - -Alternatively, you can select one of the other providers. [Learn more](/docs/providers#directory). - ---- - -## Initialize - -Now that you've configured a provider, you can navigate to a project that -you want to work on. - -```bash -cd /path/to/project -``` - -And run opencode. - -```bash -opencode -``` - -Next, initialize opencode for the project by running the following command. - -```bash frame="none" -/init -``` - -This will get opencode to analyze your project and create an `AGENTS.md` file in -the project root. - -:::tip -You should commit your project's `AGENTS.md` file to Git. -::: - -This helps opencode understand the project structure and the coding patterns -used. - ---- - -## Usage - -You are now ready to use opencode to work on your project. Feel free to ask it -anything! - -If you are new to using an AI coding agent, here are some examples that might -help. - ---- - -### Ask questions - -You can ask opencode to explain the codebase to you. - -:::tip -Use the `@` key to fuzzy search for files in the project. -::: - -```txt frame="none" "@packages/functions/src/api/index.ts" -How is authentication handled in @packages/functions/src/api/index.ts -``` - -This is helpful if there's a part of the codebase that you didn't work on. - ---- - -### Add features - -You can ask opencode to add new features to your project. Though we first recommend asking it to create a plan. - -1. **Create a plan** - - opencode has a _Plan mode_ that disables its ability to make changes and - instead suggest _how_ it'll implement the feature. - - Switch to it using the **Tab** key. You'll see an indicator for this in the lower right corner. - - ```bash frame="none" title="Switch to Plan mode" - - ``` - - Now let's describe what we want it to do. - - ```txt frame="none" - When a user deletes a note, we'd like to flag it as deleted in the database. - Then create a screen that shows all the recently deleted notes. - From this screen, the user can undelete a note or permanently delete it. - ``` - - You want to give opencode enough details to understand what you want. It helps - to talk to it like you are talking to a junior developer on your team. - - :::tip - Give opencode plenty of context and examples to help it understand what you - want. - ::: - -2. **Iterate on the plan** - - Once it gives you a plan, you can give it feedback or add more details. - - ```txt frame="none" - We'd like to design this new screen using a design I've used before. - [Image #1] Take a look at this image and use it as a reference. - ``` - - :::tip - Drag and drop images into the terminal to add them to the prompt. - ::: - - opencode can scan any images you give it and add them to the prompt. You can - do this by dragging and dropping an image into the terminal. - -3. **Build the feature** - - Once you feel comfortable with the plan, switch back to _Build mode_ by - hitting the **Tab** key again. - - ```bash frame="none" - - ``` - - And asking it to make the changes. - - ```bash frame="none" - Sounds good! Go ahead and make the changes. - ``` - ---- - -### Make changes - -For more straightforward changes, you can ask opencode to directly build it -without having to review the plan first. - -```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" -We need to add authentication to the /settings route. Take a look at how this is -handled in the /notes route in @packages/functions/src/notes.ts and implement -the same logic in @packages/functions/src/settings.ts -``` - -You want to make sure you provide a good amount of detail so opencode makes the right -changes. - ---- - -### Undo changes - -Let's say you ask opencode to make some changes. - -```txt frame="none" "@packages/functions/src/api/index.ts" -Can you refactor the function in @packages/functions/src/api/index.ts? -``` - -But you realize that it is not what you wanted. You **can undo** the changes -using the `/undo` command. - -```bash frame="none" -/undo -``` - -opencode will now revert the changes you made and show your original message -again. - -```txt frame="none" "@packages/functions/src/api/index.ts" -Can you refactor the function in @packages/functions/src/api/index.ts? -``` - -From here you can tweak the prompt and ask opencode to try again. - -:::tip -You can run `/undo` multiple times to undo multiple changes. -::: - -Or you **can redo** the changes using the `/redo` command. - -```bash frame="none" -/redo -``` - ---- - -## Share - -The conversations that you have with opencode can be [shared with your -team](/docs/share). - -```bash frame="none" -/share -``` - -This will create a link to the current conversation and copy it to your clipboard. - -:::note -Conversations are not shared by default. -::: - -Here's an [example conversation](https://opencode.ai/s/4XP1fce5) with opencode. - ---- - -## Customize - -And that's it! You are now a pro at using opencode. - -To make it your own, we recommend [picking a theme](/docs/themes), [customizing the keybinds](/docs/keybinds), [configuring code formatters](/docs/formatters), [creating custom commands](/docs/commands), or playing around with the [opencode config](/docs/config). diff --git a/packages/web/src/content/docs/docs/enterprise.mdx b/packages/web/src/content/docs/enterprise.mdx similarity index 98% rename from packages/web/src/content/docs/docs/enterprise.mdx rename to packages/web/src/content/docs/enterprise.mdx index 3e4b281e..4faff39c 100644 --- a/packages/web/src/content/docs/docs/enterprise.mdx +++ b/packages/web/src/content/docs/enterprise.mdx @@ -3,7 +3,7 @@ title: Enterprise description: Using opencode in your organization. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const email = `mailto:${config.email}` opencode does not store any of your code or context data. This makes it easy for diff --git a/packages/web/src/content/docs/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx similarity index 100% rename from packages/web/src/content/docs/docs/formatters.mdx rename to packages/web/src/content/docs/formatters.mdx diff --git a/packages/web/src/content/docs/docs/github.mdx b/packages/web/src/content/docs/github.mdx similarity index 100% rename from packages/web/src/content/docs/docs/github.mdx rename to packages/web/src/content/docs/github.mdx diff --git a/packages/web/src/content/docs/docs/gitlab.mdx b/packages/web/src/content/docs/gitlab.mdx similarity index 100% rename from packages/web/src/content/docs/docs/gitlab.mdx rename to packages/web/src/content/docs/gitlab.mdx diff --git a/packages/web/src/content/docs/docs/ide.mdx b/packages/web/src/content/docs/ide.mdx similarity index 100% rename from packages/web/src/content/docs/docs/ide.mdx rename to packages/web/src/content/docs/ide.mdx diff --git a/packages/web/src/content/docs/index.mdx b/packages/web/src/content/docs/index.mdx index ea39be9e..7ca2fee7 100644 --- a/packages/web/src/content/docs/index.mdx +++ b/packages/web/src/content/docs/index.mdx @@ -1,12 +1,311 @@ --- -title: opencode -description: The AI coding agent built for the terminal. -template: splash -hero: - title: The AI coding agent built for the terminal. - tagline: The AI coding agent built for the terminal. - image: - dark: ../../assets/logo-ornate-dark.svg - light: ../../assets/logo-ornate-light.svg - alt: opencode logo +title: Intro +description: Get started with opencode. --- + +import { Tabs, TabItem } from "@astrojs/starlight/components" + +[**opencode**](/) is an AI coding agent built for the terminal. + +![opencode TUI with the opencode theme](../../assets/lander/screenshot.png) + +Let's get started. + +--- + +#### Prerequisites + +To use opencode, you'll need: + +1. A modern terminal emulator like: + + - [WezTerm](https://wezterm.org), cross-platform + - [Alacritty](https://alacritty.org), cross-platform + - [Ghostty](https://ghostty.org), Linux and macOS + - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux and macOS + +2. API keys for the LLM providers you want to use. + +--- + +## Install + +The easiest way to install opencode is through the install script. + +```bash +curl -fsSL https://opencode.ai/install | bash +``` + +You can also install it with the following: + +- **Using Node.js** + + + + ```bash + npm install -g opencode-ai + ``` + + + ```bash + bun install -g opencode-ai + ``` + + + ```bash + pnpm install -g opencode-ai + ``` + + + ```bash + yarn global add opencode-ai + ``` + + + +- **Using Homebrew on macOS and Linux** + + ```bash + brew install sst/tap/opencode + ``` + +- **Using Paru on Arch Linux** + + ```bash + paru -S opencode-bin + ``` + +#### Windows + +Right now the automatic installation methods do not work properly on Windows. However you can grab the binary from the [Releases](https://github.com/sst/opencode/releases). + +--- + +## Configure + +With opencode you can use any LLM provider by configuring their API keys. + +We recommend signing up for [Claude Pro](https://www.anthropic.com/news/claude-pro) or [Max](https://www.anthropic.com/max), it's the most cost-effective way to use opencode. + +Once you've signed up, run `opencode auth login` and select Anthropic. + +```bash +$ opencode auth login + +┌ Add credential +│ +◆ Select provider +│ ● Anthropic (recommended) +│ ○ OpenAI +│ ○ Google +│ ○ Amazon Bedrock +│ ○ Azure +│ ○ DeepSeek +│ ○ Groq +│ ... +└ +``` + +Alternatively, you can select one of the other providers. [Learn more](/docs/providers#directory). + +--- + +## Initialize + +Now that you've configured a provider, you can navigate to a project that +you want to work on. + +```bash +cd /path/to/project +``` + +And run opencode. + +```bash +opencode +``` + +Next, initialize opencode for the project by running the following command. + +```bash frame="none" +/init +``` + +This will get opencode to analyze your project and create an `AGENTS.md` file in +the project root. + +:::tip +You should commit your project's `AGENTS.md` file to Git. +::: + +This helps opencode understand the project structure and the coding patterns +used. + +--- + +## Usage + +You are now ready to use opencode to work on your project. Feel free to ask it +anything! + +If you are new to using an AI coding agent, here are some examples that might +help. + +--- + +### Ask questions + +You can ask opencode to explain the codebase to you. + +:::tip +Use the `@` key to fuzzy search for files in the project. +::: + +```txt frame="none" "@packages/functions/src/api/index.ts" +How is authentication handled in @packages/functions/src/api/index.ts +``` + +This is helpful if there's a part of the codebase that you didn't work on. + +--- + +### Add features + +You can ask opencode to add new features to your project. Though we first recommend asking it to create a plan. + +1. **Create a plan** + + opencode has a _Plan mode_ that disables its ability to make changes and + instead suggest _how_ it'll implement the feature. + + Switch to it using the **Tab** key. You'll see an indicator for this in the lower right corner. + + ```bash frame="none" title="Switch to Plan mode" + + ``` + + Now let's describe what we want it to do. + + ```txt frame="none" + When a user deletes a note, we'd like to flag it as deleted in the database. + Then create a screen that shows all the recently deleted notes. + From this screen, the user can undelete a note or permanently delete it. + ``` + + You want to give opencode enough details to understand what you want. It helps + to talk to it like you are talking to a junior developer on your team. + + :::tip + Give opencode plenty of context and examples to help it understand what you + want. + ::: + +2. **Iterate on the plan** + + Once it gives you a plan, you can give it feedback or add more details. + + ```txt frame="none" + We'd like to design this new screen using a design I've used before. + [Image #1] Take a look at this image and use it as a reference. + ``` + + :::tip + Drag and drop images into the terminal to add them to the prompt. + ::: + + opencode can scan any images you give it and add them to the prompt. You can + do this by dragging and dropping an image into the terminal. + +3. **Build the feature** + + Once you feel comfortable with the plan, switch back to _Build mode_ by + hitting the **Tab** key again. + + ```bash frame="none" + + ``` + + And asking it to make the changes. + + ```bash frame="none" + Sounds good! Go ahead and make the changes. + ``` + +--- + +### Make changes + +For more straightforward changes, you can ask opencode to directly build it +without having to review the plan first. + +```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" +We need to add authentication to the /settings route. Take a look at how this is +handled in the /notes route in @packages/functions/src/notes.ts and implement +the same logic in @packages/functions/src/settings.ts +``` + +You want to make sure you provide a good amount of detail so opencode makes the right +changes. + +--- + +### Undo changes + +Let's say you ask opencode to make some changes. + +```txt frame="none" "@packages/functions/src/api/index.ts" +Can you refactor the function in @packages/functions/src/api/index.ts? +``` + +But you realize that it is not what you wanted. You **can undo** the changes +using the `/undo` command. + +```bash frame="none" +/undo +``` + +opencode will now revert the changes you made and show your original message +again. + +```txt frame="none" "@packages/functions/src/api/index.ts" +Can you refactor the function in @packages/functions/src/api/index.ts? +``` + +From here you can tweak the prompt and ask opencode to try again. + +:::tip +You can run `/undo` multiple times to undo multiple changes. +::: + +Or you **can redo** the changes using the `/redo` command. + +```bash frame="none" +/redo +``` + +--- + +## Share + +The conversations that you have with opencode can be [shared with your +team](/docs/share). + +```bash frame="none" +/share +``` + +This will create a link to the current conversation and copy it to your clipboard. + +:::note +Conversations are not shared by default. +::: + +Here's an [example conversation](https://opencode.ai/s/4XP1fce5) with opencode. + +--- + +## Customize + +And that's it! You are now a pro at using opencode. + +To make it your own, we recommend [picking a theme](/docs/themes), [customizing the keybinds](/docs/keybinds), [configuring code formatters](/docs/formatters), [creating custom commands](/docs/commands), or playing around with the [opencode config](/docs/config). diff --git a/packages/web/src/content/docs/docs/keybinds.mdx b/packages/web/src/content/docs/keybinds.mdx similarity index 100% rename from packages/web/src/content/docs/docs/keybinds.mdx rename to packages/web/src/content/docs/keybinds.mdx diff --git a/packages/web/src/content/docs/docs/lsp.mdx b/packages/web/src/content/docs/lsp.mdx similarity index 100% rename from packages/web/src/content/docs/docs/lsp.mdx rename to packages/web/src/content/docs/lsp.mdx diff --git a/packages/web/src/content/docs/docs/mcp-servers.mdx b/packages/web/src/content/docs/mcp-servers.mdx similarity index 100% rename from packages/web/src/content/docs/docs/mcp-servers.mdx rename to packages/web/src/content/docs/mcp-servers.mdx diff --git a/packages/web/src/content/docs/docs/models.mdx b/packages/web/src/content/docs/models.mdx similarity index 100% rename from packages/web/src/content/docs/docs/models.mdx rename to packages/web/src/content/docs/models.mdx diff --git a/packages/web/src/content/docs/docs/modes.mdx b/packages/web/src/content/docs/modes.mdx similarity index 100% rename from packages/web/src/content/docs/docs/modes.mdx rename to packages/web/src/content/docs/modes.mdx diff --git a/packages/web/src/content/docs/docs/permissions.mdx b/packages/web/src/content/docs/permissions.mdx similarity index 100% rename from packages/web/src/content/docs/docs/permissions.mdx rename to packages/web/src/content/docs/permissions.mdx diff --git a/packages/web/src/content/docs/docs/plugins.mdx b/packages/web/src/content/docs/plugins.mdx similarity index 100% rename from packages/web/src/content/docs/docs/plugins.mdx rename to packages/web/src/content/docs/plugins.mdx diff --git a/packages/web/src/content/docs/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx similarity index 99% rename from packages/web/src/content/docs/docs/providers.mdx rename to packages/web/src/content/docs/providers.mdx index 2e8a3b5a..c25a1c7d 100644 --- a/packages/web/src/content/docs/docs/providers.mdx +++ b/packages/web/src/content/docs/providers.mdx @@ -3,7 +3,7 @@ title: Providers description: Using any LLM provider in opencode. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const console = config.console opencode uses the [AI SDK](https://ai-sdk.dev/) and [Models.dev](https://models.dev) to support for **75+ LLM providers** and it supports running local models. diff --git a/packages/web/src/content/docs/docs/rules.mdx b/packages/web/src/content/docs/rules.mdx similarity index 100% rename from packages/web/src/content/docs/docs/rules.mdx rename to packages/web/src/content/docs/rules.mdx diff --git a/packages/web/src/content/docs/docs/sdk.mdx b/packages/web/src/content/docs/sdk.mdx similarity index 99% rename from packages/web/src/content/docs/docs/sdk.mdx rename to packages/web/src/content/docs/sdk.mdx index aaf218cc..1e65064f 100644 --- a/packages/web/src/content/docs/docs/sdk.mdx +++ b/packages/web/src/content/docs/sdk.mdx @@ -3,7 +3,7 @@ title: SDK description: Type-safe JS client for opencode server. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` The opencode JS/TS SDK provides a type-safe client for interacting with the server. diff --git a/packages/web/src/content/docs/docs/server.mdx b/packages/web/src/content/docs/server.mdx similarity index 99% rename from packages/web/src/content/docs/docs/server.mdx rename to packages/web/src/content/docs/server.mdx index f63adb6c..0713cce6 100644 --- a/packages/web/src/content/docs/docs/server.mdx +++ b/packages/web/src/content/docs/server.mdx @@ -3,7 +3,7 @@ title: Server description: Interact with opencode server over HTTP. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` The `opencode serve` command runs a headless HTTP server that exposes an OpenAPI endpoint that an opencode client can use. diff --git a/packages/web/src/content/docs/docs/share.mdx b/packages/web/src/content/docs/share.mdx similarity index 100% rename from packages/web/src/content/docs/docs/share.mdx rename to packages/web/src/content/docs/share.mdx diff --git a/packages/web/src/content/docs/docs/themes.mdx b/packages/web/src/content/docs/themes.mdx similarity index 100% rename from packages/web/src/content/docs/docs/themes.mdx rename to packages/web/src/content/docs/themes.mdx diff --git a/packages/web/src/content/docs/docs/troubleshooting.mdx b/packages/web/src/content/docs/troubleshooting.mdx similarity index 100% rename from packages/web/src/content/docs/docs/troubleshooting.mdx rename to packages/web/src/content/docs/troubleshooting.mdx diff --git a/packages/web/src/content/docs/docs/tui.mdx b/packages/web/src/content/docs/tui.mdx similarity index 100% rename from packages/web/src/content/docs/docs/tui.mdx rename to packages/web/src/content/docs/tui.mdx diff --git a/packages/web/src/content/docs/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx similarity index 98% rename from packages/web/src/content/docs/docs/zen.mdx rename to packages/web/src/content/docs/zen.mdx index 46d45793..b3de5902 100644 --- a/packages/web/src/content/docs/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -3,7 +3,7 @@ title: Zen description: Curated list of models provided by opencode. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const console = config.console export const email = `mailto:${config.email}`