Skip to content

Run cells as native VMs instead of Docker containers — useful for Apple Silicon without Docker Desktop, or when you need full Linux kernel features.#35

Merged
DimmKirr merged 4 commits intomainfrom
feature/wip
Apr 21, 2026
Merged

Conversation

@DimmKirr
Copy link
Copy Markdown
Owner

No description provided.

DimmKirr added 4 commits April 8, 2026 12:24
- feat(codex): add --ollama flag and use_ollama config to enable local ollama provider with --oss and CODEX_OSS_BASE_URL env
- fix(codex): strip --ollama flag from forwarded args and conditionally add --oss and --local-provider ollama flags
- test(codex): add tests to verify --ollama flag, config use_ollama, and correct flags/env injection for codex command
- chore(.gitignore): add .gocache and .gomodcache entries
- chore(nixhome): remove stale oss_provider = "lms" from ~/.codex/config.toml during nixhome codex setup
- fix(cmd/agent_test.go): update TestCodex_DefaultFlags to expect no --oss flag without ollama use
- feat(root): add --format flag to set output format (text, yaml, json)
- refactor(models): extract renderModels function with JSON/YAML output and suppress prose in non-text modes
- refactor(models): add ModelEntry struct and print typed JSON/YAML data for model listings
- chore(models): remove lipgloss dependencies and replace manual table rendering with ux.PrintTable
- refactor(rdp): extract renderRDPList with multi-format output support using ux.PrintTable
- refactor(vnc): extract renderVNCList with multi-format output support using ux.PrintTable
- chore(ux): add OutputFormat variable and PrintTable/PrintData helpers for text, json, yaml output
- test(models_format): add tests for renderModels JSON and text output correctness and prose suppression
- test(rdp_format): add tests for renderRDPList JSON and text output correctness, empty case, URL inclusion
- test(vnc_format): add tests for renderVNCList JSON and text output correctness, empty case, URL inclusion
- test(ux_format): add extensive tests for ux.PrintTable and ux.PrintData in all output formats
- chore(strip): extend stripCellFlags to remove --format flag in both space and equals forms
- test(strip): add tests verifying --format flag removal and OutputFormat application from args
…signed for bot-detection

  avoidance

  - feat(vagrant_runner): implement vagrant engine for cell claude/build/rdp/vnc — AI tools now
  run inside Vagrant VMs via ssh; was previously a "not yet implemented" stub
  - feat(runner/vagrant): add all vagrant primitives (VagrantEnsureUp, VagrantProvision,
  VagrantUploadNixhome, VagrantBinaryExists, VagrantEnsureGUI, VagrantRunningCells,
  VagrantReadForwardedPort, BuildVagrantSSHArgv) — required for vagrant engine
  - feat(scaffold): add ScaffoldLinuxVagrantfile + ScaffoldVagrantLinuxStack and
  Vagrantfile.linux.tmpl — scaffolds Debian ARM64 + Nix VMs for UTM/libvirt providers
  - feat(nixhome): add hosts/linux/home.nix + hosts/linux/stack.nix for vagrant-linux
  home-manager target — enables nix provisioning inside vagrant VMs
  - feat(models): add OpenRouter cloud model integration — cell models now shows
  Anthropic/OpenAI/Google models without requiring a local ollama instance
  - feat(cloudmodels): new cloudmodels package with OpenRouter API client and
  latest-gen/trusted-provider filters — no user-facing impact
  - feat(cache): new on-disk TTL cache (XDG_CACHE_HOME/devcell/) for SWE-bench scores and
  OpenRouter listings — cell models is faster on repeat invocations
  - feat(models): add --source=local|cloud|all flag and interactive sortable table — users can
  filter by source and sort by rating, speed, or size
  - feat(claude): auto-select best ollama model as ANTHROPIC_MODEL when use_ollama is enabled and
   no model is pinned in config — cell claude no longer silently uses wrong model
  - feat(chrome): redesign login to two-phase flow (clean browser → login → close → headless CDP
  extraction) — avoids bot detection that triggered on CDP-enabled sessions
  - feat(chrome): add --force flag to wipe saved browser profile for a fresh login — users no
  longer need to manually delete profile directories
  - feat(chrome): extract localStorage alongside cookies into storage-state.json — sites using
  localStorage auth tokens work correctly with Playwright
  - feat(chrome): save full fingerprint (UA, platform, brands) from real Chrome binary instead of
   hardcoded defaults — Patchright now uses matching identity
  - feat(rdp): add vagrant VM discovery to cell rdp/vnc list and auto-connect — vagrant cells
  appear alongside docker cells in picker
  - feat(cfg): add engine, vagrant_provider, vagrant_box, docker_privileged config fields — users
   can set engine=vagrant and docker_privileged=true in .devcell.toml
  - feat(runner): add --privileged docker run flag when docker_privileged=true in config —
  required for /dev/kvm and Android emulation
  - feat(nixhome): add android.nix module with Android SDK, adb, apktool, jadx — Android
  development and reverse engineering support
  - chore(nixhome): add platformio to electronics.nix — embedded development support
  - fix(runner): always use --progress=plain for docker build to capture full nix error output —
  build errors now show actionable hints instead of silent failure
  - feat(swebench): add NormalizeCloudID to map OpenRouter model IDs to SWE-bench keys — cloud
  models get real SWE scores where available
  - feat(scraping): inject window.__cellFp platform spoof in Patchright from cell login
  fingerprint — navigator.platform/userAgentData matches host Chrome
  - test(vagrant): add unit tests for VagrantReadForwardedPort, ParseVagrantGlobalStatus,
  ParseVagrantPortOutput, VagrantBinaryExists
  - test(claude): add tests for ANTHROPIC_MODEL injection from config (prefix stripping,
  flag+config, no ollama fallback)
  - test(rdp): add tests for vagrant-named entries and mixed docker+vagrant listings
  - test(cache): add tests for TTL expiry, missing file, corrupt file, and XDG_CACHE_HOME
  resolution
