The Credible CLI (cred) is a powerful command-line interface for managing semantic data models, packages, projects, and connections in the Credible Data platform. Built for data engineers and DevOps professionals, it enables automated workflows and seamless CI/CD integration.
Installation
Prerequisites: Node.js version 20+ and npm package manager
Install the Credible CLI globally from the npm registry:
npm install -g @credibledata/cred-cli
View package details at npmjs.com/package/@credibledata/cred-cli
Core Commands
The CLI supports bash/zsh autocompletion. Type cred + TAB to see available commands, or cred ls + TAB to see resource types (project, package, connection, version, group).
Authentication & Session
Login
Authenticate with your organization via Auth0:
cred login <organizationName>
Check Status
View your current organization and project:
Logout
Clear stored credentials:
Resource Management
Projects
Packages
Connections
Groups
List Projects
Get Project Details
cred get project <projectName>
Create Project
cred add project <projectName> [--readmeFile <path>] [-y]
Options:
--readmeFile: Path to README file to include
Delete Project
cred rm project <projectName> [-y]
Set Default Project
cred set project <projectName>
Setting a default project only applies to CLI sessions - it doesn’t affect any web experiences
List Packages
Delete Package
cred rm package <packageName> [-y]
Update Package
cred update package <packageName> [options]
Options:
--version <versionId>: Set which version is latest/pinned
--description <text>: Update package description
--replication <count>: Set replication count (must be at least 1)
The “latest” version may also be called “pinned” in the web UI
Publish New Version
cred publish [--set-latest] [-y]
List Package Versions
cred ls version <packageName>
Archive Version
cred archive <packageName> <versionId> [-y]
Unarchive Version
cred unarchive <packageName> <versionId> [-y]
There is no cred set package command. Use cred set project to set your default project. Packages are managed through publish/archive/unarchive commands.
List Connections
Create Connection
cred add connection <connectionFileName> [-y]
The connectionFileName should be a JSON file containing an array of connection objects. The connection name is a field within the JSON, not a command-line argument.Command Syntax:cred add connection <connectionFileName>
JSON File Structure:The file should contain an array of connection objects. Each connection has:
name: The connection name (required)
type: Connection type (postgres, bigquery, snowflake, trino, mysql)
- Connection-specific configuration based on type
BigQuery Example:[
{
"name": "my-bigquery-connection",
"type": "bigquery",
"bigqueryConnection": {
"defaultProjectId": "my-project",
"billingProjectId": "billing-project",
"location": "us-central1",
"serviceAccountKeyJson": "{\"type\":\"service_account\",\"project_id\":\"...\"}",
"maximumBytesBilled": "1000000",
"queryTimeoutMilliseconds": "30000"
}
}
]
Note: For BigQuery, the serviceAccountKeyJson field contains the entire JSON content as a string (not a file path).PostgreSQL Example:[
{
"name": "my-postgres-connection",
"type": "postgres",
"postgresConnection": {
"host": "localhost",
"port": 5432,
"databaseName": "mydb",
"userName": "myuser",
"password": "mypassword"
}
}
]
Alternatively, you can use a connection string:[
{
"name": "my-postgres-connection",
"type": "postgres",
"postgresConnection": {
"connectionString": "postgresql://user:password@localhost:5432/mydb"
}
}
]
Snowflake Example:[
{
"name": "my-snowflake-connection",
"type": "snowflake",
"snowflakeConnection": {
"account": "myaccount.us-east-1",
"username": "myuser",
"password": "mypassword",
"warehouse": "COMPUTE_WH",
"database": "MYDB",
"schema": "PUBLIC",
"responseTimeoutMilliseconds": 60000
}
}
]
The connection name is defined in the JSON file itself, not as a command argument. You can include multiple connections in a single JSON file array.
Delete Connection
cred rm connection <connectionName> [-y]
List Groups
Get Group Details
cred get group <groupName>
Create Group
cred add group <groupName> [-d <description>] [-y]
Options:
-d, --description: Description for the group
-y, --yes: Skip confirmation
Delete Group
cred rm group <groupName> [-y]
Create Group Access Token
cred add group-access-token <groupName> <tokenName>
Arguments:
<groupName>: The name of the group
<tokenName>: Name for the API key/token
Example:cred add group-access-token ai-agents-group production-token
This command generates an API key that can be used to authenticate applications or services with the permissions of the specified group. The token is displayed once and should be stored securely.Add Member to Group
cred add member <groupName> <memberType> <memberName> <role>
Arguments:
<groupName>: The name of the group
<memberType>: Type of member (user or group)
<memberName>: Name of the user or group to add
<role>: Member role (admin or member)
Examples:# Add a user as admin
cred add member engineering-team user [email protected] admin
# Add a nested group as member
cred add member engineering-team group data-analysts member
Remove Member from Group
cred rm member <groupName> <memberType> <memberName>
Arguments:
<groupName>: The name of the group
<memberType>: Type of member (user or group)
<memberName>: Name of the user or group to remove
Example:Groups enable role-based access control (RBAC) for organizing users and managing permissions across projects and packages. Groups can contain both individual users and other groups (nested groups).
Command Options
Global Options
| Option | Description |
|---|
-V, --version | Display version number |
-h, --help | Display help (use alone for general help or after a command for specific help) |
--debug | Enable debug output (most commands) |
-y, --yes | Skip confirmation prompts |
--set-latest | Set published version as the latest (publish command) |