@visualstudioblyat/shadey
v0.1.0
Published
Stealth browser sessions for AI agents
Maintainers
Readme
shadey
Stealth browser sessions for AI agents. Pass Cloudflare, DataDome, PerimeterX, and Kasada from any IP.
Install
npm install shadeyQuick Start
import { Shadey } from "shadey";
const client = new Shadey("sk_your_api_key");
// Create a stealth session
const session = await client.session();
// Human-like click at coordinates
await session.click(500, 300);
// Type with realistic keystroke timing
await session.typeText("hello world", "search");
// Scroll down 400px with natural momentum
await session.scroll(400);
// Idle browse — mouse moves, scrolls, pauses like a real user
await session.idle(5000);
// Connect with Playwright for full browser control
import { chromium } from "playwright";
const browser = await chromium.connectOverCDP(session.playwrightUrl);
const page = browser.contexts()[0].pages()[0];
await page.goto("https://nowsecure.nl");
console.log(await page.title());
// Clean up
await session.close();API
new Shadey(apiKey, baseUrl?)
Create a client. Default base URL: https://api.shadey.dev.
client.session(opts?)
Create a stealth browser session. Options:
stealth:"basic"|"advanced"|"full"(default:"full")proxy: proxy URLprofile: named browser profile for persistent cookies
session.click(x, y, width?)
Move mouse and click with Fitts' law timing and corrective submovements.
session.typeText(text, context?)
Type with QWERTY bigram-modeled keystroke timing. Context: "form" | "search" | "url".
session.scroll(distance)
Scroll with momentum. Positive = down, negative = up.
session.dwell(context?)
Wait a human-realistic duration. Context: "content" | "search" | "form".
session.idle(durationMs?)
Simulate idle browsing with HMM behavioral model.
session.playwrightUrl / session.puppeteerUrl
CDP WebSocket URL for direct browser control.
session.close()
Destroy the session.
client.usage()
Get plan usage stats.
client.health()
Check API health.
