⁦OpenCode⁩ در کنسول

نحوهٔ ساخت رابط متنی ⁦OpenCode Lite⁩ بر پایهٔ Text.js و اجرای محلی آن.

⁦OpenCode⁩ یک عامل کدنویسی متن‌باز است. ⁦OpenCode Lite⁩ یک کلاینت کنسولی برای آن است که با Text.js ساخته شده است.

آزمایش

  • در این سایت: به OpenCode بروید و DevTools را باز کنید.
  • به‌صورت محلی: bunx create-text-app my-app --template opencode.

سایت یک محیط ایزوله با عاملی مبتنی بر اسکریپت اجرا می‌کند. هر پرامپتی که می‌خواهید تایپ کنید.

ساختار

بخشکامپوننت‌ها
متن گفتگو<ScrollBox stickyScroll> + <Markdown>
کارت‌های ابزار<Code> و <Diff>
پرامپت<Textarea>
پالت<Modal> + <Select searchable>
app/session/[id]/page.tsxtsx
export default function SessionPage({ params }: PageProps<{ id: string }>) {  const { messages, send } = useSession(params.id);  return (    <Box className="flex-col grow">      <ScrollBox stickyScroll className="grow">        {messages.map((m) => <MessageView key={m.id} message={m} />)}      </ScrollBox>      <Textarea placeholder="Ask anything…" onSubmit={send} autoFocus />    </Box>  );}

کلیدها

کلیدعملکرد
Enterارسال
Shift+Tabتغییر عامل (ساخت / برنامه‌ریزی)
Ctrl+Pفرمان‌ها
Ctrl+X سپس Lنشست‌ها
Ctrl+X سپس Nنشست جدید
Esc دو بارمتوقف کردن نشست در حال اجرا

اتصال به سرور محلی

# From any directory:opencode service status  # If stopped: opencode service startbunx @textjs/opencode@latest proxy

پل را در حال اجرا نگه دارید. در صفحه OpenCode، نشانی http://127.0.0.1:4096 را وارد کنید، اتصال را فشار دهید و اگر Chrome درخواست کرد، اجازه دسترسی به شبکه محلی را بدهید. سپس کد جفت‌سازی را که پل چاپ کرده است وارد کنید. صفحه تا زمانی که پل دوباره راه‌اندازی شود یا قطع اتصال را فشار دهید، جفت‌شده می‌ماند. از نشانی پل استفاده کنید، نه پورت سرویس: پل اطلاعات احراز هویت سرویس و هدرهای CORS را فراهم می‌کند. پس از پایان کار، آن را با ⁦Ctrl+C⁩ متوقف کنید.

برای سروری که از قبل در پیش‌زمینه روی پورت 4096 اجرا می‌شود، دستور bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096 را اجرا کنید و صفحه را به پورت 4097 متصل کنید. برای سرور پیش‌زمینه‌ای که با گذرواژه محافظت می‌شود، متغیر OPENCODE_PASSWORD آن را در پوسته فرمان پل export کنید؛ گذرواژه را در نشانی مرورگر قرار ندهید.

پل همان بسته @textjs/opencode است. این بسته هیچ وابستگی‌ای ندارد و با npx روی ⁦Node 22⁩ یا بالاتر نیز اجرا می‌شود. درون یک پروژه Text.js، دستور text proxy همین پل را راه‌اندازی می‌کند.

ویرایش این صفحه در GitHub