herdr + moshiで外出先でAIコーディングする

こんにちは、ナナオです。 最近、AIコーディングによる開発がメインになっています。 日々、AIからの承認を確認しているのですが、ふと思ったのが 「せっかく5時間は自由に使えるトークンがあるのに、外からトークン消費できないのはもったいない!」 …はい、私はドケチなのです。 ということで今回はタイトルにもある通り、herdrとmoshiを使って外からAIコーディングをしてみました。 herdrとmoshiについて herdrはターミナルで使うマルチプレクサです。 Herdr: one terminal for the whole herd 要はtmuxがデフォルトで高機能になったものと考えてください。 moshiはスマホで使えるターミナルアプリです。 Moshi — SSH & MOSH Terminal for Claude Code & AI Agents 準備と導入 家での開発は主にWSLを使っています。 ただし、WSLのネットワークは独立しているため、外部からはアクセスできません。 そこでtailscaleを使いました。以前記事も書きましたね。 /87a0ed4d506974cd38eeab4b3ea27c89 tailscaleのプライベートネットワークに参加することで、ちょっと強引ですが外からアクセスするための条件を整えました。 既に常用しているスマホにはtailscaleを入れていたので、あとはmoshiでtailscaleのIPアドレスを入れて接続してあげたら成功しました。 使ってみた感想 とにかくAIコーディングが捗る捗る!! herdrはモバイルレイアウトに対応しているため、とにかく見やすいですし操作感も文句ありません。 (もちろんAIコーディングだからというのはあると思いますが) moshiもSSH接続といった最低限の機能であれば十分なくらい接続性が安定しており、こちらも文句ありません。 課金すればherdrで開いている特定のワークスペースを開くこともできるようですが、普通にSSH接続して「herdr」とコマンド入力すれば簡単に自宅の環境を開けるので、課金する必要はなさそうだな~と思いました。 今回はtailscaleを使いましたが、MacやLinuxの方はそれを使わなても接続できるので簡単です。 今後の個人開発が楽しみです! ということで今回はこれで👍

2026年7月1日 · にあえん

アルゴ式の問題を解く Go バスの必要台数

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 バスの必要台数 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n, a int fmt.Scan(&n, &a) c := n / a if n % a > 0 { c++ } fmt.Println(c) } ということで今回はこれで👍

2026年6月30日 · にあえん

アルゴ式の問題を解く Go 曜日計算

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 曜日計算 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var d int fmt.Scan(&d) d -= 1 switch d % 7 { case 0: fmt.Println("Fri") case 1: fmt.Println("Sat") case 2: fmt.Println("Sun") case 3: fmt.Println("Mon") case 4: fmt.Println("Tue") case 5: fmt.Println("Wed") case 6: fmt.Println("Thu") } } switch文を使うときれいに実装できますね。 ということで今回はこれで👍

2026年6月29日 · にあえん

アルゴ式の問題を解く Go 3 の倍数の個数

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 3 の倍数の個数 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) c := 0 for i := 3; i <= n; i++ { if i % 3 == 0 { c++ } } fmt.Println(c) } 3以上の時にループするようにしました。 ということで今回はこれで👍

2026年6月28日 · にあえん

アルゴ式の問題を解く Go 3 で割れるか

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 3 で割れるか | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) if n % 3 == 0 { fmt.Println("Yes") } else { fmt.Println("No") } } ということで今回はこれで👍

2026年6月27日 · にあえん

アルゴ式の問題を解く Go 奇数と偶数

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 奇数と偶数 | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) if n % 2 == 0 { fmt.Println("even") } else { fmt.Println("odd") } } 単純な分岐で実装できました。 ということで今回はこれで👍

2026年6月26日 · にあえん

アルゴ式の問題を解く Go 何個あまるか

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 何個あまるか | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var a, b int fmt.Scan(&a, &b) fmt.Println(a % b) } ということで今回はこれで👍

2026年6月25日 · にあえん

アルゴ式の問題を解く Go できるだけ買う

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 できるだけ買う | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var a, b int fmt.Scan(&a, &b) fmt.Println(a / b) } ということで今回はこれで👍

2026年6月24日 · にあえん

アルゴ式の問題を解く Go ゼロサプレス

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 ゼロサプレス | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var s string fmt.Scan(&s) t := s for i := 0; i < len(s); i++ { t = s[i:] if s[i] != '0' { break } } if t == "0" { fmt.Println() } else { fmt.Println(t) } } 0の場合だけ例外として何も出力しないようにしています。 ということで今回はこれで👍

2026年6月24日 · にあえん

アルゴ式の問題を解く Go リーディングゼロ

こんにちは、ナナオです。 前回に引き続き競プロを実施していきたいと思います。 今回の問題は以下です。 リーディングゼロ | アルゴ式 実装 以下のように実装しました。 package main import ( "fmt" ) func main() { var n string fmt.Scan(&n) t := n for i := 0; i < 10 - len(n); i++ { t = "0" + t } fmt.Println(t) } 最初からstringでnを読み込めば、strconvを呼び出す必要もないですね。 ということで今回はこれで👍

2026年6月23日 · にあえん