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

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

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 - Smyan1909/SoMatic: Agent-first CLI for native UI...
smyansondur · 2026-05-21 · via Hacker News: Show HN

SoMatic is an agent-first CLI for native desktop UI automation. It runs a local YOLO model to detect and number every interactive element in a screenshot, giving the agent a structured coordinate map it can ground actions against. Elements can be targeted by mark ID, by nearest-mark offset, or by direct pixel coordinate — no guessing.

Every command returns JSON. The public binary is somatic.

Demo

SoMatic desktop automation demo

Watch the higher-quality MP4 demo: docs/assets/somatic-demo.mp4.

SoMatic turns desktop screenshots into numbered action targets that agents can use across native apps, browsers, PDFs, and web tools:

PDF workflow Chess setup Browser + terminal
Annotated Acrobat PDF workflow Annotated Chess.com setup board Annotated browser and terminal workflow

Install

npm install -g @somatic-cli/cli

The npm package launches the Python core. Python 3.10+ must be available on PATH. During npm postinstall, SoMatic creates a package-local virtualenv at .venv/ and pip installs the local source with the [vision] extra (~30 MB). Opt-outs:

  • SOMATIC_SKIP_POSTINSTALL=1 — skip everything; install just the JS shim.
  • SOMATIC_SKIP_PYTHON_BOOTSTRAP=1 — skip the venv + pip install.
  • SOMATIC_SKIP_VISION=1 — install without the [vision] extra (annotated screenshots will not work; raw screenshots still do).

The [vision] extra pulls onnxruntime, numpy, and huggingface-hub. It does not pull torch or ultralytics — those are AGPL-3.0 and are kept out of the MIT distribution. The pre-converted YOLO ONNX is downloaded at runtime via somatic vision init; see Licensing below for the AGPL implications.

For Python-only installs:

# From PyPI:
pip install 'somatic-cli[vision]'          # runtime only (~30 MB)
pip install 'somatic-cli[vision,mcp]'      # add the MCP server (Claude Code, Cursor, Continue)

# From the repo:
pip install -e .[vision,mcp]

To add the SoMatic skill to Claude Code, Cursor, Copilot, and 30+ other agents:

npx skills add Smyan1909/SoMatic

This installs skills/somatic/SKILL.md into your agent's skills directory. The agent will then know the full operating loop without any further prompting.

To wire in the MCP server (inline annotated screenshots):

claude mcp add somatic -- npx @somatic-cli/cli mcp serve

See docs/mcp.md for full MCP setup and the .mcp.json snippet.

Quick Start

somatic doctor
somatic vision init
somatic screenshot --annotate
somatic click 3
somatic type "hello from SoMatic"
somatic hotkey ctrl s
somatic vision stop

somatic vision init is required before --annotate works. The first invocation downloads the OmniParser icon-detect YOLO weights and exports them to ONNX. Subsequent invocations reuse the cached file. The model stays resident in a background daemon until you call somatic vision stop.

Commands

  • somatic screenshot [--annotate]
  • somatic click <id|x,y>
  • somatic click-near <id|x,y> [--dx N] [--dy N]
  • somatic double-click <id|x,y>
  • somatic right-click <id|x,y>
  • somatic middle-click <id|x,y>
  • somatic mouse-down [id|x,y]
  • somatic mouse-up [id|x,y]
  • somatic move <id|x,y>
  • somatic drag <id|x,y>
  • somatic scroll <amount> [--target <id|x,y>]
  • somatic type "text"
  • somatic write "text"
  • somatic hotkey ctrl s
  • somatic press enter
  • somatic key-down shift
  • somatic key-up shift
  • somatic wait 1
  • somatic position
  • somatic size
  • somatic locate image.png [--all]
  • somatic center image.png
  • somatic windows active|list
  • somatic failsafe [--enable|--disable]
  • somatic pause 0.1
  • somatic doctor
  • somatic bootstrap
  • somatic vision init|stop|status
  • somatic mcp serve (stdio MCP server — see docs/mcp.md)
  • somatic skill (prints the operating-loop guidance)
  • somatic headless start|stop|status|launch (Linux only — see docs/headless.md)

Platform Notes

Windows requires an interactive desktop session. Elevated applications may require an elevated terminal or agent host.

macOS requires Accessibility and Screen Recording permissions for the terminal or host app running SoMatic.

Linux works best on X11. Wayland compositors may block screenshot or pointer control unless desktop-specific permissions are configured.

Vision

The vision daemon exposes a local HTTP API:

  • GET /health — daemon status, weights path, PID
  • POST /parse with { "image_path": "/absolute/path.png" } — runs YOLO ONNX inference, returns { marks: [...], provider: "yolo-onnx", inference_ms: ... }

Marks contain id, bbox ([x1, y1, x2, y2] in image pixels), center ([x, y]), and confidence. There are no captions or OCR text — agents act on numbered boxes and resolve coordinates via the mark id.

somatic screenshot --annotate embeds the captured PNGs as base64 in the JSON response (image_b64, annotated_image_b64) so agents can pick them up in the same call. Pass --no-image to opt out.

Tuning knobs (env vars):

  • SOMATIC_YOLO_CONF (default 0.05) — detection confidence threshold
  • SOMATIC_YOLO_IOU (default 0.45) — NMS IoU threshold
  • SOMATIC_YOLO_ONNX_REPO — Hugging Face repo holding a pre-converted ONNX
  • SOMATIC_YOLO_ONNX_PATH — point at a local ONNX file to skip download/conversion

See platform setup and release checklist.

Headless (Linux)

On Linux, SoMatic can spawn an Xvfb virtual desktop so actions run on a sandbox display rather than your real screen:

somatic headless start --launch discord --vnc
somatic screenshot --annotate    # operates on the virtual desktop
somatic headless stop

See docs/headless.md for prerequisites and the full walkthrough.

Benchmarks

SoMatic's local YOLO detection is evaluated on ScreenSpot-Pro and VenusBench-GD against two baselines: raw GPT-5.5 with no detection hints, and SoMatic detection passed as text coordinate hints only (no visual overlay).

Dataset SoMatic+marks+GPT SoMatic+coords+GPT Raw GPT Reference
ScreenSpot-Pro (n=200) 68.5% 73.0% 52.0% OmniParser + GPT-4o = 39.6%¹
VenusBench-GD (n=171) 70.2% 78.4% 59.6% No published baseline available

¹ From the ScreenSpot-Pro paper. Results here use GPT-5.5 and are subset-tier (n≈200); full-dataset numbers pending.

The coords arm (raw image + YOLO bounding boxes as text) edges out the visual overlay arm (marks) for top-tier VLMs — suggesting that for capable models the detection signal matters more than the annotation drawing. For weaker models and human-in-the-loop workflows, the visual overlay remains the recommended default.

Full per-platform and per-task-type breakdowns: benchmarks/results/RESULTS.md.

Licensing

SoMatic follows the FFmpeg licensing strategy: a strictly MIT-licensed core, with AGPL-licensed conversion tooling segregated into a separate directory so it never touches the published artifacts.

  • src/somatic/ — MIT. The CLI, MCP server, vision daemon, automation primitives, and the YOLO ONNX inference path. Zero AGPL imports. A pytest-time check (tests/test_license_boundary.py) fails CI if anyone re-adds import ultralytics here.
  • YOLO ONNX weights — AGPL-3.0. Derived from microsoft/OmniParser-v2.0's upstream YOLO checkpoint. SoMatic does not bundle the weights; somatic vision init downloads them at runtime from a separately-licensed Hugging Face repository. Run somatic license for the full notice.
  • tools/ — AGPL-3.0. The convert_yolo_to_onnx.py script imports ultralytics (AGPL-3.0) and produces an AGPL-3.0 ONNX file. This directory is excluded from both the npm tarball and the PyPI sdist/wheel. See tools/README.md.

Practically: if you pip install somatic-cli or npm install -g @somatic-cli/cli, your install is MIT. The moment you run somatic vision init you accept the AGPL-3.0 obligations on the downloaded weights. If you run anything from tools/, your derivative ONNX is also AGPL-3.0.