Zero-Intrusion Exploration
Injection-free AXTree exploration to quickly locate automatable paths.
Powered by LLM and Chrome CDP, cliany-site automatically explores web workflows and generates reusable CLI commands. Control any website like calling a script.
4 core capabilities + 12 extended capabilities
Start with the core four, then enable advanced capabilities on demand.
Injection-free AXTree exploration to quickly locate automatable paths.
Turn page semantics directly into executable CLI commands.
Unified {ok,data,error} output for easy automation integration.
Reuse one login across commands to eliminate repetitive operations.
AXTree snapshot diffing, hot-patch selectors without re-exploring.
4-layer AXTree pruning reduces LLM token usage by up to 50% for complex pages.
On-demand adapter loading accelerates CLI startup times significantly.
AI-powered root cause analysis for command execution failures.
Enforces v3 metadata with `migrate` utility to auto-upgrade legacy adapters.
Concurrent-safe manifest and session writes via portalocker — no corruption under parallel processes.
Adapter import rejects archives with absolute paths, traversal segments, or symlink escapes.
Obscura binary downloads automatically retry on transient network failures with exponential back-off.
All error paths now carry machine-readable error codes and actionable fix hints in the JSON envelope.
Hide complexity by default, unlock it when needed.
Explore once, own your CLI forever
Tired of repetitive clicks on GitHub? Search repos and view READMEs directly from your terminal.
Browser → Search → Click repo → View README
5 steps · ~30sSingle command, structured JSON, pipe-friendly
1 command · InstantStuck with a legacy CRM with no API? Generate a dedicated CLI for any web portal in minutes.
Login → CRM → Search → Details → Orders → Filter
5 steps · ~1mLogin once, then list-accounts --json
1 command · InstantStop wasting time on internal portal onboarding. Explore once, share adapters, and level up the whole team.
10+ docs + constant "where is this?" questions
Fragmented knowledge · High frictionInstall shared adapters for instant access
Unified CLI · Zero learning curveThree steps from web pages to CLI commands
Specify a target URL and task description — the LLM automatically analyzes page structure and plans the action path.
cliany-site explore "https://github.com" "search repos"Transform exploration results into Python/Click CLI tools, automatically saved to the local adapter directory.
~/.cliany-site/adapters/github.com/commands.pyReplay workflows with generated CLI commands. Fuzzy matching ensures stable execution even after minor page changes.
cliany-site github.com search --query "browser-use" --jsonRun a real demo adapter first, then configure LLM to generate your own commands
# PyPI install (v0.12.0+)
pip install cliany-site
# Or install from source
git clone https://github.com/pearjelly/cliany.site.git
cd cliany-site
pip install -e .
# Human-readable first-run summary
cliany-site doctor
# Machine-readable automation output
cliany-site doctor --json
# Optional live LLM provider preflight before explore
cliany-site doctor --llm-live --json
# Download adapter assets from GitHub Release v0.14.1
cliany-site market install ./issues.apache.org.cliany-adapter-v0.14.0.tar.gz
cliany-site verify issues.apache.org --json
cliany-site issues.apache.org list-issues --project SPARK --limit 5 --json
# Configure LLM only when you are ready to explore
# Retryable provider outages return E_LLM_UNAVAILABLE
export CLIANY_LLM_PROVIDER=anthropic
export CLIANY_ANTHROPIC_API_KEY="sk-ant-..."
cliany-site explore "https://github.com" "search repos" --json
Ran a real public workflow? Propose it through the Real Demo Case Proposal path so it can become a validated case with an offline JSON example.
Real Demo Case Proposal issue template for public, read-only workflows; generate candidate promotion issues with cliany-site cases --case-id pypi-project-search --issue-template, including Acceptance Criteria, Primary Runbook, Command SHA-256, Promotion Command Plan Summary, JSON promotion_command_plan_summary / issue_template_promotion_command_plan_summary, Promotion Command Plan command_sha256 lines, source / missing metadata, Doctor Preflight Evidence Fields, Doctor Preflight Evidence Template, JSON doctor_preflight_evidence_template, and doctor_preflight_evidence_template_field_count / doctor_preflight_evidence_template_sha256.cases/manifest.json, cases/examples/, python scripts/validate_cases.py --strict, cliany-site cases --status candidate --promotion-plan with llm_live_preflight, llm_live_preflight_required, llm_live_preflight_command_sha256, expected_adapter_package, primary_issue_template_command, and issue_template_json_command, human cliany-site cases --status candidate output with preflight_required, preflight_blocker, and runbook_first, doctor JSON with summary.llm_live_preflight and CDP blocker evidence, cliany-site cases --case-id <id> --evidence-bundle --json with primary_next_task_runbook, primary_next_task_acceptance_criteria, promotion_command_plan_summary, promotion_command_plan[*].command_sha256, and doctor_preflight_evidence_fields, and python scripts/plan_next_iteration.py --issues-dir /tmp/cliany-candidate-issues / issue-metadata.json with candidate_promotions[*].issue_template_command, candidate_promotions[*].issue_template_json_command, candidate_promotions[*].promotion_command_plan_summary, Primary Acceptance Criteria, case_promotion_evidence_primary_llm_live_preflight_required, case_promotion_evidence_primary_llm_live_preflight_command_sha256, case_promotion_evidence_primary_llm_live_preflight_blocker_comment, case_promotion_evidence_primary_doctor_preflight_blocker_comment, case_promotion_evidence_primary_doctor_preflight_evidence_template_sha256, case_promotion_doctor_preflight_evidence_template_sha256, doctor_preflight_evidence_fields, and case_promotion_evidence_primary_runbook_steps / hash drift checks.promotion_plan.primary_doctor_preflight_evidence_template_sha256, promotion_plan.primary_llm_live_preflight_command_sha256, candidate primary_doctor_preflight_evidence_template_sha256, and task_queue[*].doctor_preflight_evidence_template_sha256 / task_queue[*].llm_live_preflight_command_sha256 without opening a full evidence bundle.promotion_evidence_summary.primary_next_task.doctor_preflight_evidence_template_sha256 from scripts/validate_cases.py --json, primary_doctor_preflight_evidence_template_sha256 from scripts/validate_cases.py --report, or promotion_evidence_primary_doctor_preflight_evidence_template_sha256 / promotion_evidence_primary_llm_live_preflight_command_sha256 from plain scripts/validate_cases.py --strict stdout.docs/good-first-issues.md for offline, locally verifiable tasks.Current baseline: v0.16.256. Use the 1-3 releases/day loop, weekly maintainer loop, release readiness next_actions, website alias inspect, PyPI version-specific publication audit, and primary adapter handoff command aliases to turn the roadmap into small verified releases.
docs/weekly-maintainer-loop.md when choosing the next release slice.next_actions, weekly_commit_cadence_ok, release_count_today, max_daily_releases, daily_release_limit_ok, daily_release_cap_blocked, and daily_release_resume_date from python scripts/release_readiness.py --json or python scripts/check_release_cadence.py --json; after release, confirm GitHub Release plus pypi_version, pypi_latest_version, and pypi_release_version with python scripts/check_release_publication.py --remote --distribution --json.Obscura is a lightweight alternative to Chrome, currently in experimental status. Chrome remains the default provider.
darwin-arm64, darwin-x86_64, linux-x86_64, windows-x86_64install / use / status / clean / rollback / upgrade / doctor