nanocoai/nanoclaw

A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK

NanoClaw – 各エージェントを個別の Docker コンテナで実行する AI アシスタント プラットフォーム

何であるか – NanoClaw は、任意のチャットプラットフォームで会話できる個人用 AI アシスタント(エージェント)を構築するための軽量でオープンソースのフレームワークです。キーポイントは「隔離」:各エージェントは個別の Linux コンテナ内で実行され、明示的にマウントしたファイルのみを参照でき、ホストシステムや API キーに直接アクセスできません。

なぜ存在するか – 作者は、既存の「一体型」AI アシスタントプロジェクト(例:OpenClaw)が巨大で監査が難しく、プロセス内での権限チェックに依存していると感じました。NanoClaw は、単一の Node プロセスと少数のソースファイルにまでスタックを簡素化しながら、Docker を通じて各エージェントに OS レベルのサンドボックス環境を提供します。

導入方法 – リポジトリをクローンして bash nanoclaw.sh を実行します。スクリプトは以下の処理を行います:

  1. Node、pnpm、Docker がインストールされていない場合、自動でインストールします。
  2. OneCLI の「エージェント・ボルト」を通じて Anthropic(Claude)の認証情報を登録します。
  3. エージェントを実行するための Docker イメージをビルドします。
  4. エージェントをメッセージングチャネル(Slack、Telegram、Discord、WhatsApp、iMessage など)とペアリングします。 処理に失敗した場合、スクリプトは Claude Code に問題を引き渡し、AI ベースのデバッガーが自動的に診断・再試行を行います。

コアコンセプト

コンセプト 意味
エージェントグループ メモリストア(CLAUDE.md)と専用コンテナを共有するエージェントの論理的グループ。
チャネルアダプター チャットサービスからのメッセージを内部形式に変換する小さなプラグイン。/add-slack/add-telegram などのコマンドでオンデマンドでインストール可能。
隔離モデル 各チャネルを個別のエージェントに接続(完全なプライバシー)、共有エージェントに接続(チャネル間で単一のメモリ)、またはハイブリッド「共有セッション」に接続(1つの会話が複数のプラットフォームを跨ぐ)できます。
OneCLI エージェント・ボルト API キー(Anthropic、OpenAI など)をリクエスト時に注入するプロキシ。キーはコンテナ内に直接表示されません。
スケジュールタスク 再発するジョブで、オプションで「スクリプトゲート」を設定し、作業がなければ実行をスキップできます。
テンプレート 事前に用意されたインストラクション、ツール、スキルのバンドル。ncl groups create --template <ref> コマンドで新しい groups/<name> フォルダにコピーできます。

対応チャットプラットフォーム – WhatsApp、Telegram、Discord、Slack、Microsoft Teams、iMessage、Matrix、Google Chat、Webex、Linear、GitHub、WeChat、および Resend を通じたメール。新しいアダプターは別途 channels ブランチに「スキル」として追加され、/add-<channel> コマンドでフォークにコピーされます。

モデルバックエンド – デフォルトでは、公式 Claude Agent SDK を通じて Anthropic の Claude に接続します。/add-opencode/add-ollama-provider コマンドで、OpenAI Codex、OpenRouter(OpenCode 介して)、ローカルの Ollama モデルなどに切り替えることができます。異なるエージェントグループは同時に異なるプロバイダーを使用可能です。

セキュリティのハイライト

  • コンテナサンドボックス – エージェントは Docker コンテナ(macOS、Linux、または WSL2)で実行されます。マウントしたディレクトリのみが可視です。
  • コンテナ内にキーを直接含まない – すべてのアウトバウンド API 呼び出しは OneCLI のエージェント・ボルトを経由し、エージェントごとのポリシーとレート制限が適用されます。
  • ユーザーアカウントなし – NanoClaw はクラウドに何のデータも保存しません。唯一のオプションのクラウド連携は、事前に構築された硬化済みエージェントイメージの取得、またはコミュニティポータルの特典の有効化です。

カスタマイズワークフロー – 広大な設定ファイルではなく、組み込みの Claude Code AI に「トリガー語を @Bob に変更」や「カスタムの朝の挨拶を追加」など、望む変更を指示します。コードベースが意図的に小さく設計されているため、Claude はソースコードを直接編集できます。

開発・貢献モデル – メインの trunk ブランチは最小限に保たれ(レジストリ、オーケストレーション、コアDB)、新しいチャネルアダプターは channels ブランチ、新しいプロバイダーは providers ブランチにあります。ユーザーは自身のフォークで /add-<name> スキルでインストールします。プロジェクトはコアへのセキュリティ修正とバグ修正のみを受け入れます。

典型的な利用ケース – 設定後、トリガー語(デフォルト @Andy)でアシスタントに話しかけられます:

@Andy 毎週月曜から金曜の朝9時に販売パイプラインの概要を送信(Obsidian バルトフォルダにアクセス可能)
@Andy 毎週金曜に過去1週間のgit履歴をレビューし、ドリフトがあればREADMEを更新

アシスタントは隔離されたコンテナ内で実行され、必要なデータを取得して、呼び出し元のチャネルに結果を投稿します。

ライセンス – MIT。


上記のすべての詳細はリポジトリの README から直接取得されています。追加機能は推測されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト