Skip to content

Commit ff9e43d

Browse files
committed
Merge branch 'dev' of github.com:sst/opencode into font_settings
2 parents 6c1ee71 + 4e41ca7 commit ff9e43d

File tree

120 files changed

+4175
-971
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+4175
-971
lines changed

.github/workflows/publish.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,9 @@ permissions:
2929
packages: write
3030

3131
jobs:
32-
test:
33-
if: github.event_name == 'workflow_dispatch'
34-
uses: ./.github/workflows/test.yml
3532
publish:
36-
needs: test
3733
runs-on: blacksmith-4vcpu-ubuntu-2404
38-
if: always() && github.repository == 'anomalyco/opencode' && (github.event_name != 'workflow_dispatch' || needs.test.result == 'success')
34+
if: github.repository == 'anomalyco/opencode'
3935
steps:
4036
- uses: actions/checkout@v3
4137
with:

.github/workflows/test.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ on:
66
- dev
77
pull_request:
88
workflow_dispatch:
9-
workflow_call:
109
jobs:
1110
test:
1211
name: test (${{ matrix.settings.name }})

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
<a href="README.ru.md">Русский</a> |
3030
<a href="README.ar.md">العربية</a> |
3131
<a href="README.no.md">Norsk</a> |
32-
<a href="README.br.md">Português (Brasil)</a>
32+
<a href="README.br.md">Português (Brasil)</a> |
33+
<a href="README.th.md">ไทย</a>
3334
</p>
3435

3536
[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)

