Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Chrome·Brave에서 동작하고 Edge도 검토 중인 무료 오픈소스 다중 브라우저 AI 에이전트, 확장과 로컬 컴패니언으로 구성됩니다
Runs on Chrome and Brave today, Edge in review. Two parts: a browser extension (the hand) and a local Companion (the brain). Free, open source, local-first. Your API key is encrypted on your device, c
플러그인TypeScript · HTMLGitHub @holistis온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Yad: a free, open-source, local-first browser agent. Chrome extension (Part A, the hand) + local Companion (Part B, the brain). Your API key is encrypted on your device, capped, and stoppable with one click.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Yad (يد), self-hostable, privacy-first AI browser automation agent • The YAD website (live landing page): https://yadagent.com, own domain, purchased 2026-08-25, migrated live 2026-08-26. Also live in Dutch as a second language, every page has an -nl counterpart (for example /yad-nl, /yad-business-nl). Served from the same server as before (nginx vhost proxies / to the /yad route on the x402 server). The old https://wazir-x402.duckdns.org/yad URL still works and serves the same content, but yadagent.com is now the canonical one.README 전문 보기 ↗
Built by Abdellah Ouadoudi
-nl counterpart (for example /yad-nl, /yad-business-nl). Served from the same server as before (nginx vhost proxies / to the /yad route on the x402 server). The old https://wazir-x402.duckdns.org/yad URL still works and serves the same content, but yadagent.com is now the canonical one.site/index.html; the deployed copy lives at /app/euler-liquidator/data/yad-landing.html on the server. nginx config for the domain: /etc/nginx/sites-available/yadagent on the Hetzner box.Yad ("the hand" in Arabic) is a thin Chrome extension (the Hand) controlled by a locally hosted brain (the Companion). It works inside the user's real, logged-in browser session, learns a task once, and then repeats it deterministically at near-zero cost.
Yad is two separate installs, on purpose. Part A, the extension, from the Chrome Web Store. Part B, the companion, as an npm package: npx yadagent pair (native messaging, pairs with Part A, your real logged-in browser) or npx yadagent serve (standalone, no extension, headless Chromium, your own Ollama instance). See packages/companion/npm-package or the package on npm.
Second account / second profile, run side by side. YAD_INSTANCE=<name> YAD_PORT=<port> on setup registers a second, fully independent companion (its own native-messaging host, its own port, its own data files), so a second Chrome profile can pair with it without ever touching the first instance's tabs or session. Point the second profile's extension at it under Settings → Advanced. Without those env vars, nothing changes for a single-instance setup.
Benchmark results (gpt-4o-mini, July 2025): 92% fully correct on 25-task open benchmark · 100% on 5 authenticated tasks · 100% pass+partial · avg 2.7 steps · avg 8.7s per task → See Benchmark section below.
YAD includes a fully open, reproducible benchmark suite. Every task definition, scoring script, and result file is checked into this repository, anyone can reproduce the numbers by running pnpm benchmark.
| Suite | Tasks | Fully correct | Pass+partial | Avg steps | Avg time |
|---|---|---|---|---|---|
| Main (25 tasks) | product-research, content-extraction, web-research, news-monitoring | 23/25 (92%) | 25/25 (100%) | 2.7 | 8.7s |
| Auth (5 tasks) | authenticated login + extract | 5/5 (100%) | 5/5 (100%) | 6.0 | 25.5s |
| Extended (10 tasks) | academic-research (ArXiv), reference-lookup (Cambridge Dict.), code-research (GitHub) | 10/10 (100%) | 10/10 (100%) | 1.9 | 8.2s |
| Combined (all suites) | 40 tasks | 38/40 (95%) | 40/40 (100%) | n/a | n/a |
Results by difficulty (main suite):
| Difficulty | Fully correct | Score |
|---|---|---|
| Easy (11 tasks) | 10/11 | 91% |
| Medium (11 tasks) | 10/11 | 91% |
| Hard (3 tasks) | 3/3 | 100% |
# Install deps
pnpm install
# Run full 25-task benchmark (requires YAD companion on localhost:3747 + Chrome extension)
pnpm benchmark
# Run authenticated tasks
pnpm benchmark --tasks data/benchmark-tasks-auth.jsonl
# Run extended competitor-coverage tasks
pnpm benchmark --tasks data/benchmark-tasks-extended.jsonl
# Run a single task
pnpm benchmark --id bk-001
# Run with visible browser
pnpm benchmark --headed
# Use a custom model
YAD_MODEL=gpt-4o pnpm benchmark
Scoring: pass (1.0) = agent finished + all expected keywords matched in summary. partial (0.5) = agent finished but task has no verifiable keywords. fail (0.0) = agent did not complete the task.
YAD uses accessibility tree snapshots (roles, refs, text) rather than screenshots. This makes it faster and cheaper than vision-based agents, but blind to purely visual structure (canvas, custom dropdowns, icon-only controls). A vision fallback for those cases is a known gap, not yet built.
The agent loop runs a multi-step plan-execute cycle with:
The benchmark measures whether the agent completes the goal and puts the correct data in its finish summary.
| Agent | Score | Task count | Technique | Logged-in session? | Cost per task |
|---|---|---|---|---|---|
| YAD | 92% (25 tasks) | 25 | Accessibility tree | Yes, user's own Chrome | Near-zero (cache replay) |
| NanoBrowser | No benchmark published | n/a | Unknown | Yes (extension) | Unknown |
| browser-use | 89.1% (WebVoyager) | 586 | DOM + screenshots | No, fresh browser | API cost per run |
| Skyvern 2.0 | 85.85% (WebVoyager) | 643 | Cloud browser pool | No, cloud browser | Paid cloud |
| WebVoyager (baseline) | 59.1% (WebVoyager) | 643 | GPT-4V + screenshots | No, fresh browser | High (GPT-4V tokens) |
Key differentiators:
Persistent logged-in session. All major competitors (browser-use, Skyvern, WebVoyager) start a fresh browser per task. YAD works inside the user's real Chrome with all cookies and sessions intact. This is the difference between "demo on an empty account" and "real daily automation."
Accessibility tree, not screenshots. Reading roles and text directly is faster and cheaper than sending images to a vision model. YAD's avg task time is 8.7s vs WebVoyager's minutes per task.
Recovery loop, not yet claimed as full learning. YAD detects 8 types of stuck signals (goal-drift, consecutive failures, url-regression, etc.), automatically generates an LLM recovery plan in under 3 seconds, and stores successful patterns in a recovery-store for instant reuse on the same site and signal. That is proven recovery, not general-purpose learning across sites, and this README will not claim more than that until it is built.
Near-zero cost on repeated tasks. The action-cache stores proven action sequences (7-day TTL). Repeated tasks run with 0 LLM calls, returning in about 2 seconds. Cache hit rate grows with usage.
NanoBrowser comparison. The closest Chrome-extension competitor. As of July 2025, NanoBrowser publishes no benchmark scores. YAD is the only Chrome-extension web agent with an open, reproducible benchmark.
YAD's 25-task suite is intentionally smaller than WebVoyager's 643-task benchmark, and the two were not run under identical conditions. The tasks cover similar categories (product research, content extraction, web research, news monitoring) on deterministic test sites (books.toscrape.com, quotes.toscrape.com) and live sites (Wikipedia, HackerNews). The static sites ensure reproducibility across runs; the live sites may cause minor variance.
YAD's 92% is not a proven win over browser-use's 89.1%. Different task count, different sites, different scoring harness, no head-to-head run. What the numbers do support: YAD shows strong results on a small, fully reproducible, open benchmark, and it has real architectural advantages for persistent, logged-in browser automation that the other systems structurally do not have (they start a fresh browser per task by design). A direct head-to-head run on the full WebVoyager set is the only thing that would make a real comparison claim, and that has not happened yet.
Full result files are in data/benchmark-results-*.json.
packages/shared: shared types/protocol between Hand and Brain.packages/companion: the Brain. Native-messaging host, agent-loop, engine (LLM-router), memory (action-cache, recovery-store), key (session/vault), gate (guardrails). Published standalone as yadagent on npm, see packages/companion/npm-package.packages/extension: the Hand. MV3 extension (WXT), keeps native-messaging port open, executes actions. Chrome and Brave live today, Edge submitted and in review.packages/dashboard: v1 orchestrator UI in front of main-server.ts, an in-memory job-queue, worker-pool and a single polling page (single-tenant, no auth/billing yet, multi-tenant control and billing is a later phase, not built).packages/desktop-app: an early, working prototype of Yad as a standalone program window, no browser extension needed. Real and tested, not a mockup, but not yet a one-click installer. Requires building from source.Live and installable on the Chrome Web Store and via Brave today. Edge Add-ons submission is in review. The website (yadagent.com) is live in English and Dutch, with a security writeup, a blog, and a hosted-teams offering. The desktop-app package is an early prototype, not yet packaged for non-technical users. Firefox and Safari are not built. This section is kept current, not left on an old milestone.
MIT/Apache-2.0 dependencies only. No AGPL (no browser-use/Skyvern/BrowserOS as dependency). See LICENSES.md. Enforced by scripts/check-licenses.ts, run in CI on every push and pull request.
pnpm install
pnpm build
pnpm typecheck
pnpm test
See CONTRIBUTING.md for setup, package layout, and what's genuinely open to help with right now (Firefox support, macOS support, the desktop-app installer).
For most of this project's life there was no counter anywhere that could show whether anyone was actually using it. That is fixed now, badges above, and I would genuinely like to know.
I am working on this continuously: the extension, the companion, both operating modes. If Yad is doing its job for you, a star or a review on the Chrome Web Store tells me that in a way I can actually see, and it is the thing that tells me where to spend the next round of work.
If it broke, that is even more useful than a star. Open an issue with what happened.