Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

### Added

- Message editing & checkpoint restore
- Reasoning / thinking display
- Shell command execution
- File changes diff view
- Session fork
- Child session navigation (subtask)
- Agent mention (`@` mention)
- Session sharing
- Undo / Redo
- Settings panel
- Keyboard navigation for inline popups (Tab / Arrow keys)

### Changed

- Replace hardcoded SVG icons with react-icons/vsc

## [0.1.0] - 2026-02-24

### Added
Expand All @@ -19,3 +39,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- Context compression indicator
- Todo display
- i18n support (English, Japanese)

[Unreleased]: https://github.com/ktmage/OpenCodeGUI/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/ktmage/OpenCodeGUI/releases/tag/v0.1.0
18 changes: 14 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This project itself is developed primarily through AI-assisted coding, and we we

- Node.js v22+
- npm
- [OpenCode](https://github.com/opencode-ai/opencode) installed with LLM provider authentication configured
- [OpenCode](https://github.com/anomalyco/opencode) installed with LLM provider authentication configured

#### Setup

Expand Down Expand Up @@ -75,7 +75,12 @@ npm run check:fix

### Testing

When your change affects behavior, add or update scenario tests. Follow the existing test patterns in `webview/__tests__/scenarios/`.
When your change affects behavior, add or update tests. Follow existing test patterns:

- **Scenario tests:** `webview/__tests__/scenarios/`
- **Component unit tests:** `webview/__tests__/components/`
- **Hook unit tests:** `webview/__tests__/hooks/`
- **Utility tests:** `webview/__tests__/utils/`

### Review Process

Expand All @@ -102,7 +107,7 @@ By submitting a pull request, you agree that your contributions are licensed und

- Node.js v22+
- npm
- [OpenCode](https://github.com/opencode-ai/opencode) がインストール済みで、LLM プロバイダの認証が完了していること
- [OpenCode](https://github.com/anomalyco/opencode) がインストール済みで、LLM プロバイダの認証が完了していること

#### セットアップ

Expand Down Expand Up @@ -153,7 +158,12 @@ npm run check:fix

### テスト

動作に影響する変更の場合は、シナリオテストを追加・更新してください。`webview/__tests__/scenarios/` にある既存のテストパターンに習って書いてください。
動作に影響する変更の場合は、テストを追加・更新してください。既存のテストパターンに習って書いてください:

- **シナリオテスト:** `webview/__tests__/scenarios/`
- **コンポーネント単体テスト:** `webview/__tests__/components/`
- **フック単体テスト:** `webview/__tests__/hooks/`
- **ユーティリティテスト:** `webview/__tests__/utils/`

### レビュー体制

Expand Down
44 changes: 34 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenCodeGUI

An unofficial VS Code sidebar chat interface for [OpenCode](https://github.com/opencode-ai/opencode).
An unofficial VS Code sidebar chat interface for [OpenCode](https://github.com/anomalyco/opencode).

OpenCode の非公式 VS Code サイドバーチャットインターフェース。

Expand Down Expand Up @@ -37,16 +37,25 @@ Use all OpenCode features from a familiar sidebar chat UI.
- Markdown rendering
- Tool call collapsible display
- Permission approval UI (Allow / Once / Deny)
- Session management (create, switch, delete)
- Session management (create, switch, fork, delete)
- Message editing & checkpoint restore
- Model selection
- File context attachment
- File changes diff view
- Shell command execution
- Context compression indicator
- Reasoning / thinking display
- Todo display
- Undo / Redo
- Session sharing
- Agent mention (`@` mention)
- Child session navigation (subtask)
- Settings panel
- i18n support (English, Japanese)

### Requirements

- [OpenCode](https://github.com/opencode-ai/opencode) installed
- [OpenCode](https://github.com/anomalyco/opencode) installed
- LLM provider authentication configured in OpenCode

### Installation
Expand Down Expand Up @@ -118,6 +127,11 @@ webview/ # Webview (Browser, React)
vscode-api.ts # VS Code Webview API wrapper
styles.css # Styles using VS Code theme variables
components/ # React components
hooks/ # Custom React hooks
contexts/ # React Context providers
locales/ # i18n locale files
utils/ # Utility functions
__tests__/ # Tests (unit, scenario)

dist/ # Build output (not tracked by git)
extension.js # Extension bundle
Expand Down Expand Up @@ -163,16 +177,25 @@ OpenCode の全機能をサイドバーのチャット UI から操作できま
- Markdown レンダリング
- ツールコールの折りたたみ表示
- パーミッション承認 UI(Allow / Once / Deny)
- セッション管理(作成、切替、削除)
- セッション管理(作成、切替、フォーク、削除)
- メッセージ編集とチェックポイント復元
- モデル選択
- ファイルコンテキスト添付
- ファイル変更差分表示
- シェルコマンド実行
- コンテキスト圧縮インジケーター
- 推論(思考過程)表示
- Todo 表示
- Undo / Redo
- セッション共有
- エージェントメンション(`@` メンション)
- 子セッションナビゲーション(サブタスク)
- 設定パネル
- 多言語対応(英語、日本語)

### 必要条件

- [OpenCode](https://github.com/opencode-ai/opencode) がインストール済みであること
- [OpenCode](https://github.com/anomalyco/opencode) がインストール済みであること
- OpenCode 側で LLM プロバイダの認証が完了していること

### インストール
Expand Down Expand Up @@ -238,16 +261,17 @@ src/ # Extension Host (Node.js)
opencode-client.ts # OpenCode サーバー接続
chat-view-provider.ts # Webview パネル & メッセージングプロトコル

webview/ # Webview (ブラウザ, React)
webview/ # Webview (Browser, React)
main.tsx # React エントリーポイント
App.tsx # 状態管理 & SSE イベントハンドリング
vscode-api.ts # VS Code Webview API ラッパー
styles.css # VS Code テーマ変数を使ったスタイル
components/ # React コンポーネント

dist/ # ビルド出力(git 管理外)
extension.js # Extension バンドル
webview/ # Webview バンドル
hooks/ # カスタム React フック
contexts/ # React Context プロバイダー
locales/ # i18n ロケールファイル
utils/ # ユーティリティ関数
__tests__/ # テスト(単体、シナリオ)

esbuild.mjs # Extension ビルド設定
vite.config.ts # Webview ビルド設定
Expand Down
32 changes: 32 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,35 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

---

## react-icons (VS Code Icons subset)

- **Version:** 5.5.0
- **License:** MIT
- **Source:** https://github.com/react-icons/react-icons

Copyright 2018 kamijin_fanta <kamijin@live.jp>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

This project uses only the VS Code Icons (vsc prefix) from react-icons.
VS Code Icons are sourced from [vscode-codicons](https://github.com/microsoft/vscode-codicons)
and licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).
4 changes: 3 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/dompurify": "^3.0.5",
"@types/node": "^22.0.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
Expand All @@ -92,7 +93,6 @@
},
"dependencies": {
"@opencode-ai/sdk": "^1.2.10",
"@types/dompurify": "^3.0.5",
"dompurify": "^3.3.1",
"react-icons": "^5.5.0"
}
Expand Down
2 changes: 1 addition & 1 deletion src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export async function activate(context: vscode.ExtensionContext) {
if (isNotFound) {
vscode.window.showWarningMessage(
vscode.l10n.t(
'OpenCodeGUI: "opencode" command not found. Please install OpenCode first: https://github.com/opencode-ai/opencode',
'OpenCodeGUI: "opencode" command not found. Please install OpenCode first: https://github.com/anomalyco/opencode',
),
);
return;
Expand Down