読書会の出欠をとるフォームを、AI に作らせました。
自分は全員の回答を見たいです。誰が来るか分からないと会場が決まらないからです。でも、申し込んだ人が水曜日にリンクをもう一度開いたときに、他の十人の名前とメールアドレスが並んでいたら困ります。
ここで手が止まります。自分で中身を読み切っていないコードに、十人の連絡先が通っているからです。
MulmoTerminal は AI に頼んで作業させるための画面で、npx の一行で立ち上げてブラウザで開きます。道具自体は無料で、AI の使用量は自分の契約から引かれます。そこで作れる共有アプリは、リンクで人に渡せるアプリで、フォルダ一つがアプリ一つになります。公開したあとは自分のパソコンが経路に入らないので、ノートを閉じても動き続けます。
「たぶん大丈夫」では出せない
コードを読めば確かめられます。「自分の行だけ表示する」と書いてあるかどうかを見ればいい。
でも実際には、これが一番危ない確かめ方です。
いま見た版は正しかったとして、明日 AI に修正を頼んだら変わるかもしれません。表示は絞れていても、その手前で十人分のデータがページに届いているかもしれません。届いていれば、画面に出ていなくても見る手段はあります。
「表示するときに絞る」という作りは、絞り忘れが漏洩になります。本人が気づけないのが一番まずいところです。
共有アプリでは、そこで絞っていない
答えを先に書きます。申し込んだ人のページには、他人の行が届いていません。
表示の段で隠しているのではなく、その手前で止まっています。
| どこで絞っているか | ページにバグがあったら |
|---|---|
| ページの中で絞る | 全部見えてしまう |
| その下のプラットフォームで絞る | 見えない(届いていないので) |
絞っているのはページではなくプラットフォームなので、ページが間違っていても守られます。
これが、自分が読み切っていないコードでも公開できる根拠になります。
一つのアプリに、入口が三つある
同じアプリに、別々の住所が三つあります。
| ページ | 誰が開けるか |
|---|---|
| 公開 | アプリが受け入れる人なら誰でも |
| メンバー | アプリの立場を持っている人。受付をする側 |
| 参加者 | 名簿に載っている人。自分の行が見える |
読書会の出欠だと、こうなります。
| 誰 | どこを開くか | 何が見えるか |
|---|---|---|
| リンクを送られた10人 | 公開 | フォーム。送ると「受け付けました」と出る |
| あなた | メンバー | 全部の行。人数 |
| 申し込んだ人が水曜に来たとき | 参加者 | 自分の行だけ |
三行目が、普通のフォームには無い状態です。
送信したらもう見られないか、全部見られる。そのどちらでもない、「自分の分だけ後から見られる」を作るのが難しいので、たいていのフォームは前者になっています。
立場は五つある
誰が何をできるかは立場で決まります。三つは分かりやすいと思います。
owner は全部できます。公開も含めてです。editor は中身を読み書きできます。viewer は読むだけです。
残りの二つが、共有アプリらしいところです。
participant は、自分の行だけ見えます。申し込んだ人、回答した人、登録した人。自分がどうなったかを知る必要があるけれど、他の人の分を知る必要はない立場です。上の三行目がこれです。
assignee は、全部読めるが自分の担当だけ書けます。予約を受ける側のための立場です。
美容室にスタイリストが三人いるとします。三人とも全部の予約を読めます。店の状況を知る必要があるからです。でも自分に入った予約だけを承認したり変更したりできます。
読める範囲と書ける範囲が違う。これは他の立場では表せません。editor は全部書けてしまうし、viewer は自分の担当も書けないからです。
公開ページを作らない、という選択
公開を押すのが怖い場合の答えがこれです。
公開ページを宣言していないアプリは、名簿の中だけに公開されます。メンバーと参加者しか開けません。
社内の引き継ぎ、決まったメンバーだけの作業ボード、部活の当番表。こういうものは、そもそも公開ページを作らないほうが正しい。
逆に公開ページを作った場合は、押した瞬間から知らない人の前に出ます。リンクを誰にも送っていなくても、住所を知られれば開けます。
「公開する」というボタンが、必ず「世界に見せる」を意味しません。どちらになるかは、作るときに決まります。
もらう側は何も入れなくていい
リンクをもらう側になることもあります。
MulmoTerminal は要りません。ブラウザだけで足ります。公開ページはそのまま開けます。名簿に載せてもらえば、参加者ページで自分の行が見えます。
サインインを求められるのは、こちらが誰かをアプリが知る必要があるときだけです。アンケートに答えるだけなら要りません。自分の行を後から見るには、自分が誰かを名乗る必要があります。
必要なときだけ求める、という形になっています。AI が作ったものにアカウントを作らされることを心配しなくていい部分です。
使ってみる
MulmoTerminal は、次の一行で立ち上がります。ターミナル(Windows なら PowerShell、Mac ならターミナル)を開いて、そのまま貼り付けます。
npx mulmoterminal@latest
ブラウザが開いて http://localhost:34567 が表示されれば成功です。インストールという作業はありません。npx はその場で取ってきて動かすだけなので、合わなければ閉じるだけで終わります。止めるときは、打ったターミナルで Ctrl + C を押します。そのターミナルが分からなくなったら npx mulmoterminal@latest stop を使います。
動かない場合、足りないものは次の二つのどちらかです。
| 確かめ方 | 無ければ | |
|---|---|---|
| Node.js 22.12 以上 | node -v |
nodejs.org/ja/download の LTS。入れたらターミナルを閉じて開き直す |
| Claude Code | claude --version |
macOS は curl -fsSL https://claude.ai/install.sh | bash、Windows は irm https://claude.ai/install.ps1 | iex。そのあと claude でログイン |
Claude Code は、AI をターミナルから使うためのコマンドです。使うには Claude の有料プラン(Pro / Max / Team / Enterprise)か API のアカウントが必要で、無料プランには含まれていません。MulmoTerminal 自体は無料で、AI の使用量はその契約から引かれます。
新しい空のフォルダを一つ作ります。デスクトップでかまいません。名前も何でもかまいません。
MulmoTerminal の空いているマスをクリックして、上のタブで Claude を選び、WORKING DIRECTORY にそのフォルダのパスを入れて、右の再生ボタンを押します。

開いた画面に、欲しいものを普通の言葉で打ちます。
読書会の出欠を集めたい。名前と、参加か欠席か。 答えた人には自分の分だけ見せて、他の人の名前は見せないで。
「他の人の名前は見せないで」が入っていれば、この記事の形になります。
公開する前に自分で見ます。そのマスでコレクションのパネルを開いて、ヘッダーの Previews を押すと、公開サイトと同じものが動きます。
そこで四つ確かめます。データが出ているか。読み込み中で止まっていないか。送信すると確認が出て、入っている値が正しいか。わざと変な値を入れて断られるか。そして仕上がって見えるか。
よければ「公開して」と頼みます。リンクが返ってきます。
公開ページで自分を二件登録して、そのあと参加者のページを開きます。自分の一件しか出なければ、他人の行がそもそも届いていないということです。
外に出したくないものなら、「公開ページは作らないで」と先に言っておきます。そうすると、名簿に載せた人しか開けません。
やめたくなったら、同じマスで「このアプリの公開をやめて」と頼みます。リンクが開けなくなります。集まったデータを消すなら、「レコードを全部消して」と頼みます。消すと戻らないので、先に画面で中身を見て、必要なら書き出してから頼んでください。フォルダごと捨てるのは、公開を取り消したあとなら削除するだけです。
まとめ
申し込んだ人に他人の行が見えないのは、ページのコードが絞っているからではなく、そもそも届いていないからです。だから、自分で読み切っていないコードでも公開できます。
自分で書いていないコードを公開するのが不安なとき、確かめるべきは「コードが正しいか」ではなく、「ここはコードが決める場所なのか」のほうです。
