import { Title } from "@solidjs/meta" import { onCleanup, onMount } from "solid-js" import "./index.css" import logoLight from "../asset/logo-ornate-light.svg" import logoDark from "../asset/logo-ornate-dark.svg" import IMG_SPLASH from "../asset/lander/screenshot-splash.png" import IMG_VSCODE from "../asset/lander/screenshot-vscode.png" import IMG_GITHUB from "../asset/lander/screenshot-github.png" import { IconCopy, IconCheck } from "../component/icon" import { createAsync, query, redirect } from "@solidjs/router" import { getActor } from "~/context/auth" import { withActor } from "~/context/auth.withActor" import { Account } from "@opencode/cloud-core/account.js" function CopyStatus() { return (
) } const isLoggedIn = query(async () => { "use server" const actor = await getActor() if (actor.type === "account") { const workspaces = await withActor(() => Account.workspaces()) throw redirect(`/workspace/${workspaces[0].id}`) } return false }, "isLoggedIn") export default function Home() { createAsync(() => isLoggedIn(), { deferStream: true, }) onMount(() => { const commands = document.querySelectorAll("[data-copy]") for (const button of commands) { const callback = () => { const text = button.textContent if (text) { navigator.clipboard.writeText(text) button.setAttribute("data-copied", "") setTimeout(() => { button.removeAttribute("data-copied") }, 1500) } } button.addEventListener("click", callback) onCleanup(() => { button.removeEventListener("click", callback) }) } }) return (
opencode | AI coding agent built for the terminal
opencode logo light opencode logo dark

The AI coding agent built for the terminal.

Get Started
Login
  • Native TUI: A responsive, native, themeable terminal UI.
  • LSP enabled: Automatically loads the right LSPs for the LLM.
  • Multi-session: Start multiple agents in parallel on the same project.
  • Shareable links: Share a link to any sessions for reference or to debug.
  • Claude Pro: Log in with Anthropic to use your Claude Pro or Max account.
  • Use any model: Supports 75+ LLM providers through{" "} Models.dev, including local models.

npm

bun

homebrew

paru

opencode TUI with the tokyonight theme
opencode TUI with tokyonight theme
opencode in VS Code
opencode in VS Code
opencode in GitHub
opencode in GitHub
) }