Migration guides¶
You don't have to start from scratch. Pick the tool you're moving away from — each guide is a one-page walkthrough with conceptual mappings, a worked example, and an honest "what you give up" section.
Use AI to do the translation
Every guide ships with a tested LLM prompt that takes your existing config and outputs a working jarvy.toml. See Migrate with AI for the index of prompts.
Cloud / container dev environments¶
For teams paying for cloud-hosted environments or running a container per project.
| You have | Migration guide |
|---|---|
| GitHub Codespaces | → Migrating from Codespaces |
| DevPod | → Migrating from DevPod |
| Gitpod | → Migrating from Gitpod |
VS Code Dev Containers (devcontainer.json) |
→ Migrating from Dev Containers |
| Vagrant | → Migrating from Vagrant |
Toolchain managers¶
For teams already managing tools declaratively, just with a different tool.
| You have | Migration guide |
|---|---|
Homebrew Bundle (Brewfile) |
→ Migrating from Homebrew Bundle |
mise (mise.toml, .tool-versions) |
→ Migrating from mise |
asdf (.tool-versions) |
→ Migrating from asdf |
Nix (flake.nix, shell.nix) |
→ Migrating from Nix |
Don't see your tool? Open a discussion or check the comparison pages for feature differences.
What every migration guide covers¶
- Conceptual mapping — your tool's primitives, translated to
jarvy.toml - Worked example — a realistic config translated side-by-side
- Edge cases — what doesn't translate cleanly, and how to handle it
- What you gain — features Jarvy adds
- What you give up — where the old tool was better
- Hybrid options — when to keep both running
The honest assessment is the point. If Jarvy isn't a clean win for your team, the migration guide will say so.
Common patterns across migrations¶
A few translations show up in nearly every guide:
| Source primitive | jarvy.toml |
|---|---|
| Tool / language pin | [provisioner] |
| Post-install script (one-time) | [hooks] post_setup |
| Per-tool post-install | [hooks.<tool>] post_install |
| Environment variable | [env.vars] |
| Required secret | [env.secrets] FOO = { env = "FOO", required = true } |
| Project task / command | [commands] |
| Editor extensions | .vscode/extensions.json (Jarvy doesn't manage editor plugins) |
| Reproducibility | [drift] version_policy = "exact" + commit .jarvy/state.json |
If the migration guide for your specific tool doesn't exist yet, these mappings will get you 80% of the way.