arXiv の新着をLLMで選別して日本語で要約し、毎朝iPhoneに届く仕組みを自分用に作った。名前は arXivExpress。
実装は Claude Code(Opus 5) に書かせている。
この記事の前半では「どういうアプリか」、後半が「その裏側」、サービス構成の話になっている。
1. 何が課題だったか
arXivには日々大量の論文が投稿される。普段はRSSで追っているが、もう少し効率的に、自分の興味のある論文だけを読みたかった。
そして私はやっぱり根っからの研究者ではないようで、こういう調査をすぐサボってしまう。もう少し受動的に、そして楽に論文を読みたい、というのが始まりである。最近はスマホで無意味なYouTube動画を眺めるようなろくでもない時間の使い方をしているので、そこをもう少しマシにしたかった、というのもある。
そこで作ったのが arXivExpress である。関心のある論文の選定・要約・配信を自動でやる、私向けの特注サービスだ。
2. どんなアプリか
arXivExpressは、RSSリーダーに選定・要約・配信を備え付けたようなサービスである。
論文を選ぶのも要約するのも、アプリを開いたときではなくサーバー側で毎朝済ませている。だからアプリを開いた瞬間には、その日読むべき論文と日本語の要約がもう出来上がっている。 どう選んでどう要約しているかは3章に書くので、まずはどんなアプリかを紹介する。
未読を1件ずつ出す
RSSリーダーのように1画面に1件だけ出して、「次へ」を押すと既読になって消える。

ブラウザとiPhoneアプリの両方から同じものが読める。 「既読」や「あとで読む」の状態はサーバー側で持っているので、朝にiPhoneで何件か処理して、続きを昼にPCで、という使い方ができる。
要約はAbstractを根拠にLLMが生成したもので、背景・手法・実験設定・結果・分析・限界の6項目に構造化されている。
朝、スマホに通知が来る
今回は平日の朝にスマホに通知が届くようにした。自分から能動的に見に行く必要はない。通知をタップするとその日のダイジェストが開くので、そのまま1件ずつ処理できる。 届く論文は既に選定が済んでおり、ある程度私の興味のある論文ばかりだ。大した数も届かないのでさくっとチェックできる。
あとで読む
気になった論文は「あとで読む」へ入れておく。「あとで読む」に送ることで、論文本体のより詳細な要約を依頼しておくことができる。あとで時間が取れるときに印刷するなりして精読する。読み終えたらアーカイブへ。アーカイブは全期間を検索でき、いつでも未読に戻せる。


数日空けても、初期表示の「見逃し」が全期間の未読を集めてくるので、そこから再開できる。
何を関心とするかは自分で決める
選別に使うキーワードは画面から登録する。読んでいて興味の方向が変わったら、ここを足し引きするだけでいい。次回の選別から反映される。

3. どうやって選んで要約しているか

arXivのRSSにはその日の新着が全部入っている。ここで「TTS」「speech synthesis」といった単語で事前に絞ることはしていない。関心のある論文がその単語を含んでいるとは限らないからで、絞り込みは全部LLMに任せた。
候補1件につき、DeepSeek V4 Proを1回だけ呼ぶ。「読むべきか」と「読むならどういう内容か」を同じレスポンスで受け取る。入力はタイトルとAbstractだけで、PDFは読み込まないのでトークン使用量は大したことはない。プロンプトの骨格はこう。
You select arXiv papers for a Japanese speech-synthesis researcher. Judge semantic relevance to the interest topics, then summarize only facts explicitly present in the Abstract. Interest topics: ["TTS", "voice cloning", "prosody", ...] Title: ... Abstract: ...
Interest topics が事前に登録した関心キーワードで、これをフィルタではなく判断材料としてLLMに渡す。"TTS" と登録しておけば、その語をどこにも含まない zero-shot speech synthesis の論文も拾ってくるし、"TTS" が一度出てくるだけの無関係な論文は落ちる。選に漏れた論文の要約も残しているのは、あとから「選外だが関心には近い論文」を見返したいからだ。
PDF全文の要約はこれとは別で、入力の量が桁違いになる。そこで全文のほうは 「あとで読む」に入れた論文だけ に絞り、後から走らせている。読むと決めるまではAbstract、決めたら全文。この2段階にすることで、選別のために全件の全文を読ませるという一番高くつく形を避けている。
4. ここからはサービス・アーキテクチャの話
WebとiPhoneのどちらからも同じものを見たかった、というのが出発点。構築は基本的にOpus 5に任せたが、途中で要件が右往左往した結果、認証の経路が2つある構成になってしまった。冗長ではあるが、自分専用なので別に作り直さなくてもよいかと思ったのと、構成としてはどちらも勉強になったのでとりあえずこのままにしている。
4.1 何をどこで動かしているか

