frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: DeepDream for Video with Temporal Consistency

https://github.com/jeremicna/deepdream-video-pytorch
52•fruitbarrel•6h ago•17 comments

Show HN: I built a tool to create AI agents that live in iMessage

https://tryflux.ai/
10•danielsdk•4d ago•7 comments

Show HN: Turn your PRs into marketing updates

https://personabox.app
2•mpc75•19m ago•0 comments

Show HN: macOS menu bar app to track Claude usage in real time

https://github.com/richhickson/claudecodeusage
4•RichHickson•1h ago•0 comments

Show HN: Pydantic-AI-stream – Structured event streaming for pydantic-AI agents

https://github.com/opale-ai/pydantic-ai-stream
5•sbargaoui•1h ago•3 comments

Show HN: Catnip – Run Claude Code from Your iPhone Using GitHub Codespaces

https://github.com/wandb/catnip
6•vanpelt•1h ago•2 comments

Show HN: TierHive – Hourly-billed NAT VPS with private /24 subnets

https://tierhive.com/
3•backtogeek•2h ago•0 comments

Show HN: I visualized the entire history of Citi Bike in the browser

https://bikemap.nyc/
102•freemanjiang•1d ago•31 comments

Show HN: Watch LLMs play 21,000 hands of Poker

https://pokerbench.adfontes.io/run/Large_Models
13•jazarwil•6h ago•12 comments

Show HN: 90% of GPU Cycles Are Waste. A New Computing Primitive for Physics AI

https://github.com/isaac-sim/IsaacSim/discussions/394
2•ZuoCen_Liu•4h ago•1 comments

Show HN: Open database of link metadata for large-scale analysis

https://github.com/rumca-js/RSS-Link-Database-2025
11•renegat0x0•5d ago•1 comments

Show HN: I built a "Do not disturb" Device for my home office

https://apoorv.page/blogs/over-engineered-dnd
91•quacky_batak•5d ago•46 comments

Show HN: I built a "Conversion Killer Detector" to audit landing page copy

https://vect.pro/#/signup?continue=%2Fapp%2Ftools%3Ftool%3DConversion+Killer+Detector
2•afrazullal•4h ago•1 comments

Show HN: How I generate animated pixel art with AI and Python

https://sarthakmishra.com/blog/building-animated-sprite-hero
14•sarthak_drool•15h ago•2 comments

Show HN: SMTP Tunnel – A SOCKS5 proxy disguised as email traffic to bypass DPI

https://github.com/x011/smtp-tunnel-proxy
134•lobito25•1d ago•44 comments

Show HN: Free and local browser tool for designing gear models for 3D printing

https://gears.dmtrkovalenko.dev
52•neogoose•1d ago•13 comments

Show HN: ADHD Focus Light

https://github.com/zonghaoyuan/adhd-focus-light
15•zonghao•13h ago•1 comments

Show HN: A game/benchmark where AI bots hunt each other

https://hiding-robot.vercel.app/
2•-babi-•7h ago•2 comments

Show HN: KeelTest – AI-driven VS Code unit test generator with bug discovery

https://keelcode.dev/keeltest
28•bulba4aur•1d ago•15 comments

Show HN: Mantic.sh – A structural code search engine for AI agents

https://github.com/marcoaapfortes/Mantic.sh
77•marcoaapfortes•2d ago•37 comments

Show HN: VaultSandbox – Test your real MailGun/SES/etc. integration

https://vaultsandbox.com/
55•vaultsandbox•2d ago•11 comments

Show HN: Tailsnitch – A security auditor for Tailscale

https://github.com/Adversis/tailsnitch
275•thesubtlety•3d ago•28 comments

Show HN: App blocker that tracks your failed attempts to open blocked apps

https://apps.apple.com/in/app/app-blocker-zone/id6753007462
2•appdevfun•9h ago•0 comments

Show HN: 48-digit prime numbers every git commit

https://textonly.github.io/git-prime/
66•keepamovin•1w ago•54 comments

Show HN: Comet MCP – Give Claude Code a browser that can click

https://github.com/hanzili/comet-mcp
28•hanzili•4d ago•27 comments

Show HN: DoNotNotify – Log and intelligently block notifications on Android

https://donotnotify.com/
342•awaaz•3d ago•165 comments

Show HN: An LLM response cache that's aware of dynamic data

