Use Yazelix tools (Nushell, zoxide, starship, lazygit, etc.) directly from your editor's built-in terminal without making Yazelix your editor's default terminal.
The simplest approach is the same in every editor:
- Open your editor's integrated terminal.
- Run
yzx env. - Work in the Yazelix environment for that terminal only.
If you want to keep the editor's current shell instead of switching into the shell configured in yazelix.toml, use:
yzx env --no-shellThis is the lowest-friction option and leaves your editor's normal terminal behavior unchanged.
VS Code supports named integrated terminal profiles through terminal.integrated.profiles.<platform>. Cursor uses the same settings.json model in practice.
To add an optional Yazelix terminal without replacing your normal default terminal:
- add a new named profile
- do not set
terminal.integrated.defaultProfile.<platform>
Add this to settings.json:
{
"terminal.integrated.profiles.linux": {
"Yazelix Env": {
"path": "/usr/bin/bash",
"args": ["-ic", "yzx env"],
"icon": "terminal-bash",
"overrideName": true
}
}
}Add this to settings.json:
{
"terminal.integrated.profiles.osx": {
"Yazelix Env": {
"path": "/bin/bash",
"args": ["-ic", "yzx env"],
"icon": "terminal-bash",
"overrideName": true
}
}
}After adding the profile:
- Open the terminal panel.
- Use the terminal dropdown next to +.
- Choose Yazelix Env.
That opens a Yazelix-powered terminal only when you explicitly pick it. Your existing default terminal stays unchanged.
bash -icstarts an interactive Bash shell so your normal shell init can exposeyzx.yzx envthen loads the Yazelix environment and switches into the shell configured inyazelix.toml.- Prefer to stay in Bash/Zsh/Fish/Nushell instead of switching shells? Change the profile command to
yzx env --no-shell. - If
yzxis not available in your editor terminal yet, make sure your normal shell startup files expose~/.local/binonPATH.
Zed does support terminal shell configuration with:
{
"terminal": {
"shell": {
"with_arguments": {
"program": "/bin/bash",
"args": ["--login"]
}
}
}
}But that setting is global for Zed's built-in terminal. If you point it at yzx env, you are effectively changing the default shell for all Zed terminals.
So if your goal is:
- keep Zed's normal default terminal
- add a separate optional Yazelix terminal entry
the better fit is a task, not terminal.shell.
Create or edit ~/.config/zed/tasks.json and add:
[
{
"label": "Yazelix Env",
"command": "yzx",
"args": ["env"],
"use_new_terminal": true,
"allow_concurrent_runs": true,
"reveal": "always",
"hide": "never"
}
]If you want this only for one project, put the same task in:
.zed/tasks.json
inside that project.
- Open the command palette.
- Run
task: spawn. - Choose
Yazelix Env.
Zed will launch that task in its integrated terminal, giving you an optional Yazelix terminal without changing the default shell used by normal Zed terminals.
- Zed tasks run in a login shell, so they typically see the same
PATHsetup as your normal shell startup files. - If you want to keep the current shell instead of switching into the shell configured by Yazelix, use:
"args": ["env", "--no-shell"]
- If
yzxis not available yet, ensure~/.local/binis on your shellPATH.
✅ All Yazelix tools available when you explicitly open the Yazelix terminal
✅ Your editor's normal default terminal remains unchanged
✅ A clean way to use z, lg, mise, starship, nu, and the rest of the Yazelix environment only when you want it