ShiftStage

一年分を取り返す 11 の場面

「遠隔で様子を見られます」ではありません。そうでなければノートパソコンを開いて終わる、具体的な場面です。

AI セッション

エージェントが四十分、ひと言を待っている

リファクタリングを渡して出かけました。十分後、確信の持てないファイルに触れたくなって、尋ねました。誰も答えませんでした——それは中断ではなく、残りの実行が取り消されたということです。ここでは質問が、コマンドと名指しされた危険度とともに、その秒のうちに電話へ届き、一タップで仕事が動き出します。

エージェントの変更とテスト実行の許可を求める質問、iPhone と Apple Watch で

Git · diff

エージェントの書いたものを、自分のコミットになる前に読む

十二のファイルが触られています。二つはまさに頼んだとおり。ひとつはついでに整えた改名。ひとつはテストが通るまでテストのほうを直したもの。机の前と同じように読めます——本物の diff、保たれた構文の色、行の中で示された変更箇所。正しい三つをステージし、テストの改変は捨て、残りは一文をつけて差し戻します。

iPhone での diff:削除行と追加行、コミットする行を 1 行ずつ選択

ファイル · プレビュー

書かれた報告を、何かを決める前に読む

分析をファイルに書くよう頼みました。それを読むことが、いずれ忘れるフォルダへのダウンロードを意味すべきではありません。整形されて開き、元テキストは一タップ先、そしてあなたが言うまで電話には何も残りません。そのあとは、Mac が眠っていても後から開ける控えを持つか、共有メニューからそれを待っている相手へ直接送るかです。

Mac のソースファイルを、シンタックスハイライト付きで iPhone に表示

ファイル · 転送

あなたの Mac にしかないファイルを、誰かが必要としている

金曜の書き出し、署名済みのビルド、同僚が十分以内に必要としている書類。目をつぶっても指させるフォルダの中にあり、そこまでは二時間かかります。

  • プレビュー取り寄せる前に見る。テキスト、markdown、画像、PDF——まるごとではなく流しながら
  • 控える端末への保存はあなたの命令のときだけ。いつ保存したかも言います
  • 送る外へはシステムの共有メニューから。メッセンジャー、メール、アップロードフォーム
  • 両方向ギャラリーの写真も、その場で撮った一枚も、プロジェクトのフォルダへ

Git · 履歴

「先週ここに何が入ったのか」だけが役に立つ問い

何かの振る舞いが変わっていて、触った覚えのある人がいません。電話にリポジトリ全部は要りません。要るのは、そのブランチの直近二十コミットと、その著者と、怪しい二つの diff です。著者で、ファイルで、メッセージで絞り込み、コミットを開いて、読む。

ブランチのグラフで表示したコミット履歴:タグ、作者、相対日時、短いハッシュ

CI · 通知

push して蓋を閉じたあとにビルドが壊れた

四十分後、電話が落ちたと言います——しかも、落ちたという事実だけでなく、何で落ちたかを。以前ならそれは明日の仕事か、レストランのテーブルで開くノートパソコンでした。

  • 通知「何かが壊れた」ではなく、ビルドと段階を名指し
  • ログ所要時間つきで段階に折り畳まれ、落ちた段階から出力のその場所へ
  • ターミナルMac 上の本物の PTY。再現し、さかのぼり、検索する
  • 再実行打ち間違いを直し、コミットし、もう一度——同じ画面から

プロセス

何かがポートを掴んだまま、自分では止まらない

閉じたタブを生き延びた開発サーバー。終わらないテストの実行。昼からコアを食べ続け、誰も座っていない機械を温めているプロセス。

負荷順に並んだ Mac のプロセス:ビルド、ポート 3000 の開発サーバー、データベース

CI/CD

パイプラインを動かしたいのに、Mac がどこにもない

ここは ShiftStage で唯一、Mac をまったく必要としない部分です。電話が提供元と直接話します。列車の中から切るリリース、動かし直すべき夜間ビルド、誰かの承認を待っているデプロイ段階。

本番へのデプロイ承認を待つ実行、iPhone に承認と却下のボタン
  • 提供元GitHub Actions · GitLab CI/CD · Jenkins · TeamCity
  • 自前の設置クラウドだけではありません。複数アカウントを同時に、それぞれ自分のシステムの印つきで
  • パラメータパイプラインが宣言した名前・型・既定値。必須のものは空では始まりません
  • 承認人を待っている実行は、提供元が対応していれば電話から解除できます

CI · ログ

