Mercury Agentは、CLIやTelegramなどから24時間稼働させられるパーソナルAIエージェントです。ツール実行前に許可を求める権限管理と、SQLiteベースの長期記憶「Second Brain」を特徴とします。npmパッケージまたはスタンドアロンバイナリとして配布され、OpenAIやAnthropicなど複数のLLMプロバイダーに対応します。
エントリーポイントはdist/index.jsで、初回起動時にセットアップウィザードが名前・プロバイダー・Telegram連携などを聞きます。その後Ink製のTUIが起動し、`Ask Me`か`Allow All`の権限モードを選ばせてからチャットが始まります。ツール実行はシェルのブロックリストやフォルダ単位の読み書き範囲制限を通過して初めて実行され、保留中の承認フローも用意されています。記憶機能はsql.js・better-sqlite3とFTS5全文検索を使い、10種類のメモリタイプを自動抽出・統合します。LLM接続は`ai`SDK経由のOpenAI・Anthropic・DeepSeekに加え、ChatGPT OAuthのデバイスフロー認証も自前実装されています(src/auth/chatgpt-auth.tsなど)。常駐化はmacOSのLaunchAgent、LinuxのsystemdユーザーUnit、WindowsのTask Schedulerへそれぞれ対応し、クラッシュ時は指数バックオフで自動再起動します。Telegram・Discord・Slackはそれぞれgrammy・discord.js・@slack/boltで実装され、Webダッシュボードはhonoで提供されます。
- STEP 01
curlのワンライナーかnpxでインストールすると、初回起動で名前・LLMプロバイダー・Telegram連携を聞くセットアップウィザードが開始します。
- STEP 02
セットアップ後、Ink製のTUI画面が起動し「Ask Me」か「Allow All」の権限モードを選ぶ画面が表示されます。
- STEP 03
チャット中にファイル操作やコマンド実行をエージェントが提案すると、権限モードが「Ask Me」の場合は承認待ちのプロンプトが出ます。
- STEP 04
`mercury up`を実行すると、OSに応じたシステムサービス(LaunchAgentやsystemdユーザーUnitなど)がインストールされ、バックグラウンドデーモンとして常駐します。
- STEP 05
`mercury doctor`で後からプロバイダーキーやチャンネル設定を変更でき、`/budget`コマンドでトークン予算の確認や超過状態をチェックできます。
- STEP 06
`~/.mercury/skills/web-search/SKILL.md`にデフォルトのweb-searchスキルが自動で用意され、追加のスキルも単一コマンドで導入できます。
手に入るのは、権限承認を経てファイル操作やコマンド実行を行うCLI/Telegramエージェント本体と、SQLite上に蓄積される個人の好み・目標などの長期記憶です。加えて、OS起動時に自動で立ち上がる常駐デーモンと、Discord・Slack・Web dashboardなど複数チャンネルからの応答経路が得られます。
ChatGPT OAuth連携はauth.openai.comやchatgpt.com/backend-apiという非公開寄りのエンドポイントを直接叩いており、OpenAI側の仕様変更で壊れる可能性があります。
記憶機能の本体であるbetter-sqlite3はoptionalDependency扱いで、Termuxなど一部環境ではビルドに失敗し、sql.jsへフォールバックする設計です(CI script内でも「optional on Termux」と明記)。
postinstallのpatch-packageはink(TUIライブラリ)へパッチを当てますが、失敗時は「skipping ink patch」とだけ表示してスキップされる仕様なので、TUI描画の不具合に気づきにくい場面があり得ます。
利用には各LLMプロバイダーのAPIキー、またはChatGPT OAuthのサブスクリプション契約が前提になります。
自分専用のAIアシスタントを、ファイル操作などの実権限を与えつつ24時間稼働させたい開発者向けのツールです。CIではUbuntu・Windows・macOS・Termuxの4系統でビルドとテストを回し、scripts/verify-package.cjsでパッケージ整合性まで検証しており、権限パッチやスラッシュコマンドの同期までvitestでテストされています。この作り込みの深さから、README記載の権限管理や記憶機能の説明は実装と矛盾なく裏付けられていると判断できます。一方でChatGPT OAuth連携のような非公開API依存部分は、実運用での安定性を自分の目で確認する価値があります。