OpenCode 用ハッシュタグベース・スニペット拡張プラグイン

Tool

概要

opencode-snippets は、OpenCode プラットフォーム向けのハッシュタグベース即時スニペット展開プラグインです。メッセージ本文に #snippet のようなハッシュタグを書くだけで、予め定義したテンプレートや定型文に置換されます。これにより、よく使うプロンプトや設定、説明文などを何度もコピペする必要がなくなり、プロンプト設計の再利用性を高められます。TypeScript で実装されており、シンプルなマッピングと軽量なランタイム依存で動作するため、OpenCode の拡張機能として導入しやすい点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 30
  • ファイル数: 12
  • メインの言語: TypeScript

主な特徴

  • ハッシュタグベースのインライン展開:メッセージ内の #name を即時にテンプレートに置換。
  • DRY 原則の導入:繰り返し使うプロンプトや説明文を一元管理して再利用。
  • 軽量で導入が容易:TypeScript実装、依存が少なく OpenCode のエコシステムに馴染む構成。
  • 拡張性:スニペット定義の追加・編集が簡単で、カスタムスニペットにも対応可能。

技術的なポイント

opencode-snippets は、メッセージ処理パイプライン内でハッシュタグを検出し、それを定義済みスニペットにマッピングして置換するというシンプルなアプローチを採っています。TypeScript を使うことで型安全性を担保し、開発時の自動補完や静的解析がしやすくなっています。実装上の注目点は、スニペットのマッチングと安全な展開です。例えば、単純な正規表現でハッシュタグを検出する一方、不要な誤検出を避けるために文脈(コードブロック内や引用内など)を考慮するロジックを入れることが考えられます。また、展開時にはエスケープやサニタイズが必要になる場合があるため、テンプレート中の特殊文字処理を明確にしています。

プラグインとしての統合面では、OpenCode のイベントやフック(メッセージ送信前など)に差し込む設計が想定され、非同期処理やエラーハンドリングも重要です。スニペットの定義は外部ファイルや設定で管理できるようにしておくと、運用中にスニペットを追加・更新してもサービス再起動なしで反映できる設計が望ましいです。テスト面ではユニットテストで正規表現と置換ロジックの網羅、統合テストで OpenCode との相互作用を確認することが品質向上に寄与します。最後に、TypeScript プロジェクトとしては package.json や tsconfig、ビルド出力の整備(例えば dist 配下の JS と型定義生成)を行い、npm パッケージとして配布することも容易です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .agent: dir
  • .editorconfig: file
  • .github: dir
  • .gitignore: file
  • .npmignore: file

…他 7 ファイル

(その他の典型的なファイル)

  • package.json:依存関係やスクリプトを定義
  • README.md:プロジェクトの概要と使い方
  • src/:TypeScript ソースコード(スニペット検出・展開ロジック)
  • tsconfig.json:TypeScript コンパイラ設定
  • LICENSE:ライセンス情報

まとめ

OpenCode 上でプロンプトの再利用性と編集効率を簡潔に改善する軽量プラグインです。

リポジトリ情報:

READMEの抜粋:

opencode-snippets

Instant inline text expansion for OpenCode - Type #snippet anywhere in your message and watch it transform.

Why Snippets?

As developers, we DRY (Don’t Repeat Yourself) our code. We extract functions, create libraries, compose modules. Why should our prompts be any different?

Stop copy-pasting the same instructions into every message. Snippets bring software engineering principles to prompt engineering:

  • 🔄 DRY - Write once, reuse everywhere
  • 🧩 **Composa…