
厳選されたサイバーセキュリティ学習リソース、CTF writeup、研究論文、そしてWebセキュリティ、エクスプロイト、OSINT、フォレンジックにわたる実践的なハンズオンスキル開発のための実践ラボのコレクション。
コードを書く前に計画を立てる、オープンソースのAI IDE。
MITライセンス · クイックスタート · Modoが追加する機能 · コントリビューション
AIコーディングツールに小さな機能が欲しいと思った。提案する方法が見つからなかった。そこで自問した:Kiro、Cursor、Windsurfのようなものを実際に作るのはどれほど難しいのだろう?
結果は思ったより難しくない。Voidエディター(VS Codeのフォーク)から始めて、短期間の開発でそれらのツールが提供する機能の約60~70%まで達成できた。本当に楽しかった。
これがModoだ。プロンプトがコードになる前に構造化された計画に変わる、スタンドアロンのデスクトップIDE。オープンソース、MITライセンス、あなたがハックできる。
以下はすべて、Voidの既存のAIチャット、インライン編集(Cmd+K)、オートコンプリート、マルチプロバイダーLLMサポート、ツール使用、MCP統合の上に構築されている。新しい部分は次の通り:
ほとんどのAIツールはプロンプト → コード。Modoはプロンプト → 要件 → 設計 → タスク → コード。
仕様は.modo/specs/<name>/に3つのマークダウンファイルとして存在する:
.modo/specs/auth-flow/
├── requirements.md # ユーザーストーリー、受け入れ基準
├── design.md # アーキテクチャ、コンポーネント、データモデル
└── tasks.md # 実装手順のチェックリスト
Cmd+Shift+SまたはセッションピッカーでSpecモードを選択して作成する。機能かバグ修正、要件優先か設計優先のワークフローを選ぶ。エージェントが各ドキュメントを埋め、あなたがレビューし、その後タスクを一つずつ実行し、完了したらチェックを入れていく。
タスクはディスクに保存される。IDEを閉じて戻っても、中断したところから再開できる。
tasks.mdを開くと、各未完了タスクの横にクリック可能な「▶ Run Task」ボタンがインライン表示される。上部に「Run All Pending Tasks」ボタンも表示される。実行中のタスクはスピナー、完了したものはチェックマークが表示される。エージェントは作業に応じて- [ ] → - [~] → - [x] とマークを更新する。
.modo/steering/内のマークダウンドキュメントで、すべてのAI対話にプロジェクトルールを注入する。毎回繰り返す必要はない。
---
inclusion: always
---
# プロジェクトルール
- TypeScript厳格モードを使用
- すべてのエンドポイントで入力検証が必要
3つのインクルージョンモード:
always — すべての対話fileMatch — アクティブファイルがグロブパターンに一致する場合manual — チャットの / コマンドで参照#[[file:path]] 参照を使用して、OpenAPI仕様、GraphQLスキーマ、または任意のプロジェクト文書にリンクできる。
.modo/hooks/内のJSON設定で、エージェントのライフサイクルに合わせたアクションを自動化する。
{
"name": "保存時にリント",
"version": "1.0.0",
"when": { "type": "fileEdited", "patterns": ["**/*.ts"] },
"then": { "type": "runCommand", "command": "npx eslint --fix ${filePath}" }
}
10のイベントタイプ:fileEdited, fileCreated, fileDeleted, promptSubmit, agentStop, preToolUse, postToolUse, preTaskExecution, postTaskExecution, userTriggered。2つのアクションタイプ:askAgent または runCommand。ツール使用前フックは実行を拒否できる。循環依存検出機能が組み込まれている。
ステータスバーのピル表示で、オートパイロット(エージェントが自律的に動作)と監視モード(エージェントが承認を待つ)を切り替える。編集、ターミナルコマンド、MCPツールの自動承認設定に直接結びついている。
複数のチャットセッションをタブとして表示。それぞれに独自のスレッド、コンテキスト、履歴がある。新しいものを開いたり、古いものを閉じたり、同時にすべて実行できる。検索可能な履歴パネルで過去の会話を検索できる。
自由な探索にはVibeモード、構造化開発にはSpecモードでセッションを開始する。Specモードでは、プロンプトが要件 → 設計 → タスクの完全なワークフローをトリガーする。アクティブな仕様の内容が自動的にLLMのシステムプロンプトに注入される。
並列エージェントを起動して独立したサブタスクを実行する。各エージェントは独自のスレッドとツールアクセスを持つ。ステータスを追跡し、実行中のタスクをキャンセルしたり、完了したタスクをクリアしたりできる。
ドキュメント、ステアリングファイル、MCP設定をバンドルしたインストール可能な知識パッケージ。TypeScript、React、テスト、API設計、Docker用の組み込みパワー。プロンプトのキーワードに基づいてアクティブ化。URLからカスタムパワーをインストールできる。
サイドバーに折りたたみ可能なセクションがあり、Spec(進捗バーとタスク数)、エージェントフック(イベント→アクションの流れ)、ステアリング(インクルージョンモード)、パワーズを表示する。
チャットで / を入力すると、マニュアルフック、ステアリングファイル、および組み込みコマンド(spec作成、タスク実行、会話エクスポート、ワークスペース初期化)にアクセスできる。
ステアリングファイルとアクティブな仕様が自動的にすべてのLLM対話の前に追加される。エージェントはプロジェクトルールに従い、毎回指示しなくても構築すべきものを認識する。
ティールアクセント、調整されたシンタックスハイライト、ターミナルカラーを備えた専用の「Modo Dark」テーマ。
Modoのアバターが各応答の前に表示され、ストリーミング中はランダムな表情、完了後は落ち着いたデフォルト表情になる。
カスタムアプリアイコン、ウィンドウタイトル、透かしロゴ、製品アイデンティティ、URLプロトコル(modo://)、データディレクトリ(.modo-editor/)。UI内のすべてのVoid参照はModo相当のものに置き換えられている。
Modo: Initialize Workspace で完全な .modo/ ディレクトリ構造とデフォルトのステアリングファイル、設定テンプレートを作成する。
コマンドパレットから任意の会話をMarkdownとしてクリップボードにエクスポートできる。
Modoは以下のプロジェクトなしでは存在しなかった:
| プロジェクト |
|---|
Void自体は以下を提供:マルチプロバイダーサポート(Anthropic、OpenAI、Gemini、Ollama、Mistral、Groq、OpenRouter)、チャットサイドバー、Cmd+Kインライン編集、オートコンプリート、高速/低速適用、ツール呼び出し、MCP統合、SCM統合、設定システム。
Modoはその基盤の上にModoが追加する機能のすべてを追加している。
git clone https://github.com/mohshomis/modo.git
cd modo
npm install # Node 20が必要
npm run buildreact # React UIをコンパイル
npm run watch # TypeScriptをコンパイル(ターミナルで実行し続ける)
./scripts/code.sh # Modoを起動
初回起動時、オンボーディングでモデルプロバイダーの接続方法を案内。Gemini無料プランが最速の開始方法。
.modo/ # プロジェクトごとの設定(「Initialize Workspace」で作成)
├── steering/ # AIコンテキストに注入されるマークダウンルール
├── specs/ # 構造化された機能/バグ修正ワークフロー
├── hooks/ # JSONイベント→アクション自動化
└── settings/ # MCPおよびその他の設定
src/vs/workbench/contrib/void/
├── common/
│ ├── modoSpecService.ts # specのCRUD、タスク解析、コンテキスト構築
│ ├── modoSteeringService.ts # ステアリングファイル読み込み、フロントマター解析、コンテキストアセンブリ
│ ├── modoHookService.ts # フック読み込み、検証、イベントマッチング、実行
│ ├── modoPowersService.ts # パワーズのレジストリ、アクティベーション、キーワードマッチング
│ └── modoSubagentService.ts # 並列エージェントの生成とライフサイクル管理
├── browser/
│ ├── modoExplorerPane.ts # spec、フック、ステアリング、パワーズのサイドバービュー
│ ├── modoSpecActions.ts # spec作成、タスク実行、ファイルを開くコマンド
│ ├── modoTaskCodeLens.ts # tasks.md内のインライン「Run Task」/「Done」ボタン
│ ├── modoSlashCommands.ts # / コマンドピッカー、エクスポート、セッション管理
│ ├── modoStatusBar.ts # オートパイロットトグル、アクティブspecインジケーター
│ ├── modoHookWiring.ts # ファイル変更イベント→フックシステム
│ └── react/src/
│ ├── sidebar-tsx/ # セッションタブ、履歴、vibe/specモード、オートパイロット切り替え
│ ├── modo-spec-panel/ # spec管理React UI
│ └── modo-hooks-panel/ # フック管理React UI
└── extensions/
└── modo-theme/ # ティールアクセントのカスタムダークテーマ
このプロジェクトはコミュニティによってメンテナンスされている。学習実験として自分で作ったもので、定期的にメンテナンスしているわけではない。修正や追加が必要な場合は、フォークしてPRを送るのが最善の方法。
npm run watch # TypeScriptのコンパイル(実行し続ける)
npm run buildreact # React UI(.tsxファイル変更後に実行)
./scripts/code.sh # IDEの起動
コアサービス:src/vs/workbench/contrib/void/common/。ブラウザ側ロジック:browser/。Reactコンポーネント:browser/react/src/。
本格的なコントリビュータでコミットアクセスを希望する場合は、Issueを開いてください。詳細はCONTRIBUTING.mdを参照。
PR歓迎。MITライセンス。
MIT
| 提供するもの |
|---|
| ライセンス |
|---|
| Void | AIチャット、インライン編集、オートコンプリート、マルチプロバイダーLLM、ツール使用、MCP、適用エンジン | MIT |
| VS Code | エディターコア、拡張機能システム、ターミナル、ファイルシステム、その他すべての基盤 | MIT |
| Roo Code | 開発中に参照したいくつかのパターン | Apache 2.0 |
| コマンド | ショートカット | 説明 |
|---|
| Create Spec | Cmd+Shift+S | 新しい仕様を作成(機能/バグ修正、要件優先/設計優先) |
| Run Next Task | — | 次の保留中のspecタスクを実行 |
| Run All Tasks | — | 残りのタスクをすべて実行 |
| Open Spec Files | — | 要件、設計、タスクをエディターで開く |
| Inject Spec Context | — | specコンテキストをチャットに読み込み |
| Reload Spec | — | ディスクからspecファイルを再読み込み |
| Initialize Workspace | — | .modo/ ディレクトリ構造を作成 |
| Slash Commands | — | / コマンドピッカーを開く |
| Export Conversation | — | チャットをMarkdownとしてコピー |
| Toggle Autopilot | — | オートパイロット/監視を切り替え |
| Open Chat | Cmd+L | チャットパネルにフォーカス |
| Inline Edit | Cmd+K | AIでコードをインライン編集 |