A CLI tool for managing and interacting with the Itential Platform
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/
git clone https://github.com/itential/ipctl.git && cd ipctl
make build
./bin/ipctl --version
Create ~/.platform.d/config.toml with a server profile:
["profile default"]
host = "platform.example.com"
port = 443
use_tls = 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 prod
CLI 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.
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
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
ipctl get adapters
ipctl describe adapter "ServiceNow"
ipctl start adapter "ServiceNow"
ipctl stop adapter "ServiceNow"
ipctl restart adapter "ServiceNow"
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.