11月5日、Cursorが「Apps」を発表しました。クラウドのエージェントにお願いすると、Webアプリを作り、データベースやログインまで整えて、公開リンクとして返してくれる機能です。
実際に使ってみると、指示を1回出しただけでアプリが作られ、本人限定の公開リンクまで、拍子抜けするほど簡単に進みました。 つまずいたのは、公開した後の本番で「保存」が止まったときだけ。それも、エージェントに頼んで直せました。
作る、公開する、壊れる、直す。その一部始終を順に追います。
Cursorの発表によると、Appsは「作ったアプリを、リンクで共有する」ための機能です。使えるのは、クラウドのエージェントが使える有料プランで、ローカルのエージェントでは使えません。
必要に応じて、Postgresのデータベース、ホスティング、Cursorのサインインによるログインが、自動で用意されます。公開前にはAIによるセキュリティチェックが入り、通ると公開リンクが返ってきます(公式文書)。
Cursor自身が挙げる使い道は、社内ツールや研修体験です。この説明が本当かどうか、実際にアプリを作って、公開するところまで試してみました。
作らせたのは、ワインの初心者向け学習アプリです。題材は何でもよく、ここではあくまでサンプルです。品種カードを6枚、5択のクイズを5問。採点して、直近5回の得点履歴をデータベースに保存する。この条件を英語で1回だけ伝えて、クラウドのエージェントを動かしました。
起動すると、エージェントはデータベースとログインのための部品を、自分で呼び出し始めました。
作業用のリポジトリは、最初に私が空のものを1つ作りました。リポジトリを選ばずに送信すると、起動前にエラーになったからです。ここは、今回の画面で見えた最初のつまずきでした。
その後、エージェントは、クラウド上でアプリを動かし、画面を開いて確認できる形で返してきました。白ワインで絞ると、品種が3枚に減ります。5問に答えて採点すると、得点と解説が出て、再読み込みしても履歴が残りました。

ただし、この時点の確認は、開発用の仮のユーザーと、メモリ上の仮のデータベースで動いたものです。本番の認証とデータベースを通した結果ではありません。「動いた」を、まだ信じ切れない段階です。
公開の設定は、2つの選択だけでした。自分だけに見せる「Private to you」と、リンクを知る人全員に見せる「Anyone with the link」です。私は前者を選びました。

公開を押すと、初回は利用規約の確認で止まりました。私が同意すると、安全性のレビュー、データベースの作成、ホスティングの用意が順に進み、公開リンクが返ってきました。

非公開のアプリは、Cursorにサインインした本人だけが開けます。ログインなしで開いてみると、返ってきたのは認証の入口の画面だけで、クイズも履歴も見えませんでした。公開リンクを手に入れても、中身は守られている。ここまでは、期待どおりです。
ところが、本番で5問を採点すると、「別のサイトからは記録できません」というエラーが出ました。履歴は1件も増えません。プレビューでは動いていたのに、公開した本番では保存だけが拒否されました。

原因は、エージェントが書いた「他のサイトからの不正な保存を断る」仕組みでした。守るための仕組みが、本番の住所を正しく読み取れず、自分のアプリまで断っていたのです。
作るのが速くなっても、公開した本番の環境でしか見えない不具合は残ります。
直すのも、エージェントに頼みました。エージェントは原因を診断し、許可する公開URLを、住所とポートまで厳密に照合する形に書き直しました。本人確認を先に行う構成は、そのまま維持されました。
修正を再公開すると、本番で5問が採点され、満点の5点と全問の解説が表示されました。

ブラウザを再読み込みすると、クイズは第1問に戻りますが、5点の履歴は残っていました。保存した記録が残ることを、本番の画面で確かめられました。

確かめられたのは、次の3点です。指示1回で、アプリが作られること。本人限定で公開され、ログインなしでは中身が見えないこと。本番の保存不具合を、エージェントが直せること。
一方で、まだ見えていないこともあります。他のユーザーを招待したときの動き。データベースの中身を、表の画面で直接見る方法。保存先の地域やバックアップの条件。これらは、今回の個人の環境では確認できませんでした。
公開した後の管理画面には、共有範囲の変更、ソースコードの閲覧、公開の停止が並んでいます。公式文書によると、チーム向けや企業向けのプランでは、リンクを知る全員への公開は初期状態でオフです。管理者はアプリをまとめて見て、公開を止められます。

今回のサンプルは、最初の指示1回でアプリが作られ、本人限定で公開されて、本番で動くところまで来ました。つまずいた場所は、作ることではなく、公開した本番の環境でした。保存の不具合は、追加の依頼で直せました。
公開の壁が下がると、速くなるのは、作る人が多い会社ではありません。公開した後に起きる不具合を、見つけて、直して、止められる会社です。 誰が公開し、誰が止められるか。ここが決まっていれば、現場の小さなツールが、そのまま社内に広がります。
バイブコーディングは、これから「自分用」から「配る道具」へ移っていくでしょう。作る人は、公開の手続きに時間を取られず、中身に時間を使える。管理する側は、止められる仕組みがあるので、まず小さく配ってみてよい。うまくいかなくても、公開を止めれば済むからです。
クラウドのエージェントが使える有料プランが必要です。ローカルのエージェントでは使えません。今回の画面では、作業用のリポジトリを選ばずに送信すると起動前にエラーになったため、空のリポジトリを1つ先に作りました。
公開範囲は「Private to you」と「Anyone with the link」の2つから選びます。前者を選ぶと、Cursorにサインインした本人だけが開けます。ログインなしで開くと認証の入口が出るだけで、中身は見えませんでした。公式文書によると、チーム向けや企業向けのプランでは、リンクを知る全員への公開は初期状態でオフです。
今回は、本番で採点を保存しようとすると「別のサイトからは記録できません」というエラーが出ました。エージェントに頼むと、原因を診断して許可するURLの照合を書き直し、再公開後は保存できるようになりました。プレビューの確認は開発用の仮ユーザーと仮のデータベースで動いたものなので、本番の画面でも保存まで確かめることが要点です。
AIを徹底的に使いこなすためだけのコミュニティ「フロンティア・リーダーズ」。作って、公開して、壊れたら直す。そんな実務を、持ち寄る場です:https://frontier-leaders.vercel.app/
2時間で、AIで自分専用のツールを作る回もあります(過去回のアーカイブ):https://handson.workstyle-evolution.co.jp/
毎週のAIニュースを、動画で追えるYouTube『いけともch』:https://www.youtube.com/@iketomo-ch