Varin

モデル以外のすべてが揃い、すぐに使えて、深くカスタマイズもできます。

v0.9.32WindowsmacOSLinuxDocker でセルフホスト

01 · Harness

同じモデルでも、Varin ならもっと先へ。

中心にいるのがモデル。まわりのセルの一つひとつが、Varin がモデルのために用意しているものです。ツール、コンテキスト、実行、協働、そして復旧。同じモデルでも、より長く複雑なタスクをこなせます。

    • 長い出力も読める構造を保って要約、原文はすぐ参照
    • 先回りして整理コンテキストを裏で整えておく
    • 正確なカウントローカルのトークナイザー、実使用量で補正
    • 記憶覚えた内容が見えて、直せる
    • 必要なときにツールよく使うものは常駐、ほかは必要なときに読み込み
    • 自分で整える文脈要約を書き、大事な原文は残す
    • MCP は 2 通り直接公開か、必要に応じて検出
    • 分離されたコピーチームメイトは自分のコピーでコードを編集
    • チームワーク割り振り、会話、受け渡し、報告
    • モデル考える役。自由に選べます
    • 途切れない実行すべての手順を記録、再起動後も続きから
    • 質問で止まらない返事を待つあいだも、ほかの作業は進む
    • 複数モデルで並走ひとつのタスクを複数のモデルで
    • ゴールと続き予算つきのゴール、条件がそろえば再開
    • 勝手に繰り返さない結果が不明なら止まって確認
    • 自動リトライバックオフ内蔵、ルールも変更可能
    • スクリプトでまとめてひとつのスクリプトで複数ツール、呼び出しツリーも見える
    • ファイルの履歴ターン単位で戻せて、戻したことも取り消せる
    • 権限ルールツールごとに許可・確認・拒否

02 · Ready, and yours

デフォルトで使いやすく、深くカスタマイズできる。

すぐに使える

自分の API キーを入れれば始められます。ほかはすべて揃っています。

個のネイティブツール
約 80
種類の作業モード
4
つの公式ワークベンチ
4
つの組み込み言語サーバー
6
種類のネイティブなモデルプロトコル
8
系統のテーマ(ライトとダーク)
21
のインターフェース言語
10
言語のオフライン音声入力
約 100

深いカスタマイズ

コードを書かなくても、各部分を自分のやり方に合わせて調整できます。

  • プリセットのエージェントはモデル、指示、ツールを自由に変更でき、新しく作ることも可能
  • タイトル生成、コンテキスト整理、計画、画像生成、埋め込みにそれぞれ別のモデル
  • システム指示と記憶を編集できる
  • Skills は .claude と .agents フォルダーに対応、Git リポジトリからもインストール
  • MCP サーバーは直接公開か、必要に応じて検出
  • ツールごとの権限ルールと、変更できるリトライ方針

自分の API キーで使う。

キーは自分の Host にだけ保存され、リクエストは設定したプロバイダーに直接送られます。使用量はチャネルとモデルごとに、ターン単位で記録されます。

  • OpenAI Responses
  • OpenAI Chat
  • Anthropic
  • Gemini
  • Vertex AI
  • Azure OpenAI
  • Bedrock
  • Mistral
  • Alibaba Model Studio
  • Zhipu
  • StepFun
  • Ollama
  • LM Studio
  • 任意の互換エンドポイント

03 · Four ways to work

仕事の種類ごとに、専用のモード。モードによって、エージェントが最初に使えるツールと、手伝うチームメイトが変わります。

コーディングCODE

コードの調査・開発・共同作業のツール

コードを読み、書き換え、コマンドを実行し、ターミナルを開く。変更したファイルはターンごとに記録され、いつでも元に戻せます。

Worker調査エージェント検証エージェント
「ログインモジュールをリファクタリングして、テストが全部通ったら声をかけて」

研究RESEARCH

問題を調べ、説明を比較し、実験を設計して進める

OpenAlex と Semantic Scholar を検索し、論文や PDF を読み、実験を一歩ずつ進めます。

Worker調査エージェント研究パートナー
「この分野のここ 2 年の論文を集めて、絞り込める比較表にして」

オフィスOFFICE

文書、データ、ブラウザー、PC 操作のツール

Word、Excel、PowerPoint はもちろん、ブラウザーや PC 上のアプリも直接操作します。

