An open API service indexing awesome lists of open source software.

https://github.com/vdutts7/glidercli

🚀 Browser automation CLI with autonomous loop execution. Control Chrome via CDP, run YAML tasks, Ralph Wiggum loops.
https://github.com/vdutts7/glidercli

autonomous-agents browser-automation cdp chrome-devtools claude claude-code ralph ralph-wiggum

Last synced: about 1 month ago
JSON representation

🚀 Browser automation CLI with autonomous loop execution. Control Chrome via CDP, run YAML tasks, Ralph Wiggum loops.

Awesome Lists containing this project

README

          

glider
chrome
claude
ralph

glidercli


Browser automation CLI with autonomous loop execution.

[![Github][github]][github-url]
[![npm][npm]][npm-url]


## Table of Contents


    📝 About

    💻 Install

    🚀 Usage

    🔄 The Loop

    📄 Task Files

    ⚡ Commands

    🗺️ Roadmap

    🔧 Tools used

    👤 Contact


## 📝About

Control Chrome from terminal. Run YAML tasks. Loop until complete (Ralph Wiggum pattern).

- **CDP-based** - Direct Chrome DevTools Protocol control
- **YAML tasks** - Define automation steps declaratively
- **Autonomous loops** - Run until completion marker found
- **Safety guards** - Max iterations, timeout, exponential backoff

## 💻Install

```bash
npm i -g glidercli
glider install # start daemon (runs forever, auto-restarts)
```

### Requirements

1. **Node 18+**

2. **Glider Chrome Extension** - [glider](https://github.com/vdutts/glider) *(Chrome Web Store pending)*
- Clone repo, load unpacked in `chrome://extensions`

## 🚀Usage

```bash
glider connect # connect to browser
glider status # check connection
glider goto "https://x.com" # navigate
glider eval "document.title" # run JS
glider run task.yaml # execute task file
glider loop task.yaml -n 50 # autonomous loop
```

### Daemon

The daemon keeps the relay server running 24/7. Auto-restarts on crash.

```bash
glider install # install daemon (runs at login)
glider uninstall # remove daemon
```

Logs: `~/.glider/daemon.log`

## 🔄The Loop

The `loop` (or `ralph`) command runs your task repeatedly until:
- Completion marker found (`LOOP_COMPLETE` or `DONE`)
- Max iterations reached
- Timeout hit

```bash
glider loop scrape-feed.yaml -n 100 -t 3600
glider ralph task.yaml # same thing
```

Safety: max iterations, timeout, exponential backoff on errors, state persistence.

## 📄Task Files

```yaml
name: "Get timeline"
steps:
- goto: "https://x.com/home"
- wait: 3
- eval: "document.querySelectorAll('article').length"
- screenshot: "/tmp/timeline.png"
```

## ⚡Commands

### Setup
| Command | What |
|---------|------|
| `glider install` | Install daemon (runs at login) |
| `glider uninstall` | Remove daemon |
| `glider connect` | Connect to browser |
| `glider status` | Server/extension/tab status |
| `glider test` | Run diagnostics |

### Navigation
| Command | What |
|---------|------|
| `glider goto ` | Navigate |
| `glider eval ` | Execute JavaScript |
| `glider click ` | Click element |
| `glider type ` | Type into input |
| `glider screenshot` | Capture page |
| `glider html ` | Get element HTML |
| `glider title` | Get page title |
| `glider text` | Get page text |

### Multi-Tab
| Command | What |
|---------|------|
| `glider fetch ` | Fetch URL with browser session (authenticated) |
| `glider spawn ` | Open multiple tabs |
| `glider extract [opts]` | Extract content from all connected tabs |
| `glider explore ` | Crawl site, capture links/network |

### Automation
| Command | What |
|---------|------|
| `glider run ` | Run YAML task |
| `glider loop ` | Autonomous loop |
| `glider ralph ` | Alias for loop |

## 🗺️Roadmap

- [x] CDP-based browser control via relay
- [x] YAML task file execution
- [x] Ralph Wiggum autonomous loop pattern
- [x] Daemon mode (auto-start, auto-restart)
- [x] macOS notifications
- [x] Multi-tab orchestration (spawn, extract)
- [x] Authenticated fetch via browser session
- [x] Site exploration/crawling
- [ ] Chrome Web Store extension publish
- [ ] Linux support
- [ ] Windows support
- [ ] Headless mode
- [ ] Task chaining (output of one -> input of next)
- [ ] Built-in scraping templates
- [ ] Session recording/playback
- [ ] AI-assisted task generation
- [ ] Web dashboard for monitoring loops

## 🔧Tools Used

[![Claude Code][claudecode-badge]][claudecode-url]
[![Claude][claude-badge]][claude-url]
[![Node.js][nodejs-badge]][nodejs-url]
[![Chrome DevTools Protocol][cdp-badge]][cdp-url]

## 👤Contact

[![Email][email]][email-url]
[![Twitter][twitter]][twitter-url]

[github]: https://img.shields.io/badge/glidercli-000000?style=for-the-badge&logo=github
[github-url]: https://github.com/vdutts7/glidercli
[npm]: https://img.shields.io/badge/npm%20i%20--g%20glidercli-CB3837?style=for-the-badge&logo=npm
[npm-url]: https://www.npmjs.com/package/glidercli
[claudecode-badge]: https://img.shields.io/badge/Claude_Code-D97757?style=for-the-badge&logo=anthropic&logoColor=white
[claudecode-url]: https://claude.ai/code
[claude-badge]: https://img.shields.io/badge/Claude-D97757?style=for-the-badge&logo=anthropic&logoColor=white
[claude-url]: https://claude.ai
[nodejs-badge]: https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white
[nodejs-url]: https://nodejs.org
[cdp-badge]: https://img.shields.io/badge/Chrome_DevTools_Protocol-4285F4?style=for-the-badge&logo=googlechrome&logoColor=white
[cdp-url]: https://chromedevtools.github.io/devtools-protocol/
[email]: https://img.shields.io/badge/Email-000000?style=for-the-badge&logo=Gmail&logoColor=white
[email-url]: mailto:me@vd7.io
[twitter]: https://img.shields.io/badge/Twitter-000000?style=for-the-badge&logo=Twitter&logoColor=white
[twitter-url]: https://x.com/vdutts7