置き場所は国内VPS(メモリ1GB / 1 vCPU / Ubuntu)。
| 役割 | 使ったもの |
|---|---|
| アプリ本体 | FastAPI + uvicorn(APIとWeb画面を1プロセスで配る) |
| データ | SQLite(単一ユーザーなのでファイル1つ、バックアップはコピー) |
| 定時実行 | systemd timer |
| 公開Webの入口 | Caddy(HTTPS証明書の取得と更新まで自動でやるリバースプロキシ) |
| プライベートな到達 | Tailscale |
朝の流れは、平日6:30に選別と要約が動き、9:30に通知が飛ぶだけ。
4.2 外からどう届くか
構成の要点は、アプリ本体はループバックにしかbindしていないこと。外からは直接触れず、到達性は入口の2つが提供する。
iPhoneからは Tailscale 経由で入る。 WireGuardベースのVPNだが、「VPNサーバーに繋ぐ」従来型ではなく、自分のアカウントでログインした端末同士が直接つながる。その端末群が作る仮想LANを tailnet と呼び、今回入っているのはVPSとiPhoneだけ。tailnet内の通信はインターネット側から見えないので、ポート開放もファイアウォールの穴あけも要らない。しかも端末には固有のホスト名が付いて正規のHTTPS証明書まで取れるので、iOSのHTTP接続制限も素直に通る。要するに、iPhone用のAPIには公開エンドポイントが存在しない。
ブラウザからは通常の公開HTTPSで入る。 tailnetに入れていない端末からも読みたかったので、こちらはCaddyの入口でBasic認証を掛けている。ただしこのアプリには呼ばれるとLLMの課金が発生するエンドポイントがあり、アプリ側にも認証を足した。
結果として、どちらの経路も認証が2枚重なっている。多層防御と言えば聞こえはいいが、実際は要件が動いた結果そうなっただけだ。この辺はサービスを使っていく過程でリファクタリングできれば良いかなと思っている。
5. いくらかかっているか
固定費はVPS代、変動費はDeepSeekのAPI利用料。どちらも安さを優先して選んだ。以下、円換算は1ドル160円としている。
VPS: 月500円弱
シンVPSのメモリ1GBプラン(NVMe SSD 30GB)を1年契約にして、初期手数料込みで5,850円。月あたり約490円になる。3年契約にすればもっと安くなるが、続くか分からないのでとりあえず1年にした。
LLM: 論文1件あたり0.1〜1.3円
DeepSeek V4 Proを使っている。2026年7月時点の公式価格は100万tokenあたり、入力(キャッシュミス)$0.435、出力$0.87。ここから論文1件あたりを出すとこうなる。
| 処理 | 入力 | 出力 | 1件あたり |
|---|---|---|---|
| Abstract判定 + 要約(毎朝、全件) | 約500 token | 約650 token | 約 $0.0008(約0.13円) |
| PDF全文要約(読むと決めたものだけ) | 15,760 token | 1,649 token | 約 $0.0083(約1.3円) |
全文要約は実測値(5件平均)で、Abstract側はトークンを記録し始める前のバッチなので本文長からの概算。入力の量がそのまま効いて、1件あたり10倍の差がつく。論文の要約を2段階に分けたのは、この差を毎朝全件に払わないためだった。
論文要約性能に関してはそんなに良くないが、私は論文を精読するための "あたり" をつけることを目的にしているので、そこまで問題ではない。予算が許せばもっと良いLLMを使うのもありだろう。
合わせて月600円弱
平日25件として、毎朝の判定と要約が月500件で $0.4。全文要約は月に20本読んだとして $0.17。LLMは合わせて月$0.6弱、円にして100円いかない。
| 月額 | |
|---|---|
| VPS | 約490円 |
| DeepSeek API | 約90円 |
| 合計 | 約580円 |
つまり、費用のほとんどはLLMではなくVPS代である。始める前はAPI利用料を気にしていたが、実際に効いてきたのは箱代のほうだった。月600円弱で毎朝ダイジェストが届いて外出先からも読めるなら、悪くない買い物だと思っている。ただこのサービスのためだけのVPSだと少しもったいないので、自分のしょぼい見た目だけはきれいなプロフィールページもこの機会に作って載せることにした。 jojonki.net
6. まとめ
今回のきっかけは2つあって、arXivをもう少し効率的に読む方法を探していたことと、Opus 5を使って何か一つ作り切ってみたかったことだった。
前者については、とりあえず毎朝ダイジェストが届いて1件ずつ処理できる状態まではできた。後者に関しては自分の要件が今回ふらついたこともありOpus 5に対する判断は見送りたいと思う。
まだ運用を始めたばかりで、選別の精度が実用に足るのか、そもそも自分がこれを続けられるのかは分かっていない。しばらく使ってみたうえで、その後日談はまた別途書きたいと思う。






![[グレゴリー] エニーデイV2 ブラック [グレゴリー] エニーデイV2 ブラック](https://m.media-amazon.com/images/I/31FwwXjWYIL._SL500_.jpg)


