README.th.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
<p align="center">
2+
<a href="https://opencode.ai">
3+
<picture>
4+
<source srcset="packages/console/app/src/asset/logo-ornate-dark.svg" media="(prefers-color-scheme: dark)">
5+
<source srcset="packages/console/app/src/asset/logo-ornate-light.svg" media="(prefers-color-scheme: light)">
6+
<img src="packages/console/app/src/asset/logo-ornate-light.svg" alt="OpenCode logo">
7+
</picture>
8+
</a>
9+
</p>
10+
<p align="center">เอเจนต์การเขียนโค้ดด้วย AI แบบโอเพนซอร์ส</p>
11+
<p align="center">
12+
<a href="https://opencode.ai/discord"><img alt="Discord" src="https://img.shields.io/discord/1391832426048651334?style=flat-square&label=discord" /></a>
13+
<a href="https://www.npmjs.com/package/opencode-ai"><img alt="npm" src="https://img.shields.io/npm/v/opencode-ai?style=flat-square" /></a>
14+
<a href="https://github.com/anomalyco/opencode/actions/workflows/publish.yml"><img alt="สถานะการสร้าง" src="https://img.shields.io/github/actions/workflow/status/anomalyco/opencode/publish.yml?style=flat-square&branch=dev" /></a>
15+
</p>
16+
17+
<p align="center">
18+
<a href="README.md">English</a> |
19+
<a href="README.zh.md">简体中文</a> |
20+
<a href="README.zht.md">繁體中文</a> |
21+
<a href="README.ko.md">한국어</a> |
22+
<a href="README.de.md">Deutsch</a> |
23+
<a href="README.es.md">Español</a> |
24+
<a href="README.fr.md">Français</a> |
25+
<a href="README.it.md">Italiano</a> |
26+
<a href="README.da.md">Dansk</a> |
27+
<a href="README.ja.md">日本語</a> |
28+
<a href="README.pl.md">Polski</a> |
29+
<a href="README.ru.md">Русский</a> |
30+
<a href="README.ar.md">العربية</a> |
31+
<a href="README.no.md">Norsk</a> |
32+
<a href="README.br.md">Português (Brasil)</a> |
33+
<a href="README.th.md">ไทย</a>
34+
</p>
35+
36+
[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai)
37+
38+
---
39+
40+
### การติดตั้ง
41+
42+
```bash
43+
# YOLO
44+
curl -fsSL https://opencode.ai/install | bash
45+
46+
# ตัวจัดการแพ็กเกจ
47+
npm i -g opencode-ai@latest # หรือ bun/pnpm/yarn
48+
scoop install opencode # Windows
49+
choco install opencode # Windows
50+
brew install anomalyco/tap/opencode # macOS และ Linux (แนะนำ อัปเดตเสมอ)
51+
brew install opencode # macOS และ Linux (brew formula อย่างเป็นทางการ อัปเดตน้อยกว่า)
52+
paru -S opencode-bin # Arch Linux
53+
mise use -g opencode # ระบบปฏิบัติการใดก็ได้
54+
nix run nixpkgs#opencode # หรือ github:anomalyco/opencode สำหรับสาขาพัฒนาล่าสุด
55+
```
56+
57+
> [!TIP]
58+
> ลบเวอร์ชันที่เก่ากว่า 0.1.x ก่อนติดตั้ง
59+
60+
### แอปพลิเคชันเดสก์ท็อป (เบต้า)
61+
62+
OpenCode มีให้ใช้งานเป็นแอปพลิเคชันเดสก์ท็อป ดาวน์โหลดโดยตรงจาก [หน้ารุ่น](https://github.com/anomalyco/opencode/releases) หรือ [opencode.ai/download](https://opencode.ai/download)
63+
64+
| แพลตฟอร์ม | ดาวน์โหลด |
65+
| --------------------- | ------------------------------------- |
66+
| macOS (Apple Silicon) | `opencode-desktop-darwin-aarch64.dmg` |
67+
| macOS (Intel) | `opencode-desktop-darwin-x64.dmg` |
68+
| Windows | `opencode-desktop-windows-x64.exe` |
69+
| Linux | `.deb`, `.rpm`, หรือ AppImage |
70+
71+
```bash
72+
# macOS (Homebrew)
73+
brew install --cask opencode-desktop
74+
# Windows (Scoop)
75+
scoop bucket add extras; scoop install extras/opencode-desktop
76+
```
77+
78+
#### ไดเรกทอรีการติดตั้ง
79+
80+
สคริปต์การติดตั้งจะใช้ลำดับความสำคัญตามเส้นทางการติดตั้ง:
81+
82+
1. `$OPENCODE_INSTALL_DIR` - ไดเรกทอรีการติดตั้งที่กำหนดเอง
83+
2. `$XDG_BIN_DIR` - เส้นทางที่สอดคล้องกับ XDG Base Directory Specification
84+
3. `$HOME/bin` - ไดเรกทอรีไบนารีผู้ใช้มาตรฐาน (หากมีอยู่หรือสามารถสร้างได้)
85+
4. `$HOME/.opencode/bin` - ค่าสำรองเริ่มต้น
86+
87+
```bash
88+
# ตัวอย่าง
89+
OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash
90+
XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash
91+
```
92+
93+
### เอเจนต์
94+
95+
OpenCode รวมเอเจนต์ในตัวสองตัวที่คุณสามารถสลับได้ด้วยปุ่ม `Tab`
96+
97+
- **build** - เอเจนต์เริ่มต้น มีสิทธิ์เข้าถึงแบบเต็มสำหรับงานพัฒนา
98+
- **plan** - เอเจนต์อ่านอย่างเดียวสำหรับการวิเคราะห์และการสำรวจโค้ด
99+
- ปฏิเสธการแก้ไขไฟล์โดยค่าเริ่มต้น
100+
- ขอสิทธิ์ก่อนเรียกใช้คำสั่ง bash
101+
- เหมาะสำหรับสำรวจโค้ดเบสที่ไม่คุ้นเคยหรือวางแผนการเปลี่ยนแปลง
102+
103+
นอกจากนี้ยังมีเอเจนต์ย่อย **general** สำหรับการค้นหาที่ซับซ้อนและงานหลายขั้นตอน
104+
ใช้ภายในและสามารถเรียกใช้ได้โดยใช้ `@general` ในข้อความ
105+
106+
เรียนรู้เพิ่มเติมเกี่ยวกับ [เอเจนต์](https://opencode.ai/docs/agents)
107+
108+
### เอกสารประกอบ
109+
110+
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า OpenCode [**ไปที่เอกสารของเรา**](https://opencode.ai/docs)
111+
112+
### การมีส่วนร่วม
113+
114+
หากคุณสนใจที่จะมีส่วนร่วมใน OpenCode โปรดอ่าน [เอกสารการมีส่วนร่วม](./CONTRIBUTING.md) ก่อนส่ง Pull Request
115+
116+
### การสร้างบน OpenCode
117+
118+
หากคุณทำงานในโปรเจกต์ที่เกี่ยวข้องกับ OpenCode และใช้ "opencode" เป็นส่วนหนึ่งของชื่อ เช่น "opencode-dashboard" หรือ "opencode-mobile" โปรดเพิ่มหมายเหตุใน README ของคุณเพื่อชี้แจงว่าไม่ได้สร้างโดยทีม OpenCode และไม่ได้เกี่ยวข้องกับเราในทางใด
119+
120+
### คำถามที่พบบ่อย
121+
122+
#### ต่างจาก Claude Code อย่างไร?
123+
124+
คล้ายกับ Claude Code มากในแง่ความสามารถ นี่คือความแตกต่างหลัก:
125+
126+
- โอเพนซอร์ส 100%
127+
- ไม่ผูกมัดกับผู้ให้บริการใดๆ แม้ว่าเราจะแนะนำโมเดลที่เราจัดหาให้ผ่าน [OpenCode Zen](https://opencode.ai/zen) OpenCode สามารถใช้กับ Claude, OpenAI, Google หรือแม้กระทั่งโมเดลในเครื่องได้ เมื่อโมเดลพัฒนาช่องว่างระหว่างพวกมันจะปิดลงและราคาจะลดลง ดังนั้นการไม่ผูกมัดกับผู้ให้บริการจึงสำคัญ
128+
- รองรับ LSP ใช้งานได้ทันทีหลังการติดตั้งโดยไม่ต้องปรับแต่งหรือเปลี่ยนแปลงฟังก์ชันการทำงานใด ๆ
129+
- เน้นที่ TUI OpenCode สร้างโดยผู้ใช้ neovim และผู้สร้าง [terminal.shop](https://terminal.shop) เราจะผลักดันขีดจำกัดของสิ่งที่เป็นไปได้ในเทอร์มินัล
130+
- สถาปัตยกรรมไคลเอนต์/เซิร์ฟเวอร์ ตัวอย่างเช่น อาจอนุญาตให้ OpenCode ทำงานบนคอมพิวเตอร์ของคุณ ในขณะที่คุณสามารถขับเคลื่อนจากระยะไกลผ่านแอปมือถือ หมายความว่า TUI frontend เป็นหนึ่งในไคลเอนต์ที่เป็นไปได้เท่านั้น
131+
132+
---
133+
134+
**ร่วมชุมชนของเรา** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)

STATS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,4 @@
213213
| 2026-01-25 | 6,639,082 (+268,063) | 2,187,853 (+30,983) | 8,826,935 (+299,046) |
214214
| 2026-01-26 | 6,941,620 (+302,538) | 2,232,115 (+44,262) | 9,173,735 (+346,800) |
215215
| 2026-01-27 | 7,208,093 (+266,473) | 2,280,762 (+48,647) | 9,488,855 (+315,120) |
216+
| 2026-01-28 | 7,489,370 (+281,277) | 2,314,849 (+34,087) | 9,804,219 (+315,364) |

bun.lock

Lines changed: 16 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nix/hashes.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"nodeModules": {
3-
"x86_64-linux": "sha256-AkI3guNjnE+bLZQVfzm0z14UENOECv2QBqMo5Lzkvt8=",
4-
"aarch64-linux": "sha256-dBfdyVTqW+fBZKCxC9Ld+1m3cP+nIbS6UDo0tUfPOSk=",
5-
"aarch64-darwin": "sha256-tOw31AMnHkW2cEDi+iqT3P93lU3SiMve26TEIqPz97k=",
6-
"x86_64-darwin": "sha256-wL/DmdZmxCmh+r4dsS1XGXuj8VPwR4pUqy5VIA76jl0="
3+
"x86_64-linux": "sha256-9oI1gekRbjY6L8VwlkLdPty/9rCxC20EJlESkazEX8Y=",
4+
"aarch64-linux": "sha256-vn+eCVanOSNfjyqHRJn4VdqbpdMoBFm49REuIkByAio=",
5+
"aarch64-darwin": "sha256-0dMP5WbqDq3qdLRrKfmCjXz2kUDjTttGTqD3v6PDbkg=",
6+
"x86_64-darwin": "sha256-9dEWluRXY7RTPdSEhhPsDJeGo+qa3V8dqh6n6WsLeGw="
77
}
88
}

packages/app/e2e/file-tree.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import { test, expect } from "./fixtures"
33
test("file tree can expand folders and open a file", async ({ page, gotoSession }) => {
44
await gotoSession()
55

6-
await page.getByRole("button", { name: "Toggle file tree" }).click()
7-
6+
const toggle = page.getByRole("button", { name: "Toggle file tree" })
87
const treeTabs = page.locator('[data-component="tabs"][data-variant="pill"][data-scope="filetree"]')
8+
9+
if ((await toggle.getAttribute("aria-expanded")) !== "true") await toggle.click()
910
await expect(treeTabs).toBeVisible()
1011

1112
await treeTabs.locator('[data-slot="tabs-trigger"]').nth(1).click()

packages/app/e2e/titlebar-history.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ test("titlebar back/forward navigates between sessions", async ({ page, slug, sd
2929
await expect(page).toHaveURL(new RegExp(`/${slug}/session/${two.id}(?:\\?|#|$)`))
3030
await expect(page.locator(promptSelector)).toBeVisible()
3131

32-
const back = page.getByRole("button", { name: "Go back" })
33-
const forward = page.getByRole("button", { name: "Go forward" })
32+
const back = page.getByRole("button", { name: "Back" })
33+
const forward = page.getByRole("button", { name: "Forward" })
3434

3535
await expect(back).toBeVisible()
3636
await expect(back).toBeEnabled()

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.1.36",
3+
"version": "1.1.40",
44
"description": "",
55
"type": "module",
66
"exports": {

0 commit comments

Comments
 (0)