OpenDocs — Markdownを共有可能なURLとPDF/DOCXに公開
OpenDocsは任意のMarkdownファイルをクリーンで読みやすいURLに変換します。同時に、ユーザーがオフラインで共有できるファイルを必要とする場合、ブランド化されたPDFまたはWord文書も生成できます。opendocs CLIを介して操作します。
クイックリファレンス
opendocs login --email [email protected] # サインインまたはサインアップ:6桁のコードをメール送信
opendocs login --email [email protected] --code 123456 # 完了:APIキーを保存
opendocs login --browser # 人間向けブラウザログイン
opendocs login --key od_live_xxxxx # 既存のAPIキーでログイン
opendocs publish doc.md # 1つのMarkdownファイルを公開 → URLを取得
opendocs publish doc.md # ... 再度実行:同じ文書を更新(重複なし)
opendocs publish doc.md --anonymous # アカウント不要:24時間誰でも開けるリンク + URLをクレーム可能
opendocs clone # ワークスペースを ./<workspace> にダウンロードして編集
opendocs status # 最後の同期以降のローカル/オンラインの変更を表示
opendocs history <doc> # 公開されたすべてのバージョン
opendocs rollback <doc> <version> # バージョンを復元(新しいバージョンとして)
opendocs move <doc> --project "Archive" # プロジェクト間で移動
opendocs share <doc> [email protected] @acme.com # ワークスペース外のユーザーにアクセス権を付与
opendocs team invite [email protected] # チームメイトを招待(招待はメールで承諾)
opendocs team join # 自分宛の招待を承諾
opendocs theme # PDF/DOCXエクスポートで使用されるブランドカラー、フォント、ロゴ、フッター
opendocs theme set --preset editorial --yes # エクスポートテーマを変更(事前に人間に確認)
opendocs integrations # Google Drive / DocuSeal:接続状況、Driveフォルダ名
opendocs save <doc> --folder "Board Minutes" # PDF(または --format docx|md)を指定したDriveフォルダに保存
opendocs sign request <doc> --signer "Employee=John Adams <[email protected]>" # 署名リクエストの下書き(送信はしない)
opendocs sign send <id> --yes # 下書きを送信(ユーザーが全署名者を確認した後にのみ)
opendocs sign status <id> # 誰が署名したか;署名一覧/ダウンロード/保存/キャンセルも可能
opendocs workspace create "Acme Research" # 新しいワークスペースを作成
opendocs project link "Acme launch" # このフォルダから公開された文書をそのプロジェクトに割り当て
opendocs config set organize auto # エージェントが文書を自動的にプロジェクトに分類
opendocs claim # このフォルダから公開された匿名文書をクレーム
opendocs publish *.md # 複数のファイルを公開(自動バッチ処理、最大500件)
opendocs publish ./vault --tags obsidian # フォルダ/vaultを再帰的に公開
opendocs publish *.md --export pdf # 公開してエクスポート — PDFは各ソースファイルの隣に配置
opendocs update doc.md --post-id <id|slug> # 既存の投稿を更新(新しいバージョン)
opendocs list # アクティブワークスペースの文書を一覧表示(エイリアス: `opendocs ls`)
opendocs list --all # 所属するすべてのワークスペースを横断して一覧表示
opendocs project create <name> --use # プロジェクトを作成/切り替え
opendocs project use <slug> # アクティブプロジェクトを切り替え
opendocs list --tag <tag> # タグでフィルタリング
opendocs search <words> # タイトルまたは概要ですべてのプロジェクトから文書を検索
opendocs get <id|slug> # 投稿の詳細を表示
opendocs pull <id|slug> # 生のMarkdownをダウンロード
opendocs pull --project # アクティブプロジェクトのすべての文書をダウンロード
opendocs pull --workspace # アクティブワークスペースのすべての文書をダウンロード
opendocs export <id|slug> --format pdf # 公開済み投稿をPDF(またはdocx)としてエクスポート
opendocs export a b c --format pdf # 最大10件の投稿を一括エクスポート(UUIDまたはスラッグ)
opendocs unpublish <id|slug> # 投稿をオフラインにする(コンテンツと履歴は保持、再公開不可)
opendocs visibility <id|slug> <level> # Markdownを再アップロードせずに可視性を変更
opendocs delete <id|slug> --yes # 投稿を完全に削除(スラッグとクォータ枠を解放)
opendocs whoami # 現在のユーザー/ワークスペース/プロジェクトを表示
opendocs workspace list # 所属するすべてのワークスペースを一覧表示(エイリアス: `workspace ls`)
opendocs workspace use <slug> # アクティブワークスペースを切り替え(エイリアス: `workspace switch`)
opendocs agent # 簡潔なAIエージェント向け指示を出力
opendocs agent --full # 完全なバンドルSKILL.mdを出力
opendocs agent --install # このマシンのすべてのエージェントにこのスキルをインストール
opendocs mcp add # コーディングツールにOpenDocs MCPサーバーを登録
opendocs mcp connect claude # ClaudeアプリにOpenDocsを追加(または: chatgpt)
opendocs logout # 保存された認証情報をクリア
すべてのコマンドは機械可読な出力のために --json を、APIエンドポイントを上書きするために --api-url <url> を受け付けます。プログラム的に実行する場合は常に --json を渡してください — stdoutは単一のパース可能なJSONオブジェクトになり、エラーはstderrに送られ、人間向けのスピナーは抑制されます。
<postId> を取るすべてのコマンドはスラッグも受け付けます。 スラッグはURL内の投稿の人間が読めるパスセグメントであり、アクティブプロジェクト内で一意です。ユーザーが自然言語で文書を指定する場合は、投稿スラッグを優先してください:opendocs get my-report は opendocs list --json からUUIDをコピーするよりも親しみやすいです。内部的にAPIは、アクティブワークスペース/プロジェクトにスコープされたインデックス付きルックアップを介してスラッグ→postIdを解決し、UUIDパスと同じ所有権チェックを行います。
ワークスペーススラッグとユーザー名は別物です。 URLはユーザーのユーザー名ではなく、ワークスペーススラッグから構築されます。デフォルトプロジェクトの文書は opendocs.cc/<workspace>/<post> を使用します。デフォルト以外のプロジェクトの文書は opendocs.cc/<workspace>/projects/<project>/<post> を使用します。ユーザー名はUIでの属性表示のためにまだ存在しますが、公開URLには表示されません。
MCP経由のOpenDocs
OpenDocsは https://mcp.opendocs.cc/mcp でリモートMCPサーバーも実行しています(ガイド: https://opendocs.cc/mcp)。各アプリは初回使用時にOAuthでユーザーをOpenDocsにサインインさせます。APIキーは必要ありません。
- チャットアプリ (Claude, ChatGPT): そのURLでカスタムコネクタとして追加します。
opendocs mcp connect claudeはOpenDocs.ccが入力された状態でClaudeの「カスタムコネクタを追加」ダイアログを開きます。opendocs mcp connect chatgptはChatGPTのプラグインページを開きます(その後「+」→「カスタムMCPサーバーを追加」)。両方ともURLをクリップボードにコピーします。 - コーディングツール:
opendocs mcp addは、検出したすべてのツール(Claude Code、Codex、Cursor、VS Code、Windsurf、Gemini、opencode、Kiro)に登録し、その他のツール向けに1行の指示を出力します。--agent <id...>でツールを選択し、--dry-runで変更内容を表示、opendocs mcp removeで削除、opendocs agent --install --mcpでこのスキルとサーバーを一緒にインストールします。 - MCPツールかCLIか? OpenDocs MCPツールが利用可能でシェルコマンドを実行できない場合は、Markdownテキストを直接取るMCPツールを代わりに使用してください。シェルがある場合は、ローカルファイル、フォルダ、画像にはCLIを優先してください:ローカル画像をアップロードし、フォルダ全体をバッチで公開し、各フォルダが何を公開したかを記憶します。
セットアップ
インストール
エージェントにOpenDocsをインストールする方法:
# Node.js 20以上:完全なCLI(推奨)、その後このスキルを検出したすべてのエージェントにインストール
npm install -g @opendocs.cc/cli
opendocs agent --install # SKILL.md + scripts/opendocs.sh、ネットワーク不要
# Node.js 22以上:skills CLIを介した同じスキル
npx skills add opendocs-cc/skills --skill opendocs -g -y
# Node.jsなし:このスキル + scripts/opendocs.sh(curl + jq)をインストール
curl -fsSL https://opendocs.cc/install.sh | bash
opendocs agent --install は、設定フォルダが存在する各エージェントのグローバルスキルフォルダにインストールします:~/.claude/skills (Claude Code)、共有 ~/.agents/skills (Codex, Cursor, GitHub Copilot, Gemini CLI, opencode, OpenClaw, Windsurf, Amp, Goose, Grok Build)、~/.cline/skills、~/.hermes/skills、~/.kiro/skills。opendocs agent --list は各エージェントのフォルダとそれが見つかったかどうかを表示します。--agent <id...> は、見つからなかった場合でも特定のエージェントにインストールします(--agent claude-code codex)。CLIの更新後に再実行してスキルを更新してください。書き込んだフォルダを出力します。--json を使用すると、installed[] に agent、path、status が含まれます。
Claude Codeでは、OpenDocs.ccプラグインとしてインストールすることもできます。これにより /opendocs-cc:publish と /opendocs-cc:export が追加され、MCPサーバーが接続され、スキルが最新に保たれます:/plugin marketplace add opendocs-cc/skills、その後 /plugin install opendocs-cc@opendocs-cc。Codexでは:codex plugin marketplace add opendocs-cc/skills、その後 codex plugin add opendocs-cc@opendocs-cc。
npx skills add は ✗ opendocs → PromptScript: PromptScript does not support global skill installation で終了する場合があります。これはPromptScriptのみに影響する既知のインストーラバグです。スキルはインストールされているので、そのまま続行してください。
opendocs コマンドが利用できずNode.jsもインストールされていない場合は、代わりに bash scripts/opendocs.sh(このスキルのフォルダ内)を使用してください — 以下の「Node.jsなし」セクションを参照してください。このガイドの他のすべては両方に適用されます。
CLIがインストールされ認証されているか確認
opendocs --version # インストールされているCLIバージョンを表示
opendocs whoami # ユーザー名 + ワークスペース名を表示(URLスラッグはJSON出力に含まれます)
opendocs whoami --json はエージェントにとって最も有用な診断コマンドです — 投稿URL構築用のCLIのアクティブワークスペーススラッグと、アカウント/ワークスペースコンテキストおよび文書クォータを1回の呼び出しで返します:
{
"userId": "...",
"onboarding": { "username": "...", "workspace": { "id": "...", "name": "Acme Docs", "slug": "acme-docs" } },
"quota": { "documents": { "plan": "free", "limit": 50, "used": 3, "remaining": 47 } }
}
Pro/Teamワークスペースの場合、quota.documents.limit と remaining は null です(無制限を意味します)。公開エンドポイントは、リクエスト本文の明示的な workspaceId に対してクォータを再確認するため、古いローカル設定でサーバー側の強制を回避することはできません。
CLIがない場合:
npm install -g @opendocs.cc/cli
ユーザーがログインしていない場合、最初の公開前にサインアップ(またはサインイン)させてください。端末からメール送信されたコードを使用します:ブラウザ不要、APIキーのコピーも不要。アカウントは最大50文書まで無料で、デフォルトでユーザーが望むものです:リンクは永続的、ワークスペース内でのみプライベート、その場で更新可能、PDFとしてエクスポート可能。
- ユーザーにメールアドレスを尋ねます。
opendocs login --email <email> --jsonを実行します。6桁のコードをメール送信し、すぐに{"status": "code_sent", ...}で終了します。- ユーザーに伝えます:「OpenDocsからのサインインコードが届いたら、ここに貼り付けてください。」
opendocs login --email <email> --code <code> --jsonを実行します。
メールが新しい場合、アカウント、ユーザー名、ワークスペース(opendocs.cc/<username>)、デフォルトプロジェクトを作成し、エージェントにちなんだ名前(例:claude-code)の新しいAPIキーをCLI設定に保存します。既存のアカウントは新しいキーを取得するだけです。opendocs signup はエイリアスです。コードは10分で期限切れになり、5回の試行が許可されます。invalid_code の場合は最新のメールを尋ね、code_expired の場合は手順2を再度実行します。
ユーザーがまだアカウントを希望しない場合のみ、代わりに匿名公開を提案します:
opendocs publish notes.md --anonymous --json
返された url を持つ誰でも24時間読むことができ、その後削除されます。claimUrl を返されたまま正確にユーザーと共有し、保存のためにサインアップを提案します:後で同じフォルダから opendocs login --email ... を実行すると、自動的に新しいワークスペースにクレームされます(または opendocs claim を実行)。誰でも開けるリンクでOKであるとユーザーが同意した場合を除き、匿名で公開しないでください。
その他のログイン方法:端末の人間は opendocs login --browser を使用できます。スクリプトやCIは既存のキーを使用できます:
opendocs login --key od_live_xxxxx
# またはスクリプト/CI用に環境変数を介して渡す:
export OPENDOCS_API_KEY=od_live_xxxxx && opendocs login
エージェントから素の opendocs login を絶対に実行しないでください。 --email、--key、または環境変数がない場合、stdinでAPIキーを要求し、ツールコールがハングします。OPENDOCS_API_URL はビルトインの https://api.opendocs.cc エンドポイントを上書きします。
複数ワークスペースの操作
ユーザーは複数のワークスペースに所属できます — 個人用の無料ワークスペースとTeamプランのワークスペース、複数のTeamワークスペース、または任意の組み合わせ。CLIは一度に1つのアクティブワークスペースを ~/.config/opendocs/config.json に保存します。publish と update はそのアクティブワークスペースに対して動作します(URLプレフィックス、クォータ、すべて)。list もデフォルトでアクティブワークスペースを対象とし、ユーザーがすべてのワークスペースの投稿を一度に見たい場合のエスケープハッチとして --all があります。変更コマンドに呼び出しごとの --workspace フラグはありません。スイッチは一度設定され、変更するまで持続します。
プロジェクトの操作
各ワークスペースにはデフォルトプロジェクトと、オプションの名前付きプロジェクトがあります。エージェントが製品、ローンチ、クライアント、実験、リポジトリ用の一貫した文書バッチを公開するときは常にプロジェクトを使用してください。デフォルトは一回限りの文書に最適です。
opendocs project list --json
opendocs project create "OpenClaw docs" --slug openclaw-docs --use --json
opendocs publish ./docs --json
opendocs project use default --json
opendocs workspace use <slug> はアクティブプロジェクトをそのワークスペースのデフォルトプロジェクトにリセットします。opendocs list はデフォルトでアクティブプロジェクトを表示し、最後にそのプロジェクトにいくつの文書があるかを表示します。
PDF/DOCXへのエクスポート
OpenDocsは公開されたMarkdownをブランド化されたPDFまたはDOCXとしてエクスポートできます。エクスポートの外観は opendocs theme で設定されたブランドテーマによって制御されます:色、フォント、ロゴ、フッター。
# 公開後にエクスポート
opendocs export <id|slug> --format pdf
opendocs export <id|slug> --format docx
# 公開と同時にエクスポート
opendocs publish doc.md --export pdf
# 一括エクスポート(最大10件)
opendocs export a b c --format pdf
エクスポートされたファイルは、opendocs save を使用してGoogle Driveフォルダに保存することもできます:
opendocs save <doc> --folder "Board Minutes"
opendocs save <doc> --folder "Reports" --format docx
opendocs integrations はどのDriveフォルダが利用可能かを表示します。
電子署名(DocuSeal)
OpenDocsはDocuSealと統合しており、公開された文書から署名リクエストを作成できます。
# 署名リクエストの下書きを作成(送信はしない)
opendocs sign request <doc> --signer "Employee=John Adams <[email protected]>"
# ユーザーが確認した後に送信
opendocs sign send <id> --yes
# ステータスを確認
opendocs sign status <id>
署名者は "Role=Name <email>" 形式で指定します。複数の署名者はカンマ区切りで指定します。
公開文書の検索と読み取り
公開された文書の内容を検索・読取るには:
# タイトルまたは概要で検索
opendocs search "Q3 report"
# すべての投稿を一覧表示
opendocs list
opendocs list --all
opendocs list --tag quarterly
# 詳細を表示
opendocs get <id|slug>
# ソースMarkdownをダウンロード
opendocs pull <id|slug>
opendocs pull --project
これらのコマンドは、公開された文書の内容について質問に答えるのに理想的です。例えば、「AcmeとのNDAには何が書いてある?」や「Q3レポートを要約して」など。
MCPサーバー
OpenDocsは https://mcp.opendocs.cc/mcp でMCPサーバーを実行しています。このサーバーは以下を提供します:
- ツール:Markdownを受け取り、公開/エクスポートし、文書を一覧表示/検索します。
- OAuthを介したユーザー認証。
# コーディングツールにサーバーを登録
opendocs mcp add
# 特定のツールのみに追加
opendocs mcp add --agent claude-code codex
# 何が変更されるかを確認(実際には変更しない)
opendocs mcp add --dry-run
# サーバーを削除
opendocs mcp remove
現在サポートされているツール:Claude Code、Codex、Cursor、VS Code、Windsurf、Gemini、opencode、Kiro。
Node.jsなし
Node.jsが利用できない場合、同じ opendocs CLIコマンドをエミュレートするシェルスクリプトがあります:
bash scripts/opendocs.sh login --email [email protected]
bash scripts/opendocs.sh publish doc.md
このスクリプトは curl と jq を必要とします。opendocs agent --install は、CLIとともにこのフォールバックスクリプトをインストールします。
全ての opendocs コマンドは、CLIが使用可能な場合はそれを使用し、そうでない場合は scripts/opendocs.sh にフォールバックします。このスキルは両方のパスに対応するために ~/bin/opendocs もセットアップします。