{"id":37227576,"url":"https://github.com/vdutts7/glidercli","last_synced_at":"2026-01-15T03:22:43.162Z","repository":{"id":331674673,"uuid":"1131793195","full_name":"vdutts7/glidercli","owner":"vdutts7","description":"🚀 Browser automation CLI with autonomous loop execution. Control Chrome via CDP, run YAML tasks, Ralph Wiggum loops.","archived":false,"fork":false,"pushed_at":"2026-01-10T21:29:43.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T05:23:54.412Z","etag":null,"topics":["autonomous-agents","browser-automation","cdp","chrome-devtools","claude","claude-code","ralph","ralph-wiggum"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/glidercli","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdutts7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-01-10T17:50:32.000Z","updated_at":"2026-01-10T21:29:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vdutts7/glidercli","commit_stats":null,"previous_names":["vdutts7/glidercli"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vdutts7/glidercli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdutts7%2Fglidercli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdutts7%2Fglidercli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdutts7%2Fglidercli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdutts7%2Fglidercli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdutts7","download_url":"https://codeload.github.com/vdutts7/glidercli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdutts7%2Fglidercli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["autonomous-agents","browser-automation","cdp","chrome-devtools","claude","claude-code","ralph","ralph-wiggum"],"created_at":"2026-01-15T03:22:42.678Z","updated_at":"2026-01-15T03:22:43.156Z","avatar_url":"https://github.com/vdutts7.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/icons/glider-blue-squircle.webp\" alt=\"glider\" width=\"80\" height=\"80\" /\u003e\n\u003cimg src=\"assets/icons/chrome.webp\" alt=\"chrome\" width=\"80\" height=\"80\" /\u003e\n\u003cimg src=\"assets/icons/claude.webp\" alt=\"claude\" width=\"80\" height=\"80\" /\u003e\n\u003cimg src=\"assets/icons/ralph-wiggum.webp\" alt=\"ralph\" width=\"80\" height=\"80\" /\u003e\n\n\u003ch1 align=\"center\"\u003eglidercli\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\u003ci\u003e\u003cb\u003eBrowser automation CLI with autonomous loop execution.\u003c/b\u003e\u003c/i\u003e\u003c/p\u003e\n\n[![Github][github]][github-url]\n[![npm][npm]][npm-url]\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## Table of Contents\n\n\u003col\u003e\n    \u003ca href=\"#about\"\u003e📝 About\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#install\"\u003e💻 Install\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#usage\"\u003e🚀 Usage\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#the-loop\"\u003e🔄 The Loop\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#task-files\"\u003e📄 Task Files\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#commands\"\u003e⚡ Commands\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#roadmap\"\u003e🗺️ Roadmap\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#tools-used\"\u003e🔧 Tools used\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href=\"#contact\"\u003e👤 Contact\u003c/a\u003e\n\u003c/ol\u003e\n\n\u003cbr/\u003e\n\n## 📝About\n\nControl Chrome from terminal. Run YAML tasks. Loop until complete (Ralph Wiggum pattern).\n\n- **CDP-based** - Direct Chrome DevTools Protocol control\n- **YAML tasks** - Define automation steps declaratively  \n- **Autonomous loops** - Run until completion marker found\n- **Safety guards** - Max iterations, timeout, exponential backoff\n\n## 💻Install\n\n```bash\nnpm i -g glidercli\nglider install    # start daemon (runs forever, auto-restarts)\n```\n\n### Requirements\n\n1. **Node 18+**\n\n2. **Glider Chrome Extension** - [glider](https://github.com/vdutts/glider) *(Chrome Web Store pending)*\n   - Clone repo, load unpacked in `chrome://extensions`\n\n## 🚀Usage\n\n```bash\nglider connect                   # connect to browser\nglider status                    # check connection\nglider goto \"https://x.com\"      # navigate\nglider eval \"document.title\"     # run JS\nglider run task.yaml             # execute task file\nglider loop task.yaml -n 50      # autonomous loop\n```\n\n### Daemon\n\nThe daemon keeps the relay server running 24/7. Auto-restarts on crash.\n\n```bash\nglider install     # install daemon (runs at login)\nglider uninstall   # remove daemon\n```\n\nLogs: `~/.glider/daemon.log`\n\n## 🔄The Loop\n\nThe `loop` (or `ralph`) command runs your task repeatedly until:\n- Completion marker found (`LOOP_COMPLETE` or `DONE`)\n- Max iterations reached\n- Timeout hit\n\n```bash\nglider loop scrape-feed.yaml -n 100 -t 3600\nglider ralph task.yaml  # same thing\n```\n\nSafety: max iterations, timeout, exponential backoff on errors, state persistence.\n\n## 📄Task Files\n\n```yaml\nname: \"Get timeline\"\nsteps:\n  - goto: \"https://x.com/home\"\n  - wait: 3\n  - eval: \"document.querySelectorAll('article').length\"\n  - screenshot: \"/tmp/timeline.png\"\n```\n\n## ⚡Commands\n\n### Setup\n| Command | What |\n|---------|------|\n| `glider install` | Install daemon (runs at login) |\n| `glider uninstall` | Remove daemon |\n| `glider connect` | Connect to browser |\n| `glider status` | Server/extension/tab status |\n| `glider test` | Run diagnostics |\n\n### Navigation\n| Command | What |\n|---------|------|\n| `glider goto \u003curl\u003e` | Navigate |\n| `glider eval \u003cjs\u003e` | Execute JavaScript |\n| `glider click \u003csel\u003e` | Click element |\n| `glider type \u003csel\u003e \u003ctext\u003e` | Type into input |\n| `glider screenshot` | Capture page |\n| `glider html \u003csel\u003e` | Get element HTML |\n| `glider title` | Get page title |\n| `glider text` | Get page text |\n\n### Multi-Tab\n| Command | What |\n|---------|------|\n| `glider fetch \u003curl\u003e` | Fetch URL with browser session (authenticated) |\n| `glider spawn \u003curls...\u003e` | Open multiple tabs |\n| `glider extract [opts]` | Extract content from all connected tabs |\n| `glider explore \u003curl\u003e` | Crawl site, capture links/network |\n\n### Automation\n| Command | What |\n|---------|------|\n| `glider run \u003cfile\u003e` | Run YAML task |\n| `glider loop \u003cfile\u003e` | Autonomous loop |\n| `glider ralph \u003cfile\u003e` | Alias for loop |\n\n## 🗺️Roadmap\n\n- [x] CDP-based browser control via relay\n- [x] YAML task file execution\n- [x] Ralph Wiggum autonomous loop pattern\n- [x] Daemon mode (auto-start, auto-restart)\n- [x] macOS notifications\n- [x] Multi-tab orchestration (spawn, extract)\n- [x] Authenticated fetch via browser session\n- [x] Site exploration/crawling\n- [ ] Chrome Web Store extension publish\n- [ ] Linux support\n- [ ] Windows support\n- [ ] Headless mode\n- [ ] Task chaining (output of one -\u003e input of next)\n- [ ] Built-in scraping templates\n- [ ] Session recording/playback\n- [ ] AI-assisted task generation\n- [ ] Web dashboard for monitoring loops\n\n## 🔧Tools Used\n\n[![Claude Code][claudecode-badge]][claudecode-url]\n[![Claude][claude-badge]][claude-url]\n[![Node.js][nodejs-badge]][nodejs-url]\n[![Chrome DevTools Protocol][cdp-badge]][cdp-url]\n\n## 👤Contact\n\n[![Email][email]][email-url]\n[![Twitter][twitter]][twitter-url]\n\n\u003c!-- BADGES --\u003e\n[github]: https://img.shields.io/badge/glidercli-000000?style=for-the-badge\u0026logo=github\n[github-url]: https://github.com/vdutts7/glidercli\n[npm]: https://img.shields.io/badge/npm%20i%20--g%20glidercli-CB3837?style=for-the-badge\u0026logo=npm\n[npm-url]: https://www.npmjs.com/package/glidercli\n[claudecode-badge]: https://img.shields.io/badge/Claude_Code-D97757?style=for-the-badge\u0026logo=anthropic\u0026logoColor=white\n[claudecode-url]: https://claude.ai/code\n[claude-badge]: https://img.shields.io/badge/Claude-D97757?style=for-the-badge\u0026logo=anthropic\u0026logoColor=white\n[claude-url]: https://claude.ai\n[nodejs-badge]: https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\n[nodejs-url]: https://nodejs.org\n[cdp-badge]: https://img.shields.io/badge/Chrome_DevTools_Protocol-4285F4?style=for-the-badge\u0026logo=googlechrome\u0026logoColor=white\n[cdp-url]: https://chromedevtools.github.io/devtools-protocol/\n[email]: https://img.shields.io/badge/Email-000000?style=for-the-badge\u0026logo=Gmail\u0026logoColor=white\n[email-url]: mailto:me@vd7.io\n[twitter]: https://img.shields.io/badge/Twitter-000000?style=for-the-badge\u0026logo=Twitter\u0026logoColor=white\n[twitter-url]: https://x.com/vdutts7\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdutts7%2Fglidercli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdutts7%2Fglidercli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdutts7%2Fglidercli/lists"}