1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【無料】さくらのAI EngineをOpenCodeに設定し、Qiita CLIで記事を自動作成・投稿する方法

1
Posted at

はじめに

こんにちは。普段からQiitaに技術記事を投稿したり、OpenCodeなどのAIコーディングエージェントを活用している方も多いのではないでしょうか。

2026/08/25(明日)まで! さくらのAI Engineでは、月3,000リクエスト無料のキャンペーン「OpenAI・Anthropic互換APIを無料で使おう!『さくらのAI Engine』3,000リクエスト使い切りチャレンジ」が開催中です。締切が目前なので、ぜひこの機会に試してみてください。

今回は、そのキャンペーンに参加するため、さくらのAI EngineのAPIをOpenCodeに設定し、書いた記事をQiita CLIで自動投稿するワークフローを構築しました。なお、本記事自体もOpenCodeを使って生成・編集したものです。

本記事では、以下の流れを解説します。

  1. さくらのAI Engineとは?
  2. スクショの貼り付け方
  3. さくらのAI EngineのAPIキー取得
  4. OpenCodeへのAPI設定手順
  5. Qiita CLIの導入と記事の自動作成
  6. SEOを意識したプロンプト設計のコツ
  7. 実際に生成された記事の例と修正ポイント
  8. Qiita CLIで公開するまでのフロー
  9. プロジェクト構成のまとめ
  10. まとめ

AIエージェントとCLIの組み合わせで、記事執筆の効率化を目指している方はぜひ参考にしてみてください。


1. 今回使ったツール3選

1-1. さくらのAI Engine

さくらのAI Engineは、さくらインターネットが提供するOpenAI / Anthropic互換のAPI基盤です。既存のLLMクライアントやエージェントから、エンドポイントとAPIキーを差し替えるだけで利用できるのが大きなメリットです。テキスト生成だけでなく、音声認識や読み上げなどのモデルも利用できます。

今回のキャンペーンでは、Chat completionsが月3,000リクエスト無料で使えます(2026/08/25まで)。超過しても自動課金されないため、安心して試せるのが魅力です。

1-2. OpenCode

OpenCodeは、ローカル環境で動作するAIコーディングエージェントです。ファイルの読み書き、ターミナル操作、コード生成などを自然言語の指示で実行できます。今回は、OpenCodeにさくらのAI EngineのAPIキーを設定して、記事作成エージェントとして活用します。

1-3. Qiita CLI

Qiita CLI@qiita/qiita-cli)は、記事をローカルのMarkdownファイルで管理し、コマンド一発でQiitaへ投稿・更新できる公式ツールです。npx qiita newで下書きを作成し、npx qiita publishで公開できます。


2. スクショの貼り付け方

本記事には複数のスクリーンショット貼付位置があります。以下のいずれかの方法で画像URLを取得し、Markdownに貼り付けてください。

方法1:画像ホスティングサービスを使う(推奨)

Gyazo などのサービスでスクショを撮影すると、画像URLが発行されます。 そのURLをMarkdownに埋め込むだけなので、ローカル編集のまま完結します。

