Skip to main content

nodeseek-cli

A command-line reader for NodeSeek forum threads.

NodeSeek serves each thread as fully server-rendered HTML, so nodeseek-cli fetches a post URL (no API key, no login) and converts it to Markdown, or to structured JSON with --json. It handles pagination, quoted replies, images, code blocks, tables, and NodeSeek's "magic tab" benchmark widgets.

Install / run

Run without installing (recommended):

uvx nodeseek-cli 355740

Or install:

uv tool install nodeseek-cli      # global CLI: `nodeseek` and `nodeseek-cli`
pip install nodeseek-cli          # into current environment

Usage

nodeseek <post> [options]

  <post>            bare id (355740), slug (post-355740-1), or full URL

  -p, --page N      fetch only page N (overrides page in the URL)
  -a, --all         fetch every page of the thread and merge
  -j, --json        emit structured JSON instead of markdown
      --ansi        keep ANSI colour codes inside code blocks (default: strip)
  -V, --version     print version
  -h, --help        show help

By default only one page is fetched (the page in the URL/slug, or page 1). The markdown header shows page X/N and a footer tells you how to reach the next page or the whole thread.

Examples

nodeseek 355740                                   # first page as markdown
nodeseek post-250906-2                             # a specific page
nodeseek 250906 --all                             # whole thread, merged
nodeseek 250906 --all --json | jq '.comments[].author'
nodeseek https://www.nodeseek.com/post-355740-1 --ansi

Formatting notes

  • Stickers are meaningless out of context and render as [Sticker].
  • Images render as markdown ![alt](url) with absolute URLs.
  • Replies are detected from the leading @user #N marker and shown as a Reply to @user #N line (and a reply_to object in JSON); the marker is stripped from the body.
  • Magic tab widgets (hardware/network benchmark reports, etc.) expand into one titled code block per tab. ANSI colour is reconstructed from NodeSeek's data-ansicode encoding and stripped by default (keep it with --ansi).

Library API

from nodeseek_cli import fetch_post, to_markdown, to_json

post = fetch_post("250906", all_pages=True)   # -> nodeseek_cli.models.Post
print(post.title, post.pages, len(post.comments))

for c in post.comments:
    print(c.floor, c.author, c.reply_to)

print(to_markdown(post))
print(to_json(post))

Parse already-downloaded HTML offline:

from nodeseek_cli import parse_page

title, max_page, comments = parse_page(html, ansi=False)

Errors

fetch_post / fetch_page raise PostNotFound (404), RateLimited (429), or the base NodeSeekError. parse_target raises ValueError on an unparseable reference.

Development

uv sync --extra dev
uv run pytest            # offline tests against saved fixtures
uv run nodeseek 355740   # run the CLI from source

Linting and formatting use ruff, wired up through prek (a drop-in pre-commit runner):

uv run ruff format .     # format
uv run ruff check .      # lint
uv run prek install      # install the git pre-commit hook
uv run prek run --all-files

License

MIT

Metadata

Release files for nodeseek-cli 0.1.0

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

Source distribution (sdist)

Source distribution for nodeseek-cli 0.1.0
File Size Uploaded Provenance Actions
nodeseek_cli-0.1.0.tar.gz 40.6 kB Without provenance Details for nodeseek_cli-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nodeseek-cli 0.1.0
File Interpreter ABI Platform Actions
nodeseek_cli-0.1.0-py3-none-any.whl Python 3 none any Details for nodeseek_cli-0.1.0-py3-none-any.whl

Total release size: 53.3 kB

Release files / nodeseek_cli-0.1.0.tar.gz

Download URL nodeseek_cli-0.1.0.tar.gz
Size 40.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a89e403234bad8b55de6922cebde8db8cc37808c37ed4079c983e3ddf2aa7ff6
BLAKE2b-256 checksum
How to use checksums
2716cd06d5b6c9a44eef9aac49021ff8008db1e0a84d80feeedfdef0b9008220
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / nodeseek_cli-0.1.0-py3-none-any.whl

Download URL nodeseek_cli-0.1.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e41feb84a04b1802fe050bc63a46968da5573eafc6076c29426930d71e7af51a
BLAKE2b-256 checksum
How to use checksums
c4c23054e25d4c7ff0db87aa8a30785581c6b5fc22707835100fcb27fb46416f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for nodeseek-cli 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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