Skip to main content

CustomGPT CLI

PyPI version Python Support Documentation Status Coverage Status Code style: black License: MIT Docker Pulls

🚀 A powerful command-line interface for CustomGPT SDK, enabling efficient project management and automation.

✨ Features

  • 🛠️ Full CustomGPT SDK integration
  • 🔐 Secure API key management
  • 📊 Project management and monitoring
  • 🤖 Conversation handling
  • 📄 Page management
  • 🐳 Docker support
  • 🔄 Bulk operations
  • 📊 Advanced filtering

Installation

pip install customgpt-cli

Authentication

The CLI requires your CustomGPT API key. You can provide it in two ways:

  1. Environment Variable (recommended):
export CUSTOMGPT_API_KEY=your_api_key
customgpt-cli list-projects
  1. Command Line Argument:
customgpt-cli --api-key YOUR_API_KEY list-projects

Note: Command line argument takes precedence over environment variable if both are set.

Usage

Project Management

Create a project:

# Using environment variable
export CUSTOMGPT_API_KEY=your_api_key

# With a sitemap, return project ID
customgpt-cli create-project --name "My Test Project With Sitemap" --sitemap "https://adorosario.github.io/small-sitemap.xml" --format id-only

# With a file, returning JSON output. 
customgpt-cli create-project --name "My Test Project With File" --file /path/to/file.pdf --format json

List projects with filtering:

# Basic listing
customgpt-cli list-projects

# Filter by name pattern (supports regex)
customgpt-cli list-projects --name-filter "test.*project"

# Filter by activity
customgpt-cli list-projects --inactive-days 30

# Filter by query count
customgpt-cli list-projects --min-queries 100 --max-queries 1000

# Change output format
customgpt-cli list-projects --format json
customgpt-cli list-projects --format table
customgpt-cli list-projects --format id-only

Show a project details:

customgpt-cli show-project --project-id PROJECT_ID --format json

Update a project:

customgpt-cli update-project --project-id PROJECT_ID --name "New Name" --is-shared 1 --format json

Delete projects:

# Delete single project
customgpt-cli delete-projects --project-ids PROJECT_ID

# Delete multiple projects
customgpt-cli delete-projects --project-ids "id1,id2,id3"

# Delete (with dry run)
customgpt-cli delete-projects --project-ids PROJECT_ID --dry-run

# Force delete without confirmation
customgpt-cli delete-projects --project-ids PROJECT_ID --force

Conversation Management

Create a conversation:

customgpt-cli create-conversation --project-id PROJECT_ID --name "My Conversation"

Send a message:

# Without streaming
customgpt-cli send-message --project-id PROJECT_ID --session-id SESSION_ID --prompt "Hello"

# With streaming
customgpt-cli send-message --project-id PROJECT_ID --session-id SESSION_ID --prompt "Hello" --stream

# With custom persona
customgpt-cli send-message --project-id PROJECT_ID --session-id SESSION_ID --prompt "Hello" --persona "You are a helpful assistant"

Page Management

Get project pages:

customgpt-cli get-pages --project-id PROJECT_ID

Delete a page:

customgpt-cli delete-page --project-id PROJECT_ID --page-id PAGE_ID

Reindex a page:

customgpt-cli reindex-page --project-id PROJECT_ID --page-id PAGE_ID

Project Settings Management

Get project settings:

customgpt-cli get-project-settings --project-id PROJECT_ID

Update project settings:

customgpt-cli update-project-settings --project-id $PROJECT_ID --default-prompt "Test prompt" --chatbot-avatar "./tests/files/test.png" --chatbot-background "./tests/files/test.png" --example-questions '["Test questions"]' --response-source "default" --chatbot-msg-lang "en" --chatbot-color "#0e57cc" --chatbot-toolbar-color "#0e57cc" --persona-instructions "Test instructions" --citations-answer-source-label-msg "Test label" --citations-sources-label-msg "Test label" --hang-in-there-msg "Test message" --chatbot-siesta-msg "Test message" --is-loading-indicator-enabled --enable-citations 0 --enable-feedbacks --citations-view-type "user" --no-answer-message "Test message" --ending-message "Test message" --remove-branding --enable-recaptcha-for-public-chatbots --chatbot-model "gpt-4-o" --is-selling-enabled --license-slug "test" --selling-url "test"

Plugin Management

Get plugins:

customgpt-cli get-plugins --project-id PROJECT_ID

Create plugins:

customgpt-cli create-plugin --project-id $PROJECT_ID --model-name "TestPlugin" --human-name "Test Assistant" --keywords "test,automation" --description "This is a helpful automation tool." --is-active

Update plugins:

customgpt-cli update-plugin --project-id $PROJECT_ID --model-name "Updated" --human-name "Updated Assistant" --keywords "updated,assistant" --description "Trusted information about indoor plants and gardening." --is-active

Page Metadata Management

Get page metadata:

customgpt-cli get-page-metadata --project-id PROJECT_ID --page-id PAGE_ID

Update page metadata:

customgpt-cli update-page-metadata --project-id PROJECT_ID --page-id PAGE_ID --title "Page Title" --url "https://page-url.com" --description "Page description" --image "https://image-url.com/image.png"

Report Management

Get reports:

# Get traffic report
customgpt-cli get-traffic-report --project-id PROJECT_ID --filters '["traffic", "pages"]'

# Get queries report
customgpt-cli get-queries-report --project-id PROJECT_ID --filters '["queries", "pages"]'

# Get conversations report
customgpt-cli get-conversations-report --project-id PROJECT_ID --filters '["conversations", "pages"]'

# Get analysis report
customgpt-cli get-analysis-report --project-id PROJECT_ID --filters '["analysis", "pages"]'

Limits Management

Get limits:

customgpt-cli get-limits

Citations Management

Get citations:

customgpt-cli get-citations --project-id PROJECT_ID --citation-id CITATION_ID

Sources Management

Get sources:

customgpt-cli list-sources --project-id PROJECT_ID

Create a source:

# Create source with sitemap
customgpt-cli create-source --project-id PROJECT_ID --sitemap-path URL --file-data-retension --is-ocr-enabled --is-anonymized

# Create source with file
customgpt-cli create-source --project-id PROJECT_ID --file PATH --file-data-retension --is-ocr-enabled --is-anonymized

Update source:

customgpt-cli update-source --project-id PROJECT_ID --source-id SOURCE_ID --executive-js --data-refresh-frequency never --create-new-pages --remove-unexist-pages --refresh-existing-pages always --refresh-schedule ["00:00","08:00"]

Delete source:

customgpt-cli delete-source --project-id PROJECT_ID --source-id SOURCE_ID

Sync source:

customgpt-cli sync-source --project-id PROJECT_ID --source-id SOURCE_ID

User Management

Get user:

customgpt-cli get-user

Scripting Examples

Here is an examples of how to use the CLI in scripts:

  1. Export project IDs to a file and process them:
#!/bin/bash
export CUSTOMGPT_API_KEY=your_api_key

# Export IDs
customgpt-cli list-projects --name-filter "test" --format id-only > projects.txt

# Process the IDs
customgpt-cli delete-projects --project-ids $(paste -s -d, projects.txt) --force

Output Formats

The CLI supports multiple output formats for better integration with other tools:

  • table: Human-readable formatted table (default)
  • json: JSON format for parsing
  • csv: CSV format for stats data
  • id-only: Just the IDs, one per line (good for scripting)

Safety Features

The CLI includes several safety features:

  • --dry-run: Shows what would be deleted without actually deleting
  • Confirmation prompts for destructive operations
  • --force flag to skip confirmations in scripts
  • Error handling with informative messages

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License

Metadata

Release files for customgpt-cli 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for customgpt-cli 0.1.3
File Size Uploaded
customgpt_cli-0.1.3.tar.gz 36.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for customgpt-cli 0.1.3
File Interpreter ABI Platform
customgpt_cli-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 70.6 kB

Release files / customgpt_cli-0.1.3.tar.gz

Download URL customgpt_cli-0.1.3.tar.gz
Size 36.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ad1d750ebea4509c5e959ce8d36fbcba2ac2726d6d8dce47f14d842f9fd76fc8
BLAKE2b-256 checksum
How to use checksums
bd4a847042a9a450c735803fdb614c4afaf70fdfecc09cdc47a29e73637ac9b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.11.10 Linux/5.15.0-94-generic

Release files / customgpt_cli-0.1.3-py3-none-any.whl

Download URL customgpt_cli-0.1.3-py3-none-any.whl
Size 34.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8917b528ea63923439b9120cf3c3ea8bed8208c0883e2b0493afa8acd3eb6d22
BLAKE2b-256 checksum
How to use checksums
9a46e915342daaf34db7c107420294d8f740858f8b4f42c8c2284af5b9e793ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.11.10 Linux/5.15.0-94-generic

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page