…id module, model ranking

- docs(web/index): add Vagrant to infra tools list and logo grid, add Android & Mobile category, add PlatformIO to electronics — website reflects current image contents
- docs(web/FeatureCards): update stealth browser card to explain zero-password cell login and anti-bot two-phase flow — users understand how authenticated sessions work without exposing passwords
- docs(web/FeatureCards): add "Docker or VM — your choice" card for vagrant engine / --macos flag — Apple Silicon and no-Docker-Desktop use case is now discoverable on the homepage
- docs(web/index): add FAQ entries for vagrant engine, cell login anti-bot flow, 1Password integration, and cell models cloud ranking — answers the four most common new questions
- docs(web/StackTable): fix registry URL from ghcr.io/dimmkirr to public.ecr.aws/w1l3v2k8/devcell — no user-facing impact
- docs(web/logos): add vagrant.svg brand mark — no user-facing impact
- docs(README): add Vagrant engine section with --macos quickstart commands and devcell.toml snippet — users can find the VM engine without reading source
- docs(README): add "Browser login & anti-bot protection" section documenting two-phase cell login flow — zero-password session sync is now documented
- docs(README): add add-on modules table (android, desktop, scraping, infra) — module system is documented for the first time
- docs(README): update "what you get" bullets to cover zero-password login, 1Password detail, vagrant engine, and cloud model ranking — summary matches current feature set
- docs(README): add PlatformIO to electronics stack row and fix registry URL — no user-facing impact
@DimmKirr DimmKirr changed the title Feature/wip Run cells as native VMs instead of Docker containers — useful for Apple Silicon without Docker Desktop, or when you need full Linux kernel features. Apr 21, 2026
@DimmKirr DimmKirr merged commit 5f7a47f into main Apr 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant