A CLI for managing Itential Platform servers β get, create, import, export, and copy 35+ resource types from the command line.
Download the latest release for your platform from the releases page:
# Linux x64
curl -LO https://github.com/itential/ipctl/releases/latest/download/ipctl-linux-x86_64.tar.gz
tar -xzf ipctl-linux-x86_64.tar.gz
sudo mv ipctl /usr/local/bin/Build from source
git clone https://github.com/itential/ipctl.git && cd ipctl make build ./bin/ipctl --version
Create ~/.platform.d/config.ini with a server profile, and set it as the
default profile so it's used automatically without passing --profile:
[application] default_profile = local [profile local] host = platform.example.com port = 443 use_tls = true verify = true username = admin password = your-password
| Feature | Description |
|---|---|
| Resource CRUD | Get, create, update, and delete 35+ resource types |
| Import / Export | Move assets via local directories or Git repositories with SSH auth |
| Multi-Instance | Named profiles for managing multiple Platform servers |
| Authentication | OAuth2 client credentials or basic auth with TLS |
| Output Formats | Human-readable tables, JSON, YAML, or custom Go templates |
| Cross-Environment | Copy automations, workflows, and assets between servers |
ipctl loads configuration from ~/.platform.d/config by default. Supports INI, YAML, TOML, and JSON formats (auto-detected by file extension).
| Option | Description | Default |
|---|---|---|
host |
Platform server hostname | localhost |
port |
Server port (0 = auto from use_tls) |
0 |
use_tls |
Enable TLS connection | true |
verify |
Verify TLS certificates | true |
username |
Basic auth username | - |
password |
Basic auth password | - |
client_id |
OAuth2 client ID | - |
client_secret |
OAuth2 client secret | - |
timeout |
Request timeout in seconds (0 = disabled) | 0 |
Authentication requires either username/password or client_id/client_secret.
Override any profile value with IPCTL_PROFILE_<NAME>_<KEY>:
export IPCTL_PROFILE_PROD_PASSWORD=secret
ipctl get projects --profile prodCLI flags > environment variables > config file > defaults
See the Configuration Reference for complete details including multi-format examples.
| Category | Resources |
|---|---|
| Automation Studio | projects, workflows, automations, templates, transformations, jsonforms |
| Admin | accounts, groups, roles, adapters, integrations, prebuilts, tags |
| Configuration Manager | devices, device-groups, configuration-parsers, gctrees |
| Lifecycle Manager | models |
See the Command Quick Reference for the full matrix of supported operations per resource.
Working with projects
ipctl get projects ipctl describe project "My Project" ipctl create project "New Project" --description "Project description" ipctl delete project "Old Project" ipctl export project "My Project" \ --repository git@github.com:org/repo.git \ --branch main
Working with automations
ipctl get automations ipctl describe automation "Deploy Config" --output json ipctl import automation \ --repository https://github.com/org/automations.git \ --reference v1.0.0 ipctl copy automation "Deploy Config" --from dev --to staging
Working with adapters
ipctl get adapters ipctl describe adapter "ServiceNow" ipctl start adapter "ServiceNow" ipctl stop adapter "ServiceNow" ipctl restart adapter "ServiceNow"
Output formats
- Configuration Reference β profile options, formats, environment variables
- Command Quick Reference β operations matrix per resource
- API Command Reference β detailed API command docs
- Working with Repositories β Git-based import/export
- Logging Reference β log levels, JSON output, sensitive data redaction
- Running from Source β development setup
Contributions are welcome. See CONTRIBUTING.md for development setup, branch conventions, and the pull request process.
All contributors must sign the Contributor License Agreement before contributions can be merged.
This project is licensed under the GNU General Public License v3.0.