電話で本当に読めるビルドログ

ビルドログは小さな画面で読むものとしては最悪で、ほかのどの道具もそのために、指で広げるウェブページを差し出してきます。

▾ ビルドとテスト                    2 分 14 秒
    ✓ 128 ターゲットをビルド
    ✓ 1,412 件のテストに合格
▾ パッケージ化                      41 秒
    ✗ notarytool: 資格情報が不正です
      → ログのこの行へ移動
▸ 成果物のアップロード              スキップ
  • 色ビルドが色で出したものは色のまま
  • 進捗描き直される進捗バーは最後の状態だけ。千行の古い残骸は出ません
  • 区切りグループは折り畳まれ、それぞれの所要時間つき
  • 成果物実行が生んだものを、サイズとともに端末へ保存

接続

家を出たら、接続もついてきた

家では電話と Mac がローカルネットワークで直接話し、経路に私たちのサーバーはいっさいありません。外に出ても、ネットワークが許すかぎり直接つながり続けます。許さないときは、中継が読めない流れをそのまま渡します。いまどの経路にいるかは見えますし、三つめは禁止できます。

アクセス記録

あなたの Mac で何がされたのか、どの端末から

記録のない遠隔アクセスは、口約束の信頼です。エージェントは Mac 上に記録を持ちます。つながった端末が求めたすべての操作、いつ、どの端末が、どう終わったか——要求自身が名指しした対象とともに。

  • 記録されるすべての操作。いつ、どの端末から、どう終わったか
  • 対象パス、ブランチ、プロセス、検索文字列、転送バイト数
  • 決して残らないファイルの中身も、出力も、入力も、AI との会話も
  • あなたのもの記録は Mac を離れず、切ることもできます

ここから先はあなたの Mac

ここまでは私たちが思いついたものです。一覧はそこで終わりません。ターミナルが本物だからです——私たちの砂場ではなく、あなたの機械の上の PTY です。

あなたのスクリプト、あなたのエイリアス、あなたのビルドツール、あなたの自動化、そして十年のあいだ機械から機械へ運んできた dotfiles。あなたの Mac で動くなら、あなたの電話からも動きます。しかもその道中、どれひとつ私たちを通りません。

全部をひとつの一覧で

ターミナル
本物の PTY、複数セッション、検索つきのさかのぼり、選択と貼り付け、色と装飾はそのまま。打った文字はエコーを待たずに出ます。sudo には Face ID で解錠される秘匿入力。
ファイル
閲覧、プレビュー、読み、編集、双方向の転送、システムの「ファイル」との連携。電話の写真や動画をプロジェクトのフォルダへ。控えたものは Mac が眠っていても開きます。
検索
名前でも中身でも、すべてのワークスペースを一度に、見つかった順に流れてきます。パス・行・前後の文脈つき。正規表現、大文字小文字、拡張子の絞り込み。新しい問い合わせは前のものを Mac 側で打ち切ります。
Git
状態、diff、ステージ、コミット、push、ブランチ、履歴とそのグラフ、stash、rebase、コミットの移植、三つの側による衝突解決、サブモジュール、LFS——こすり取ったテキストではなく構造として。
プロセス
何が動き、何を消費し、どのポートを掴み、何を出力し、どう止めるか。
AI セッション
11 のエージェント CLI が自動で見つかり、ほかに持っているものも動きます。開始、監視、応答、承認、保管、再開。あなたの鍵、あなたの設定、こちら側にモデルはありません。
CI/CD
GitHub Actions、GitLab CI/CD、Jenkins、TeamCity。自前の設置も含みます。複数アカウントを同時に、宣言されたパラメータ、中止、再実行、落ちたものだけ再実行、承認、成果物、段階、読めるログ。Mac は要りません。
通知
ビルド、質問を抱えたセッション、死んだ管理下プロセス——対象を名指しし、あなたがすでに見ているときには送られません。
Apple Watch
道具の質問に答え、何が動いているかを見て、Mac を解放する。自分の鍵、直接の接続、操作のために開いて終われば閉じる。
アクセス記録
Mac の上にあり、Mac のもの。すべての操作を対象とともに、中身は決して残さず。絞り込み、書き出し、切ることもできます。

デスクトップを映しもせず、仕事をサーバーへ移しもせず、あなたとコードのあいだにモデルを置きもしません。働く機械は Mac のままです。

次に聞かれる質問 · 入手の方法

11 の場面。
月に 7 ドル。

自分のネットワーク内の Mac 一台なら無料。