![代替テキスト](https://i.gyazo.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxx.png)

方法2:QiitaのWebエディタを使う

  1. 記事を一旦 npx qiita publish でQiitaにアップロードする
  2. QiitaのWebエディタで画像をドラッグ&ドロップ、または Ctrl+V(Mac: Cmd+V)で貼り付ける
  3. 自動生成された ![代替テキスト](画像URL) をコピーする
  4. ローカルのMarkdownファイルに貼り付けてから再公開する

方法3:GitHub Issuesなどに貼り付ける

GitHub IssuesやDiscussionsのコメント欄に画像を貼り付けると、 https://user-images.githubusercontent.com/... 形式のURLが発行されます。 これをMarkdownに使うこともできます。

スクショの撮り方

  • Mac: Cmd + Shift + 4 で範囲選択、Cmd + Shift + 3 で画面全体
  • Windows: Win + Shift + S で範囲選択
  • Gyazo: ショートカットキーを押すだけで即アップロード

3. さくらのAI EngineのAPIキー取得

まずは、さくらのAI Engineの管理画面からAPIキーを取得します。

  1. さくらのAI Engine 公式ページにアクセス
  2. コントロールパネルでアカウント作成・ログイン
  3. 「APIキー」または「トークン」発行画面で新しいキーを生成
  4. 発行されたAPIキーと**ベースURL(エンドポイント)**をコピーして控える

📝 画像追加予定
後日、「さくらのAI EngineのAPIキー発行画面」のスクリーンショットをここに追加します。

取得した情報は次のような形式になっています。詳細なエンドポイントや利用可能なモデル名は、スタートガイドや管理画面で必ず確認してください。

APIキー: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ベースURL: https://api.aise.sakura.ad.jp/v1  (例:実際のURLは公式ドキュメントを確認)

4. OpenCodeへのAPI設定手順

3-1. 設定ファイルを編集する

OpenCodeでは、LLMの接続先を設定ファイルや環境変数で切り替えできます。設定ファイルの場所は、通常以下のいずれかです。

~/.config/opencode/opencode.json
./.opencode/opencode.json

本プロジェクトでは、.opencode/opencode.json.example に設定例を用意しています。これを opencode.json にコピーして、APIキーなどの環境変数を読み込むようにしてください。

cp .opencode/opencode.json.example .opencode/opencode.json

OpenCodeの設定形式はバージョンによって異なる可能性があるため、必ずOpenCode公式ドキュメントを確認してください。以下は、OpenAI互換APIとして接続する場合の一般的な設定例です。

{
  "llm": {
    "provider": "openai",
    "baseURL": "https://api.aise.sakura.ad.jp/v1",
    "apiKey": "${SAKURA_AISE_API_KEY}",
    "model": "gpt-4o-mini"
  }
}

注意:上記は例です。実際のprovider名、baseURL、利用可能なmodel名は、OpenCodeのバージョンとさくらのAI Engineのドキュメントで確認してください。

環境変数を使うことで、APIキーを平文で書かずに済むのでセキュリティ的にも安心です。本プロジェクトでは .env.example を用意しているので、コピーして実際の値を入力してください。

cp .env.example .env
# .env を編集して APIキー・ベースURL・モデル名を設定
export SAKURA_AISE_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export SAKURA_AISE_BASE_URL="https://api.aise.sakura.ad.jp/v1"
export OPENAI_MODEL="gpt-4o-mini"

📝 画像追加予定
後日、「OpenCodeの設定画面または設定ファイル」のスクリーンショットをここに追加します。

3-2. 動作確認

設定が完了したら、OpenCodeに簡単なプロンプトを投げて応答を確認します。

「こんにちは」のあとに、自己紹介を100文字以内で書いてください。

さくらのAI Engineからの応答が返ってくれば設定成功です。

📝 画像追加予定
後日、「OpenCodeでさくらのAI Engineから応答が返ってきた画面」のスクリーンショットをここに追加します。


5. Qiita CLIの導入と初期設定

4-1. パッケージのインストール

プロジェクトディレクトリで以下のコマンドを実行し、Qiita CLIを導入します。

npm install -D @qiita/qiita-cli

本プロジェクトでは package.json によく使うコマンドを npm scripts として登録しておくと便利です。

{
  "scripts": {
    "qiita:new": "qiita new",
    "qiita:preview": "qiita preview",
    "qiita:publish": "qiita publish",
    "qiita:publish:all": "qiita publish --all"
  }
}

これで、npm run qiita:previewnpm run qiita:publish -- <basename> のように実行できます。

4-2. ログイン

以下のコマンドでQiitaアカウントと連携します。

npx qiita login

ブラウザが開いて認可を求められるので、許可します。

4-3. 新規記事の作成

記事ファイルを作成するには、newコマンドを使います。

npx qiita new sakura-ai-engine-opencode-qiita-cli

すると、public/ディレクトリ以下にMarkdownファイルが生成されます。ファイル先頭のフロントマター(---で囲まれた部分)に、タイトルやタグ、公開設定、キャンペーンUUIDを記述します。

---
title: 記事タイトル
tags:
  - さくらのAI
  - さくらのAI Engine
private: false
posting_campaign_uuid: bd14d28b53326d318fec
agreed_posting_campaign_term: true
---

📝 画像追加予定
後日、「npx qiita newで作成されたMarkdownファイルの画面」のスクリーンショットをここに追加します。

4-4. 記事の投稿・更新

記事を完成させたら、以下のコマンドでQiitaへ投稿できます。

npx qiita publish sakura-ai-engine-opencode-qiita-cli

--allを付けると、すべての記事を一括投稿・更新します。


6. プロンプト設計:SEOを意識した記事作成

OpenCodeに記事作成を任せる場合、プロンプトの質が出来栄えを左右します。今回は prompts/article-prompt.md にプロンプトテンプレートを保存しておき、必要に応じて微調整しながら使っています。

5-1. プロンプトの構成例

あなたはSEO対策が得意なプロの技術ブロガーです。
以下のテーマで、Qiita向けの技術記事をMarkdown形式で作成してください。

【テーマ】
さくらのAI EngineのAPIをOpenCodeに設定し、Qiita CLIで記事を自動作成・投稿する方法

【条件】
- 読者はエンジニア初心者〜中級者
- 丁寧に手順を解説し、コピペで再現できるようにする
- キーワード「さくらのAI Engine」「OpenCode」「Qiita CLI」「OpenAI互換API」を自然に含める
- 見出し(h2/h3)を多用し、スキャンしやすい構成にする
- コードブロックは言語指定を付ける
- 最後にまとめを設ける
- 記事の長さは2,000〜3,000文字程度

5-2. プロンプトを改良するコツ

  • 対象読者を明確にする:初心者向けか、中級者向けかで語尾や詳細度を変える
  • キーワードを列挙する:「さくらのAI Engine」「OpenCode」「Qiita CLI」「OpenAI互換API」などを自然に散りばめる
  • 構成を指定する:はじめに→導入→手順→まとめ、という流れを決める
  • コードやコマンドを求める:技術記事は再現性が信頼度を左右します
  • 文字数やトーンを指定する:「2,000〜3,000文字」「親しみやすい語尾」など具体性を持たせる

📝 画像追加予定
後日、「OpenCodeにプロンプトを入力している画面」のスクリーンショットをここに追加します。


7. 生成結果の例と修正ポイント

6-1. OpenCodeが生成してくれた記事の要約

プロンプトを投げると、OpenCodeは以下のような構成のドラフトを作成してくれました。実際に本記事の土台にもなっています。

  • さくらのAI Engineの概要とキャンペーン紹介
  • APIキー取得手順
  • OpenCodeへのOpenAI互換API設定例
  • Qiita CLIの導入から公開までの手順
  • プロンプト設計のコツ
  • 実際に試してみた所感とまとめ

6-2. 手動で修正したポイント

AIの生成物は正確ですが、人間が読みやすく、検索に強い記事に仕上げるため、以下の点を手動で調整しました。

  • 導入文を強化:締切が目前であることや、本記事自体がAIで生成した事例であることを明記
  • タグを最適化:キャンペーンの必須タグ「さくらのAI」を追加し、検索用タグも選定
  • 見出しを調整:h2/h3の階層を整理し、スキャンしやすく
  • 注意書きを追加:APIキーの管理方法や無料枠の期限、設定例が参考値であることを明記
  • 外部リンクを修正:公式ページのURLを正しいものに差し替え

📝 画像追加予定
後日、「OpenCodeが生成したMarkdownファイルをエディタで修正している画面」のスクリーンショットをここに追加します。


8. Qiita CLIで公開するまでのフロー

実際の公開フローは以下の通りです。

# 1. 下書き作成
npx qiita new sakura-ai-engine-opencode-qiita-cli

# 2. OpenCodeで本文を生成・手動で調整

# 3. プレビュー確認
npx qiita preview

# 4. Qiitaへ投稿
npx qiita publish sakura-ai-engine-opencode-qiita-cli

npx qiita previewを使うと、ローカルで投稿前の見た目を確認できるので、誤字脱字やレイアウト崩れを防げます。キャンペーン参加時は、フロントマターのposting_campaign_uuidagreed_posting_campaign_termが正しく設定されているか再確認しましょう。

📝 画像追加予定
後日、「npx qiita previewの画面または公開後のQiita記事画面」のスクリーンショットをここに追加します。


9. プロジェクト構成のまとめ

今回構築したファイル構成は以下の通りです。

.
├── .env.example                          # 環境変数テンプレート
├── .gitignore                            # .env や OpenCode設定の実ファイルを除外
├── .opencode/
│   └── opencode.json.example             # OpenCode設定テンプレート
├── package.json                          # Qiita CLI用 npm scripts
├── prompts/
│   └── article-prompt.md                 # 記事生成用プロンプトテンプレート
├── public/
│   └── sakura-ai-engine-opencode-qiita-cli.md  # 本記事本体
└── qiita.config.json                     # Qiita CLI設定

この構成にすることで、APIキーなどの機密情報をGit管理から外しつつ、チームや別のマシンでも同じワークフローを再現しやすくなります。


10. まとめ

今回は、さくらのAI EngineのAPIをOpenCodeに設定し、Qiita CLIで記事を自動作成・投稿する方法を紹介しました。

ポイントの振り返り

  • さくらのAI EngineはOpenAI互換APIなので、既存ツールとの連携が容易
  • OpenCodeにはbaseURLとAPIキーを設定するだけで利用可能
  • Qiita CLIを使うと、ローカルで記事を管理しつつ公開できる
  • プロンプトにSEOキーワードや構成を明示することで、質の高い記事を効率よく生成できる
  • .env.example.opencode/opencode.json.example、npm scripts により、再現性のある執筆環境を構築できる

AIの力を借りながら、最後は人間の目で調整することで、検索から流入しやすい技術記事が作れます。 締切は**2026/08/25(明日)**までなので、さくらのAI Engineの無料キャンペーンを活用して、ぜひ皆さんも効率的なQiita執筆ワークフローを構築してみてください。


参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?