--- title: บทนำ description: เริ่มต้นใช้งาน OpenCode --- import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console [**OpenCode**](/) คือเอเจนต์การเข้ารหัส AI แบบโอเพ่นซอร์ส มีให้บริการในรูปแบบอินเทอร์เฟซบนเทอร์มินัล แอปเดสก์ท็อป หรือส่วนขยาย IDE ![OpenCode TUI พร้อมธีม opencode](../../../assets/lander/screenshot.png) มาเริ่มกันเลย --- #### ข้อกำหนดเบื้องต้น หากต้องการใช้ OpenCode ในเทอร์มินัล คุณจะต้องมี: 1. เทอร์มินัลอีมูเลเตอร์ที่ทันสมัยเช่น: - [WezTerm](https://wezterm.org) ข้ามแพลตฟอร์ม - [Alacritty](https://alacritty.org) ข้ามแพลตฟอร์ม - [โกสต์ตี้](https://ghostty.org), ลินุกซ์ และ macOS - [คิตตี้](https://sw.kovidgoyal.net/kitty/), Linux และ macOS 2. ปุ่ม API สำหรับผู้ให้บริการ LLM ที่คุณต้องการใช้ --- ## ติดตั้ง วิธีที่ง่ายที่สุดในการติดตั้ง OpenCode คือการใช้สคริปต์การติดตั้ง ```bash curl -fsSL https://opencode.ai/install | bash ``` คุณยังสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้: - **การใช้ Node.js** ```bash npm install -g opencode-ai ``` ```bash bun install -g opencode-ai ``` ```bash pnpm install -g opencode-ai ``` ```bash yarn global add opencode-ai ``` - **การใช้ Homebrew บน macOS และ Linux** ```bash brew install anomalyco/tap/opencode ``` > เราขอแนะนำให้ใช้การแตะ OpenCode เพื่อเผยแพร่ข้อมูลล่าสุด สูตร `brew install opencode` อย่างเป็นทางการได้รับการดูแลโดยทีมงาน Homebrew และมีการอัปเดตไม่บ่อยนัก - **การใช้ Paru บน Arch Linux** ```bash paru -S opencode-bin ``` #### หน้าต่าง :::tip[แนะนำ: ใช้ WSL] เพื่อประสบการณ์ที่ดีที่สุดบน Windows เราขอแนะนำให้ใช้ [ระบบย่อย Windows สำหรับ Linux (WSL)](/docs/windows-wsl) ให้ประสิทธิภาพที่ดีขึ้นและความเข้ากันได้เต็มรูปแบบกับคุณสมบัติของ OpenCode ::: - **ใช้ช็อคโกแลต** ```bash choco install opencode ``` - **การใช้สกู๊ป** ```bash scoop install opencode ``` - **การใช้ NPM** ```bash npm install -g opencode-ai ``` - ** การใช้ Mise ** ```bash mise use -g github:anomalyco/opencode ``` - **การใช้นักเทียบท่า** ```bash docker run -it --rm ghcr.io/anomalyco/opencode ``` ขณะนี้การสนับสนุนสำหรับการติดตั้ง OpenCode บน Windows โดยใช้ Bun อยู่ระหว่างดำเนินการ คุณยังสามารถคว้าไบนารี่ได้จาก [เผยแพร่](https://github.com/anomalyco/opencode/releases) --- ## กำหนดค่า ด้วย OpenCode คุณสามารถใช้ผู้ให้บริการ LLM ใดก็ได้โดยกำหนดค่าคีย์ API หากคุณยังใหม่ต่อการใช้ผู้ให้บริการ LLM เราขอแนะนำให้ใช้ [OpenCode Zen](/docs/zen) เป็นรายการโมเดลที่ได้รับการดูแลจัดการซึ่งได้รับการทดสอบและตรวจสอบโดย OpenCode ทีม. 1. เรียกใช้คำสั่ง `/connect` ใน TUI เลือก opencode และไปที่ [opencode.ai/auth](https://opencode.ai/auth) ```txt /connect ``` 2. ลงชื่อเข้าใช้ เพิ่มรายละเอียดการเรียกเก็บเงินของคุณ และคัดลอกรหัส API ของคุณ 3. วางคีย์ API ของคุณ ```txt ┌ API key │ │ └ enter ``` หรือคุณสามารถเลือกหนึ่งในผู้ให้บริการรายอื่นได้ [เรียนรู้เพิ่มเติม](/docs/providers#ไดเรกทอรี) --- ## เริ่มต้น เมื่อคุณได้กำหนดค่าผู้ให้บริการแล้ว คุณสามารถนำทางไปยังโปรเจ็กต์นั้นได้ คุณอยากทำงานต่อ ```bash cd /path/to/project ``` และเรียกใช้ OpenCode ```bash opencode ``` จากนั้น เริ่มต้น OpenCode สำหรับโปรเจ็กต์โดยการรันคำสั่งต่อไปนี้ ```bash frame="none" /init ``` นี่จะได้รับ OpenCode เพื่อวิเคราะห์โครงการของคุณและสร้างไฟล์ `AGENTS.md` รากของโครงการ :::tip คุณควรคอมมิตไฟล์ `AGENTS.md` ของโปรเจ็กต์ของคุณไปที่ Git ::: ซึ่งจะช่วยให้ OpenCode เข้าใจโครงสร้างโปรเจ็กต์และรูปแบบการเขียนโค้ด ใช้แล้ว. --- ## การใช้งาน ตอนนี้คุณพร้อมที่จะใช้ OpenCode เพื่อทำงานในโครงการของคุณแล้ว อย่าลังเลที่จะถามมัน อะไรก็ตาม! หากคุณยังใหม่ต่อการใช้เอเจนต์การเข้ารหัส AI ต่อไปนี้คือตัวอย่างบางส่วนที่อาจเป็นไปได้ ช่วย. --- ### ถามคำถาม คุณสามารถขอให้ OpenCode อธิบาย codebase ให้คุณได้ :::tip ใช้ปุ่ม `@` เพื่อค้นหาไฟล์ในโครงการอย่างคลุมเครือ ::: ```txt frame="none" "@packages/functions/src/api/index.ts" How is authentication handled in @packages/functions/src/api/index.ts ``` สิ่งนี้มีประโยชน์หากมีส่วนหนึ่งของโค้ดเบสที่คุณไม่ได้ดำเนินการ --- ### เพิ่มคุณสมบัติ คุณสามารถขอให้ OpenCode เพิ่มคุณสมบัติใหม่ให้กับโครงการของคุณได้ แม้ว่าเราจะแนะนำให้ขอให้สร้างแผนก่อนก็ตาม 1. **สร้างแผน** OpenCode มีโหมด _Plan_ ที่ปิดการใช้งานความสามารถในการเปลี่ยนแปลงและ แนะนำ _how_ ว่าจะใช้งานฟีเจอร์นี้แทน เปลี่ยนไปใช้ปุ่ม **Tab** คุณจะเห็นตัวบ่งชี้นี้ที่มุมขวาล่าง ```bash frame="none" title="Switch to Plan mode" ``` ตอนนี้เรามาอธิบายสิ่งที่เราต้องการให้ทำ ```txt frame="none" When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. ``` คุณต้องการให้รายละเอียด OpenCode เพียงพอเพื่อทำความเข้าใจสิ่งที่คุณต้องการ มันช่วยได้ เพื่อพูดคุยเหมือนคุณกำลังพูดคุยกับนักพัฒนารุ่นน้องในทีมของคุณ :::tip ให้บริบทและตัวอย่างมากมายแก่ OpenCode เพื่อช่วยให้เข้าใจสิ่งที่คุณ ต้องการ. ::: 2. **ทบทวนแผน** เมื่อมีแผนแล้ว คุณสามารถให้ข้อเสนอแนะหรือเพิ่มรายละเอียดเพิ่มเติมได้ ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. ``` :::tip ลากและวางรูปภาพลงในเทอร์มินัลเพื่อเพิ่มลงในพรอมต์ ::: OpenCode สามารถสแกนรูปภาพที่คุณให้มาและเพิ่มลงในข้อความแจ้งได้ คุณสามารถ ทำได้โดยลากและวางรูปภาพลงในเทอร์มินัล 3. **สร้างฟีเจอร์** เมื่อคุณรู้สึกพอใจกับแผนแล้ว ให้เปลี่ยนกลับเป็น _Build mode_ ภายใน กดปุ่ม **Tab** อีกครั้ง ```bash frame="none" ``` และขอให้ทำการเปลี่ยนแปลง ```bash frame="none" Sounds good! Go ahead and make the changes. ``` --- ### ทำการเปลี่ยนแปลง หากต้องการการเปลี่ยนแปลงที่ตรงไปตรงมามากขึ้น คุณสามารถขอให้ OpenCode สร้างมันโดยตรงได้ โดยไม่ต้องทบทวนแผนก่อน ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" We need to add authentication to the /settings route. Take a look at how this is handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` คุณต้องการให้แน่ใจว่าคุณให้รายละเอียดในปริมาณที่เหมาะสมเพื่อให้ OpenCode ดำเนินการได้ถูกต้อง การเปลี่ยนแปลง --- ### เลิกทำการเปลี่ยนแปลง สมมติว่าคุณขอให้ OpenCode ทำการเปลี่ยนแปลงบางอย่าง ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` แต่คุณก็รู้ว่ามันไม่ใช่สิ่งที่คุณต้องการ คุณ **สามารถยกเลิก** การเปลี่ยนแปลงได้ โดยใช้คำสั่ง `/undo` ```bash frame="none" /undo ``` OpenCode จะคืนค่าการเปลี่ยนแปลงที่คุณทำและแสดงข้อความต้นฉบับของคุณ อีกครั้ง. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` จากที่นี่ คุณสามารถปรับแต่งข้อความแจ้งและขอให้ OpenCode ลองอีกครั้ง :::tip คุณสามารถเรียกใช้ `/undo` ได้หลายครั้งเพื่อเลิกทำการเปลี่ยนแปลงหลายรายการ ::: หรือคุณสามารถ **สามารถทำซ้ำ** การเปลี่ยนแปลงโดยใช้คำสั่ง `/redo` ```bash frame="none" /redo ``` --- ## แบ่งปัน การสนทนาที่คุณมีกับ OpenCode สามารถ [แชร์กับคุณได้ ทีมงาน](/docs/share) ```bash frame="none" /share ``` การดำเนินการนี้จะสร้างลิงก์ไปยังการสนทนาปัจจุบันและคัดลอกไปยังคลิปบอร์ดของคุณ :::note การสนทนาจะไม่ถูกแชร์โดยค่าเริ่มต้น ::: นี่คือ [ตัวอย่างการสนทนา](https://opencode.ai/s/4XP1fce5) กับ OpenCode --- ## ปรับแต่ง แค่นั้นแหละ! ตอนนี้คุณเป็นมืออาชีพในการใช้ OpenCode แล้ว หากต้องการทำให้เป็นของคุณเอง เราขอแนะนำให้ [เลือกธีม](/docs/themes), [ปรับแต่งปุ่มลัด](/docs/keybinds), [กำหนดค่าตัวจัดรูปแบบโค้ด](/docs/formatters), [สร้างคำสั่งที่กำหนดเอง](/docs/commands) หรือลองใช้ [การกำหนดค่า OpenCode](/docs/config)