このプロジェクトについて

zotioは、Zotero参照ライブラリ向けの信頼と自動化レイヤーとして位置づけられるコマンドラインツールおよびMCPサーバーです。デスクトップGUIではなく、ライブラリを大規模に操作する必要があるユーザーを対象としています。具体的には、欠落したPDFの検出、提出前の重複引用キーの捕捉、アノテーションのエクスポート、ノートボールトの同期、AIエージェントへの制約付きコンテキストの提供などが含まれます。 アーキテクチャとデータアクセス 読み取りはローカルで行われます。zotioは、localhost上で実行中のZoteroデスクトップAPIと同期済みSQLiteミラーに接続し、APIキーを必要とせず、同期済みコピーに対してオフラインで動作します。書き込みは意図に応じて分割されます。添付ファイル付きの新規アイテム作成は、ローカルデスクトップコネクタ(ブラウザの「Zoteroに保存」ボタンで使用されるチャネルと同じ)を優先します。一方、フィールド編集、削除、エンリッチメント、タグ操作、移動、コレクションの作成・更新はZotero Web APIにルーティングされ、設定済みキーが必要です。コネクタパスは保証ではなく優先事項として説明されています。自動ルーティングでは、デスクトップが実行中の個人ライブラリにのみコネクタを使用し、それ以外の場合はWeb APIにフォールバックし、グループライブラリは常にクラウドに送信されます。エンリッチメントとインポートで参照される外部サービスには、CrossRef、OpenAlex、Semantic Scholar、Unpaywall、OpenCitationsが含まれます。doctorコマンドは、接続性、キャッシュの鮮度、書き戻しが利用可能かどうかを報告します。 書き込みの安全性 すべての書き込みコマンドは、単一のミューテーションエンベロープを共有します。プレビューがデフォルトで、--yesで適用され、--dry-runが常に優先されます。エージェントモードはJSONと非対話型のデフォルトを設定しますが、書き込みを自動適用しません。ゲートは爆発半径を制限します。--max-changesはデフォルトで500(エージェントモードでは50)で、マージ、完全削除、ゴミ箱を空にするなどの不可逆操作には明示的な--allow-destructiveフラグが必要です。適用された書き込みはローカルミラーにリプレイされるため、後続の読み取りで再同期なしに変更を確認できます。適用された実行はすべて追記専用ジャーナルに記録され、ジャーナルのアンドウは可逆操作(タグの名前変更、コレクションのメンバーシップ、作成)を元に戻しますが、マージ、削除、フィールドの上書きは拒否します。 ライブラリの健全性とCI 主力のライブラリ健全性コマンドは、既存のチェック(citekey競合、重複、メタデータ欠落、タグのドリフト、壊れた添付ファイル)を1つのランク付けされた検出結果タイプ付きレポートにまとめます。--forフラグでプリセット(quick、citation、systematic-review、vault、all)を選択できます。検出結果には、修正するコマンドを指定するrecommended_actionが付属します。このコマンドはCIゲーティングをサポートし、--fail-onで基準を満たさない場合に終了コード11を返し、--require-freshでミラーが古い場合に終了コード12を返します。デスクトップアプリが必要なチェックは、静かに消えるのではなく、修正方法とともに明示的なスキップとなり、ゲート関連のスキップは終了コード9を返します。--badgeオプションは、shields.ioエンドポイントのJSONアーティファクトをレンダリングします。付属のGitHub Actionは、インストール、同期、ゲート、ベースライン差分をパッケージ化します。 その他の機能 撤回チェックは、CrossrefのRetraction Watchデータに対してDOIを検証し、撤回、懸念の表明、訂正をカバーします。コレクションギャップ分析は、ライブラリにない頻繁に引用される論文をランク付けします。参考文献チェックは、LaTeXまたはpandocの引用を解析し、不明または曖昧なキーをフラグします。タグ監査は、大文字小文字やバリアントの重複をグループ化し、実行可能なマージコマンドを提供します。ライブラリ統計、アイテム監査、重複検出、citekey競合検出が含まれます。読み取りと合成の機能には、LLMハンドオフ用の制限付きサマライズバンドル(zotio自体はモデルを呼び出しません)、アノテーションのエクスポートと検索、読書リストのライフサイクル、ノートテンプレート、ディープリンク、共有可能なSVGカード付き年間レビューが含まれます。エンリッチメントは、外部プロバイダーから欠落しているDOI、抄録、引用フィールドを埋め、オープンアクセスPDFを添付し、Extraフィールドに来歴を記録します。プレプリントチェックは、arXivレコードを公開済みジャーナルDOIにアップグレードします。エクスポートオプションには、CSL-JSON、BibTeX、BibLaTeX、RIS、およびコンテンツロックファイル付きの再開可能なJSONLスナップショットが含まれます。sync、watch、tailはミラーを最新に保ち、スキーマドリフトはZoteroアップグレード後の変更を検出します。 インポートとボールトワークフロー 一括インポートは、スキャン、解決、適用の各ステージを実行し、編集可能なJSONマニフェストを人間によるレビューのチェックポイントとして使用します。ボールト同期は、ObsidianまたはLogseqボールトをZoteroと双方向で同期させ、管理領域とユーザー散文領域を使用し、高速フォワードのみの書き戻しと、サイレントマージではなくレビュー可能な競合アーティファクトを提供します。 エージェント統合 --agentフラグは、JSON、コンパクト、非対話型の出力を提供します。capabilitiesコマンドは、操作、データソース、書き込みターゲット、破壊性、前提条件でタグ付けされたコマンドのレジストリを公開します。agent-contextコマンドはCLIを説明し、whichコマンドは自然言語クエリをコマンドに解決し、エンベロープと終了コードは安定した契約として文書化されています。MCPサーバーバイナリはCLIとともに配布されます。 配布 インストールは、macOSおよびLinuxではHomebrew、deb、rpm、apk用のGitHubリリースパッケージ、WindowsではWinGetまたはScoopから利用できます。CLI、エージェントスキル、MCPサーバーは個別にインストールできます。このプロジェクトはMITライセンスで、Goで書かれています。