コーディングCODE
コードの調査・開発・共同作業のツール
コードを読み、書き換え、コマンドを実行し、ターミナルを開く。変更したファイルはターンごとに記録され、いつでも元に戻せます。
「ログインモジュールをリファクタリングして、テストが全部通ったら声をかけて」
オープンソース · BYOK · AGPL-3.0
オープンソースのエージェント&ボットワークスペース。コーディング、研究、オフィスワーク、日々のちょっとした作業まで。インストールしてすぐ使えて、どこまでもカスタマイズでき、モデルは自分で持ち込めます。
macOS · Linux · Docker でセルフホスト · ブラウザーやスマートフォンから接続
01 · Team
メインエージェントがタスクを分解し、チームメイトに割り振ります。Worker が実装を書き、調査エージェントが情報を集め、検証エージェントがテストを回す。メンバーにはそれぞれ名前とアバターと会話があり、互いに直接メッセージを送り、コードを受け渡し、終わったら依頼主に報告します。コラボレーションパネルでやりとりを見守り、いつでも口をはさめます。
02 · Four ways to work
コードの調査・開発・共同作業のツール
コードを読み、書き換え、コマンドを実行し、ターミナルを開く。変更したファイルはターンごとに記録され、いつでも元に戻せます。
「ログインモジュールをリファクタリングして、テストが全部通ったら声をかけて」
問題を調べ、説明を比較し、実験を設計して進める
OpenAlex と Semantic Scholar を検索し、論文や PDF を読み、実験を一歩ずつ進めます。
「この分野のここ 2 年の論文を集めて、絞り込める比較表にして」
文書、データ、ブラウザー、PC 操作のツール
Word、Excel、PowerPoint はもちろん、ブラウザーや PC 上のアプリも直接操作します。
「先月の注文を書き出して、グラフ入りの Excel にまとめて」
日常の作業に使えるバランスの取れたツール
調べもの、文章づくり、ちょっとしたインタラクティブなツールまで。毎日の用事を引き受けます。
「この 3 台のカメラを比べて、パラメーターを動かせるグラフにして」
03 · Bots
ボットは、ずっと持ち場にいるエージェントです。自分の名前、性格、モデル、作業フォルダーを持ち、いくつもの仕事を同時に進め、PC のデスクトップを割り当てることもできます。何を覚えているかはすべて見えて、訂正したり忘れさせたりできます。スリープさせれば仕事は一時停止し、起こせば中断したところから再開します。
04 · Harness
中心にいるのがモデル。そのまわりのセルの一つひとつが、Varin がモデルのために用意しているものです。ツール、コンテキスト、実行、協働、そして復旧。同じモデルでも、ここに置けばもっと長く、複雑な仕事をこなせます。
05 · Ready, and yours
キーをひとつ入れれば始められます。ほかはすべて揃っています。
コードを書かなくても、すべてを自分好みに調整できます。
キーは自分の Host にだけ保存されます。使用量はチャネルとモデルごとに、ターン単位で記録。仲介者はいません。
06 · Extensions
Agent、IDE、研究、ボットの 4 つのワークベンチも、ブラウザー、Office、PC 操作、言語サーバーも、すべて同じ拡張機能カタログに登録され、あなたが使うのと同じ契約で動いています。どれも無効にでき、ワークベンチは丸ごと差し替えられます。
varin.builtin.agent-workspacevarin.builtin.ide-workbenchvarin.builtin.research-workbenchvarin.builtin.bot-workspacevarin.builtin.browservarin.builtin.officevarin.builtin.computervarin.builtin.language-servers左のファイルにカーソルを合わせると、マニフェストの対応する部分が示されます。
varin.extension.json契約そのもの。検出、有効化、権限レビュー、ツールのスキーマがすべてこのファイルを読むので、コードを実行しなくても拡張機能を見つけられます。
package.jsonふつうの npm メタデータ。バージョンはマニフェストと一致し、ビルドのエントリーポイントも宣言できます。
host.jsHost 側:ツール、モデルプロトコル、コンテキストのアルゴリズム、エージェントのポリシー。ここでは 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 を簡略化したものです。
インターフェースは特権を持たず、特権が必要な処理は信頼できる側に残ります。
受け取れるのは型付きのコールバックとマウントポイントだけ。シェルやエディターを替えても、余分な権限は得られません。
ツール、言語サーバー、デバッガー、テストランナーはここで動きます。brokered の拡張機能は独自のプロセスとライフサイクルを持ち、失敗してもその拡張機能だけが回収されます。
呼び出しごとに使う実装を固定します。認証情報、モデルへのリクエスト、実行の記録、復旧はここに残ります。
varin.models@1varin.context.fragments@1varin.context.budget@1varin.context.compaction@1varin.retrieval.plan@1varin.agent.policy@4実行アクティビティの監視拡張機能がいくら増えても、ワークベンチは安定し、制御できるままに。
検出、有効化、レビューはどれも同じ varin.extension.json を読みます。コードを 1 行も実行しないうちに、拡張機能を見つけて表示し、確認できます。
権限はバージョンごと、層ごとに承認します。同じ拡張機能を更新しても新しい権限は引き継がれず、取り消しはすぐに反映されます。
1 回の更新に含まれるものは同じ瞬間に有効になります。失敗すれば前の世代がそのまま残り、半分だけ入った状態にはなりません。
実行中の呼び出しは、始まったときの実装のまま最後まで動きます。新しいバージョンを使うのは、そのあとの呼び出しだけです。
brokered の拡張機能は独立した子プロセスで動くので、失敗しても回収されるのはその拡張機能だけ。選んだワークベンチが起動できなくても、復旧用のシェルが引き継ぎます。
エージェントは契約を読み、拡張機能を書いてインストールまでできますが、初回のインストールは必ず無効の状態。あなたが確認してから有効にします。
07 · Control
変更されたファイルはターンごとにタイムラインに並び、ワンステップで戻せて、戻したことも取り消せます。自分で手を入れたファイルが上書きされることはなく、結果がはっきりしない操作がこっそり繰り返されることもありません。
08 · Anywhere
デスクトップ、ブラウザー、スマートフォンが同じ Varin につながります。QR コードでペアリングし、離れたネットワークからはエンドツーエンドで暗号化されたリレーが接続を中継します。リレーから内容は見えません。
Open source · AGPL-3.0
コードも、データも、モデルも、拡張機能も、あなたの手の中に。