---
import { Image } from 'astro:assets';
import { getRelativeLocaleUrl } from 'astro:i18n';
import config from "virtual:starlight/user-config";
import CopyIcon from "../assets/lander/copy.svg";
import CheckIcon from "../assets/lander/check.svg";
import TuiScreenshot from "../assets/lander/screenshot-splash.png";
import VscodeScreenshot from "../assets/lander/screenshot-vscode.png";
import GithubScreenshot from "../assets/lander/screenshot-github.png";
const { data } = Astro.locals.starlightRoute.entry;
const { title = data.title, tagline, image, actions = [] } = data.hero || {};
const imageAttrs = {
loading: 'eager' as const,
decoding: 'async' as const,
width: 400,
alt: image?.alt || '',
};
const github = (config.social || []).filter(s => s.icon === 'github')[0];
const discord = (config.social || []).filter(s => s.icon === 'discord')[0];
const locale = Astro.currentLocale || 'root';
const t = Astro.locals.t as (key: string) => string;
const docsHref = getRelativeLocaleUrl(locale, "")
const docsCliHref = getRelativeLocaleUrl(locale, "cli")
const docsIdeHref = getRelativeLocaleUrl(locale, "ide")
const docsGithubHref = getRelativeLocaleUrl(locale, "github")
const command = "curl -fsSL"
const protocol = "https://"
const url = "opencode.ai/install"
const bash = "| bash"
let darkImage: ImageMetadata | undefined;
let lightImage: ImageMetadata | undefined;
let rawHtml: string | undefined;
if (image) {
if ('file' in image) {
darkImage = image.file;
} else if ('dark' in image) {
darkImage = image.dark;
lightImage = image.light;
} else {
rawHtml = image.html;
}
}
---
{darkImage && (
)}
{lightImage && }
{t('app.lander.hero.title')}
- {t('app.lander.features.native_tui.title')}: {t('app.lander.features.native_tui.description')}
- {t('app.lander.features.lsp_enabled.title')}: {t('app.lander.features.lsp_enabled.description')}
- {t('app.lander.features.multi_session.title')}: {t('app.lander.features.multi_session.description')}
- {t('app.lander.features.shareable_links.title')}: {t('app.lander.features.shareable_links.description')}
- GitHub Copilot: {t('app.lander.features.github_copilot.description')}
- ChatGPT Plus/Pro: {t('app.lander.features.chatgpt_plus_pro.description')}
- {t('app.lander.features.use_any_model.title')}: {t('app.lander.features.use_any_model.prefix')} Models.dev, {t('app.lander.features.use_any_model.suffix')}
npm
Bun
Homebrew
Paru
Mise
{t('app.lander.images.tui.caption')}
{t('app.lander.images.vscode.caption')}
{t('app.lander.images.github.caption')}