Automation Browser · Docs
A local-first desktop fingerprint browser. One Python core powers the CLI, HTTP API, and Electron GUI. The sections below cover install, commands, API, data paths, and env vars.
Install & launch
Run from source first, then switch to the Electron installer when ready. The Windows NSIS installer ships with the backend bundled via PyInstaller.
# 1. install Python package + Chromium
pip install -e .
playwright install chromium
# 2. pick one
yycbf serve # start HTTP API + WebSocket
yycbf launch alice # launch a profile from CLI
# 3. Electron GUI dev mode
cd electron && npm install && npm run devThe release installer is named yyc-browser-fingerprint-0.1.0-x64-setup.exe (~129 MB). The Electron build output lives under electron/dist/.
Data paths
| Name | Description |
|---|---|
| SQLite metadata (schema managed by Alembic) | ~/.yyc-bf/db.sqlite |
| Chromium user-data-dir per profile | ~/.yyc-bf/profiles/<name>/ |
| Screenshots and flow artifacts | ~/.yyc-bf/artifacts/<flow>/<ts>.png |
| tar.gz backup destination | ~/.yyc-bf-backups/yycbf-<ts>.tar.gz |
CLI cheatsheet
yycbf and yyc-browser-fingerprint are aliases of the same typer-based CLI. Subcommand groups by function:
| Command | Purpose |
|---|---|
| yycbf profile <list|create|delete|...> | profile CRUD; bind fingerprints and proxies |
| yycbf fingerprint generate | generate a fingerprint (printed, not persisted) |
| yycbf pool <list|create|import|export|...> | proxy pool management |
| yycbf entry <add|test|delete> | individual proxy entries (test, add, delete) |
| yycbf migrate <up|down|revision|history|current|stamp> | database migrations (Alembic) |
| yycbf task <list|show|run|delete> | batch tasks |
| yycbf schedule <list|add|toggle|delete> | cron / event-triggered schedules |
| yycbf channel <list|add|test|delete> | feishu / webhook / dingtalk channels |
| yycbf event <list|emit|clear> | event bus |
| yycbf backup [-o file] | tar.gz the entire ~/.yyc-bf |
| yycbf restore <file> | restore from backup (old data kept as .bak.<ts>) |
| yycbf launch <name> | launch a profile directly |
| yycbf serve | start HTTP API + WebSocket server |
HTTP API + WebSocket
`yycbf serve` starts FastAPI (uvicorn, default 127.0.0.1:18789). In production the Electron main process spawns it automatically.
| Name | Description |
|---|---|
| Interactive OpenAPI docs | http://127.0.0.1:18789/docs |
| Route count (full table in docs/API.md) | 85 routes / 14 tags |
| WebSocket event stream | ws://127.0.0.1:18789/events |
Subscribable event types (glob patterns supported):
log
event.fired
flow.run
chrome.progress
record.action_captured
task.run
session.*Task orchestration
- Task = profile list + flow + optional proxy pool + rounds + concurrency + headless
- Run history persisted in task_run, with per-profile status
- Retry failed: POST /task-runs/{id}/retry re-runs only previously failed profiles
- Soft dependencies via depends_on: latest run of the upstream task must be success
- Notification channels (feishu / webhook / dingtalk) dispatched by subscription, hookable to events and schedules
Environment variables
| Name | Description |
|---|---|
| ANTHROPIC_API_KEY | Required for AI flow generation and AI selector |
| ANTHROPIC_BASE_URL | Optional. Set to https://your-relay/v1 for a self-hosted gateway |
| ALEMBIC_URL | Override DB URL for tests/dev. Defaults to ~/.yyc-bf/db.sqlite |
| YYCBF_REPO_ROOT | After PyInstaller packaging, locates alembic.ini / migrations |
| ELECTRON_MIRROR | Mirror for Electron downloads (use npmmirror inside China) |
| ELECTRON_BUILDER_BINARIES_MIRROR | Mirror for electron-builder binaries (required inside China) |
Next steps
For the full route table and per-phase changelog, see docs/API.md and docs/CHANGELOG.md in the repository. For deployment or solution alignment, talk to us.