Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I built a CLI that scaffolds the boring parts of an AI SaaS — here's what it actually generates

2026年09月24日に「Dev.to」が公開したITニュース「I built a CLI that scaffolds the boring parts of an AI SaaS — here's what it actually generates」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AI SaaS開発で必要となる認証やユーザー管理、APIキーの暗号化など、初期の定型作業を自動生成するCLIツール「@chimerai/cli」が登場した。Next.jsとPythonを組み合わせたプロジェクトを素早く作成でき、開発者は面倒な設定を省略して、本来のAI機能開発に集中できる。既存プロジェクトへの機能追加も可能だ。

ITニュース解説

システムエンジニアを目指す初心者の皆さんへ、最新のAIサービス開発を効率化する一つのツールを紹介する。これは「@chimerai/cli」というコマンドラインインターフェース(CLI)で、AIを活用したSaaS(Software as a Service)アプリケーションを開発する際に、繰り返し必要となる「退屈な」初期設定作業を自動で生成してくれるものだ。

新しいAI SaaSプロジェクトを始める際、開発者はまず、ユーザー認証機能、ユーザー情報を管理するデータベースのテーブル、AIサービスプロバイダーのAPIキーを安全に保存する仕組み、そしてデータベースの設計図となるPrismaスキーマといった、基本的な基盤部分から構築を始める。これらの作業はどのプロジェクトでも必須だが、AIの核心部分を開発するわけではないため、多くの開発者にとっては手間と感じられる部分だ。このCLIは、まさにそうした開発の初期段階で必要となる基盤コードを自動で作成し、開発者がすぐにAIサービスの肝となる部分の開発に取り掛かれるように支援する。

このツールを使う最も基本的なコマンドは、「npx @chimerai/cli create my-ai-app」だ。これにより、「my-ai-app」という名前の新しいプロジェクトが作成される。通常、このコマンドを実行すると、認証機能、ロールベースのアクセス制御(RBAC)、管理者向けダッシュボード、分析機能がデフォルトで含まれる形で、対話形式で機能を選択できる。AI関連の機能は必要に応じて後から追加する形になる。開発をより手軽にするためのオプションもいくつか用意されている。「--yes」オプションを使えば、対話形式のプロンプトをスキップし、デフォルト設定でプロジェクトを生成できる。「--sqlite」は、データベースとしてPostgreSQLやRedisの代わりにSQLiteを使うことで、Dockerのような追加の環境設定なしにすぐにコードを試せるため、コードの内容を簡単に確認したい場合に非常に便利だ。「--install」オプションを組み合わせれば、必要なnpmパッケージのインストールまで自動で行ってくれる。特に--sqliteは、大規模なデータベースの知識がなくてもプロジェクトを動かせるため、初心者には特におすすめの方法だ。

CLIが生成するプロジェクトのファイル構造は、一般的なWebアプリケーション開発に慣れている人には馴染みやすい構成だ。my-ai-app/ディレクトリの直下には、ユーザーインターフェースやAPIエンドポイントを含む「app/」ディレクトリ、共通のUI部品をまとめた「components/ui/」、Prismaクライアントの設定や認証、暗号化などの共通処理をまとめた「lib/」、そしてデータベースのテーブル構造を定義する「prisma/schema.prisma」といった主要なフォルダがある。加えて、環境変数を設定する「.env」、Docker環境設定の「docker-compose.yml」(SQLiteを使用しない場合)、プロジェクトの依存関係を記述する「package.json」などが配置される。

特に注目すべきは、Prismaスキーマの生成方法だ。このCLIは、開発者が選択した機能に応じて必要なデータベースモデル(テーブルの定義)だけを追加する。例えば、認証機能を選べばユーザー、アカウント、セッション、検証トークンといったモデルが追加される。ロールベースのアクセス制御を選べばロールと権限のモデルが、プロバイダー管理を選べばモデルプロバイダーのモデルが追加されるといった具合だ。これにより、不要なデータベース設計が自動で生成される心配がなく、データベースを効率的に利用できる。また、管理者ダッシュボードにはロールベースのアクセス制御が必須であるように、機能間の依存関係もCLIが自動で解決してくれるため、開発者が複雑な依存関係を手動で管理する必要がない。

このCLIで生成されるAI SaaSアプリケーションは、現代のWeb開発で広く使われている堅実な技術スタックを採用している。ユーザーインターフェースとAPIバックエンドには「Next.js 14/15 App Router」が使われ、主にTypeScriptで記述されている。これにより、型安全な開発が可能となり、コードの品質と保守性が向上する。データベースには「PostgreSQL」が使用され、ORM(Object-Relational Mapping)ツールとして「Prisma」が採用されている。ユーザー認証は「NextAuth」が担当し、資格情報(ID/パスワード)認証やOAuth(GoogleやGitHubなどのサービスを使った認証)をサポートする。見た目のデザインには「Tailwind CSS」と、それを基盤としたリッチなUIコンポーネントライブラリである「shadcn/ui」が使われている。

