Skip to content

2026-08-09

Today

  • Built custom Hyprland desktop-control MCP server (desktop-mcp) instead of installing agent-sh/computer-use-linux
  • Fixed youtube MCP (earlier session): youtube-transcript-api 1.2.4 API change, pinned dep, en,ru default
  • Full English translation of GIRIGIRI BAR video transcript (manual; YouTube translate endpoint IP-blocked)

Log

  • Explored agent-sh/computer-use-linux (Rust MCP server, AT-SPI + portals + ydotool). Good fit for Hyprland but heavy (GNOME-first, needs ydotoold privilege daemon, AT-SPI bridge). Decided to build a slim version instead.
  • Built /home/dini/.local/bin/desktop-mcp: Python stdlib-only, raw JSON-RPC stdio, 12 tools (list_windows, focus_window, window_info, screenshot, ocr_screen, ocr_window, move, click, scroll, type_text, key). Registered as desktop in opencode.json (backup .n kept). ydotoold started as user service.
  • Vision = grim + tesseract OCR (model has no image input).
  • Verified: list/focus/type/enter/OCR end-to-end (scratch kitty test; user confirmed "zzninja42" landed).
  • Opened abc.net.au tab in Chrome — via google-chrome-stable --new-tab URL CLI after input injection proved unreliable.
  • https://github.com/agent-sh/computer-use-linux
  • https://wiki.hypr.land/Configuring/Basics/Dispatchers/