{"id":35127560,"url":"https://github.com/coheez/silibox","last_synced_at":"2026-01-13T22:05:18.439Z","repository":{"id":330769803,"uuid":"1058270166","full_name":"coheez/silibox","owner":"coheez","description":"Silibox provides seamless Linux development environments on macOS using Lima (Linux on Mac) and Podman containers. Get the power of Linux tooling with the convenience of native macOS integration.","archived":false,"fork":false,"pushed_at":"2025-12-27T23:14:56.000Z","size":126,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-29T22:39:51.910Z","etag":null,"topics":["linux","macos","podman","vm"],"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/coheez.png","metadata":{"files":{"readme":"README.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}},"created_at":"2025-09-16T21:31:48.000Z","updated_at":"2025-12-27T23:15:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/coheez/silibox","commit_stats":null,"previous_names":["coheez/silibox"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/coheez/silibox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coheez%2Fsilibox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coheez%2Fsilibox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coheez%2Fsilibox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coheez%2Fsilibox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coheez","download_url":"https://codeload.github.com/coheez/silibox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coheez%2Fsilibox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: 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":["linux","macos","podman","vm"],"created_at":"2025-12-28T03:35:39.108Z","updated_at":"2026-01-13T22:05:18.432Z","avatar_url":"https://github.com/coheez.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Silibox\n\n**Linux environments, native macOS UX**\n\nSilibox provides seamless Linux development environments on macOS using Lima (Linux on Mac) and Podman containers. Get the power of Linux tooling with the convenience of native macOS integration.\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **macOS** (Apple Silicon recommended)\n- **Go 1.22+** for building from source\n- **Lima** for Linux VM management\n\n### Installation\n\n**One-line install:**\n```bash\ncurl -fsSL https://raw.githubusercontent.com/coheez/silibox/main/scripts/install.sh | bash\n```\n\nThis will download and install the latest release. Then:\n\n```bash\nbrew install lima  # Install Lima VM manager\nsili doctor        # Verify installation\n```\n\n**Or build from source:**\n```bash\ngit clone https://github.com/coheez/silibox.git\ncd silibox\nmake build\nmake install  # Optional: install globally\n```\n\n## 📖 Usage\n\n### 1. Check Your Environment\n\n```bash\n./bin/sili doctor\n```\n\nThis will verify:\n- ✅ Lima installation\n- ✅ VM status\n- ✅ Podman availability in VM\n- ✅ State consistency\n\n### 2. Start the VM\n\n```bash\n./bin/sili vm up\n```\n\nThis creates and starts a Lima VM with:\n- Ubuntu 22.04 LTS\n- Apple Virtualization.framework (vz)\n- Podman pre-installed\n- 4 vCPUs, 8GB RAM, 60GB disk (configurable)\n\n### 3. Create a Development Environment\n\n```bash\n# Basic usage (uses current directory)\n./bin/sili create --name my-project\n\n# Custom configuration\n./bin/sili create \\\n  --name my-app \\\n  --image ubuntu:22.04 \\\n  --dir /path/to/project \\\n  --workdir /workspace\n\n# Create persistent service (won't auto-sleep)\n./bin/sili create --name postgres --image postgres:15 --persistent\n```\n\nThis creates a Podman container with:\n- Your project directory mounted at `/workspace`\n- Your home directory mounted read-only at `/home/host`\n- UID/GID mapping for seamless file permissions\n- Environment variables from your host\n- Optional `--persistent` flag to prevent auto-sleep\n\n### 4. Enter Your Environment\n\n```bash\n# Enter interactive shell\n./bin/sili enter --name my-project\n\n# Use different shell\n./bin/sili enter --name my-project --shell zsh\n```\n\n### 5. Run Commands\n\n```bash\n# Run single commands (non-interactive)\n./bin/sili run --name my-project -- ls -la\n./bin/sili run --name my-project -- make build\n./bin/sili run --name my-project -- python script.py\n```\n\n## 🛠️ Commands Reference\n\n### VM Management\n\n```bash\n# Start/restart VM\n./bin/sili vm up\n\n# Check VM status\n./bin/sili vm status\n./bin/sili vm status --live    # Get live status from lima\n\n# Stop VM\n./bin/sili vm stop\n\n# Power management (user-friendly aliases)\n./bin/sili vm sleep           # Put VM to sleep\n./bin/sili vm wake            # Wake VM\n\n# Test runtime (hello-world container)\n./bin/sili vm probe\n```\n\n### Container Management\n\n```bash\n# Create environment\n./bin/sili create --name my-env --image ubuntu:22.04\n\n# Create persistent service (won't auto-sleep)\n./bin/sili create --name postgres --persistent\n\n# List environments\n./bin/sili ls\n\n# Enter interactive shell\n./bin/sili enter --name my-env\n\n# Run commands\n./bin/sili run --name my-env -- command args\n\n# Stop/remove environment\n./bin/sili stop --name my-env\n./bin/sili rm --name my-env\n\n# View state\n./bin/sili state show\n```\n\n### Autosleep Agent\n\n```bash\n# Run autosleep agent (auto-stops idle containers and VM)\n./bin/sili agent autosleep\n\n# With custom timeouts\n./bin/sili agent autosleep --container-timeout 10m --vm-timeout 20m\n\n# Don't stop VM, only containers\n./bin/sili agent autosleep --no-stop-vm\n```\n\n📚 **See [docs/AUTOSLEEP.md](docs/AUTOSLEEP.md) for comprehensive autosleep documentation**\n\n### Diagnostics\n\n```bash\n# Comprehensive health check\n./bin/sili doctor\n\n# Auto-repair common issues\n./bin/sili doctor --fix\n\n# Show version info\n./bin/sili version\n```\n\n## 🔧 Configuration\n\n### Config File\n\nCreate `~/.sili/config.yaml` to configure autosleep behavior:\n\n```yaml\nautosleep:\n  container_timeout: 15m    # Idle timeout for containers\n  vm_timeout: 30m           # Idle timeout for VM\n  poll_interval: 30s        # How often to check\n  no_stop_vm: false         # Disable VM auto-stop\n```\n\nCommand-line flags override config file settings.\n\n### VM Resources\n\n```bash\n./bin/sili vm up --cpus 8 --memory 16GiB --disk 100GiB\n```\n\n### Container Settings\n\n```bash\n./bin/sili create \\\n  --name my-env \\\n  --image ubuntu:22.04 \\\n  --dir /path/to/project \\\n  --workdir /workspace \\\n  --user myuser \\\n  --persistent              # Opt out of autosleep\n```\n\n## 📁 Project Structure\n\n```\nsilibox/\n├── cmd/sili/main.go              # CLI entry point\n├── internal/\n│   ├── agent/                    # Autosleep agent \u0026 idle detection\n│   ├── cli/                      # Cobra commands\n│   ├── config/                   # Config file management\n│   ├── container/                # Container operations\n│   ├── lima/                     # VM management\n│   ├── runtime/                  # Runtime probes\n│   ├── shim/                     # Binary shim generation\n│   ├── stack/                    # Stack management\n│   ├── state/                    # State management\n│   └── vm/                       # VM utility functions\n├── build/lima/templates/         # Lima VM templates\n├── scripts/dev/                  # Development scripts\n└── Makefile                      # Build system\n```\n\n## 🏗️ Development\n\n### Building\n\n```bash\n# Build binary\nmake build\n\n# Run tests\nmake test\n\n# Lint code\nmake lint\n\n# Install globally\nmake install\n```\n\n### State Management\n\nSilibox maintains state in `~/.sili/state.json`:\n- VM configuration and status\n- Created environments\n- Port allocations\n- Shim registrations\n\n### Debugging\n\n```bash\n# View current state\n./bin/sili state show\n\n# Check live VM status\n./bin/sili vm status --live\n\n# Run diagnostics\n./bin/sili doctor\n```\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n**VM won't start:**\n```bash\n./bin/sili doctor\n./bin/sili vm stop\n./bin/sili vm up\n```\n\n**Container not found:**\n```bash\n./bin/sili create --name my-env\n./bin/sili enter --name my-env\n```\n\n**Permission issues:**\n- Silibox automatically maps your UID/GID\n- Check file ownership in mounted directories\n\n**State inconsistencies:**\n```bash\n./bin/sili doctor --fix        # Auto-repair state issues\n./bin/sili vm status --live\n./bin/sili state show\n```\n\n### Getting Help\n\n1. Run `./bin/sili doctor` for diagnostics\n2. Check `~/.sili/state.json` for state issues\n3. Use `--live` flags to bypass state cache\n4. View logs with `limactl show-ssh silibox`\n\n## 🚧 Alpha Status\n\nThis is an internal alpha release. Features may change and bugs are expected.\n\n**Known Limitations:**\n- Only supports macOS (Apple Silicon preferred)\n- Requires Lima for VM management\n- Container networking is basic\n- No automatic port forwarding yet\n\n**Recent Features (Sprint 4):**\n- ✅ Autosleep agent with idle detection\n- ✅ Auto-wake VM on demand\n- ✅ Persistent services flag\n- ✅ Power management commands (`vm sleep`, `vm wake`)\n- ✅ Config file support (`~/.sili/config.yaml`)\n- ✅ `doctor --fix` auto-repair\n\n**Planned Features:**\n- Port forwarding and service exposure\n- Volume management\n- Enhanced shim generation\n- Stack management improvements\n\n## 📄 License\n\nApache 2.0 - see [LICENSE](LICENSE) for details.\n\n---\n\n**Happy coding! 🎉**\n\nFor questions or issues, please check the troubleshooting section or run `./bin/sili doctor`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoheez%2Fsilibox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoheez%2Fsilibox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoheez%2Fsilibox/lists"}