特筆すべきは、AI関連のサービスが「Python」で実装されている点だ。具体的には「FastAPI」と「LiteLLM」が使われている。これは、大規模言語モデル(LLM)のオーケストレーション(複数のAIモデルやツールを組み合わせて複雑なタスクを実行する技術)のエコシステムが、LangChain、FAISS、spaCyといったライブラリを含め、Pythonを中心に発展しているためだ。ユーザーに直接触れる部分やデータの型安全性を重視する部分はTypeScriptのNext.jsで構築し、AIの複雑な処理や最新のAIライブラリを活用する部分はPythonで行うという、明確な役割分担がされている。Next.js側は、AIサービスが動作するURL(デフォルトではhttp://localhost:8002)に対してリクエストを送信するプロキシとして機能する。

このCLIが提供する機能の中で、特に「定型作業ではない」と評価されているのは、暗号化されたAPIキーによるプロバイダー管理と、柔軟なロールベースのアクセス制御(RBAC)だ。多くの開発者がAPIキーの管理を独自に実装しようとし、セキュリティ面で不十分なものになりがちだが、このCLIは最初から安全な仕組みを提供してくれる。プロバイダーAPIキーは、データベースに平文で保存されることなく、環境変数に設定された暗号化キー(ENCRYPTION_KEY)を使ってAES-256で暗号化されて保存される。これにより、情報漏洩のリスクが大幅に軽減される。また、「OpenAI」だけでなく、「Anthropic」や「Ollama」など様々なプロバイダーに対応しており、カスタムプロバイダーとして独自のAPIエンドポイントを指定することも可能だ。管理画面からプロバイダーを追加し、接続テストまでできるため、開発の手間が省ける。

RBAC機能も優れている。これは、ユーザーに「ロール(役割)」を割り当て、そのロールに基づいて「権限」を付与することで、システム内の特定の操作(例: 投稿の読み取り、ユーザーの編集など)ができるかどうかを制御する仕組みだ。このCLIでは、「resource:action」(例: posts:read)のような形式で権限を定義し、APIルート内で簡単に権限チェックを行うことができる。例えば、admin:*というワイルドカードを使えば、管理者はあらゆる操作が可能となる。デフォルトで管理者アカウントもシード(初期データとして投入)されているが、もちろん本番環境では削除する必要がある。

このCLIは非常に有用だが、いくつかの制限事項もある。現在、生成されるプロジェクトは独立したアプリケーションであり、@chimerai/model-providersのような共有パッケージとしては提供されていない。これは、開発者が生成されたコードを完全に「所有」し、必要に応じて自由に修正できるというメリットがある一方で、モノレポ(複数のプロジェクトを一つのリポジトリで管理する形式)のように共有パッケージを利用したい場合は、リポジトリ全体をクローンする必要がある。また、既存のプロジェクトに機能を追加する「chimerai add」コマンドは、Next.js 15以降のバージョンを必要とするため、使用しているNext.jsのバージョンによっては注意が必要だ。

このCLIは、認証、プロバイダー管理、プロンプト管理、チャットUI、RAG(Retrieval-Augmented Generation)など、特定のAI SaaSアプリケーションの形状に合わせて設計されている。もしあなたのアプリケーションがこれらの機能とは異なる要件を持つ場合、一般的なcreate-next-appコマンドからプロジェクトを開始し、LangChainのようなAIライブラリを直接組み込む方が適している可能性もある。プロジェクトの要件に最も合ったツールを選ぶことが重要だ。

しかし、既存のNext.jsプロジェクトに後から特定の機能を追加したい場合でも、このCLIは強力なサポートを提供する。例えば、npx chimerai add authと実行すれば、認証機能だけを既存プロジェクトに追加できる。同様に、model-providersやchat-uiといった機能も個別に後から追加可能だ。これにより、最初から全てを生成しなくても、必要な時に必要な機能だけを柔軟に取り入れることができる。さらに、「chimerai doctor」コマンドを実行すれば、環境変数、データベース接続、インストールされているコンポーネントなどのヘルスチェックを行うことができ、設定ミスによるトラブルを未然に防ぐのに役立つ。

今後、このCLIでは、リアルタイムなチャットのためのサーバー送信イベント(SSE)対応、RAG機能の追加(FAISSインデックス、チャンキング処理など)、そしてプロンプトテンプレートをGitではなくデータベースで管理する機能などが計画されており、さらなる開発効率の向上が期待される。このツールは、AI SaaS開発の初期フェーズを大幅に削減し、開発者が本来集中すべきAIの革新的な機能開発に専念できるように設計されている。

関連コンテンツ

関連IT用語

関連ITニュース