slidea
v0.2.0
Published
Command-line client for Slidea (https://slidea.page) — author meetings, manage shares, and integrate Orariox from the terminal.
Maintainers
Readme
slidea
Slidea を Markdown / ターミナル から操作するための CLI。スクリプトや AI エージェント (Claude 等) からの自動化にも対応した JSON 出力モード付き。
インストール
# 公開 npm から
npm install -g slidea
# もしくは GitHub から直接
npm install -g github:abyss-inc/abyss-slidea#main --workspace=slideaクイックスタート
# 1. ブラウザで Slidea にログインしてトークンを取得
open https://slidea.page/cli-token
# 2. 表示された access token を貼り付け
slidea token eyJhbGciOi...
# 3. 動作確認
slidea whoamiコマンド一覧
| コマンド | 概要 |
| ------------------------- | ---------------------------------------------------------------------- |
| slidea token <jwt> | 貼り付け式ログイン |
| slidea whoami | 現在の認証ユーザを表示 |
| slidea logout | ローカル認証情報を削除 |
| slidea init <file> | Markdown デッキのテンプレートを書き出す |
| slidea push <file> | ローカル Markdown を Slidea にアップロード (新規 / 更新) |
| slidea pull <meetingId> | Slidea のミーティングをローカル Markdown に書き出す |
| slidea minutes <id> | テンプレ議事録を生成して標準出力 or ファイルに保存 |
| slidea login | (501) デバイスコードフロー — Phase 5b で実装予定 |
グローバルフラグ
| フラグ | 説明 |
| --------------------- | ---------------------------------------------------------------------- |
| -j, --json | 構造化 JSON を stdout に出力 (装飾を抑制)。スクリプト / AI 駆動向け |
| --token <jwt> | 1 回限りで Cognito access token を上書き (環境変数 / ファイル より優先)|
| --api-url <url> | API base URL を上書き (SLIDEA_API_URL 環境変数より優先) |
認証ソースの優先順位
--token <jwt>フラグSLIDEA_TOKEN環境変数~/.slidea/credentials.json(slidea token <jwt>で保存)
JSON 出力モード
スクリプトや AI エージェント (Claude) から制御する用途のために、すべてのコマンドが
--json フラグをサポートします。
$ slidea whoami --json
{"email":"[email protected]","sub":"abc-123","defaultOrg":"org_xyz","apiBase":"https://slidea.page","source":"file","tokenFresh":true}
$ slidea push deck.md --json
{"meetingId":"m_abc123","slidesCreated":5,"slidesUpdated":0,"slidesDeleted":0,"url":"https://slidea.page/orgs/.../meetings/m_abc123"}
# エラー時 (stderr に JSON、exit code 1)
$ slidea whoami --json
{"error":"unauthenticated","message":"Not signed in. Visit ..."}エラーレスポンスは常に { error: string, message: string, ...details } の形式で
stderr に出ます。error は安定した識別子 (unauthenticated, not_found,
http_502 等) なので、スクリプトで分岐可能です。
環境変数
| 変数 | 説明 |
| ----------------- | ---------------------------------------------------------------------- |
| SLIDEA_API_URL | API base URL (default: https://slidea.page) |
| SLIDEA_TOKEN | Cognito access token (--token フラグの代わり) |
CI や AI スクリプト向け:
export SLIDEA_TOKEN=eyJhbGc...
export SLIDEA_API_URL=https://slidea.page
slidea push deck.md --json認証情報の保存場所
- パス:
~/.slidea/credentials.json - パーミッション:
0600(Unix系のみ) - 内容: access token, email, sub, expiresAt, API base URL
slidea logout でクリアできます。
開発 (リポジトリ内)
# 開発モード (tsx で TS を直接実行)
cd packages/cli
npm run dev -- whoami
# ビルド (dist/ に出力)
npm run build
# ビルド後のスタンドアロン実行
node dist/index.js --helpMarkdown フォーマット
docs/slides-format.md を参照。要点だけ:
---でスライドを区切る- フロントマター (
---...---) でtitle,description,theme,meeting,orgを設定 # H1でカバースライド、## H2で標準スライドのタイトル> [!info] タイトルでコールアウト- 三連バッククォートで code block
::screenshot URL/::iframe URL height=Nで特殊ブロック
既知の制約 / 未実装 (Phase B+ で対応予定)
- デバイスコードフロー (
slidea login) — 501。slidea tokenで代用。 - リフレッシュトークン自動更新 — 未対応。期限切れたら再貼り付け。
- LLM 議事録 (
slidea minutes --mode llm) — 501。 - Markdown 内画像 (
) → MediaAsset アップロード — Phase B+ - スクリーンショット自動生成 (
::screenshot URL) — Phase B+ - 追加コマンド (
slidea meetings list/get/share,slidea orariox projects等) — Phase B
