Shai CLI Documentation
The command-line tool for managing AI agent configurations. Install, share, and sync your AI configs across projects.
Installation
Install the Shai CLI with a single command:
curl -fsSL https://shaicli.dev/install.sh | bash
After installation, verify it works:
shai --version
Authentication
Most commands require authentication, but searching, installing, and uninstalling public configurations works without logging in:
# No login needed for public configs
shai search "claude"
shai install anthropic/claude-expert
shai uninstall anthropic/claude-expert
To publish your own configurations or access private ones, log in with your Shai account:
Login
Authenticate with your email and password:
shai login
This opens an interactive prompt. Your credentials are stored securely in your system's keychain.
Check Status
See who you're logged in as:
shai whoami
Logged in as johndoe (John Doe)
Token expires: March 11, 2026
Logout
Remove stored credentials:
shai logout
✓ Logged out successfully
Listing Configurations
View all configurations in your account:
shai list
Example output:
[✔] Fetching configurations...
Your configurations:
johndoe/claude-for-reactnative
Updated: 3 days ago
johndoe/claude-for-rails ★ 2
Claude configurations for Rails 8+ projects
Updated: 4 days ago
Searching
Search public configurations shared by the community:
shai search "claude"
Example output:
[✔] Searching...
Search results for "claude":
acme/claude-for-rails ★ 42
Claude configurations for Rails 8+ projects with TailwindPlus
devtools/claude-expert ★ 128
Official Claude Code configuration for power users
Found 2 configuration(s). Use `shai install <name>` to install.
You can also browse configurations on shaicli.dev/explore.
Installing Configurations
Install a configuration to your current project. Files are copied to your project directory.
shai install anthropic/claude-expert
Example output:
[✔] Fetching anthropic/claude-expert...
Installing anthropic/claude-expert...
Created .claude/
Created .claude/agents/
Created .claude/agents/BACKEND.md
Created .claude/agents/FRONTEND.md
Created .claude/settings.json
Created CLAUDE.md
✓ Installed 6 items from anthropic/claude-expert
Tip: You can install your own private configurations by slug only:
shai install my-cursor-settings
Uninstalling Configurations
Remove a previously installed configuration from your project:
shai uninstall anthropic/claude-expert
Example output:
[✔] Fetching anthropic/claude-expert...
Remove 3 files and 1 folder from 'anthropic/claude-expert'? (y/N) y
Uninstalling anthropic/claude-expert...
Deleted .claude/settings.json
Deleted .claude/agents/BACKEND.md
Deleted CLAUDE.md
Deleted .claude/
Deleted .shai-installed
✓ Uninstalled anthropic/claude-expert
Creating Configurations
Initialize a new configuration from your current directory:
shai init
This starts an interactive setup that will:
- Ask for a name and description
- Set visibility (public, private, or unlisted)
- Detect configuration files in your project
- Create the configuration on shaicli.dev
- Push your files to the remote
$ shai init
Configuration name: my-claude-setup
Description (optional): My personal Claude Code configuration
Visibility: public
Include paths (glob patterns, comma-separated): .claude,CLAUDE.md,.claude/agents
[✔] Creating configuration...
✓ Created my-claude-setup
Remote: https://shaicli.dev/johndoe/my-claude-setup
Next steps:
1. Add or modify files matching your include patterns
2. Run `shai push` to upload your configuration
Publishing Changes
After modifying your local configuration files, push changes to the remote:
shai push
Example output:
Pushing to johndoe/my-claude-setup...
Uploading .claude
Uploading .claude/agents/TESTING.md
Uploading CLAUDE.md
[✔] Uploading...
✓ Pushed 3 items
View at: https://shaicli.dev/johndoe/my-claude-setup
Checking Status
See what's changed locally compared to the remote:
shai status
[✔] Fetching remote state...
Configuration: johndoe/my-claude-setup
Status: Local changes
Modified:
CLAUDE.md
Run `shai push` to upload changes.
Viewing Diff
See the actual content differences:
shai diff
[✔] Fetching remote state...
--- remote CLAUDE.md
+++ local CLAUDE.md
Refer to .claude/agents for specialized agents.
+
+Added new guidelines for testing.
Configuration Settings
View and update your configuration's metadata (name, description, visibility).
View Details
shai config show
[✔] Fetching configuration...
Configuration: my-claude-setup
Name: My Claude Setup
Description: My personal Claude Code configuration
Visibility: public
Owner: johndoe
Stars: 12
URL: https://shaicli.dev/johndoe/my-claude-setup
Created: December 11, 2025
Updated: December 11, 2025
Update Settings
Change metadata using config set:
shai config set description "Updated description"
[✔] Updating...
✓ Updated description to 'Updated description'
shai config set visibility private
[✔] Updating...
✓ Updated visibility to 'private'
Deleting Configurations
Permanently delete a configuration from the remote:
shai delete my-claude-setup
Are you sure you want to delete 'my-claude-setup'? This cannot be undone. (y/N) y
[✔] Deleting...
✓ Configuration 'my-claude-setup' deleted
Warning: This action is irreversible. The configuration and all its files will be permanently deleted.
Global Options
These options work with any command:
| Option | Description |
|---|---|
-h, --help |
Show help for a command |
-v, --version |
Show CLI version |
--verbose |
Enable verbose output for debugging |
--no-color |
Disable colored output |
Get help for any command:
shai install --help
REST API
For programmatic access, Shai provides a REST API. Authenticate with a Bearer token from your API tokens page.
Base URL
https://shaicli.dev/api/v1
Authentication
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://shaicli.dev/api/v1/configurations
Endpoints
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /configurations/search |
Search public configurations | Optional |
| GET | /configurations |
List your configurations | Required |
| GET | /configurations/:slug |
Get configuration details | Public: Optional |
| POST | /configurations |
Create a configuration | Required |
| GET | /configurations/:slug/tree |
Get file tree | Public: Optional |
| PUT | /configurations/:slug/tree |
Replace file tree | Required |
Note: For public configurations, use the owner/slug format (e.g., anthropic/claude-expert) to access without authentication.
Rate Limits
- Authenticated requests: No rate limit
- Unauthenticated requests: 60 requests/minute per IP
- Login endpoint: 10 requests/3 minutes per IP
Need help? Create an account to get started, or explore community configurations.