jdx/mise · error
{} is not managed by [dotfiles]
Error message
{} is not managed by [dotfiles] What it means
`mise bootstrap dotfiles edit <target>` only edits files already managed by the `[dotfiles]` configuration. When the target is not found among managed requirements and the user has not passed --yes (which instead prompts to add it), run_inner bails with `<target> is not managed by [dotfiles]`. The prompt path (when --yes is given) offers to run DotfilesAdd automatically.
Source
Thrown at src/cli/dotfiles/edit.rs:76
}
if let Some(path) = source_for_target(&config, &target, &self.target)? {
open_or_create(&path)?;
crate::cli::editor::open_in_editor(&path)?;
if self.apply {
apply_target(&self.target).await?;
}
return Ok(());
}
if !self.yes && console::user_attended_stderr() {
let ok = prompt::confirm(format!("dotfiles: add {}?", self.target))?.is_yes();
if !ok {
info!("dotfiles: skipped");
return Ok(());
}
} else if !self.yes {
bail!("{} is not managed by [dotfiles]", self.target);
}
DotfilesAdd {
targets: vec![self.target.clone()],
changed: false,
mode: self.mode.clone(),
source: self.source.clone(),
global: true,
local: false,
path: None,
dry_run: false,
no_apply: true,
force: false,
yes: true,
}
.run()
.await?;
View on GitHub (pinned to afd2eddd3a)
Solutions
- Add the file first: `mise bootstrap dotfiles add <path>` (or `track <path>`), then run edit.
- Re-run with `--yes` to accept the interactive prompt that offers to add the target automatically.
- Check the exact target spelling and confirm the config declaring it is loaded (and trusted).
Example fix
# before mise bootstrap dotfiles edit ~/.zshrc # not managed -> error # after mise bootstrap dotfiles add ~/.zshrc mise bootstrap dotfiles edit ~/.zshrc
Defensive patterns
Strategy: validation
Validate before calling
// verify the target is managed before editing
import { execSync } from 'node:child_process';
const managed = JSON.parse(execSync('mise bootstrap dotfiles ls --json').toString());
if (!managed.some(d => d.target === target)) {
execSync(`mise bootstrap dotfiles add ${target}`);
} Try / catch
try {
execSync(`mise bootstrap dotfiles edit ${target}`);
} catch (e) {
if (String(e.stderr).includes('is not managed by [dotfiles]')) {
execSync(`mise bootstrap dotfiles add ${target}`);
execSync(`mise bootstrap dotfiles edit ${target}`);
} else throw e;
} Prevention
- Run add/track before edit for any new dotfile.
- Double-check the target path spelling against the managed list.
- Ensure the config declaring the dotfile is loaded and trusted.
When it happens
Trigger: Running `mise bootstrap dotfiles edit <path>` for a file that has no [dotfiles] requirement in any loaded config, without --yes. The lookup fails and the command refuses to proceed rather than silently creating an unmanaged edit.
Common situations: Typos in the target path; the dotfile exists in another machine's config but not this one; config file not loaded/trusted so its dotfiles entries are missing; trying to start managing a brand-new file with edit instead of add/track.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- --changed does not accept target arguments
- at least one target or --changed is required
- --source can only be used with one target
- `--mode track` tracks a file where it is and takes no source
- --changed requires trusted configuration: {}
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/a89b90f4a2592a49.
Report an issue: GitHub.