Cursor-env: CLI/TUI for isolated Cursor instances

:cursor: The problem

I wanted to try a customization pack from my friend/cursor mentor @kleosr (rules, hooks, skills, packages and theme, go check it out, it’s cool), but without touching my production Cursor.

I thought about creating another Debian user. That felt overkill just for a lab. I also looked at Profiles / --user-data-dir: they help, but on Linux they don’t fully cover things like ~/.cursor (agents, skills, MCP) or global installs such as npm -g.


:cursor: The idea: cursor-env

A CLI/TUI (Go + Bubbletea) to create, list, launch, and delete isolated Cursor environments.

Each environment gets its own HOME under:

~/.local/share/cursor-env/envs/<slug>/home

Launching does more than swap HOME. It also sandboxes:

  • XDG_* (config / data / cache / state)
  • NPM_CONFIG_PREFIXhome/.npm-global (so npm -g does not write into your real ~/.local)
  • CARGO_HOME, GOPATH, GOBIN
  • Sanitized PATH: no host ~/.local/bin, only system paths + sandbox bins

That way you can split workspaces: production, research, rules/MCP lab, etc., without path collisions.


:cursor: How to use it

go build -o cursor-env ./cmd/cursor-env
./cursor-env
  • ↑/↓ / j/k — navigate
  • Enter — launch Cursor in that environment
  • n — create (name + focus)
  • d — delete
  • q — quit

Repo: GitHub - jseramn/cursor-env · GitHub


:cursor: Architecture diagram


What I’d love to hear

Opinions, feedback, edge cases, feature ideas… is this useful to anyone else? How do you isolate “dirty” experimental profiles without risking your production setup?


About me

I’m Jose. I’ve been using Cursor almost non-stop for 30+ days (production + experiments). I barely use the classic IDE: I live in the agent window and read code from the diffs. (Agents Window could use a bit more customization… or am I being too picky? :slight_smile:)


Thanks for reading :slight_smile: :cursor: