Skip to content

Commit 6ee761d

Browse files
committed
feat(config): add user reviews to docs and improve Antigravity provider config
- Add user reviews section to READMEs (EN, KO, JA, ZH-CN) - Update Antigravity request.ts: change default model from gemini-3-pro-preview to gemini-3-pro-high - Enhance config-manager.ts: add full model specs (name, limit, modalities) to provider config - Add comprehensive test suite for config-manager (config-manager.test.ts) 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
1 parent fd8e62f commit 6ee761d

File tree

7 files changed

+174
-17
lines changed

7 files changed

+174
-17
lines changed

README.ja.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,29 @@ OpenCode が Debian / ArchLinux だとしたら、Oh My OpenCode は Ubuntu / [O
843843

844844
*素晴らしいヒーロー画像を作成してくれた [@junhoyeo](https://github.com/junhoyeo) に感謝します*
845845

846+
## ユーザーレビュー
847+
848+
> "人間が3ヶ月かかる仕事をClaude Codeが7日でやるなら、Sisyphusは1時間でやります"
849+
> -- B, Quant Researcher
850+
851+
> "Oh My Opencodeを使って、たった1日で8000個のeslint警告を解消しました"
852+
> -- Jacob Ferrari, from [X](https://x.com/jacobferrari_/status/2003258761952289061)
853+
854+
> "@yeon_gyu_kimを説得できるなら雇うべきです。彼はopencodeに革命を起こしました"
855+
> -- [Sam Altmanの投稿へ](https://x.com/mysticaltech/status/2001858758608376079)
856+
857+
> "これをコアに取り入れて彼を採用すべきです。マジで。本当に、本当に、本当に良いです"
858+
> -- Henning Kilset, from X
859+
860+
> "やばい、これマジで本物だ @androolloyd oh my opencode 最高すぎる"
861+
> -- z80.eth, from [X](https://x.com/0xz80/status/2001815226505924791)
862+
863+
> "oh-my-opencodeを使ってください、もう戻れませんよ"
864+
> -- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503)
865+
866+
> "Oh My Opencodeは頂点に立っています、敵はいません"
867+
> -- [RyanOnThePath](https://x.com/RyanOnThePath/status/2001438321252118548)
868+
846869
## こちらの企業の専門家にご愛用いただいています
847870

848871
- [Indent](https://indentcorp.com)

README.ko.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,29 @@ OpenCode 를 사용하여 이 프로젝트의 99% 를 작성했습니다. 기능
837837

838838
*멋진 히어로 이미지를 만들어주신 히어로 [@junhoyeo](https://github.com/junhoyeo) 께 감사드립니다*
839839

840+
## 사용자 후기
841+
842+
> "인간이 3달 동안 할 일을 claude code 가 7일만에 해준다면, 시지푸스는 1시간만에 해준다"
843+
> -- B, Quant Researcher
844+
845+
> "Oh My Opencode를 사용해서, 단 하루만에 8000개의 eslint 경고를 해결했습니다"
846+
> -- Jacob Ferrari, from [X](https://x.com/jacobferrari_/status/2003258761952289061)
847+
848+
> "@yeon_gyu_kim 을 설득할 수 있다면 고용하세요, 이 사람은 opencode를 혁신했습니다."
849+
> -- [to Sam Altman's post](https://x.com/mysticaltech/status/2001858758608376079)
850+
851+
> "이걸 코어에 넣고 그를 채용해야 합니다. 진심으로요. 이건 정말, 정말, 정말 좋습니다."
852+
> -- Henning Kilset, from X
853+
854+
> "와 미쳤다 @androolloyd 이건 진짜다 oh my opencode 개쩐다"
855+
> -- z80.eth, from [X](https://x.com/0xz80/status/2001815226505924791)
856+
857+
> "oh-my-opencode를 쓰세요, 절대 돌아갈 수 없을 겁니다"
858+
> -- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503)
859+
860+
> "Oh My Opencode는 독보적입니다, 경쟁자가 없습니다"
861+
> -- [RyanOnThePath](https://x.com/RyanOnThePath/status/2001438321252118548)
862+
840863
## 다음 기업의 능력있는 개인들이 사용하고 있습니다
841864

842865
- [Indent](https://indentcorp.com)

README.md

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ To remove oh-my-opencode:
438438
- **oracle** (`openai/gpt-5.2`): Architecture, code review, strategy. Uses GPT-5.2 for its stellar logical reasoning and deep analysis. Inspired by AmpCode.
439439
- **librarian** (`anthropic/claude-sonnet-4-5`): Multi-repo analysis, doc lookup, implementation examples. Uses Claude Sonnet 4.5 for deep codebase understanding and GitHub research with evidence-based answers. Inspired by AmpCode.
440440
- **explore** (`opencode/grok-code`): Fast codebase exploration and pattern matching. Claude Code uses Haiku; we use Grok—it's free, blazing fast, and plenty smart for file traversal. Inspired by Claude Code.
441-
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): A designer turned developer. Builds gorgeous UIs. Gemini excels at creative, beautiful UI code.
442-
- **document-writer** (`google/gemini-3-pro-preview`): Technical writing expert. Gemini is a wordsmith—writes prose that flows.
441+
- **frontend-ui-ux-engineer** (`google/gemini-3-pro-high`): A designer turned developer. Builds gorgeous UIs. Gemini excels at creative, beautiful UI code.
442+
- **document-writer** (`google/gemini-3-flash`): Technical writing expert. Gemini is a wordsmith—writes prose that flows.
443443
- **multimodal-looker** (`google/gemini-3-flash`): Visual content specialist. Analyzes PDFs, images, diagrams to extract information.
444444

445445
The main agent invokes these automatically, but you can call them explicitly:
@@ -909,6 +909,29 @@ I have no affiliation with any project or model mentioned here. This is purely p
909909

910910
*Special thanks to [@junhoyeo](https://github.com/junhoyeo) for this amazing hero image.*
911911

912+
## Reviews
913+
914+
> "If Claude Code does in 7 days what human does in 3 months, Sisyphus does in 1 hour"
915+
> -- B, Quant Researcher
916+
917+
> "Knocked out 8000 eslint warnings with Oh My Opencode, just in a day"
918+
> -- Jacob Ferrari, from [X](https://x.com/jacobferrari_/status/2003258761952289061)
919+
920+
> "Hire @yeon_gyu_kim if you can convince him, this dude has revolutionized opencode."
921+
> -- [to Sam Altman's post](https://x.com/mysticaltech/status/2001858758608376079)
922+
923+
> "You guys should pull this into core and recruit him. Seriously. It's really, really, really good."
924+
> -- Henning Kilset, from X
925+
926+
> "ok yeah holy shit @androolloyd this thing is legit oh my opencode is sick"
927+
> -- z80.eth, from [X](https://x.com/0xz80/status/2001815226505924791)
928+
929+
> "use oh-my-opencode, you will never go back"
930+
> -- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503)
931+
932+
> "Oh My Opencode is king of the hill and has no contenders"
933+
> -- [RyanOnThePath](https://x.com/RyanOnThePath/status/2001438321252118548)
934+
912935
## Loved by professionals at
913936

914937
- [Indent](https://indentcorp.com)

README.zh-cn.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,6 @@ Oh My OpenCode 送你重构工具(重命名、代码操作)。
797797

798798
**警告**:这些功能是实验性的,可能会导致意外行为。只有在理解其影响的情况下才启用。
799799

800-
801800
## 作者的话
802801

803802
装个 Oh My OpenCode 试试。
@@ -843,6 +842,29 @@ Oh My OpenCode 送你重构工具(重命名、代码操作)。
843842

844843
*感谢 [@junhoyeo](https://github.com/junhoyeo) 制作了这张超帅的 hero 图。*
845844

845+
## 用户评价
846+
847+
> "如果 Claude Code 能在 7 天内完成人类 3 个月的工作,那么 Sisyphus 只需要 1 小时"
848+
> -- B, Quant Researcher
849+
850+
> "只用了一天,就用 Oh My Opencode 干掉了 8000 个 eslint 警告"
851+
> -- Jacob Ferrari, from [X](https://x.com/jacobferrari_/status/2003258761952289061)
852+
853+
> "如果你能说服 @yeon_gyu_kim,就雇佣他吧,这家伙彻底彻底改变了 opencode"
854+
> -- [回复 Sam Altman 的帖子](https://x.com/mysticaltech/status/2001858758608376079)
855+
856+
> "你们应该把它合并到核心代码里并聘用他。认真的。这真的、真的、真的很好"
857+
> -- Henning Kilset, from X
858+
859+
> "哇靠 @androolloyd 这玩意儿是真的,oh my opencode 太强了"
860+
> -- z80.eth, from [X](https://x.com/0xz80/status/2001815226505924791)
861+
862+
> "用了 oh-my-opencode,你就回不去了"
863+
> -- [d0t3ch](https://x.com/d0t3ch/status/2001685618200580503)
864+
865+
> "Oh My Opencode 独孤求败,没有对手"
866+
> -- [RyanOnThePath](https://x.com/RyanOnThePath/status/2001438321252118548)
867+
846868
## 以下企业的专业人士都在用
847869

848870
- [Indent](https://indentcorp.com)

src/auth/antigravity/request.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
*/
66

77
import {
8-
ANTIGRAVITY_HEADERS,
9-
ANTIGRAVITY_ENDPOINT_FALLBACKS,
10-
ANTIGRAVITY_API_VERSION,
11-
SKIP_THOUGHT_SIGNATURE_VALIDATOR,
8+
ANTIGRAVITY_API_VERSION,
9+
ANTIGRAVITY_ENDPOINT_FALLBACKS,
10+
ANTIGRAVITY_HEADERS,
11+
SKIP_THOUGHT_SIGNATURE_VALIDATOR,
1212
} from "./constants"
1313
import type { AntigravityRequestBody } from "./types"
1414

@@ -262,7 +262,7 @@ export function transformRequest(options: TransformRequestOptions): TransformedR
262262
} = options
263263

264264
const effectiveModel =
265-
modelName || extractModelFromBody(body) || extractModelFromUrl(url) || "gemini-3-pro-preview"
265+
modelName || extractModelFromBody(body) || extractModelFromUrl(url) || "gemini-3-pro-high"
266266

267267
const streaming = isStreamingRequest(url, body)
268268
const action = streaming ? "streamGenerateContent" : "generateContent"

src/cli/config-manager.test.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { describe, expect, test } from "bun:test"
2+
3+
import { ANTIGRAVITY_PROVIDER_CONFIG } from "./config-manager"
4+
5+
describe("config-manager ANTIGRAVITY_PROVIDER_CONFIG", () => {
6+
test("Gemini models include full spec (limit + modalities)", () => {
7+
const google = (ANTIGRAVITY_PROVIDER_CONFIG as any).google
8+
expect(google).toBeTruthy()
9+
10+
const models = google.models as Record<string, any>
11+
expect(models).toBeTruthy()
12+
13+
const required = [
14+
"gemini-3-pro-high",
15+
"gemini-3-pro-medium",
16+
"gemini-3-pro-low",
17+
"gemini-3-flash",
18+
"gemini-3-flash-lite",
19+
]
20+
21+
for (const key of required) {
22+
const model = models[key]
23+
expect(model).toBeTruthy()
24+
expect(typeof model.name).toBe("string")
25+
expect(model.name.includes("(Antigravity)")).toBe(true)
26+
27+
expect(model.limit).toBeTruthy()
28+
expect(typeof model.limit.context).toBe("number")
29+
expect(typeof model.limit.output).toBe("number")
30+
31+
expect(model.modalities).toBeTruthy()
32+
expect(Array.isArray(model.modalities.input)).toBe(true)
33+
expect(Array.isArray(model.modalities.output)).toBe(true)
34+
}
35+
})
36+
})

src/cli/config-manager.ts

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs"
2-
import { join } from "node:path"
1+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"
32
import { homedir } from "node:os"
4-
import type { ConfigMergeResult, InstallConfig, DetectedConfig } from "./types"
3+
import { join } from "node:path"
4+
import type { ConfigMergeResult, DetectedConfig, InstallConfig } from "./types"
55

66
const OPENCODE_CONFIG_DIR = join(homedir(), ".config", "opencode")
77
const OPENCODE_JSON = join(OPENCODE_CONFIG_DIR, "opencode.json")
@@ -359,16 +359,46 @@ export async function runBunInstall(): Promise<boolean> {
359359
}
360360
}
361361

362-
const ANTIGRAVITY_PROVIDER_CONFIG = {
362+
export const ANTIGRAVITY_PROVIDER_CONFIG = {
363363
google: {
364364
name: "Google",
365365
api: "antigravity",
366+
// NOTE: opencode-antigravity-auth expects full model specs (name/limit/modalities).
367+
// If these are incomplete, models may appear but fail at runtime (e.g. 404).
366368
models: {
367-
"gemini-3-pro-high": { name: "Gemini 3 Pro (High)", thinking: true, attachment: true },
368-
"gemini-3-pro-medium": { name: "Gemini 3 Pro (Medium)", thinking: true, attachment: true },
369-
"gemini-3-pro-low": { name: "Gemini 3 Pro (Low)", thinking: true, attachment: true },
370-
"gemini-3-flash": { name: "Gemini 3 Flash", attachment: true },
371-
"gemini-3-flash-lite": { name: "Gemini 3 Flash Lite", attachment: true },
369+
"gemini-3-pro-high": {
370+
name: "Gemini 3 Pro High (Antigravity)",
371+
thinking: true,
372+
attachment: true,
373+
limit: { context: 1048576, output: 65535 },
374+
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
375+
},
376+
"gemini-3-pro-medium": {
377+
name: "Gemini 3 Pro Medium (Antigravity)",
378+
thinking: true,
379+
attachment: true,
380+
limit: { context: 1048576, output: 65535 },
381+
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
382+
},
383+
"gemini-3-pro-low": {
384+
name: "Gemini 3 Pro Low (Antigravity)",
385+
thinking: true,
386+
attachment: true,
387+
limit: { context: 1048576, output: 65535 },
388+
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
389+
},
390+
"gemini-3-flash": {
391+
name: "Gemini 3 Flash (Antigravity)",
392+
attachment: true,
393+
limit: { context: 1048576, output: 65536 },
394+
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
395+
},
396+
"gemini-3-flash-lite": {
397+
name: "Gemini 3 Flash Lite (Antigravity)",
398+
attachment: true,
399+
limit: { context: 1048576, output: 65536 },
400+
modalities: { input: ["text", "image", "pdf"], output: ["text"] },
401+
},
372402
},
373403
},
374404
}

0 commit comments

Comments
 (0)