{"id":44887551,"url":"https://github.com/whywaita/shoes-vz","last_synced_at":"2026-02-17T18:05:30.173Z","repository":{"id":333789919,"uuid":"1138146732","full_name":"whywaita/shoes-vz","owner":"whywaita","description":"shoes-vz is a myshoes provider for Apple Virtualization.framework","archived":false,"fork":false,"pushed_at":"2026-02-04T12:11:03.000Z","size":247,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-04T23:47:16.604Z","etag":null,"topics":["myshoes","myshoes-provider","virtualization-framework"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whywaita.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["whywaita"]}},"created_at":"2026-01-20T09:53:04.000Z","updated_at":"2026-02-04T12:10:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"a28566e9-5acb-46b7-8c4d-ba0d02390d2b","html_url":"https://github.com/whywaita/shoes-vz","commit_stats":null,"previous_names":["whywaita/shoes-vz"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/whywaita/shoes-vz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whywaita%2Fshoes-vz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whywaita%2Fshoes-vz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whywaita%2Fshoes-vz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whywaita%2Fshoes-vz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whywaita","download_url":"https://codeload.github.com/whywaita/shoes-vz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whywaita%2Fshoes-vz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29552267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T17:56:56.811Z","status":"ssl_error","status_checked_at":"2026-02-17T17:56:55.544Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["myshoes","myshoes-provider","virtualization-framework"],"created_at":"2026-02-17T18:05:29.518Z","updated_at":"2026-02-17T18:05:30.165Z","avatar_url":"https://github.com/whywaita.png","language":"Go","funding_links":["https://github.com/sponsors/whywaita"],"categories":[],"sub_categories":[],"readme":"# shoes-vz\n\nshoes-vz は、macOS 26+（Apple Silicon）上で **Code-Hex/vz（Apple Virtualization Framework の Go バインディング）** を直接利用し、GitHub Actions self-hosted runner を **エフェメラルな macOS VM** として高速に生成・実行・破棄するツール群です。\n\n## 概要\n\nshoes-vz は、APFS の Copy-on-Write（clone）を用いた **CoW 的 Runner 複製** を中核に据え、SSH 到達（SSH possible）を起動完了条件としたときの起動時間を最短化します。\n\n### 主な特徴\n\n- **SSH Ready 最速化**: 起動完了条件を「SSH 接続成功」に統一\n- **エフェメラル Runner**: Runner ごとに完全に独立した VM 個体\n- **CoW ベースの高速複製**: テンプレートを APFS clone で瞬時に複製\n- **macOS 26+ 前提**: Virtualization.framework の最新機能を活用\n- **gRPC API 中心設計**: GUI 非依存、myshoes との gRPC 連携\n\n## システム構成\n\nshoes-vz は以下の3つのコンポーネントで構成されます：\n\n### shoes-vz-server (単一インスタンス)\n- myshoes との gRPC 連携\n- Agent 管理（登録・死活監視）\n- Runner スケジューリング\n- 全 Runner 状態の集約\n\n### shoes-vz-agent (各 macOS ホストに1つ)\n- Virtualization.framework 制御（vz 経由）\n- テンプレート管理（clone）\n- VM ライフサイクル管理\n- Server への状態同期\n\n### shoes-vz-runner-agent (各 Guest macOS VM 内)\n- GitHub Actions Runner の状態監視\n- HTTP API による状態公開\n- ホストへの IP アドレス自動通知\n- ホストからの HTTP リクエストによるコマンド実行\n\n## ドキュメント\n\n- **[セットアップガイド](docs/setup.ja.md)** - shoes-vz の各コンポーネントのインストールと設定手順\n- **[イメージビルドガイド](docs/image-build.ja.md)** - VM テンプレート（Golden Image）の作成手順\n- **[設計ドキュメント](docs/design.ja.md)** - 詳細なアーキテクチャと設計の説明\n- **[AGENTS.md](AGENTS.md)** - 開発者向けガイド（ビルド手順、API リファレンス、トラブルシューティング）\n\n## はじめに\n\n```bash\n# 依存関係のインストールとビルド\nmake deps\nmake build\n\n# 詳細なビルド手順、実行例、開発ワークフローは AGENTS.md を参照\n```\n\n## 必要な環境\n\n### ホスト（Agent 実行環境）\n- macOS 26+ (Apple Silicon)\n- APFS ファイルシステム\n- Virtualization.framework の利用権限\n\n### ゲスト（VM 内）\n- macOS 13+\n- GitHub Actions Runner\n- shoes-vz-runner-agent\n\n## 主要な依存ライブラリ\n\n- [Code-Hex/vz](https://github.com/Code-Hex/vz) - Apple Virtualization Framework の Go バインディング\n- [prometheus/client_golang](https://github.com/prometheus/client_golang) - Prometheus メトリクス\n- [grpc/grpc-go](https://github.com/grpc/grpc-go) - gRPC 実装\n\n## ライセンス\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhywaita%2Fshoes-vz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhywaita%2Fshoes-vz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhywaita%2Fshoes-vz/lists"}