{"id":48348195,"url":"https://github.com/3p3r/oatmeal","last_synced_at":"2026-04-05T08:03:42.611Z","repository":{"id":342399981,"uuid":"1173747039","full_name":"3p3r/oatmeal","owner":"3p3r","description":"Oatmeal is a single binary tray application that extends your web agent's capabilities via an MCP server with browser automation, Bash, Python, and other automation utilities.","archived":false,"fork":false,"pushed_at":"2026-03-31T08:19:24.000Z","size":639,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T10:21:20.335Z","etag":null,"topics":["agent-browser","mcp","mcp-server","page-agent"],"latest_commit_sha":null,"homepage":"https://3p3r.github.io/oatmeal/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3p3r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-05T17:51:26.000Z","updated_at":"2026-03-31T08:19:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/3p3r/oatmeal","commit_stats":null,"previous_names":["3p3r/agent-browser-socket","3p3r/agent-browser-server"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/3p3r/oatmeal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3p3r%2Foatmeal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3p3r%2Foatmeal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3p3r%2Foatmeal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3p3r%2Foatmeal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3p3r","download_url":"https://codeload.github.com/3p3r/oatmeal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3p3r%2Foatmeal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31428645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T02:22:46.605Z","status":"ssl_error","status_checked_at":"2026-04-05T02:22:33.263Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-browser","mcp","mcp-server","page-agent"],"created_at":"2026-04-05T08:03:40.741Z","updated_at":"2026-04-05T08:03:42.561Z","avatar_url":"https://github.com/3p3r.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oatmeal\n\nOatmeal is a single binary tray application that extends your web agent's capabilities via an MCP server with browser automation, Bash, Python, and other automation utilities.\n\n\u003cimg src=\"./logo.png\" alt=\"Oatmeal Logo\" width=\"200\"/\u003e\n\n- [Quick Start](#quick-start)\n- [Configuration](#configuration)\n- [Command Mode](#command-mode)\n- [Exporting Files from Command Mode](#exporting-files-from-command-mode)\n- [MCP Tools](#mcp-tools)\n- [CLI Equivalents](#cli-equivalents)\n- [URI Launch Mode](#uri-launch-mode)\n- [Platform Notes](#platform-notes)\n\n## Quick Start\n\nOatmeal is meant to be used with its complementary barebones React component: [Storybook here](https://3p3r.github.io/oatmeal/storybook/). Build on top of this foundation to create your own custom agent interfaces, or use the MCP server directly in your agents without a UI.\n\nDownload the latest binary from [releases](https://github.com/3p3r/oatmeal/releases):\n\n- Linux: `oatmeal-linux`\n- macOS: `oatmeal-mac`\n- Windows: `oatmeal-windows.exe`\n\nRun it:\n\n```bash\n# Linux/macOS\nchmod +x ./oatmeal-*\n./oatmeal-*\n\n# Windows\n.\\oatmeal-windows.exe\n```\n\nBy default, Oatmeal starts an MCP server on `http://localhost:9607/mcp`.\n\nmacOS note:\n\n```bash\nxattr -d com.apple.quarantine ./oatmeal-mac\n```\n\nWindows note:\n\nYou may need to allow the binary through SmartScreen or Windows Defender the first time you run it.\n\n## Configuration\n\nOatmeal works without configuration. Default behavior:\n\n- Host: `0.0.0.0`\n- Port: `9607`\n- Browser path: auto-detected\n- Page-agent model: `qwen3.5-plus`\n- Page-agent URL: `http://localhost:11434/v1`\n- Page-agent key: `NA`\n\nOptional config sources:\n\n- `~/.oatmeal`\n- `./.oatmeal`\n- `OATMEAL_*` environment variables\n- CLI flags\n\nExample config:\n\n```toml\nport = 9607\nhost = \"0.0.0.0\"\nbrowser_path = \"/path/to/browser\"\n\n[page_agent]\nmodel = \"qwen3.5-plus\"\nurl = \"http://localhost:11434/v1\"\nkey = \"NA\"\n```\n\nNested page-agent environment variables use double underscores:\n\n- `OATMEAL_PAGE_AGENT__MODEL`\n- `OATMEAL_PAGE_AGENT__URL`\n- `OATMEAL_PAGE_AGENT__KEY`\n\nPrecedence is:\n\n`built-in defaults -\u003e ~/.oatmeal -\u003e ./.oatmeal -\u003e OATMEAL_* -\u003e CLI flags`\n\n## Command Mode\n\nUse `--command` when you want to run a shell-style script instead of starting the MCP server.\n\nInside command mode, both `agent-browser` and the shorter `ab` alias are available.\n\nExamples:\n\n```bash\n./oatmeal-* --command \"agent-browser open https://example.com\"\n./oatmeal-* --command \"ab open https://example.com\"\n./oatmeal-* --command \"ab --headed open https://example.com\"\n./oatmeal-* --command \"name=world \u0026\u0026 echo hello-$name \u003e /report.txt\"\n./oatmeal-* --command \"python3 -c \\\"print(2 ** 10)\\\"\"\n```\n\nSynthetic browser helpers are also supported:\n\n```bash\n./oatmeal-* --command \"ab agentic-open https://example.com\"\n./oatmeal-* --command \"ab agentic-prompt https://example.com 'summarize this page'\"\n./oatmeal-* --command \"ab agentic-prompt 'find the primary CTA on the current page'\"\n```\n\n## Exporting Files from Command Mode\n\nOatmeal detects files created during command execution with a best-effort algorithm and captures them into MCP resources automatically.\n\n## MCP Tools\n\nWhen Oatmeal is running as an MCP server, it exposes these tools:\n\n- `health`\n- `version`\n- `cache_directory`\n- `screenshot_system`\n- `shell_command`\n- `delete_resource`\n- `delete_all_resources`\n- `uri_scheme`\n- `shutdown`\n\nUser-facing behavior:\n\n- `shell_command` runs the same script surface as CLI `--command`\n- files generated by MCP command execution are returned as MCP resources\n- `cache_directory` returns the cache folder used by Oatmeal, agents can use this to pass to `agent-browser` for file downloads\n- `screenshot_system` captures all attached monitors as image resources\n- `delete_resource` and `delete_all_resources` clean up generated resources from the current server\n\n## CLI Equivalents\n\nStandalone CLI flags expose the same functionality as the corresponding MCP tools:\n\n| MCP Tool | CLI Flag | Output |\n|----------|----------|--------|\n| `version` | `--version-json` | `{\"version\": \"X.Y.Z\"}` |\n| `cache_directory` | `--cache-dir` | `{\"cache_dir\": \"...\"}` |\n| `screenshot_system` | `--screenshot` | saves PNGs to cache dir, prints paths as JSON |\n| `shell_command` | `--command` | stdout/stderr passthrough |\n| `uri_scheme register` | `--register-uri` | confirmation text |\n| `uri_scheme unregister` | `--unregister-uri` | confirmation text |\n\n## URI Launch Mode\n\nOatmeal supports an `oatmeal://` URI handler.\n\nYou can register or remove it explicitly:\n\n```bash\n./oatmeal-* --register-uri\n./oatmeal-* --unregister-uri\n```\n\nWhen Oatmeal starts in default HTTP mode, it will register the URI handler automatically if needed.\n\nExample URIs:\n\n- `oatmeal://open?port=9911`\n- `oatmeal://open?port=9911\u0026host=127.0.0.1`\n\n## Platform Notes\n\n- Linux: x86_64 + aarch64\n- macOS: universal binary\n- Windows: 64-bit executable\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3p3r%2Foatmeal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3p3r%2Foatmeal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3p3r%2Foatmeal/lists"}