OpenCode במסוף
איך ממשק ה-TUI של 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 | החלפת סוכן (build / plan) |
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 מבקש זאת. לאחר מכן יש להזין את קוד ההתאמה שהגשר הדפיס. העמוד נשאר מותאם עד שהגשר מופעל מחדש או עד ללחיצה על ניתוק. יש להשתמש בכתובת ה-URL של הגשר, ולא בפורט של השירות: הגשר מספק את פרטי האימות של השירות ואת כותרות CORS. בסיום יש לעצור אותו עם Ctrl+C.
עבור שרת שכבר פועל בחזית בפורט 4096, יש להריץ bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096 ולחבר את העמוד לפורט 4097. עבור שרת שפועל בחזית ומוגן בסיסמה, יש לייצא את OPENCODE_PASSWORD שלו במעטפת של הגשר; אין לכלול סיסמה בכתובת URL בדפדפן.
הגשר הוא החבילה @textjs/opencode. אין לו תלויות והוא פועל גם עם npx ב-Node 22 ואילך. בתוך פרויקט Text.js, הפקודה text proxy מפעילה את אותו גשר.