VPSでAiderやGooseなどのAIエージェントを動かす方法
VPS上でAiderやGooseを動かし、ターミナルからコーディングを行う方法を解説します。Ollamaによるセルフホストモデルの利用や、tmuxを使った接続切断対策、Ubuntu 24.04でのpipxによるインストール手順など、実用的なセットアップ方法を紹介します。
なぜVPSでコーディングエージェントを実行するのか
コーディングエージェントは、ターミナルからコードベースを読み取り、変更を書き込み、テストのためのコマンドを実行するツールです。VPSで実行することには、ノートPCと比較して3つの利点があります。接続を切断しても動作が継続すること、コードやビルドツールのすぐ近くに配置できること、そして自身でホストするモデルと通信できることです。tmuxセッション内で起動すれば、ノートPCを閉じて作業を中断し、後で再開できます。これは tmuxを使用してVPS上でClaude Codeを実行する 方法と同じパターンです。
知っておくべき2つのターミナルベースのエージェントがあります。Aiderはターミナルネイティブでgitを重視した選択肢です。変更ごとに適切なメッセージで自動コミットするため、履歴が整理され、すべての編集が取り消し可能です。リリース頻度は低下していますが、最も実績のあるターミナルコーディングエージェントの一つです。Block社のGooseは、より広範な機能を提供します。Apache-2.0ライセンスのエージェントであり、大規模な拡張エコシステムを持ち、ローカルのOllamaモデルを含む多くのプロバイダーをサポートしています。現在はLinux FoundationのAgentic AI Foundation (AAIF) の下で開発されています。Aiderは規律あるgit中心のワークフローに適しており、Gooseは幅広いプラグインセットを持つ汎用的なアシスタントに適しています。
必要なもの
Aiderを使用するには、git、tmux、および新しいバージョンのPythonが必要です。Gooseを使用するには、Gooseのインストーラーが必要です。また、モデルが必要です。AnthropicやOpenAIのようなプロバイダーのホスト型APIキー、または 同じVPS上のOllama によって提供されるローカルモデルのいずれかが必要です。セルフホストを選択すると、コードは自身のサーバー内に保持され、トークンごとのコストはかかりませんが、高性能なモデルに必要なメモリを確保する必要があります。
Aiderのインストールと実行
Aiderをpipxを使用して隔離された環境にインストールしてください。Ubuntu 24.04では、仮想環境外での生の pip install がブロックされるため(PEP 668)、pipxはaptから提供されます。その後、プロジェクト内で、切断後も動作を継続させるためにtmuxセッション内でAiderを実行します。
sudo apt install pipx
pipx ensurepath
pipx install aider-chat
tmux new -s aider
cd ~/my-project
aiderバージョンの注意点:このインストール手順はUbuntu 24.04で動作します。Ubuntu 26.04では、Aiderの固定依存関係に古いnumpyが含まれており、26.04のPython 3.14ではビルドできないため、現在は失敗します。解決策は、Aider専用のPython 3.12を提供することです。
pipx install --python 3.12 --fetch-missing-python aider-chatpipxはAider専用のスタンドアロン・インタプリタをダウンロードし、インストールが完了します。これはAiderのリリース頻度の低下による問題です。これが問題になる場合は、より活発にメンテナンスされているGooseを選択してください。
実行が開始されたら、Ctrl-b、次にdを押してセッションからデタッチします。これにより、ノートPCを閉じていてもエージェントは動作を続けます。後で tmux attach -t aider で再接続して、変更内容を確認できます。Aiderはリポジトリを読み取り、編集を提案し、適用し、それぞれをコミットします。変更が複数のファイルにまたがる場合は、コンテキストとして追加のファイルを読み込むことができます。すべての変更はコミットであるため、エージェントによる操作の取り消しは単純な git revert で済みます。これが、安心して使用できるセーフティネットとなります。Gooseは、ドキュメント化された1行のスクリプトでインストールでき、ターミナルから同様に動作し、拡張機能を通じてタスクを実行します。
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bashホスト型モデルかセルフホスト型モデルか
ホスト型モデルは最高品質を提供し、ローカルハードウェアを必要としませんが、トークンごとにコストが発生し、コードはプロバイダーに送信されます。エージェントはターンごとに会話全体を再送信するため、トークンコストは予想以上に速く蓄積します。AiderとGooseも同様の課金方式であるため、エージェントの長いセッションで実際に消費されるトークン量 の内訳がここでも適用されます。Ollamaを使用したセルフホストモデルは、すべてを自身のサーバー内に保持し、ハードウェア代を除けば実行コストは無料ですが、実用的なコーディングモデルには十分なメモリが必要です。品質と利便性を取るか、プライバシーとコストを取るか、これが検討すべきトレードオフです。
セルフホストを選択する場合、実用的な問題は、どのモデルがサーバーに適合するかです。容量不足のサーバーに8GBのモデルをダウンロードする前に、サイズを確認してください。
安全性:ファイル編集とコマンドの実行
コーディングエージェントは受動的ではありません。ファイルを書き換え、ビルドやテストのコマンドを実行する可能性があるため、システムを変更できるあらゆるプロセスと同様の注意を払ってください。ほとんどのリスクは3つの習慣で回避できます。まず、すべての変更が追跡され、取り消し可能になるよう、gitリポジトリ内で作業してください。これはAiderが自動で行います。次に、最小権限ユーザー に従い、rootではなく通常の非特権ユーザーとしてエージェントを実行してください。これにより、誤ったコマンドがシステム全体に影響を与えるのを防げます。最後に、コーディング用VPSは公開サーバーであるため、サーバー自体の要塞化(ハードニング)を維持してください。鍵認証のみのSSH、デフォルト拒否のファイアウォールなどが必要です。OpenClawの要塞化ガイド も、自律的なエージェントに対して同様のスタンスをとっており、その原則は共通しています。
コーディングエージェントを自身のワークフローに組み込む方法として、ClaudeによるAIエージェントの構築 では、1つのモデルがいかにツールを制御するかを示しています。VPSでのGoogle Gemini CLIの実行 はもう一つのターミナルオプションであり、OpenHandsのセルフホスト はより重量級の自律的なルートです。この分野で最もスターが多いオープンプロジェクトには、独自のガイドがあります。VPSでのOpenCodeの実行 では、同じtmuxと非特権ユーザーのパターンでセットアップを行います。
FAQ
有料APIの代わりにローカルモデルでコーディングエージェントを実行できますか?
はい。AiderとGooseはどちらもOllamaで提供されるローカルモデルで動作します。そのため、トークンコストなしで、コードをサーバーから外に出すことなく、完全にセルフホストされたコーディングエージェントを実行できます。注意点はメモリです。有用なコードを書けるモデルには大量のRAMまたはVRAMが必要なため、コミットする前にマシンに十分な容量があるか確認してください。
AiderとGoose、どちらを使うべきですか?
ワークフローがターミナルとgit中心で、最も成熟した低オーバーヘッドの選択肢を求めるならAiderを選んでください。すべての変更を自動コミットするため、履歴の取り消しが可能です。広範な拡張エコシステムと多くのプロバイダーのサポートを持つ、より汎用的なアシスタントを求めるならGooseを選んでください。どちらもターミナルから動作し、Ollamaでも動作するため、どちらもVPSに適しています。
セルフホストするコーディングモデルにはどれくらいのメモリが必要ですか?
モデルのサイズと量子化の度合いによります。小さな量子化モデルは数GBで動作できますが、強力なモデルはより多くのメモリを必要とし、長いコンテキストウィンドウはさらにメモリを消費します。ダウンロードする前に、上記のサイズ確認ツールを使用して、特定のモデルとコンテキスト長に必要なメモリを推定してください。
AIエージェントにコードを編集させたり、コマンドを実行させたりするのは安全ですか?
適切な習慣を守れば管理可能です。すべての編集が取り消し可能なコミットになるよう、作業はgitリポジトリ内で行ってください。エージェントはrootではなく非特権ユーザーとして実行し、公開サーバーと同様にVPSを要塞化してください。エージェントがコミットした変更を盲信せず、特にシステムに対して実行しようとするコマンドは必ず確認してください。