Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

nokk (Python)

Undetectable headless-browser engine, one pip install away.

nokk is a lightweight, Chrome-fingerprinted headless-browser engine (V8 + a minimal DOM, no rendering) that speaks the Chrome DevTools Protocol. This package embeds the prebuilt nokk binary — there is no browser to download, no Rust toolchain to install, and no Docker. pip install nokk, call launch(), and connect your existing Playwright or pyppeteer script over CDP.

pip install nokk

Alpha: prebuilt wheels are currently Linux x86_64 only. macOS/Windows wheels are on the roadmap.

Quick start

Playwright

import nokk
from playwright.sync_api import sync_playwright

with nokk.launch() as server, sync_playwright() as pw:
    browser = pw.chromium.connect_over_cdp(server.ws_endpoint)
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())

pyppeteer

import asyncio, nokk
from pyppeteer import connect

async def main():
    with nokk.launch() as server:
        browser = await connect(browserWSEndpoint=server.ws_endpoint)
        page = await browser.newPage()
        await page.goto("https://example.com")
        print(await page.title())

asyncio.run(main())

launch() options

nokk.launch() starts the CDP server on a free port and returns a NokkServer (a context manager). All arguments are keyword-only:

Argument Default Meaning
host "127.0.0.1" Address to bind.
port 0 TCP port; 0 picks a free one.
workers engine default Isolate worker threads.
max_contexts engine default Cap on concurrent contexts before backpressure.
proxy None Upstream proxy, e.g. socks5://host:1080 or http://user:pass@host:port.
session_store None Directory for persistent named-session cookie jars.
rotate_fingerprint False Give each browser context its own coherent fingerprint (OS/UA/screen/WebGL + matching TLS).
geoip_timezone False Derive each context's timezone/locale from its proxy's exit IP.
allow_trackers False Load ad/analytics/tracker subresources (blocked by default).
args None Extra raw CLI arguments passed to the binary.
timeout 30.0 Seconds to wait for the server to accept connections.
# Each browser context looks like a different machine, timezone matched to its proxy.
with nokk.launch(rotate_fingerprint=True, geoip_timezone=True) as server:
    ...

The server also shuts down automatically at interpreter exit; with or server.close() stops it immediately.

Point at a locally built binary during development with the NOKK_BINARY environment variable.

Links

Licensed under either of MIT or Apache-2.0, at your option.

Release files for nokk 0.1.18a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for nokk 0.1.18a1
File Interpreter ABI Platform
nokk-0.1.18a1-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details

Release files / nokk-0.1.18a1-py3-none-manylinux_2_34_x86_64.whl

Download URL nokk-0.1.18a1-py3-none-manylinux_2_34_x86_64.whl
Size 14.7 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
370466493d2b579db6f85ac0f009aaac178c1a2f9a5c425270070e78f9460150
BLAKE2b-256 checksum
How to use checksums
469744e59576f86d92cc10a7453cfd29f35f68270838a554399e05f567ef8610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page