Files
oh-my-pi/packages/coding-agent/docs/config-usage.md
T
can1357 790a5370bb feat: renamed binary from pi to omp with config migration support
- Renamed CLI binary and package from 'pi' to 'omp' across all platforms and installers.
- Changed environment variable prefix from PI_* to OMP_* with automatic migration support.
- Changed configuration directory from ~/.pi/ to ~/.omp/ with multi-path fallback discovery.
- Added getConfigDirPaths(), findConfigFile(), and readConfigFile() functions for config resolution across .omp, .pi, and .claude directories.
2026-01-03 15:54:45 +01:00

6.4 KiB

Config Module Usage Map

This document shows how each file uses the config module and what subpaths they access.

Overview Diagram

┌─────────────────────────────────────────────────────────────────────────────────┐
│                              config.ts exports                                   │
├─────────────────────────────────────────────────────────────────────────────────┤
│ Constants:        APP_NAME, CONFIG_DIR_NAME, VERSION, ENV_AGENT_DIR             │
│ Single paths:     getAgentDir, getAuthPath, getModelsPath, getCommandsDir, ...  │
│ Multi-config:     getConfigDirs, getConfigDirPaths, findConfigFile,             │
│                   readConfigFile, findNearestProjectConfigDir, ...              │
└─────────────────────────────────────────────────────────────────────────────────┘

Usage by Category

1. Display/Branding Only (no file I/O)

File Imports Purpose
cli/args.ts APP_NAME, CONFIG_DIR_NAME, ENV_AGENT_DIR Help text, env var names
cli/plugin-cli.ts APP_NAME Command output
cli/update-cli.ts APP_NAME, VERSION Update messages
core/export-html/index.ts APP_NAME HTML export title
modes/interactive/components/welcome.ts APP_NAME Welcome banner
utils/tools-manager.ts APP_NAME Tool download messages

2. Single Fixed Paths (user-level only)

File Imports Path Purpose
core/logger.ts CONFIG_DIR_NAME ~/.omp/logs/ Log file directory
core/agent-session.ts getAuthPath ~/.omp/agent/auth.json Error messages
core/session-manager.ts getAgentDir ~/.omp/agent/sessions/ Session storage
modes/interactive/theme/theme.ts getCustomThemesDir ~/.omp/agent/themes/ Custom themes
modes/interactive/interactive-mode.ts getAuthPath, getDebugLogPath auth.json, debug log Status messages
utils/changelog.ts getChangelogPath Package CHANGELOG.md Re-exports
core/system-prompt.ts getAgentDir, getDocsPath, getExamplesPath, getReadmePath Package assets + AGENTS.md System prompt building
migrations.ts getAgentDir ~/.omp/agent/ Auth/session migration
core/plugins/installer.ts getAgentDir ~/.omp/agent/ Plugin installation
core/plugins/paths.ts CONFIG_DIR_NAME ~/.omp/plugins/ Plugin directories

3. Multi-Config Discovery (with fallbacks)

These use the new helpers to check .omp, .pi, .claude directories:

File Helper Used Subpath(s) Levels
main.ts findConfigFile SYSTEM.md project
core/sdk.ts getConfigDirPaths auth.json, models.json user
core/settings-manager.ts readConfigFile settings.json user+project
core/skills.ts getConfigDirPaths skills/ user+project
core/slash-commands.ts getConfigDirPaths commands/ project
core/hooks/loader.ts getConfigDirPaths hooks/ project
core/custom-tools/loader.ts getConfigDirPaths tools/ project
core/custom-commands/loader.ts getConfigDirPaths commands/ project
core/plugins/paths.ts getConfigDirPaths plugin-overrides.json project
core/mcp/config.ts getConfigDirPaths mcp.json user+project
core/tools/lsp/config.ts getConfigDirPaths lsp.json, .lsp.json user+project
core/tools/task/commands.ts getConfigDirPaths, findAllNearestProjectConfigDirs commands/ user+project
core/tools/task/discovery.ts getConfigDirs, findAllNearestProjectConfigDirs agents/ user+project
core/tools/task/model-resolver.ts readConfigFile settings.json user
core/tools/web-search/auth.ts getConfigDirPaths `` (root for models.json, auth.json) user

Subpath Summary

User-level (~/.omp/agent/, ~/.pi/agent/, ~/.claude/):
├── auth.json          ← sdk.ts, web-search/auth.ts
├── models.json        ← sdk.ts, web-search/auth.ts
├── settings.json      ← settings-manager.ts, task/model-resolver.ts
├── commands/          ← slash-commands.ts, custom-commands/loader.ts, task/commands.ts
├── hooks/             ← hooks/loader.ts
├── tools/             ← custom-tools/loader.ts
├── skills/            ← skills.ts
├── themes/            ← theme.ts (user-level only, no fallback)
├── sessions/          ← session-manager.ts (user-level only, no fallback)
├── agents/            ← task/discovery.ts
└── AGENTS.md          ← system-prompt.ts

User-level root (~/.omp/, ~/.pi/, ~/.claude/) - not under agent/:
├── mcp.json           ← mcp/config.ts
├── plugins/           ← plugins/paths.ts (primary only)
└── logs/              ← logger.ts (primary only)

Project-level (.omp/, .pi/, .claude/):
├── SYSTEM.md          ← main.ts
├── settings.json      ← settings-manager.ts
├── commands/          ← slash-commands.ts, custom-commands/loader.ts, task/commands.ts
├── hooks/             ← hooks/loader.ts
├── tools/             ← custom-tools/loader.ts
├── skills/            ← skills.ts
├── agents/            ← task/discovery.ts
├── plugin-overrides.json ← plugins/paths.ts
├── lsp.json           ← lsp/config.ts
└── .mcp.json          ← mcp/config.ts

Special paths (not under agent/):
├── ~/.omp/plugins/    ← plugins/paths.ts
└── ~/.omp/logs/       ← logger.ts

Files Using Manual Paths (Intentionally)

These files construct paths manually because they only use the primary config dir:

File Current Approach Reason
core/logger.ts CONFIG_DIR_NAME for logs dir Logs only written to primary (~/.omp/logs/)
core/plugins/paths.ts CONFIG_DIR_NAME for plugins dir Plugins only installed in primary (~/.omp/plugins/)