Worker調査エージェント
「先月の注文を書き出して、グラフ入りの Excel にまとめて」

汎用GENERAL

日常の作業に使えるバランスの取れたツール

調べもの、文章づくり、ちょっとしたインタラクティブなツールまで、日々の用事をこなします。

Worker調査エージェント
「この 3 台のカメラを比べて、パラメーターを動かせるグラフにして」

04 · Team

ひとつのタスクを、複数のエージェントで分担。

メインエージェントがタスクを分解し、チームメイトに割り振ります。Worker が実装を書き、調査エージェントが情報を集め、検証エージェントがテストを回す。メンバーにはそれぞれ名前とアバターと会話があり、互いに直接メッセージを送り、コードを受け渡し、終わったら仕事を割り振ったエージェントに報告します。コラボレーションパネルでやりとりを確認でき、いつでも口をはさめます。

  • メンバーは並行して進み、それぞれ自分のスレッドを持つ
  • あなたを経由せず、メンバー同士で直接やりとり
  • コードの受け渡しは差分つき、ファイルごとに確認できる
  • 終わったら、割り振ったエージェントに報告

05 · Bots

ずっと持ち場にいるボット。

ボットは自分の名前、性格、モデル、作業フォルダーを持ち、いくつもの仕事を同時に進め、PC のデスクトップを割り当てることもできます。何を覚えているかはすべて見えて、訂正したり忘れさせたりできます。スリープさせれば仕事は一時停止し、起こせば中断したところから再開します。

  • 専用の名前、指示、モデル、作業フォルダー
  • 複数の仕事を並行して進める
  • 記憶は見える、直せる、消せる
  • スリープと復帰で仕事を失わない
名前ミナトモデルデフォルト作業フォルダー~/bots/minato
  • 週次の依存関係チェック進行中一時停止中再開中…
  • 論文メモの整理進行中一時停止中再開中…
  • レビューコメントへの返信確認待ち一時停止中再開中…
週報は表でまとめる訂正忘れるmain ブランチに直接 push しない訂正忘れる

06 · Extensions

公式のワークベンチも、拡張機能のひとつ。

Agent、IDE、研究、ボットの 4 つのワークベンチも、ブラウザー、Office、PC 操作、言語サーバーも、すべて同じ拡張機能カタログに登録され、サードパーティの拡張機能と同じ契約で動いています。どれも無効にでき、ワークベンチは丸ごと差し替えられます。

拡張機能の構成

左のファイルにカーソルを合わせると、マニフェストの対応する部分が示されます。

examples/extensions/agent-authored-panel/
varin.extension.json

拡張機能の契約。検出、有効化、権限レビュー、ツールのスキーマがすべてこのファイルを読むので、コードを実行しなくても拡張機能を見つけられます。

識別情報エントリーポイントサービスとツールUI への追加
package.json

ふつうの npm メタデータ。バージョンはマニフェストと一致し、ビルドのエントリーポイントも宣言できます。

host.js

Host 側:ツール、モデルプロトコル、コンテキストのアルゴリズム、エージェントのポリシー。ここでは brokered として独立した子プロセスで動きます。

surface.cjs

インターフェース側:パネル、エディター、さらにはワークベンチ全体まで。宣言的にも、管理された実行にも、隔離した iframe や Worker にもできます。

panel.css · panel.svg

リソース。アイコン、スタイル、同梱の実行ファイルは、すべて不変のパッケージ内で解決されます。

{
  "schemaVersion": 1,
  "id": "example.agent-authored-panel",
  "version": "1.0.0",
  "engines": { "varin": "*" },
  "entrypoints": {
    "host": { "file": "host.js", "mode": "brokered",
              "activation": ["service-request"] },
    "surfaces": [{ "id": "panel", "file": "surface.cjs", "mode": "managed",
      "supports": ["web", "desktop"], "activation": ["application-startup"] }]
  },
  "provides": { "services": [{
    "id": "example.agent-authored-panel.count", "version": 1,
    "tool": { "name": "authored_text_count", "completion": "result",
              "operation": "read", "inputSchema": { … } }
  }] },
  "contributions": [{
    "id": "example.agent-authored-panel.summary", "kind": "panel",
    "entrypoint": "panel", "supports": ["web", "desktop"],
    "placement": { "slot": "workbench.secondary.after", "order": 20 }
  }]
}
import { defineHostExtension, provideTool } from '@varin/extension-sdk';
import manifest from './varin.extension.json' with { type: 'json' };
 
