惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
U
Unit 42
L
LangChain Blog
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
F
Fortinet All Blogs
小众软件
小众软件
I
InfoQ
P
Proofpoint News Feed
D
DataBreaches.Net
Martin Fowler
Martin Fowler
H
Help Net Security
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - telepat-io/otto: Automate web workflows on real ...
sebivaduva · 2026-06-22 · via Hacker News: Show HN

Otto

Automate web workflows on real browser tabs without hosting a browser farm.

📖 Docs · 🇺🇸 English · 🇨🇳 简体中文 · 🇩🇪 Deutsch

Build Codecov npm License

Otto is a secure remote browser automation platform that lets you control real browser tabs from your CLI or scripts — no browser farm, no infrastructure overhead. Send commands over WebSocket to a relay daemon, which routes them to a Chrome extension that executes actions on live tabs.

Built for developers and automation teams who need real browser context for testing, monitoring, and agent-driven workflows without managing headless infrastructure.

Features

  • Real browser tabs, not headless farms — Execute commands on live Chrome tabs via a lightweight extension node. No Docker, no Puppeteer farm, no cloud browser rental.
  • Remote CLI control — Send commands from your laptop to a browser running anywhere. The relay handles routing and auth so controller and node don't need to be on the same host.
  • Code drives the browser. The LLM just decides what to do. — Otto handles clicks, typing, navigation, and DOM interaction with deterministic code. Your agent only burns tokens on strategy, not on every interaction.
  • Secure by default — Token auth, replay protection, per-node ACL grants, and pre-ingress log redaction. Secrets stored in OS keychain.
  • Live debugging — Stream logs by requestId with otto logs follow --source all. Correlate relay, controller, and node events in real time.
  • Network interception — Subscribe to HTTP traffic from managed browser tabs. Stream responses back for inspection, validation, or data extraction.
  • Site-scoped command bundles — Author custom, reusable commands for any domain that run inside the extension. Versioned, shareable, testable.
  • Agent and CI ready — Non-interactive setup, --json output, MCP server, streaming test harness, and agent runtime registration.

Quick Start

Requirements: Node.js 20+, Chrome, and an npm installation.

  1. Install the CLI globally:
npm install -g @telepat/otto
  1. Run guided setup:
  1. Load the unpacked extension into Chrome (the exact path is printed by otto setup).

  2. Register a controller identity:

otto client register --name "my-laptop" --description "Local controller"
otto client login
  1. Verify the stack:

For the full walkthrough, see the Installation and Quickstart guides.

Available Commands

Use otto commands list --site <site> to inspect the live command surface for your connected node.

Site Commands

Site Available commands
reddit.com getPosts, getUserInfo, sendChatMessage, getChatMessages, commentOnPost
linkedin.com getPosts, commentOnPost
news.ycombinator.com getFrontPage
google.com getSearchResults

Primitives (Universal)

Category Available primitives
Tab open, close, navigate, query
DOM extraction extract_text, extract_markdown, extract_clean_html, extract_distilled_html, extract_html
Page screenshot (viewport or full-page)
High-level otto extract-content [url] (recommended for markdown/HTML extraction)

Supported Sources

Both Reddit and LinkedIn getPosts commands support configurable sources:

Site Source Description
reddit.com home (default) Personalized home feed
reddit.com subreddit Subreddit listing (requires subreddit param)
reddit.com user User's submitted posts (requires username param)
linkedin.com home (default) Personalized home feed
linkedin.com search Keyword search results (requires keyword param, supports sort and t)

Reddit getPosts supports sort (best, hot, new, top, rising) and t (hour, day, week, month, year, all) on home and subreddit sources. LinkedIn getPosts supports sort (top, latest) and t (day, week, month) on search source.

For command payloads, behavior notes, and examples, see the Commands Reference.

Requirements

  • Node.js 20+
  • npm 10+
  • Chrome (latest stable)
  • macOS, Linux, or Windows

How It Works

Controller (otto CLI / script)
        |  WebSocket (authenticated)
        v
  Relay daemon  (:8787)
        |  WebSocket (authenticated, node)
        v
  Extension node (Chrome)
        |  chrome.tabs / chrome.scripting
        v
  Browser tab (managed, site-scoped)
  1. Controller sends command envelopes over WebSocket to relay.
  2. Relay authenticates, authorizes by action scope, and routes by targetNodeId.
  3. Node executes the action and returns terminal result or error.
  4. Relay forwards terminal outcome back to the originating controller.

Execution guarantees:

  • targetNodeId is required for all commands.
  • Per-tab execution is serial; cross-tab execution is parallel.
  • Replay protection is enforced (replayNonce plus timestamp window).
  • Sensitive fields are redacted before log persistence and streaming.

Using With AI Agents

Otto is designed for headless automation and agent-driven workflows:

  • Non-interactive setupotto setup --non-interactive emits deterministic JSON output with no TTY prompts.
  • Machine-readable output — Append --json to most CLI commands (otto commands list, otto test, otto logs list) for structured consumption.
  • Programmatic API — The relay exposes HTTP and WebSocket endpoints for direct integration. See the Protocol docs for message schemas.
  • Live log streamingotto logs follow --source all streams structured events by requestId for real-time agent debugging.
  • Agent docsFor Agents provides automation runbooks, command development guides, and curl snippets.

Security And Trust

  • Controller authentication uses client-secret token exchange; secrets are stored in the OS keychain when available.
  • Node-side ACL grants are required before a controller can route commands to a given node.
  • Replay protection and timestamp windows prevent command replay.
  • Sensitive fields are redacted from logs and streams before persistence.
  • Otto never automates credential submission; users authenticate manually and rerun.

To report a security issue, open a private report through the repository security flow.

Documentation And Support

Contributing

Contributions are welcome. See Development for local setup, build commands, and test workflows.

License

MIT. See LICENSE.