Most AI agents can read a webpage. Mine redecorated one.
I pointed my agent at github.com/torvalds — Linus Torvalds' GitHub profile — and told it to turn it into a MySpace page. No screenshots-and-Photoshop. No mockups. The agent injected JavaScript into a live Chromium browser and rebuilt the DOM in real time.
Here's what happened.
Stage 0: The before
Torvalds' GitHub profile. Clean. Professional. 289k followers. Six pinned repos. You've seen this page.
Stage 1: The vibes
First injection: a <style> tag. Dark navy background. Comic Sans on everything. Neon pink text. The contribution graph turned magenta. The GitHub nav bar became a gradient of hot pink and purple with a dashed yellow border.
It already feels wrong. In the best way.
// What the agent actually ran (simplified)
var s = document.createElement('style');
s.textContent = '* { font-family: Comic Sans MS, cursive !important; } '
+ 'body { background: #0a0020 !important; color: #ff69b4 !important; } '
+ 'header { background: linear-gradient(90deg, #ff1493, #8a2be2, '
+ '#4b0082, #ff1493) !important; }';
document.head.appendChild(s);
One style tag. The entire page transformed.
Stage 2: The identity
The agent replaced "Linus Torvalds" with xX_Torvalds_Xx in rainbow-animated text. The subtitle became "~ The Kernel King ~". The Follow button now reads "Add 2 My Top 8".
Then it injected an About Me box:
| Field | Value |
|---|---|
| Mood | mass-merging |
| Status | Online Now! |
| Occupation | Benevolent Dictator 4 Life |
| Heroes | Dennis Ritchie, Ken Thompson |
| Interests | kernels, git, yelling at devs |
Three gradient buttons appeared: Send Message, Block User, Add to Favorites.
Stage 3: The friends
The agent renamed each pinned repository into a MySpace friend:
| GitHub Repo | MySpace Friend | Bio |
|---|---|---|
| linux | TuxThePenguin | Best penguin friend EVER!! BFFs since 1991 xoxo |
| GuitarPedal | ShreddMaster69 | Met at Battle of the Bands!! ROCK ON!! |
| uemacs | EmacsGurl_xo | we edit text files together lol |
| AudioNoise | DJ_WhiteNoise | makes the SICKEST beats!! |
| HunspellColorize | SpellCheckQueen | always corrects my spelling lmao |
Stars became hearts. Forks became "hugs". The section heading: My Top 5 Friends.
Stage 4: The finishing touches
The agent added:
- A bouncing marquee: "WELCOME 2 MY PAGE!! thx 4 stopping by!! sign my guestbook!!"
- A music player widget (Now Playing: Darude — Sandstorm) with a progress bar at 67%
- Achievements relabeled to My Blinkies & Flair
- Contribution activity became Wall Posts
- "Block or Report" became Report 2 Tom
- A visitor counter:
001,337,420 - Footer: "Best viewed in Netscape Navigator 4.0 at 800x600"
The entire transformation: 14 JavaScript injections. Each one a single vscreen_execute_js call from the agent. No page reload. The DOM stayed live the entire time.
What just happened
This wasn't a mockup. The agent:
- Navigated to a real website in a real Chromium browser
- Inspected the DOM to understand the page structure
- Injected CSS and JavaScript to transform every element
- Took screenshots at each stage to document the process
The page was live. The links still worked. The contribution graph still had real data. The agent just... redecorated.
Why this matters
The MySpace transformation is funny. The capability behind it is not.
An agent that can inject JavaScript into a live page can also:
- Fill forms and submit them
- Extract data from SPAs that HTTP fetch can't reach
- Test UIs by clicking buttons and verifying results
- Automate workflows across any web application
- Read code editors by accessing their internal APIs
If it can turn GitHub into MySpace, it can do your job's boring parts.
Try it
vscreen --dev --mcp-sse 0.0.0.0:8451
Pre-built Linux binaries on the releases page.
Give your agent a real browser
jameswebb68
/
vscreen
Give AI agents a real browser — streamed live over WebRTC. Captures headless Chromium, encodes H.264/VP9 + Opus audio, 47 MCP automation tools with live advisor, AI-driven page synthesis, multi-instance, bidirectional input. Watch your agents browse the real internet in real-time.
vscreen — Virtual Screen Media Bridge
Give AI agents a real browser. Watch them live. Control everything.
Download the latest release — pre-built binaries for Linux.
vscreen turns a headless Chromium into a remotely viewable, controllable, and AI-automatable virtual screen. It captures the browser viewport via Chrome DevTools Protocol, encodes H.264/VP9 video + Opus audio, and streams everything over WebRTC. Clients send mouse and keyboard input back through a DataChannel for full bidirectional interaction. 47 MCP tools let AI agents automate the browser programmatically — including the Synthesis Bubble system for AI-driven frontend page construction with one-shot multi-source web scraping.
Xvfb + Chromium vscreen Browser Client
┌──────────────┐ ┌─────────────────┐ ┌──────────────────────┐
│ Renders web │───>│ CDP screencast │ │ │
│ page at │ │ JPEG → I420 │ │ <video> element │
│ 1920×1080 │ │ → H264/VP9 │────>│ shows remote screen │
│ │ │ │ │ │
│ PulseAudio…





Top comments (0)