Use this skill when the user wants to automate web workflows into callable CLI commands using cliany-site.
cliany-site converts any web workflow into an executable CLI command. It connects to Chrome via CDP, captures page accessibility trees (AXTree), uses an LLM to plan actions, and generates Python/Click command-line adapters.
Before using cliany-site, verify the environment:
Python 3.11+ with cliany-site installed
Chrome with CDP enabled (auto-managed or manual --remote-debugging-port=9222)
LLM API Key — at least one of:
CLIANY_ANTHROPIC_API_KEY (recommended)CLIANY_OPENAI_API_KEYANTHROPIC_API_KEY (still supported)Run the doctor command to verify all prerequisites:
bash
cliany-site doctor --json
Expected output on success:
json
{
"success": true,
"data": {"cdp": true, "llm": true, "adapters_dir": "/Users/you/.cliany-site/adapters"},
"error": null
}
bash
# Clone and install
git clone https://github.com/pearjelly/cliany.site.git
cd cliany.site
pip install -e .
# Verify
cliany-site --version
cliany-site doctor --json
Set up via environment variables or .env file:
bash
# Anthropic (recommended)
export CLIANY_LLM_PROVIDER=anthropic
export CLIANY_ANTHROPIC_API_KEY="sk-ant-..."
# OpenAI alternative
export CLIANY_LLM_PROVIDER=openai
export CLIANY_OPENAI_API_KEY="sk-..."
Configuration file locations (priority low to high):
~/.config/cliany-site/.env~/.cliany-site/.env.envbash
cliany-site doctor [--json]
Checks all prerequisites: CDP connection, LLM key, adapter directory structure.
Output fields:
cdp (bool): Chrome CDP availablellm (bool): LLM API key configuredadapters_dir (str): adapter storage pathAlways run doctor first before any other operation to ensure the environment is ready.
bash
cliany-site login <url> [--json]
Opens the specified URL, waits for the user to complete manual login, then saves the session to ~/.cliany-site/sessions/.
When to use: Before exploring workflows that require authentication.
bash
cliany-site explore <url> <workflow_description> [--json]
This is the core command. It:
~/.cliany-site/adapters/<domain>/Parameters:
url: Target web page URLworkflow_description: Natural language description of the workflowExample:
bash
cliany-site explore "https://github.com" "Search for cliany.site repository and view README" --json
After success, a github.com adapter is auto-registered as a subcommand.
bash
cliany-site list [--json]
Lists all generated adapters by domain name.
bash
cliany-site <domain> <command> [args...] [--json]
Runs a specific command from a generated adapter.
Example:
bash
cliany-site github.com search --query "browser-use" --json
bash
cliany-site tui
Visual terminal interface for managing adapters, viewing logs, and configuration.
All commands output a standard JSON envelope when --json is passed:
json
{
"success": true,
"data": { "..." },
"error": null
}
On failure:
json
{
"success": false,
"data": null,
"error": {
"code": "ERROR_CODE",
"message": "Error description"
}
}
Error codes:
CodeMeaningCDP_UNAVAILABLEChrome not running or port 9222 not openLLM_KEY_MISSINGNo LLM API key configuredCOMMAND_NOT_FOUNDUnknown command or adapter not foundEXPLORE_FAILEDWorkflow exploration failed
Exit codes:
0: success1: failure (details in JSON error field)Follow this sequence when automating a new website:
bash
cliany-site doctor --json
If cdp is false, Chrome will be auto-started. If llm is false, configure API keys first.
bash
cliany-site login "https://target-site.com" --json
Wait for the user to complete manual login in the browser.
bash
cliany-site explore "https://target-site.com" "describe the workflow here" --json
The LLM analyzes the page and generates adapter commands.
bash
cliany-site list --json
cliany-site target-site.com <generated-command> [args] --json
Run explore again on the same domain to add more commands. Existing adapters are merged incrementally — existing commands are preserved.
bash
#!/bin/bash
set -e
# Check environment
result=$(cliany-site doctor --json)
if ! echo "$result" | python3 -c "import sys,json; d=json.loads(sys.stdin.read()); exit(0 if d['success'] else 1)"; then
echo "Environment not ready"
exit 1
fi
# Explore workflow
cliany-site explore "https://example.com" "submit the contact form" --json
# Execute generated command
cliany-site example.com submit --name "Test" --email "test@test.com" --json
~/.cliany-site/adapters/<domain>/ (commands.py + metadata.json)~/.cliany-site/sessions/localhost:9222~/.cliany-site/sessions/EndpointPurposeData SentConfigured LLM API (Anthropic/OpenAI)Workflow analysis and action planningPage AXTree structure, workflow descriptionlocalhost:9222Chrome CDP connectionCDP protocol commands
By using this skill, page accessibility tree data is sent to your configured LLM provider (Anthropic or OpenAI) for workflow analysis. Only install and use if you trust your LLM provider with the structural content of pages you browse.
This skill is designed for autonomous invocation by AI agents. When installed, the agent may automatically call cliany-site commands (doctor, login, explore, list) based on user intent without explicit per-command confirmation. This is standard behavior for agent skills. To disable autonomous invocation, remove the skill from the agent's skill directory.
IssueSolutionCDP_UNAVAILABLERun cliany-site doctor to auto-start Chrome, or manually start with --remote-debugging-port=9222``LLM_KEY_MISSINGSet CLIANY_ANTHROPIC_API_KEY or CLIANY_OPENAI_API_KEYExplore produces no commandsProvide more specific workflow description; ensure the page has loaded fullyAdapter command failsPage structure may have changed; re-run explore to regenerateLogin session expiredRe-run cliany-site login <url>