Open Viking Headless Scraper & Content Extractor

@open-viking/scraper · v1.2.6

A resilient headless web scraping and markdown distillation kernel for DeepSeek Harness. Features automated bot-defense evasion, dynamic SPA rendering, and token-efficient content distillation.

ScraperHeadlessExtractionReadability
GitHub Stars
39 K+
+12.4% this month
Monthly Downloads
163 K+
Monthly registry pulls
Reach Score
98.7/ 100
Top Tier Ecosystem
Runtime
Cordis v3+
Node 18+ / Bun / Deno

Installation & Integration

CLI one-click launch, package managers, and Cordis integration

bash
manager:
$ pnpm add @open-viking/scraper

Architecture

Open Viking powers autonomous web exploration across resilient modern web applications. Modern web pages rely heavily on client-side JS hydration and anti-bot challenges that trip naive HTTP clients. Built on top of native Chromium CDP, Open Viking simulates natural human browsing behavior, transparently bypassing common bot defenses. Captured DOM trees undergo aggressive content distillation, eliminating sidebars, banners, and scripts to produce pristine, high-density Markdown ready for LLM consumption.

Architectural Principles & Constraints

01
Strict Type Isolation

Guaranteed by TypeScript compile-time contracts, inter-plugin event bus calls enjoy zero-drift safety.

02
Sub-Millisecond Hot Reload

Supports dynamic runtime mounting and graceful unloading without restarting the primary host process.

03
Deterministic State Machine

Embeds multi-phase execution lifecycle guards, preventing context loss during long-horizon reasoning.

04
Zero Native Build Dependencies

Designed for lightweight cross-platform environments, booting instantly across Node.js, Bun, and Deno.

Core Features

01
Adaptive Bot Evasion: Circumvents bot challenges and TLS fingerprint tracking transparently
02
Full SPA Hydration: Accurately renders dynamic React, Vue, and Angular client-rendered data
03
Aggressive Token Pruning: Eliminates up to 75% of noisy DOM tags, saving valuable context
04
Table & Math Preservation: Accurately serializes complex data tables and formulas into Markdown

Core Workflow

01

Fingerprint Masquerade

Initializes randomized TLS fingerprints and user-agent rotations before fetching.

02

Headless DOM Hydration

Executes dynamic JS scripts and waits for main content nodes to hydrate.

03

Noise Pruning & Heuristics

Strips navbars, cookie banners, tracking iframes, and promotional artifacts.

04

Markdown Serialization

Converts clean content into token-compact Markdown, preserving tables and code.

Configuration Parameters Reference (YAML / JSON)

ParameterTypeDefaultDescription
renderTimeoutnumber15000Page hydration timeout in milliseconds
extractImagesbooleanfalsePreserve image links and captions in output
blockResourcesstringfont,mediaResource types blocked to accelerate throughput

Use Cases

Enterprise Production Agent

Relies on microkernel lifecycle guards and fault-tolerant state machines for continuous reliability.

SWE-bench Benchmark Evaluation

Native integration with SWE-bench workflows, automatically capturing diffs and verification metrics.

Autonomous Code Refactoring

Separates reasoning from tool actions to independently locate and refactor multi-file codebases.

Cross-Tool Workflow Automation

Safely orchestrates events across sandboxes to seamlessly link enterprise developer tooling.

Best Practices

01
Sandbox Permission Guard

Strictly isolate sub-process calls and network scope; deploy within Docker containers in production.

02
Exponential Backoff Retries

Configure adaptive exponential retries with strict timeouts to mitigate upstream model rate limits.

03
Session State Checkpointing

Persist state machine snapshots to survive hardware interruptions and resume instantly without loss.

04
Full Trajectory Audit Logs

Enable full trace logging, aggregating reasoning thought streams and tool I/O into your observability hub.

FAQ

Q1:How to handle timeouts in long-running autonomous tasks?

Increase the timeout parameter inside your YAML configuration and dispatch periodic heartbeat signals across the Cordis event bus. For long-running tool execution and model reasoning, configure persistent session snapshotting so suspended tasks can safely resume their exact context after interruptions, preventing the kernel from recycling active agent sessions prematurely.

Q2:How to capture and stream the model reasoning thought process?

The harness runtime natively provides end-to-end streaming hooks while its state machine automatically intercepts and strips <think> reasoning tags from model responses. Subscribe directly to the onThink event listener to consume live reasoning token streams in real-time, delivering typewriter animation to the user interface while persisting full trajectories for audit compliance.

Q3:How to resolve dependency conflicts across multiple plugins?

Cordis microkernel uses directed acyclic graph topological sorting to dynamically resolve plugin dependencies. When shared services or runtime versions conflict, assign distinct isolated namespaces at the application entrypoint. Leveraging context injection alongside lazy activation ensures dependencies load strictly on-demand when tools are triggered, maintaining system stability and preventing memory bloat.

Q4:How to enforce permissions and sandbox isolation in production?

Combine isolated container sandboxing with fine-grained capability checks to prevent plugins from accessing sensitive files or unauthorized external networks. Enforce explicit runtime system call whitelisting through the microkernel, executing all third-party tool scripts inside isolated ephemeral containers to block arbitrary code execution and eliminate security privilege escalation risks entirely.

Recommended Ecosystem Plugins

Explore related Cordis extensions designed to work synergistically