オープンソース · BYOK · AGPL-3.0

ひとりでも、チームの力を。

オープンソースのエージェント&ボットワークスペース。コーディング、研究、オフィスワーク、日々のちょっとした作業まで。インストールしてすぐ使えて、どこまでもカスタマイズでき、モデルは自分で持ち込めます。

macOS · Linux · Docker でセルフホスト · ブラウザーやスマートフォンから接続

01 · Team

ゴールを決めれば、あとは分担。You set the goal. They split the work.

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

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

02 · Four ways to work

4 つの働き方、ひとつのワークベンチ。モードによって、手元に置くツールとチームメイトが変わります。

コーディングCODE

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

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

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

研究RESEARCH

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

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

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

オフィスOFFICE

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

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

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

汎用GENERAL

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

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

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

03 · Bots

自分だけのボットを。A bot of your own.

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

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

04 · Harness

モデルは考え、Harness が最後まで運ぶ。The model thinks. The harness goes the distance.

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

05 · Ready, and yours

初日から使える。どこまでも自分仕様に。Ready on day one. Yours all the way down.

すぐに使える

キーをひとつ入れれば始められます。ほかはすべて揃っています。

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

どこまでも自分仕様に

コードを書かなくても、すべてを自分好みに調整できます。

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

モデルは自分で持ち込む。

キーは自分の Host にだけ保存されます。使用量はチャネルとモデルごとに、ターン単位で記録。仲介者はいません。

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

06 · Extensions

公式のワークベンチさえ、拡張機能でできている。Even our workbenches are 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

どこからでも続きを。

デスクトップ、ブラウザー、スマートフォンが同じ Varin につながります。QR コードでペアリングし、離れたネットワークからはエンドツーエンドで暗号化されたリレーが接続を中継します。リレーから内容は見えません。

Open source · AGPL-3.0

オープンソース。あなたのものに。

コードも、データも、モデルも、拡張機能も、あなたの手の中に。