https://blog.butter.dev/on-automatic-template-induction-for-response-caching
14•raymondtana•22h ago•1 comments

Show HN: Prism.Tools – Free and privacy-focused developer utilities

https://blgardner.github.io/prism.tools/
369•BLGardner•2d ago•101 comments

Show HN: A to Z – A word game I built from a childhood road trip memory

https://a26z.fun/
13•jackhulbert•1d ago•8 comments

Show HN: Stash – Sync Markdown Files with Apple Notes via CLI

https://github.com/shakedlokits/stash
72•shuka•2d ago•21 comments
Open in hackernews

Show HN: Tylax – A bidirectional LaTeX to Typst converter in Rust

https://github.com/scipenai/tylax
25•democat•1d ago
Hi HN, author here.

I built Tylax because I wanted to migrate my old LaTeX papers to Typst but found existing regex-based scripts too fragile for nested environments.

Tylax parses LaTeX into an AST (using mitex-parser) and converts it to Typst code. It supports: - Full document structure (not just math snippets) - Complex math (matrices, integrals) - Experimental TikZ -> CeTZ graphics conversion - Runs in browser via WASM

Repo: https://github.com/scipenai/tylax Web Demo: https://convert.silkyai.cn/

Happy to answer any questions!

Comments

leephillips•23h ago
Could you briefly explain why Pandoc was not sufficient? (Obviously it can’t do the TikZ -> CeTZ conversion.)
democat•10h ago
Great question! I love Pandoc and use it often, but as a "universal" converter, it sometimes misses the nuances of specific pairs. Tylax is designed specifically for the LaTeX $\leftrightarrow$ Typst workflow. By focusing on just this 1-on-1 pair, we can offer: Better Math & Macros: A built-in macro expander handles custom commands (\newcommand) and complex nested math that general parsers often struggle with. Cleaner Code: The output is designed to be idiomatic and human-readable (e.g., using native Typst functions), not just "compilable." WASM Support: Being written in Rust means it runs instantly in the browser, making it easy to embed in web apps without a backend. Pandoc is the Swiss Army knife; we're trying to be a specialized tool just for this specific transition.
leephillips•6h ago
That makes sense, especially the issue with macros. As many people have pointed out, since TeX is not just markup but an actual programming language, its output can not be determined, in the general case, without running the source through the TeX interpreter. Of course, the same is true of Typst.
democat•4h ago
You are absolutely spot on. Both systems are Turing-complete, so a perfect conversion without a full runtime execution is theoretically impossible for the general case. That's exactly the trade-off Tylax makes: we aren't trying to be a full TeX engine (which would be overkill and slow). Instead, we aim to cover the "99% use case" of academic and technical writing—where macros are mostly used for shorthand, notation aliases, or simple formatting, rather than complex computation. Our "limited macro expander" is the middle ground: it's dumb enough to be fast and safe (no infinite loops), but smart enough to handle the \newcommand shortcuts that riddle almost every paper. It's about being pragmatically useful rather than theoretically perfect
holg•23h ago
nice job! so i tried around and so far am impressed, anyhow:

\newcommand{\foo}[1]{\bar{#1}} \renewcommand{\bar}[1]{\foo{#1}} % mutual recursion \foo{x} \def\x{\y}\def\y{z}\x % chained expansion

+>

#set page(paper: "a4") #set heading(numbering: "1.") #set math.equation(numbering: "(1)") /* \foo / / \y /

\foo{x} → \bar{x} → \foo{x} → ∞ Expected: hit depth limit, emit warning, output either x or the unexpanded \foo{x} Actual: /

\foo */ — silently converted to a comment, lost the argument x entirely

democat•10h ago
Thanks for the stress test! You are absolutely right, and I really appreciate you catching this edge case.

I've traced the issue in the codebase: 1. The recursion depth limit *is* triggering correctly (preventing an infinite loop). 2. However, when it bails out, it returns the partially expanded macro call (e.g., `\foo{x}`). 3. Since the macro definition was removed during the preprocessing step, the parser then sees `\foo` as an unknown command and converts it into an error comment, accidentally discarding the argument `{x}` in the process.

*The intended behavior* should definitely be to preserve the content (the `x`) even if the macro logic fails. I will fix the fallback logic to ensure it fails gracefully without eating the arguments.

Thanks again for the sharp eye! These kinds of checks are super helpful.