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> |
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 همین پل را راهاندازی میکند.