Nicholas

Software should serve the people who use it. As more of it is built to extract rather than contribute.

I build open-source software worth depending on.

Projects

  • Marshal

    Manage all your MCP servers from one native desktop app, with built-in tunneling through OpenAI MCP Tunnel or ngrok.

    Rust · GTK

  • Viewfinder

    Use Instagram on the Linux desktop with an unofficial native client for messaging, Reels, and your feed.

    Rust · GTK

  • Untrack Core / Web

    Strip tracking parameters from URLs using uBlock Origin and AdGuard filter lists. Available as a Rust library and a web app.

    Rust · Svelte · Typescript

  • Compat

    Search Steam games and check their ProtonDB ratings from a native Linux app.

    Python · GTK

GitHubTwitterEmail

Marshal

Manage all your MCP servers from one native desktop app, with built-in tunneling through OpenAI MCP Tunnel or ngrok.

  • Rust
  • GTK
GitHub

About the project

Marshal is a native Linux app for managing Model Context Protocol (MCP) servers from one place.

MCP servers are easy to write and tedious to run. Each one has its own command, arguments, environment variables, working directory, transport, and networking needs. Running several usually means a pile of terminal sessions and config files. Marshal gives each server a persistent home where you configure it once, then start, stop, and monitor it from one window.

It can also expose local servers through OpenAI MCP Tunnel or ngrok. That matters when a server depends on local files, dev tools, databases, or hardware but still has to be reachable from a remote AI client. Instead of deploying it publicly or wiring up networking by hand, you let Marshal manage the tunnel alongside the server.

Marshal is the operational layer MCP doesn't ship with: configure a server once, see its state at a glance, and reach it from wherever you need it.

Next projectViewfinder

Viewfinder

Use Instagram on the Linux desktop with an unofficial native client for messaging, Reels, and your feed.

  • Rust
  • GTK
GitHub

About the project

Viewfinder is an unofficial native Instagram client for Linux.

Instagram has no Linux app, and most desktop alternatives are web wrappers. Viewfinder builds its own GTK interface on top of Instagram's services, with support for messaging, Reels, Stories, profiles, Explore, and media browsing.

Because it isn't wrapping the website, it can be designed for the desktop instead of inheriting a mobile layout. Navigation, media playback, notifications, keyboard shortcuts, and window behavior all work the way a Linux app should.

Under the hood, Viewfinder talks to Instagram's web-facing APIs and maps their responses into models the GTK interface can use. Much of the engineering is keeping that layer maintainable against an undocumented API that can change without notice.

Next projectUntrack Core / Web

Untrack Core / Web

Strip tracking parameters from URLs using uBlock Origin and AdGuard filter lists. Available as a Rust library and a web app.

  • Rust
  • Svelte
  • Typescript
Preview GitHub

About the project

Untrack is a Rust library and CLI that strips tracking parameters from URLs using the same $removeparam rules as uBlock Origin and AdGuard filter lists.

Most URL cleaners rely on a hardcoded list of parameter names like utm_source or fbclid. Untrack implements the filter syntax those lists actually use, including domain restrictions, exceptions, regular expressions, $important, $badfilter, and !#if directives. Because the rules come from maintained lists rather than the app itself, it keeps up as tracking patterns change.

It's also conservative about what it touches. Kept parameters stay byte-for-byte identical to the input, with the same encoding, order, casing, and fragment. Nothing is parsed and rebuilt. Every removal records the rule that caused it, so you can see exactly why a URL changed.

The project is split into three crates. The core engine does no I/O and can be embedded in any Rust application. untrack-lists fetches, caches, and updates remote filter lists, including their includes. The CLI ties the two together.

Next projectCompat

Compat

Search Steam games and check their ProtonDB ratings from a native Linux app.

  • Python
  • GTK
GitHub

About the project

Compat is a native Linux app for searching Steam games and checking their ProtonDB ratings.

Proton has made most Windows games playable on Linux, but results still vary. A game might run perfectly, need a specific Proton version or launch options, or break because of anti-cheat, graphics drivers, or particular hardware.

ProtonDB tracks most of this, but checking it means leaving Steam, opening a browser, and searching for each game by hand. Compat turns that into one step: search for a title and see how it's reported to run.

It's deliberately not a launcher or a Proton configuration tool. It answers one question quickly: how well should this game work on Linux before you install it or start troubleshooting?

Next projectMarshal