devhub
CLI interface to devhub
Installation
Install this tool using pip:
pip install devhub-cli
Or just install and execute via uvx
uvx devhub-cli
Usage
For help, run:
devhub --help
You can also use:
python -m devhub --help
Via uvx
uvx devhub-cli
Theme Commands
The DevHub CLI provides powerful theme management capabilities for synchronizing and managing your DevHub theme components locally.
Initial Setup
Before using theme commands, you need to initialize your environment:
# Initialize in current directory
devhub theme init
# Initialize in a new directory
devhub theme init mybrand-corporate-theme
This command will:
- Create a
.envfile with your DevHub API credentials - Generate a
.gitignorefile with appropriate exclusions - Create a
devhub.conf.jsonconfiguration file
When specifying a directory, the command will create the directory if it doesn't exist and initialize all configuration files within it.
You'll be prompted to enter:
DEVHUB_API_KEY- Your OAuth1 API keyDEVHUB_API_SECRET- Your OAuth1 API secretDEVHUB_BASE_URL- Your DevHub instance URL (e.g., https://yourbrand.cloudfrontend.net)DEVHUB_SITE_ID- Your site identifier
Available Commands
devhub theme list
Lists all available theme templates and components that can be synchronized.
devhub theme list
devhub theme status
Shows the synchronization status of all theme components, indicating which files have changes compared to the remote version.
devhub theme status
devhub theme sync
Synchronizes theme components from your DevHub instance to local files.
# Sync all components
devhub theme sync
# Sync specific components only
devhub theme sync layouts/headers/DefaultHeader.html components/HeroSection/HeroSection.jinja
The sync command will:
- Download theme files (CSS, headers, footers, localization) to the
layouts/directory - Download template components to the
components/directory as.jinjafiles - Format templates using
djlintwith 2-space indentation - Convert component names from slug-case to PascalCase (e.g.,
hero-section→HeroSection.jinja) - Perform checksum comparison to detect conflicts between local and remote changes
Project Structure
After initialization and synchronization, your project structure will look like:
your-project/
├── .env # Environment variables (not committed)
├── .gitignore # Git exclusions
├── devhub.conf.json # CLI configuration
├── layouts/ # Theme templates (headers, footers, CSS)
│ ├── headers/DefaultHeader.jinja
│ ├── footers/DefaultFooter.jinja
├── styles/ # CSS styles
│ └── globals.css
└── components/ # Template components
├── HeroSection/HeroSection.jinja
├── ProductCard/ProductCard.jinja
└── NavigationMenu/NavigationMenu.jinja
Authentication & Environment
The CLI uses OAuth1 authentication to connect to your DevHub instance. All sensitive credentials are stored in the .env file, which should never be committed to version control.
Required environment variables:
DEVHUB_API_KEY- OAuth1 API keyDEVHUB_API_SECRET- OAuth1 API secretDEVHUB_BASE_URL- Base URL for DevHub APIDEVHUB_SITE_ID- Site identifier
AI Toolkit Commands
The DevHub CLI includes AI toolkit management for setting up AI-powered development tools and templates.
devhub aikit init
Downloads and installs the DevHub AI toolkit to your current working directory.
devhub aikit init
This command will:
- Download the latest AI toolkit from the DevHub CLI AI Toolkit repository
- Extract all toolkit files to your current directory
- Skip existing files to avoid overwriting your customizations
- Provide feedback on extracted and skipped files
The AI toolkit includes templates, examples, and utilities for AI-powered development workflows with DevHub.
Development
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd devhub-cli
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
python -m pytest
CLI template
CLI click template based on https://github.com/simonw/click-app
Metadata
Release files for devhub-cli 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| devhub_cli-0.1.2.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devhub_cli-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.4 kB
Release files / devhub_cli-0.1.2.tar.gz
| Download URL | devhub_cli-0.1.2.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52ade5e2994946088228138cf2254963912fa10cbfb023e81e18583820c3494a
|
|
BLAKE2b-256 checksum How to use checksums |
9bd43e8fc2eb7ecd16f09383e04cfa78a34b3f1046a5b9945035cafa42c77a4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.
Transparency logRelease files / devhub_cli-0.1.2-py3-none-any.whl
| Download URL | devhub_cli-0.1.2-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
960cf74f6b31be22a011a77a28059be665eb75147b8bc2679d2a1f329ab5e124
|
|
BLAKE2b-256 checksum How to use checksums |
da8e685d3547a9fe2e880194f86c808ffca98f522732792d2739d20b9dbf0db9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.
Transparency log