24時間稼働PC × Claude × Obsidian の環境を構築したら体験がかなり良かった
はじめに
電車やバスでの移動中、「PCは開けないけど、あのタスク進めたいな」と思うことがよくありました。
そこで、自宅のノートPCを24時間稼働させて、Claude Code の /remote-control で外出先からスマホで操作し、アウトプットは Obsidian で管理・閲覧するという環境を構築してみました。
これがかなり体験が良かったので、構成やメリットについてご紹介します。
全体の構成
仕組みはとてもシンプルです。以下の3つを組み合わせています。
- 自宅ノートPC — スリープをオフにして24時間稼働させ、Claude Code を起動して
/remote-controlを実行しておく - スマホの Claude アプリ — 外出先から自宅PCの Claude Code セッションに指示を送る
- Obsidian — アウトプットの出力先 & 閲覧用。iCloud 経由でスマホと自動同期される
この3つの組み合わせで、PCを開かなくてもスマホだけで作業ができる環境 が整います。
セットアップ
やることは3ステップだけです。
- 自宅ノートPCのスリープモードをオフにする — 蓋を閉じてもスリープしない設定に
- Claude Code を起動する — ターミナルで
claudeを実行 /remote-controlコマンドを実行する — これで外部からの接続待ち状態に
あとは放置しておくだけで準備完了です。
どんなことに使っているか
スマホの Claude アプリから指示を送って、以下のようなことをやっています。
- 調査 — コードベースの探索、ファイルの内容確認、Web検索
- 方針検討 — 設計案の作成、選択肢の比較
- ブログ執筆 — 実はこの記事自体もこの仕組みで書いています
- ファイル操作 — マークダウンの作成・編集、ディレクトリ整理
ポイントは、アウトプットをマークダウン形式で Obsidian vault 内に出力しているところです。 Claude で指示 → Obsidian で確認、というサイクルがうまく回ります。
ちょっとした修正であれば Obsidian 上で直接編集してしまうこともあります。わざわざ Claude に指示を出すまでもない変更は、そのほうが早いので。
体験が良いと感じたポイント
移動時間が作業時間になる
個人的にこれが一番大きいです。 通勤や移動中、スマホだけで作業を進められるようになりました。PCを開くほどではないけど、やりたいことがある — そういう 隙間時間を有効活用 できるようになったのは大きな変化でした。
成果物をすぐ Obsidian で確認できる
出力先を Obsidian vault 内にしておけば、iCloud 経由で自動同期されます。 スマホの Obsidian アプリでリアルタイムに成果物を確認できるので、フィードバックループがとても短い です。
セッションが切れてもデータが残る
Claude のセッションはいつか終了します。しかし、アウトプットをファイルとして書き出しているので、セッションが切れてもデータは残ります。 次のセッションで続きから作業を再開できるのは安心感がありますし、マークダウンファイルとして手元に残る という点も気に入っています。
帰宅したらフル操作に切り替えられる
帰宅後はノートPCを直接触れます。リモートで指示した結果を確認して、必要なら手元で仕上げる。 リモート操作と直接操作をシームレスに切り替えられるのが良いです。
1日の流れ
実際にはこんな感じで使っています。
[移動中] - スマホの Claude アプリから指示 → 自宅PCの Claude Code が実行 → 成果物が Obsidian vault に出力 → Obsidian アプリで確認 - 追加の指示や修正を Claude アプリから送信 → 結果を Obsidian で確認 → 細かい修正は Obsidian で直接編集 [帰宅後] - ノートPCで直接ファイルを確認・仕上げ
注意点
運用にあたって、いくつか気をつけていることがあります。
- ネットワーク — 自宅PCがインターネットに繋がっている必要があります
- 電源 — 常時稼働なので電源は繋いでおきます
- スリープ設定 — macOS の場合、システム設定 > ディスプレイ からスリープを無効化します
- セッション管理 — Claude Code のセッションが切れたら再起動が必要です。帰宅時に確認する習慣をつけておくと安心です
まとめ
自宅PC 24時間稼働 × Claude Code × Obsidian の組み合わせは、移動時間を有効活用したい方にはかなりおすすめです。 指示 → 出力 → 確認のサイクルがスムーズに回りますし、セットアップも手間がかかりません。
Claude Code を使っている方はぜひ一度試してみてください。 少しでもみなさまのお役に立てたら嬉しいです。
App Storeでのレビューに返信
App Storeのカスタマーレビューへ返信できるようになりました。 https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/ImprovingCustomersExperience.html#//apple_ref/doc/uid/TP40011225-CH27-SW1
iTunes Connect > アプリ > アクティビティ > 評価とレビュー から各レビューに対して返信することができるようになっています。
users with the Legal, Admin, App Manager, or Marketer role may reply to and edit responses to customer reviews on your App Store product page.
Legal, Admin, App Manager, Marketer の権限を持つユーザーのみ、返信することができるので注意しましょう。
Important: Responses and edits will show as pending until they display on the App Store. This can take up to 24 hours. All edited responses will have a notation that it has been edited. Responses will only be visible on the App Store for iPhone and iPad on devices running iOS 10.3 or later and OS X 10.6.6 for App Store for Mac.
返信にはPending状態があり、約24時間後にApp Storeに表示されるようになるらしいです。
Requirements for apps in Japan.
2017/02/23にAppleから新しい通知が来ました。 詳細:https://itunespartner.apple.com/en/apps/news/79920317
日本で有料アプリやIAPを提供するアプリは、コンタクト情報を記載するサポートリンクをアプリ内に表示することが必須となりました。 販売者名・住所・コンタクト情報などのをサポートページで表示する必要があります。
個人開発者にとって、名前と住所を公開しないとなると、かなり敷居が高くなるように感じます。
fastlaneでiTunes Connectへのアップロードを自動化する方法
iOSアプリにfastlaneを導入し、iTunes Connectへのバイナリアップロードを自動化する方法をまとめておきます。
fastlaneに関してとインストール方法はこちらの記事で紹介しました。 またfastlaneで、Crashlytics Betaにバイナリをアップロードする方法もこちらで紹介しています。 まだ読んでいない方は、是非読んでみてください。
fastlane/Fastfile
本記事では、iTunes Connectにバイナリをアップロードしてみます。
desc "Deploy a new version to the App Store" lane :release do # match(type: "appstore") # snapshot gym(scheme: "ExampleApp") # Build your app - more options available deliver(force: true) # frameit end
既に上記コードがfastlane initコマンドで、Fastfileに記述してあるかと思います。 そのため、以下のコマンドを実行すればiTunes Connectへバイナリアップロードすることができます(簡単すぎる!)。
$ fastlane release
ちなみに、forceの意味はこちらです。 trueを設定すると、htmlレポートを出力せずにバイナリをアップロードします。
これでiTunes Connectへバイナリをアップロード作業が自動化できました。 またメタデータやスクリーンショットもgit管理することができました!
fastlaneで快適開発ライフを送りましょう!
fastlaneでCrashlytics Betaアップロードを自動化する方法
iOSアプリにfastlaneを導入し、Crashlytics Betaにアップロードする方法をまとめておきます。
fastlaneに関してとインストール方法はこちらの記事で紹介しました。 まだ読んでいない方は、是非読んでみてください!
fastlane/Fastfile
Fastfileでは、fastlaneで行いたい作業を記述します。 本記事では、Crashlytics Betaにバイナリをアップロードしてみます。 まずFabricの設定からAPI KeyとBuild Secretを取得しておきましょう。
before_allで環境変数に設定します。
before_all do
# Crashlyticsの設定
ENV['CRASHLYTICS_API_TOKEN'] = "XXXXXXXXXX" # Fabricで取得したAPI Keyに入れ替えてください
ENV['CRASHLYTICS_BUILD_SECRET'] = "XXXXXXXXXXXXXXXXXXXX" # Fabricで取得したBuild Secretに入れ替えてください
# ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
cocoapods
end
fastlane/Fastfileに以下のコードを追加します。
desc "Build and submit ExampleApp app on Crashlytics Beta"
lane :crashlytics do
cert
sigh
gym(
scheme: "ExampleApp",
configuration: "Release",
clean: true
)
crashlytics(
api_token: ENV["CRASHLYTICS_API_TOKEN"],
build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
notes: "",
notifications: true
)
end
上記のコードを追加することで、fastlaneでcrashlyticsコマンドを実行できるようになります。
$ fastlane crashlytics
これでバイナリをCrashlytics Betaにアップロードすることができます。
Release Notesにコミットメッセージを追加
せっかくなので、Betaにアップロードする際にコミットメッセージをRelease Notesに追加したいと思います。
def change_log_since_last_tag
# http://git-scm.com/docs/pretty-formats
#
return changelog_from_git_commits(pretty: '%h %s')
end
desc "Build and submit ExampleApp app on Crashlytics Beta"
lane :crashlytics do
cert
sigh
gym(
scheme: "ExampleApp",
configuration: "Release",
clean: true
)
crashlytics(
api_token: ENV["CRASHLYTICS_API_TOKEN"],
build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
notes: change_log_since_last_tag,
notifications: true
)
end
「開発して、Crashlytics Betaにアップロードして、テスターに配布する」が自動化できました! これでデバッグ作業やテスターへの配布作業が格段に楽になりました。
こちらにfastlaneのサンプルがたくさんあるので参考にしてみてください! fastlaneを使って、iTunes Connectへバイナリをアップロードする方法はこちらの記事でを紹介しています。 fastlaneで快適開発ライフを送りましょう!
fastlaneの導入
iOSアプリにfastlaneを導入したので、手順ををまとめておきます。
fastlaneについて
Web: https://fastlane.tools Github: https://github.com/fastlane/fastlane fastlaneはiOS/Androidアプリのリリース作業を自動化してくれるツール群です。 iOSアプリの申請作業を行う際、手動でのバイナリアップロード作業が毎回面倒だと感じでいたため、導入することにしました。 自動化することでケアレスミスも防止できます。 またメタデータやスクリーンショットをgit管理できるようになるので、変更履歴の管理も可能になります(←これが本当に便利です)。
fastlaneのインストール
Gemで公開されているので、gemコマンドでインストールしました。
$ gem install fastlane
fastlaneの初期化
アプリプロジェクトのルートディレクトリで、fastlane initコマンドを実行することで雛形を作成してくれます。
$ fastlane init
Apple ID, App Identifier,などが聞かれるので、答えましょう。 コマンド実行が完了すると、fastlaneディレクトリが作成されAppFile・Fastfile・README.mdが作成されます。 既存アプリの場合、iTunes Connectからメタデータとスクリーンショットをダウンロードしてきてくれます。 簡単にgit管理できるようになるので、とてもありがたい!
fastlane/Appfile
fastlane/Appfileには、Apple IDやApp Identifierの情報が記述されています。 単一アプリの場合、特に編集することはないかと思います。 ターゲットが複数あるアプリの場合は、編集する必要そうです。
fastlane/Fastfile
fastlaneで行いたい作業を記述します。
これでfastlaneのインストールは以上で完了です! fastlaneで快適開発ライフを過ごしましょう。
App Store Improvements
Appleから2016年9月2日深夜頃に、 「App Store Improvements」という件名のメールが、皆さんの元にも届いたのではないでしょうか。
2016年9月7日からApp Storeに公開されている全アプリを、新しいApp Store Review Guidelinesで審査するというもの。 ガイドラインに違反しているアプリは、30日以内に修正しないとApp Storeから削除されてしまいます。 また起動時に即クラッシュしてしまうアプリは、すぐにApp Storeから削除されるようです。 アプリを消されたくない開発者の方(おそらく全員)は、今すぐに対応を始めましょう! 開始日は、2016年9月7日 です
またアプリ名は50文字以内という制限ができました。 これは新規アプリとアプリ更新時の検査なので、更新しない既存アプリには関係ありません。 が、アプリ名を長くしているアプリがある開発者は気を付けましょう。
詳しくは以下のURLから https://developer.apple.com/support/app-store-improvements/
新しいApp Store Review Guidelinesが結構変わっているので、読んだら記事書きます!