Skip to main content

Crate eoka

Crate eoka 

Source
Expand description

§Eoka

Undetectable browser automation for AI agents.

Eoka is a minimal, fast stealth browser library built from scratch. It uses a custom CDP (Chrome DevTools Protocol) implementation with built-in stealth filtering to avoid detection.

§Features

  • Stealth by Default - Binary patching, JavaScript evasions, human simulation
  • Minimal Dependencies - ~10 crates total, no chromiumoxide
  • AI-Agent Optimized - PageState, element indexing, text extraction
  • Fast - Lazy evasion scripts, mmap patching, stack-allocated paths

§Quick Start

use eoka::Browser;

#[tokio::main]
async fn main() -> eoka::Result<()> {
    // Launch browser (patches Chrome, applies evasions)
    let browser = Browser::launch().await?;

    // Create page and navigate
    let page = browser.new_page("https://example.com").await?;

    // Human-like interactions
    page.human_click("#button").await?;
    page.human_type("#input", "hello world").await?;

    // Screenshot
    let png = page.screenshot().await?;
    std::fs::write("screenshot.png", png)?;

    browser.close().await?;
    Ok(())
}

§Configuration

use eoka::{Browser, StealthConfig};

let config = StealthConfig {
    headless: true,
    patch_binary: true,
    webgl_spoof: true,
    canvas_spoof: true,
    ..Default::default()
};

let browser = Browser::launch_with_config(config).await?;

Re-exports§

pub use browser::Browser;
pub use error::Error;
pub use error::Result;
pub use network::NetworkEvent;
pub use network::NetworkWatcher;
pub use page::BoundingBox;
pub use page::CapturedRequest;
pub use page::Element;
pub use page::FrameInfo;
pub use page::Page;
pub use page::PageState;
pub use page::ResponseBody;
pub use page::TextMatch;
pub use session::BrowserSession;
pub use session::SessionCookie;
pub use stealth::Fingerprint;
pub use stealth::HumanSpeed;

Modules§

browser
Browser Launcher
cdp
Minimal CDP (Chrome DevTools Protocol) Client
error
Error types for eoka
network
Network Request Capture
page
Page Abstraction
session
Session export for browser-to-HTTP-client handoff
stealth
Stealth Layer

Structs§

StealthConfig
Configuration for stealth features