Settings

Theme

Show HN: Epupp – Live, REPL-driven, browser tampering

github.com

4 points by cospaia a month ago · 0 comments · 3 min read

Reader

Epupp has two modes of operation:

1. *Live REPL connection from your editor to the web page*, letting you inspect and modify the page on the fly, with or without the assistance of an AI agent.

2. *Userscripts*: Somewhat Tampermonkey style (I love Tampermonkey!).

The two form a powerful pair. The live REPL connection, while happily supporting one-off changes or data extractions, is also a very efficient and fun means to interactively develop userscripts. The buzzword here is Interactive Programming (aka REPL-driven development).

I started to build Epupp because I wanted the AI agent to help me solve a problem with printing a very tall receipt cleanly from Gmail. After that success, I realized it was generally very useful so I made an extension out of it. I then also noticed that I wanted to be able to save my live tampers as userscripts.

Epupp's scripting language is ClojureScript, the SCI kind. This is what makes the live tampering possible.

I have probably gotten a lot of things wrong with this first version. I am entering feedback-driven mode now. Though, unless something is terribly wrong with the API, I intend to keep it stable. In true Clojure tradition, I do not want to break my callers.

Epupp is free and open source, available at the Chrome and Firefox extension stores.

Try it out, please. I have created a template project which I hope can help with getting started + be your base for using Epupp.

* https://github.com/PEZ/my-epupp-hq

Security:

* Epupp enables a userscript to do just about anything on web page, including all the dangerous things. The gate is the user, scrutinizing userscripts and userscript authors.

* The REPL opens a websocket to Epupp's REPL. Again the user is responsible for what connects to that websocket.

* On a whitelist of domains, userscripts can install and modify userscripts. This enables a web userscript installer to be active on GitHub, GitLab and Codeberg. Userscripts can not, however, list or read userscripts from Epupp.

* The REPL can install, modify, list and read userscripts. But only if the user enables this in Epupp after establishing the REPL connection.

Demo videos:

* Copilot builds the Isolated Element Printer script, using interactive programming: https://youtu.be/CuEWN5yYVa8

* LinkedIn Squirrel, a userscript that keeps posts you engage with in immediate reach: https://youtu.be/yU6rsjoR7HQ

On the roadmap:

1. Fix issues when used with Firefox

2. Fix (many more) issues with Safari

3. Mobile browser support

WDYT, HN?

No comments yet.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection