Configuration
IpMan needs almost no configuration. Everything it keeps lives under a single home directory, and the interface adapts to your locale automatically.
Environment variables
| Variable | Default | Description |
|---|---|---|
IPMAN_HOME |
~/.ipman |
Root of all ipman state — relocate everything with one variable |
IPMAN_STORE_ROOT |
$IPMAN_HOME/store |
Override just the central skill store (tests / power users) |
IPMAN_HOME is the one that matters: point it somewhere else and the store,
scope registry, packs and trash all move with it.
State layout under IPMAN_HOME
~/.ipman/
├── store/ # one original per skill (live clone + @commit snapshots)
├── scopes/
│ ├── registry.yaml # known project scopes + skill-sync targets
│ └── <scope-id>/
│ ├── scope.yaml # custody state + per-skill active/archived
│ └── content/ # a taken-over scope's skills directory
├── packs/
│ └── <name>.yaml # pack definitions (named skill sets)
├── trash/
│ └── <timestamp>/ # quarantine — clean --apply moves here, never deletes
└── cache/ # PyPI version check cache, etc.
This whole tree is ipman's to manage — you never edit it by hand. See How It Works for what each piece does.
Per-project files (committed)
| File | Committed? | Written by |
|---|---|---|
ip.yaml |
yes | you (via ipman init) — declares the scope's skills |
ip.lock |
yes | ipman (sync) — exact commit + tree-hash pins |
.gitignore (managed block) |
yes | ipman — ignores the managed symlinks only |
Locale
The interface auto-switches between English and Chinese based on your shell
locale. IpMan reads LC_ALL, LANG, then LANGUAGE; if any starts with zh
it renders in Chinese, otherwise English.
LANG=zh_CN.UTF-8 ipman status # 中文界面
LANG=en_US.UTF-8 ipman status # English interface
This affects everything: status values (real/link/broken become
真目录/软链接/断链), error messages, the interactive TUI, and CLI output alike.
Legacy: ~/.ipman/config.yaml
The pre-M1 config file (security modes, hub URL/mirrors, default agent) is
still read by the dormant install/hub commands but has no effect on the
core commands. It will be revisited if those features are reactivated —
see Dormant Features.