The CLI uses YAML configuration files to manage system connections. You can configure multiple IBM i systems, set a default, and switch between them with theDocumentation Index
Fetch the complete documentation index at: https://ibm-d95bab6e.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
--system flag.
Config File Locations
The CLI loads configuration from two locations. Project-level config overrides user-level config:| Scope | Path | Use Case |
|---|---|---|
| Project | Nearest .ibmi/config.yaml walking up from cwd | Team-shared settings, project-specific systems |
| User | ~/.ibmi/config.yaml | Personal systems, global defaults |
.ibmi/config.yaml — similar to how .gitignore files work.
The
.ibmi/ directory is automatically added to .gitignore when you create your first system with ibmi system add. This prevents credentials from being committed to version control.Config File Format
System Properties
| Property | Type | Default | Description |
|---|---|---|---|
host | string | required | IBM i hostname or IP address |
port | number | 8076 | Mapepire port |
user | string | required | IBM i user profile |
password | string | — | Password or ${ENV_VAR} reference |
description | string | — | Human-readable label |
defaultSchema | string | — | Default schema for unqualified table names |
readOnly | boolean | true | Restrict to SELECT statements |
confirm | boolean | false | Prompt before executing write operations |
timeout | number | 30 | Query timeout in seconds |
maxRows | number | 5000 | Default row limit for queries |
ignoreUnauthorized | boolean | false | Accept self-signed TLS certificates |
tools | string | — | Default YAML tool path for this system |
Environment Variable Expansion
Use${VAR_NAME} syntax in config values to reference environment variables. These are expanded at load time:
.env file rather than in the config file itself.
System Resolution Order
When a command needs a system connection, the CLI resolves it in this priority order:Password Resolution
When a system connection requires authentication:- Config
passwordfield — including${ENV_VAR}expansion - Interactive prompt — if running in a TTY, prompts for password with hidden input
- Error — if non-interactive (piped) and no password is available
Managing Systems
Useibmi system subcommands to manage connections:
Output Format Priority
When determining the output format, the CLI checks in this order:--rawflag (equivalent to--format json)--format <type>flagformat:in config file- Auto-detect:
tablefor TTY,jsonfor piped output