Hacker News

Latest

Steam "Offline" status leaks exact login timestamps (Valve: Won't Fix)

2026-01-20 @ 22:43:03Points: 47Comments: 32

California is free of drought for the first time in 25 years

2026-01-20 @ 22:39:26Points: 115Comments: 48

Lunar Radio Telescope to Unlock Cosmic Mysteries

2026-01-20 @ 22:36:23Points: 5Comments: 0

Provably Unmasking Malicious Behavior Through Execution Traces

2026-01-20 @ 22:18:53Points: 10Comments: 2

Which AI Lies Best? LLMs play a 1950s betrayal game by John Nash

2026-01-20 @ 22:09:49Points: 18Comments: 7

The challenges of soft delete

2026-01-20 @ 21:36:34Points: 31Comments: 17

Inside the secret world of Japanese snack bars

2026-01-20 @ 21:34:06Points: 56Comments: 34

Show HN: Agent Skills Leaderboard

2026-01-20 @ 21:22:19Points: 12Comments: 5

Maintenance: Of Everything, Part One

2026-01-20 @ 19:01:30Points: 44Comments: 10

When "likers'' go private: Engagement with reputationally risky content on X

2026-01-20 @ 18:40:19Points: 32Comments: 20

A 26,000-year astronomical monument hidden in plain sight (2019)

2026-01-20 @ 18:16:09Points: 286Comments: 52

Electricity use of AI coding agents

2026-01-20 @ 18:02:02Points: 14Comments: 10

Model Market Fit

2026-01-20 @ 17:24:41Points: 10Comments: 2

The Unix Pipe Card Game

2026-01-20 @ 16:48:59Points: 167Comments: 45

Show HN: Mastra 1.0, open-source JavaScript agent framework from the Gatsby devs

2026-01-20 @ 16:38:56Points: 62Comments: 25

Almost a year ago, we first shared Mastra here (https://news.ycombinator.com/item?id=43103073). It’s kind of fun looking back since we were only a few months into building at the time. The HN community gave a lot of enthusiasm and some helpful feedback.

Today, we released Mastra 1.0 in stable, so we wanted to come back and talk about what’s changed.

If you’re new to Mastra, it's an open-source TypeScript agent framework that also lets you create multi-agent workflows, run evals, inspect in a local studio, and emit observability.

Since our last post, Mastra has grown to over 300k weekly npm downloads and 19.4k GitHub stars. It’s now Apache 2.0 licensed and runs in prod at companies like Replit, PayPal, and Sanity.

Agent development is changing quickly, so we’ve added a lot since February:

- Native model routing: You can access 600+ models from 40+ providers by specifying a model string (e.g., `openai/gpt-5.2-codex`) with TS autocomplete and fallbacks.

- Guardrails: Low-latency input and output processors for prompt injection detection, PII redaction, and content moderation. The tricky thing here was the low-latency part.

- Scorers: An async eval primitive for grading agent outputs. Users were asking how they should do evals. We wanted to make it easy to attach to Mastra agents, runnable in Mastra studio, and save results in Mastra storage.

- Plus a few other features like AI tracing (per-call costing for Langfuse, Braintrust, etc), memory processors, a `.network()` method that turns any agent into a routing agent, and server adapters to integrate Mastra within an existing Express/Hono server.

(That last one took a bit of time, we went down the ESM/CJS bundling rabbithole, ran into lots of monorepo issues, and ultimately opted for a more explicit approach.)

Anyway, we'd love for you to try Mastra out and let us know what you think. You can get started with `npm create mastra@latest`.

We'll be around and happy to answer any questions!

Cloudflare zero-day: Accessing any host globally

2026-01-20 @ 16:25:33Points: 17Comments: 2

Nvidia Stock Crash Prediction

2026-01-20 @ 15:56:07Points: 324Comments: 268

Dockerhub for Skill.md

2026-01-20 @ 15:19:22Points: 9Comments: 2

Danish pension fund divesting US Treasuries

2026-01-20 @ 15:11:45Points: 573Comments: 599

TopicRadar – Track trending topics across Hacker News, GitHub, ArXiv, and more

2026-01-20 @ 14:47:50Points: 6Comments: 2

Unconventional PostgreSQL Optimizations

2026-01-20 @ 14:23:44Points: 241Comments: 30

The Zen of Reticulum

2026-01-20 @ 13:34:16Points: 87Comments: 57

Channel3 (YC S25) Is Hiring

2026-01-20 @ 12:00:31Points: 1

Running Claude Code dangerously (safely)

2026-01-20 @ 11:58:34Points: 264Comments: 211

I'm addicted to being useful

2026-01-20 @ 10:47:25Points: 460Comments: 221

Linux kernel framework for PCIe device emulation, in userspace

2026-01-20 @ 07:51:12Points: 209Comments: 75

RCS for Business

2026-01-20 @ 04:14:12Points: 13Comments: 9

Level S4 solar radiation event

2026-01-19 @ 20:26:19Points: 597Comments: 197

Fast Concordance: Instant concordance on a corpus of >1,200 books

2026-01-16 @ 21:37:51Points: 27Comments: 2

Show HN: wxpath – Declarative web crawling in XPath

2026-01-14 @ 16:52:34Points: 56Comments: 9

wxpath is a declarative web crawler where web crawling and scraping are expressed directly in XPath.

Instead of writing imperative crawl loops, you describe what to follow and what to extract in a single expression:

    import wxpath

    # Crawl, extract fields, build a Wikipedia knowledge graph
    path_expr = """
    url('https://en.wikipedia.org/wiki/Expression_language')
         ///url(//main//a/@href[starts-with(., '/wiki/') and not(contains(., ':'))])
             /map{
                'title': (//span[contains(@class, "mw-page-title-main")]/text())[1] ! string(.),
                'url': string(base-uri(.)),
                'short_description': //div[contains(@class, 'shortdescription')]/text() ! string(.),
                'forward_links': //div[@id="mw-content-text"]//a/@href ! string(.)
             }
    """

    for item in wxpath.wxpath_async_blocking_iter(path_expr, max_depth=1):
        print(item)
The key addition is a `url(...)` operator that fetches and returns HTML for further XPath processing, and `///url(...)` for deep (or paginated) traversal. Everything else is standard XPath 3.1 (maps/arrays/functions).

Features:

- Async/concurrent crawling with streaming results

- Scrapy-inspired auto-throttle and polite crawling

- Hook system for custom processing

- CLI for quick experiments

Another example, paginating through HN comments (via "follow=" argument) pages and extracting data:

    url('https://news.ycombinator.com',
        follow=//a[text()='comments']/@href | //a[@class='morelink']/@href)
        //tr[@class='athing']
          /map {
            'text': .//div[@class='comment']//text(),
            'user': .//a[@class='hnuser']/@href,
            'parent_post': .//span[@class='onstory']/a/@href
          }
Limitations: HTTP-only (no JS rendering yet), no crawl persistence. Both are on the roadmap if there's interest.

GitHub: https://github.com/rodricios/wxpath

PyPI: pip install wxpath

I'd love feedback on the expression syntax and any use cases this might unlock.

Thanks!

Archives

2026

2025

2024

2023

2022