export default defineHostExtension({
  activate(context) {
    // マニフェストで宣言したのと同じサービス。検出と有効化は同じ記述を読む
    provideTool(context, manifest.provides.services[0], async (input, call) => {
      // 新しいツールから組み込みツールを呼び出す。元のレシートはそのまま残る
      const memory = await call.tools.invoke({
        callId: 'memory', name: 'memory', arguments: input.memory,
      });
      return { memory };
    });
  },
});

マニフェストは examples/extensions/agent-authored-panel から抜粋し、長いスキーマは省略。host.ts は nested-tools を簡略化したものです。

3 つの層に、それぞれの拡張ポイント

インターフェースは特権を持たず、特権が必要な処理は信頼できる側に残ります。

インターフェースSURFACE

受け取れるのは型付きのコールバックとマウントポイントだけ。シェルやエディターを替えても、余分な権限は得られません。

宣言的管理実行隔離 iframe / Workerネイティブ

アプリケーション HostHOST

ツール、言語サーバー、デバッガー、テストランナーはここで動きます。brokered の拡張機能は独自のプロセスとライフサイクルを持ち、失敗してもその拡張機能だけが回収されます。

brokered 子プロセスネイティブ

Rust ランタイムRUNTIME

呼び出しごとに使う実装を固定します。認証情報、モデルへのリクエスト、実行の記録、復旧はここに残ります。

ツールディレクトリモデルアダプターコンポジションレジストリ

UI への追加16 種類

ワークベンチ全体切り替え演出ビューエディターパネルサイドバーページ設定ページコマンドキーバインドメニュー項目入力欄のアクションステータス項目セッションのバッジメッセージの描画ツールの描画

エージェントの契約バージョン付き

ツールvarin.models@1varin.context.fragments@1varin.context.budget@1varin.context.compaction@1varin.retrieval.plan@1varin.agent.policy@4実行アクティビティの監視

ワークスペースHost で実行

言語サポートデバッグアダプターテスト

なぜこの設計なのか

拡張機能がいくら増えても、ワークベンチは安定し、制御できるままに。

マニフェストが契約になる

検出、有効化、レビューはどれも同じ varin.extension.json を読みます。コードを 1 行も実行しないうちに、拡張機能を見つけて表示し、確認できます。

申請は許可ではない

権限はバージョンごと、層ごとに承認します。同じ拡張機能を更新しても新しい権限は引き継がれず、取り消しはすぐに反映されます。

まとめて準備、まとめて公開

1 回の更新に含まれるものは同じ瞬間に有効になります。失敗すれば前のバージョンがそのまま残り、半分だけ入った状態にはなりません。

更新で作業が途切れない

実行中の呼び出しは、始まったときの実装のまま最後まで動きます。新しいバージョンを使うのは、そのあとの呼び出しだけです。

失敗には境界がある

brokered の拡張機能は独立した子プロセスで動くので、失敗しても回収されるのはその拡張機能だけ。選んだワークベンチが起動できなくても、復旧用のシェルが引き継ぎます。

エージェントは書けても、承認はできない

エージェントは契約を読み、拡張機能を書いてインストールまでできますが、初回のインストールは必ず無効の状態。あなたが確認してから有効にします。

SDKCLI:init · check · build · test7 種類のプロジェクトテンプレート16 のサンプル適合性テストキットSDK が公開されるまでは、リポジトリからインストールしてください。拡張機能の作成ガイド →サンプルを見る →

07 · Control

変更はターンごとに記録、いつでも戻せる。

変更されたファイルはターンごとにタイムラインに並び、ワンステップで戻せて、戻したことも取り消せます。自分で手を入れたファイルが上書きされることはなく、結果がはっきりしない操作がこっそり繰り返されることもありません。

08 · Anywhere

PC、ブラウザー、スマートフォンで、同じ Varin を。

QR コードでペアリングし、離れたネットワークからはエンドツーエンドで暗号化されたリレーが接続を中継します。リレーから内容は見えません。

Open source · AGPL-3.0

最初のタスクを任せてみる。

コードはオープンソース。データも、モデルも、拡張機能も、あなたの手元に。