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

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:

  1. Ask for a name and description
  2. Set visibility (public, private, or unlisted)
  3. Detect configuration files in your project
  4. Create the configuration on shaicli.dev
  5. 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.