Skip to main content

zenn-cli

Zenn CLI による Scrap の一覧・取得・作成・更新・コメント投稿を、安全に行う。`zenn-cli`、Scrap、API キー、公開範囲、Secret・AI scan を扱う時に使う。

소스 정보

저장소
zenn-dev/zenn-editor
최근 소스 활동
2026년 10월 16일 06:16
감지된 SKILL.md 언어
일본어
스타
749
포크
88

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
zenn-cli
description
Zenn CLI による Scrap の一覧・取得・作成・更新・コメント投稿を、安全に行う。`zenn-cli`、Scrap、API キー、公開範囲、Secret・AI scan を扱う時に使う。
targets
["*"]
# Zenn CLI Zenn CLI を使い、Public API 経由で Scrap の取得、作成、更新、コメント操作を行う。認証情報、公開範囲、投稿内容、機械可読出力を安全に扱う。 ## Zenn Scrap の考え方 [Zenn 公式の説明](https://zenn.dev/zenn/articles/about-zenn-scraps)では、Scrap はテーマを決めたスレッドへ、好きな単位・タイミングで知見やメモを足していく機能とされている。記事や本のような、学んだことを後から整理した完成稿とは異なり、今まさに取り組んでいる作業、まだ解決していない問題、学習の過程をリアルタイムに残すために使う。 [公開中の Scrap 一覧](https://zenn.dev/scraps)には、調査や試行錯誤のログ、学習・開発記録、参考情報の収集、小さな問題の解決履歴などがある。コメントが 1 件だけの短いメモも、長期間にわたり多数のコメントを追加する記録もあり、最初から記事のように完成させる必要はない。必要に応じてトピックを付け、問題の解決や情報のまとまりを区切る時に Close する。他のユーザーとの意見交換を目的とする場合はコメント投稿を許可できる。 Scrap へ投稿する時は、次を意識する。 - 原則として、複数の話題を含む長文を 1 コメントにまとめるより、小さなコメントを複数追加する。 - 意味、作業対象、概念、使用したツール、または調査・作業の時系列上の一区切りを目安にコメントを分ける。1 つの発見、仮説、試行、結果、次の課題はそれぞれ自然な区切りになりうる。 - 区切りや順序を整えるためだけに、投稿済みのコメントを削除したり編集したりしない。訂正や追加情報は、新しいコメントとして積み上げてもよい。 - 形式を厳守して筆が止まることを避ける。タイトル、構成、結論が暫定的でも、作業中の知見をラフに追加していく。 ## セットアップ方法 npm または pnpm を使い、次の 3 種類から選ぶ。 | 方法 | npm | pnpm | インストール後の実行 | |------|-----|------|----------------------| | グローバルインストール | `npm i -g zenn-cli` | `pnpm add -g zenn-cli` | `zenn scrap ...` | | プロジェクトへのインストール | `npm i -D zenn-cli` | `pnpm add -D zenn-cli` | `npm exec -- zenn scrap ...` または `pnpm exec zenn scrap ...` | | 直接実行 | `npx zenn-cli scrap ...` | `pnpm dlx zenn-cli scrap ...` | インストール操作なしで実行 | プロジェクトへインストールした場合は、そのプロジェクトのディレクトリで実行する。以降の `zenn` は、選んだ方法に応じて `npm exec -- zenn`、`pnpm exec zenn`、`npx zenn-cli`、または `pnpm dlx zenn-cli` に置き換える。 ## 実行方法 API キーは、実行前に環境変数 `ZENN_API_KEY` に設定する。値を表示したり、コマンド引数へ直書きしたりしない。 操作前にエージェント自身が次のヘルプを読み、利用可能なコマンド、引数、オプション、必要な権限、環境変数、出力形式を確認する。 ```bash zenn --help zenn scrap --help ``` ヘルプの確認は、ユーザーへ確認作業を依頼するための手順ではない。取得した仕様に従って目的の操作を実行する。 ## ユーザー向け環境変数 CLI を起動するシェルで設定する。以下はユーザーが実行時に設定する変数であり、ビルド用・開発内部用の変数は含めない。 ### API 接続 | 変数 | 必須条件・既定値 | 用途 | |------|------------------|------| | `ZENN_API_KEY` | API 操作時に必須 | Zenn の API キー。操作に必要な scope を持つキーを設定する。 | | `ZENN_API_BASE_URL` | 任意。既定値は `https://zenn.dev` | 開発・テスト用の接続先 origin。HTTPS、または `http://localhost` のみ使用できる。ポートは指定可能。認証情報、ルート以外のパス、クエリ、フラグメントは指定できない。API キーが送信されるため、信頼できる接続先だけを設定する。 | ### Scrap の安全設定 | 変数 | 設定値・既定値 | 用途 | |------|----------------|------| | `ZENN_CLI_FORCE_SAFE` | `true` / `false`。既定値は `false` | `true` では Secret scan と AI scan の両方を必須にし、scan のスキップを拒否する。AI scan を自動で有効にはしないため、`ZENN_CLI_AI_SCAN=true` とプロバイダーの設定も必要。 | | `ZENN_CLI_FORCE_UNLISTED` | `true` / `false`。既定値は `false` | `true` では Scrap 作成を常に限定公開にする。 | Secret scan は既定で有効であり、有効化のための環境変数は不要。 ### AI scan | 変数 | 必須条件・設定値・既定値 | 用途 | |------|--------------------------|------| | `ZENN_CLI_AI_SCAN` | `true` / `false`。既定値は `false` | `true` で AI scan を有効にする。 | | `ZENN_CLI_AI_PROVIDER` | AI scan 利用時に必須。生成モデルは `openai` / `fireworks` / `anthropic` / `openrouter`、判定モデルは `openai-decisions` / `jev` / `clef` | 送信先の AI プロバイダー。 | | `ZENN_CLI_AI_MODEL` | 既定値は `openai` / `openai-decisions` が `gpt-6-luna`、`jev` が `jev-latest`、`clef` が `clef-flash`(`clef` も指定可)。`fireworks` / `anthropic` / `openrouter` では必須 | 利用するモデル ID。指定する場合は空文字不可。 | | `ZENN_CLI_AI_EFFORT` | `none` / `low` / `medium` / `high`。既定値は `medium` | 生成モデルの推論量。`none` は推論設定を送信しない。モデルが対応する値を選ぶ。判定モデルでは使用しない。 | | `ZENN_CLI_AI_SCAN_FAILURE_THRESHOLD` | `low` / `medium` / `high` / `critical`。既定値は `high` | この重要度以上の指摘がある場合に投稿を拒否する。 | | `ZENN_CLI_AI_SCAN_PROBABILITY_THRESHOLD` | 0 より大きく 1 より小さい数値。既定値は `0.5` | 判定モデルで、検知事項や重要度を該当とみなす確率。 | | `ZENN_CLI_AI_SCAN_PROMPT` | 任意。未設定時は組み込みの検知方針。空文字不可 | 検知方針をカスタマイズするプロンプト。外部プロバイダーに送信されるため、機密情報を書かない。 | | `ZENN_CLI_AI_JEV_IMAGES` | `true` / `false`。既定値は `false` | `true` で Jev による画像の AI scan を許可する。TypeSafe の実験的機能のため、明示的に有効にする。 | | `OPENAI_API_KEY` | `openai` / `openai-decisions` 利用時に必須 | OpenAI の API キー。 | | `FIREWORKS_API_KEY` | `fireworks` 利用時に必須 | Fireworks の API キー。 | | `ANTHROPIC_API_KEY` | `anthropic` 利用時に必須 | Anthropic の API キー。 | | `OPENROUTER_API_KEY` | `openrouter` 利用時に必須 | OpenRouter の API キー。ZDR(Zero Data Retention)のエンドポイントだけへ振り分けるため、ZDR 非対応のモデルは利用できない。 | | `TYPESAFE_API_KEY` | `jev` 利用時に必須 | TypeSafe の API キー。 | | `CLOUDFLARE_API_TOKEN` / `CLOUDFLARE_ACCOUNT_ID` | `clef` 利用時に必須 | Workers AI の API トークンとアカウント ID。 | 判定モデル(`openai-decisions` / `jev` / `clef`)は文章を生成せず、検知事項ごとの確率を返す。指摘には固定の分類名と確率だけを表示する。Clef は一度に検査できる長さ(24,576 トークン)を超えた場合や、処理したトークン数が上限に近く未検査の部分が残った可能性がある場合は、投稿せずに終了する。 画像操作に必要な権限と使い方は `zenn image --help` で確認する。`ZENN_CLI_AI_SCAN=true` の場合は画像のアップロード前にも AI scan を実行し、画像とファイル名を AI プロバイダーへ送信する。画像を扱えないモデルや形式(Jev では PNG・JPEG で縦横 280〜1568px、Clef では PNG・JPEG・WebP)や、全フレームを検査できないアニメーション画像の場合はアップロードせずに終了する。 判定モデルでは、認証情報を該当と判定した場合は `critical`、そのほかの分類は `high` 以上として扱い、重要度の回答だけで検知を弱めない。 ## Scrap 操作の方針 - 作成時は公開範囲と他者投稿可否を明示する。指定がなければ限定公開かつ他者投稿禁止とし、作業ログは通常 Open のまま開始する。 - 本文はまとまりごとに Markdown ファイルへ用意し、小さなコメントとして追加する。 - Scrap の本文やコメントを書く時は、[Zenn の Markdown 記法一覧](https://zenn.dev/zenn/articles/markdown-guide)を参照し、Zenn で表示できる記法で書く。コードブロック(ファイル名・diff)、メッセージ(`:::message`)、アコーディオン(`:::details`)、リンクカードや各種埋め込み、数式、mermaid のダイアグラムなどは、この記法一覧に従う。 - 誤りの訂正や新しい知見は、新規コメントで追記することを優先する。既存本文そのものを直す必要がある場合だけ更新する。 - 既存 Scrap を公開へ変更する前に、対象、所有者、現在の公開範囲、タイトル、全コメント、トピックを確認し、公開してよい内容だけであることを再検査する。 - 限定公開 Scrap の URL と slug は秘密情報として扱う。 - 後続処理で結果を使う場合は、ヘルプに記載された機械可読出力を使い、説明文を標準出力へ混ぜない。 ## 投稿前の安全確認 Zenn Scrap は不特定多数に公開される。限定公開でも URL または slug を知る人は閲覧できるため、投稿前に本文、タイトル、トピックを確認し、次の情報をマスクまたは除外する。 - 内部 URL、内部ドメイン、顧客名、個人情報、認証情報、未公開の事業情報 - リクエスト ID、GitHub Private リポジトリの URL、そのほか組織内部の識別子や運用情報 Secret scan は通常スキップしない。scan の有効化や設定方法は `zenn scrap --help` に従う。 AI scan は投稿内容や追加指示を外部プロバイダーへ送るため、送信先、保持、学習利用、リージョン、契約条件についてユーザーの許可と適合性を確認する。機密情報は scan 前にローカルで除去し、AI 向けの備考や追加プロンプトにも機密情報を書かない。
GitHub에서 보기