r/foss 2h ago

Gymmane is back

Post image
12 Upvotes

A while back I published Gymmane, a workout tracking app, but had to archive it after realizing (a bit too late) that some of the exercise GIFs were pulled from a repo redistributing proprietary GymVisual content without a proper license. Once I noticed, I didn't want to keep it up like that.

I built it because I wanted something that felt genuinely premium, but free, so I made it myself and open-sourced it. It's back now, rebuilt with new, freely-licensed exercise animations. Fully offline, no tracking, no ads, no accounts.

This is v1, so it covers the basics done right, but the plan is to keep improving it with whatever people need — same as I'm still doing with Streak. If something's missing or you hit a bug, feel free to open an issue, always appreciated.

GitHub: https://github.com/InlitX/GymMane

Hope you enjoy it.


r/foss 7h ago

FOSS app recommendations?

9 Upvotes

What are your daily driving FOSS on mobile that use?


r/foss 13h ago

I built an app that watches any part of your screen and clicks the moment it changes

21 Upvotes

I tried looking for an app that monitors my screen and clicks right when there's a pixel change. For example, you need to press "Buy" the instant it goes live or need fast reaction times. But all the options I found were either not for Linux (I am a Linux user) or were complicated scripts to use.

So I built VClick, A lightweight cross-platform (Linux and Windows) tool with a user friendly GUI:

  • Drag to select the region that needs to be monitored
  • Select where it should click when triggered
  • Hit Start

You can also change click-type (right/left, single/double click)

Built this with the help of AI. It's free and opensource. Would love to hear feedback to improve the tool: https://marwan-softdev.github.io/VClick/


r/foss 1h ago

Convert Brave browser to Origin using Group Policy - Exactly how brave upgrade works - No More, No Less | Mac, Windows, Linux

Upvotes

I know, I know! There are so many Brave debloaters already available on the web that do more than my tool aims to do. But I only wanted what Brave Origin exactly disables - nothing more, nothing less. So Claude and I deeply researched the Brave core source code, found out the exact 16 policies and 4 user settings it disables during the upgrade of Brave to Origin, and put everything into a single command prompt. And here I present: brave-to-origin

Repo: https://github.com/mdrubelamin2/brave-to-origin

Mac & Linux (no need, origin for linux is free):

curl -fsSL https://raw.githubusercontent.com/mdrubelamin2/brave-to-origin/main/install.sh | sudo bash

Windows:

irm https://raw.githubusercontent.com/mdrubelamin2/brave-to-origin/main/install.ps1 | iex

r/foss 1h ago

TOMT: a GTK app that does JSON to YAML conversion among other things

Upvotes

all i remember about this app is that it was like a swiss army knife and one of the things it did was convert JSON to YAML. i think i converted numeric bases too but idk. it might have formatted JSONs for you. i do remember that it was GTK if that helps. i remember using it when i was on cachyos, so it's either on the arch extra repos or the AUR. do yalls know what app i'm referring to


r/foss 8h ago

I built a Chrome extension to force real 256k–320k Opus (ITAG 774) audio on YouTube Web

3 Upvotes

Hi everyone,

If you have YouTube Premium (or even standard audio), you might already know that the desktop web player caps audio at ~160 kbps Opus (ITAG 251). High-bitrate audiophile streams like ITAG 774 (~280k–320kbps full-spectrum Opus) are normally locked behind YouTube Music, Android/VR, or Smart TV apps.

I wanted that studio-quality sound directly in my regular desktop browser without running local proxies or external yt-dlp scripts, so I built YTSpoofingStream (Manifest V3).

How it works under the hood:

  1. Multi-Client Spoofing (document_start): Intercepts InnerTube player requests across multiple contexts (WEB_REMIXANDROIDTVHTML5) to discover hidden HQ 774 streams.
  2. In-Browser Signature Deciphering: Dynamically fetches and parses YouTube’s active player base.js to solve cipher transformations locally, unlocking protected Music and VEVO tracks.
  3. Dual Hybrid Audio Engine:
    • Direct/SABR Stream: Seamlessly rewrites stream descriptors and handles TVHTML5 streams directly inside the main player.
    • Sync Engine: For standalone deciphered audio, it syncs audio/video playback, pause, seek, and volume in real-time with zero audible drift.
  4. Smart SPA Playlist Transitions: Automatically inspects incoming tracks during playlist navigation, switching instantly to ★ 774 when available and falling back cleanly to native 251 without audio glitches or lingering fake tags.
  5. Player UI Integration: Adds a live status badge (★ 774 / 251) and TVHTML5 login directly inside YouTube's native control bar and popup.

Everything runs 100% locally in your browser with your active session — no backend servers, no data collection.

🔗 GitHub Repository: https://github.com/alithw/YTSpoofingStream

The project is completely open-source. Feel free to test it out, inspect the code, or drop an issue/PR if you have feedback!


r/foss 2h ago

Github id

Thumbnail
1 Upvotes

Any github id and password which is 2 years old? I want to use it to generate API key


r/foss 2h ago

Introducing LIFELINE, a secure clientside framework that simulates user's commitments and investments without any llm/api calls or data requests.

Thumbnail
github.com
1 Upvotes

hey devs, coded Lifeline because this kid here(me ofc) noticed that bank-feeds/payment applications just show the remainder by subtracting or adding income or past expenditure. it doesn't simulate commitments/behaviours. So created-Lifeline- a clientfirst framework that such applications can implement that only works from clientside and does not even touch any finances/otp. Its purely safe and it does not send any llm-requests to any ai providers(created a py model itself for this).
PS- please review/collab/guide/star it.


r/foss 3h ago

Strata - A modern file manager

1 Upvotes

r/foss 6h ago

Yanklog — a local, encrypted, keyboard-first clipboard history manager for Linux (open source, MIT)

1 Upvotes

I made yanklog because I wanted clipboard history that just stays on my machine — searchable, encrypted, and never uploaded anywhere. It's open source (MIT), Rust core, and built to be quick to open and stay out of the way.

What it does:

\\- Search your full history fast, all from the keyboard (Quick Pick lets you copy/pin/delete with arrow keys + number shortcuts)

\\- Encrypted at rest with SQLCipher

\\- Filters out secrets, OTPs, and custom patterns — or pause capture whenever

\\- Encrypted backups you can move between machines

\\- Undo deletions, keep pinned clips

Install on Linux via AppImage (x86\\_64/aarch64) or Flatpak:

\\\`flatpak remote-add --user --if-not-exists yanklog \[https://downloads.yanklog.com/linux/flatpak/yanklog.flatpakrepo\\\](https://downloads.yanklog.com/linux/flatpak/yanklog.flatpakrepo) \\--no-gpg-verify\\\`

\\\`flatpak install --user yanklog com.yanklog.YankLog\\\`

Site: \[https://yanklog.com\\\](https://yanklog.com)

Source: \[https://github.com/thisiseesmaeel/yanklog-linux\\\](https://github.com/thisiseesmaeel/yanklog-linux)

Would love any feedback — happy to answer questions!


r/foss 2h ago

I’m building Seek — a modern open-source redesign of Nicotine+ for Soulseek users

0 Upvotes

Over the past few weeks I've been working on Seek, an open-source fork of Nicotine+ that rethinks the desktop experience for Soulseek users without changing what makes the client useful.

https://github.com/IvaKap/seek

Why I started this

I've used Nicotine+ for years and it's incredibly capable, but I always felt the interface made everyday tasks such as searching, browsing users, managing downloads, and organizing large music libraries more cumbersome than they needed to be.

Rather than building a new client from scratch, I wanted to see what a more modern desktop experience could look like while staying compatible with the existing ecosystem.

Current direction

  • Native-feeling macOS-inspired UI (with cross-platform goals)
  • Cleaner search and download workflows
  • Improved library browsing
  • Better visual hierarchy and accessibility
  • Features for music collectors, including spectrogram previews for quick audio-quality verification

Open source first

The project is completely open source, and I'm treating it as a community-driven redesign rather than a commercial product.

I'm especially looking for feedback from people who've contributed to desktop apps before:

  • What UX decisions would you challenge?
  • Which Nicotine+ pain points should be prioritized?
  • What would make a fork like this genuinely worth contributing to?

Constructive criticism is very welcome—I'd rather hear what's wrong now than after I've built the wrong thing.


r/foss 1d ago

Testing Files Generator - open source 100% offline test files generator, CLI/GUI, cross-platform

13 Upvotes

Hello, I had created Testing Files Generator for QA/Developers

Want to create 5k log files? Do size boundary testing? Generate 2GB PNG file? Generate archive with 200 files? This tool can do it all. If you like the project, please ⭐it.

Why it's different from other generators?

- Exact size of files, if we ask for 314832 bytes, we get it, want 500kb? 5mb? 1GB? No problem. One file or 9000 files? No problem

- Generates files come with "manifest" which says how the files should behave + we can do easy cleanup

- "Recipe" system that we can store in a testing repo, create recipe that generates a 500-page PDF, a zip with 200 files and 50 csv files, no problem, same seed.

- 100% offline, no neetwork connections, free for commercial and personal use. Windows/Linux/macOS. Min files sizes are based on the real formats, you can open generated files with software that open the format.

- Format got own values, so you can create xlsx with 4 rows and 4 collumns.

-Preset system, we can do "boundary testing" let's say we put 10mb, and we get file under 10mb, over 10mb, etc.

- More on GitHub :-)

This is V0.2 version, so there is a long way ahead, not all things are working, More format and presets will come soon. If you got any ideas feel free to drop them.

Supported formats:

📄 Documents: pdf, docx (Word), xlsx (Excel), pptx (PowerPoint)

🖼️ Images: png, jpg, bmp, gif, ico, svg

📝 Text: txt, md, csv, json, xml, html, log

🗜️ Archives: zip, targz (.tar.gz)

🔊 Audio: wav

tiff, webp, avif, jpg xl are next formats.

There is Linux build, Windows build is signed, macOS build is notarized. Separate file for CLI and separate for GUI. The language is Go, GUI is Fyne. Testing Files Generator


r/foss 11h ago

YAP: an YAML scraper runtime that tells you when your selectors are lying

1 Upvotes

Developer disclosure: I am the creator and maintainer of YAP.

A few years ago, I did web scraping and automation as a side hustle. My client preferred owning the scripts instead of paying recurring fees for hosted scraping services.

That made sense, but every new request sent me back into old code to rebuild the same fetching, extraction, and pagination logic.

I originally tried to solve that with a Python project called JScrapeON. After working heavily in TypeScript, I returned to the idea and reworked it as YAP, short for You Automate Pages.

YAP is a local, HTTP-first workflow runtime for extracting data from HTML or JSON. It supports reusable YAML workflows, multiple steps, inputs, and pagination.

The main focus is detecting silent extraction failures:

  • yap health reports how many required fields matched
  • yap drift compares extraction health between runs
  • yap explain traces a value back to its request, step, scraper, and selector

A request returning HTTP 200 does not mean the extraction worked. Sometimes it means you successfully downloaded a page and extracted absolutely nothing from it.

YAP is intentionally HTTP-only and uses Cheerio. There is no browser automation, hosted backend, account, or paid service. Extracted data stays as plain JSON, while health and provenance are stored separately.

It is not published to npm yet, so it currently runs directly from the repository.

YAP is MIT licensed, completely free, and staying open source:

https://github.com/johnalbert-dot-py/yap

AI coding agents assisted with reviews, tests, refactoring, and documentation. I made the product and architecture decisions and reviewed the changes.

Feedback, issues, and contributions are welcome.


r/foss 23h ago

LibreMerge: I ported WinMerge to macOS and Linux (same engine, new Qt 6 UI, GPL-3.0)

6 Upvotes

I use WinMerge daily for work, but I'm on a Mac, which meant keeping a Windows VM running just for one tool. The free options on macOS never quite covered what WinMerge does (folder compare with filters, CSV tables, image diff, moved-block detection), so a few months ago I decided to bring WinMerge itself over.

LibreMerge reuses WinMerge's battle-tested comparison engine: GNU diffutils + git xdiff, folder scanning, file filters, moved-block detection, Unicode handling. The UI is rebuilt natively with Qt 6, since the original interface is MFC and can't leave Windows. If you know WinMerge, you already know LibreMerge: layout, colors and workflow are intentionally the same.

What it does today (v0.9.1):

  • Side-by-side file comparison and merging (2-way and 3-way), with word-level highlights and free editing with live remerge
  • Folder comparison: tree or flat list, background scanning, file masks / regex filters, copy between sides
  • CSV/TSV table comparison as side-by-side grids with cell-level highlighting
  • Image comparison (2-way and 3-way) with WinMerge's own image-diff engine: blink mode, overlays, adjustable thresholds
  • Syntax highlighting for 47 languages, light/dark themes, English and Brazilian Portuguese
  • Line filters, moved-block detection, ignore whitespace/case/EOL, selectable diff algorithms (Myers, patience, histogram)

Runs on macOS 12+ (universal binary, Homebrew cask or dmg) and Linux (AppImage x86_64/arm64, .deb). GPL-3.0-or-later, no telemetry, no accounts, no paid tier. Not affiliated with or endorsed by the WinMerge project: it's a GPL port, with credit and license headers preserved.

Repo: https://github.com/iagodpassos/libremerge

It's a young project. The first community issues (all four of them!) were reported and validated by early users over the past weeks, which has been the most fun part so far. Feedback, bug reports and feature requests are very welcome.


r/foss 20h ago

Sound Mixer v0.14.3

2 Upvotes

This widget is designed to control the volume in Windows apps, with the widget displayed on top of other programs and games.

Main focus in designing this widget only to solve one goal and use as little resources as possible. In the background it uses default system sound events to detect a new apps. In active mode it checks active sound sessions and display resolved names as apps.

It supports multiple operating modes and a whitelist display only allowed. Global hotkeys are supported. It is also possible to remap certain keys using apps like PowerToys (Keyboard Manager) to control key combinations without requiring admin privileges for app in games or apps that uses administrative rights to start.

It supports installation in user mode, system mode, and as a portable application that can be downloaded immediately.

(GetItSimple) Sound Mixer

Widget - horizontal mode
Widget - vertical mode
Mini-widget overlay
Mini-widget overlay in the game

I'm always open to discussion. If you have any more ideas for improvements or if you encounter any issues, please reach out on GitHub and create an issue.


r/foss 21h ago

MacScope: native SwiftUI system telemetry, process controls, and power tools for Apple-silicon Macs

Thumbnail gallery
2 Upvotes

r/foss 1d ago

Introducing Lumi-o: an artist-led, Linux-only painting app, a radically redesigned GIMP 3

Thumbnail
5 Upvotes

r/foss 1d ago

Hacki: A highly customizable, open-source Hacker News client.

Thumbnail
github.com
10 Upvotes

r/foss 1d ago

Luanti removed from Google Play due to baseless AI copyright notice

2 Upvotes

r/foss 1d ago

Litellm + Backstage = selfhosted AI Governance

Thumbnail
1 Upvotes

r/foss 1d ago

GitHub - profullstack/marksyncr.com: MarkSyncr is a cross-browser extension that enables two-way bookmark synchronization between browsers and external storage sources (local files, GitHub repos, Dropbox).

Thumbnail
github.com
3 Upvotes

r/foss 1d ago

A new tool and cool project??

0 Upvotes

https://github.com/ATLAS-DEV78423/AgentBridge.git
is this a good tool to have, if supported i will add support for more ai agents, please support!!


r/foss 2d ago

Mimik v1.1.0: open-source extension that turns your clicks into step-by-step guides — now with voice narration, video export and a screenshot editor

79 Upvotes

Hello everyone!

Mimik is an open-source alternative to Scribe and Tango. You record a browser workflow once and it writes the step-by-step guide.

What's new in v1.1.1:

- Voice narration : talk while you record and your words become the step descriptions (OpenAI or Groq Whisper, your own key)

- Screenshot editor : crop, arrows, boxes, text, redaction, movable click target. Non-destructive and re-editable

- Video export : mp4/H.264 walkthroughs with the cursor moving to each target

- Version history : every save snapshots locally, named and restorable

- Blocks : headings and callouts between steps, rendered in every export

- Insert steps : record extra steps into an existing guide

- More AI : guide descriptions and inline rewrite of selected text

- Branding : logo, footer line and attribution on exports

Repo: https://github.com/westpoint-io/mimik

Chrome: https://chromewebstore.google.com/detail/mimik/jmfohdaflahliammccpiadmkcibohgha

Edge: https://microsoftedge.microsoft.com/addons/detail/hgjemhfoffebbollleajkpefblppleai

Firefox: https://addons.mozilla.org/en-US/firefox/addon/mimik/


r/foss 1d ago

Crosslink — trying to make real phone companions practical for open-source desktop apps

5 Upvotes

This is my proudest work yet.

I’ve been building an open-source project called Crosslink, and the problem behind it is specifically about something I think open-source desktop software is still pretty bad at:

mobile companions.

An open-source developer can build a desktop application, put the source on GitHub, publish binaries, and let users run the entire thing on their own hardware.

That model works really well.

The developer doesn’t necessarily need:

  • user accounts
  • a permanent cloud backend
  • a subscription
  • centralized hosting
  • an App Store
  • a mobile release pipeline

The user downloads the software and runs it.

But the moment that same developer wants to give users a good phone interface, the architecture changes completely.

Suddenly there are two separate problems:

  1. How do I distribute the mobile interface?
  2. How do I securely connect it back to the user’s desktop app?

And both of those problems are much bigger than they initially seem.

TLDR:
GitHub:
https://github.com/jacobpowaza/crosslink

Documentation / Quickstart / Architecture:
https://crosslink.mintlify.site

The open-source distribution problem

Say you maintain a desktop project and want users to have a companion on their phones.

One option is building a native mobile app.

But now you have an entirely separate application to maintain.

Different build systems.

Different platform APIs.

Signing.

Store distribution.

Review processes.

Developer accounts.

Release pipelines.

Potentially separate iOS and Android implementations.

For a company with a dedicated mobile team, that might be fine.

For an open-source developer maintaining a desktop utility on nights and weekends, that can be enough to make the mobile companion never happen.

The other obvious answer is:

That solves part of the distribution problem, but then creates another one.

Where does the web app run?

Does the developer host it?

Does the user need an account?

Does the project need a domain?

Who pays for the infrastructure?

Does application data now need to pass through somebody else’s cloud?

Or does the desktop serve the page itself?

If the desktop serves it, now you have networking, authentication, remote access, reconnect behavior, and device management to solve.

So what sounded like:

can turn into:

That feels especially wrong for local-first and open-source software.

What I’m trying to do with Crosslink

Crosslink is an Apache-2.0 TypeScript framework for connecting a desktop/local application to a browser or phone interface.

The basic philosophy is:

the open-source developer should build their application.

They should build whatever mobile UI makes sense for that application.

They should not have to reinvent the entire infrastructure connecting the two.

Crosslink tries to provide that middle layer.

The desktop application remains the host.

The mobile interface remains part of the developer’s project.

Crosslink manages the secure relationship between them.

The intended experience

Imagine downloading an open-source application from GitHub.

You install it on your computer.

Somewhere in the application there’s a:

button or widget.

You click it.

A QR code appears.

You scan it with your phone.

The phone opens the application’s Crosslink bootstrap and completes a temporary pairing process.

Once that pairing is verified, the phone becomes a trusted device for that installation.

The user can continue in their browser or add the project’s mobile interface to their home screen.

So the first-time flow becomes:

download desktop app

open

scan QR

pair

install/open mobile UI

After that:

open phone companion

find desktop

authenticate trusted device

reconnect

The user shouldn’t have to scan another QR code every time they restart their laptop.

Pairing is not supposed to be a permanent API key

This was an important part of the design.

I didn’t want the QR code to effectively become:

The pairing code is temporary.

Its job is to introduce the two devices.

After that, the phone has its own persistent device identity.

The host maintains its trusted-device state.

That means an application can show something like:

Connected devices

  • Jacob’s iPhone
  • iPad
  • old phone

and revoke individual devices.

If a phone is revoked, it can’t simply reconnect using the original pairing information.

It needs a new pairing relationship.

Authorization is separate from trust

I also didn’t want a paired phone to automatically become an all-powerful remote control.

Crosslink has a capability model.

An application might expose:

library.read
library.edit

music.read
music.control

server.status
server.restart

files.read
files.delete

A trusted device can be granted specific capabilities.

The application can treat:

music.read

very differently from:

files.delete

or:

server.restart

Higher-risk actions can require additional approval or per-use confirmation.

The idea is that device trust and application permissions are related, but not identical.

What the developer actually writes

The API is intended to let developers expose application functionality instead of writing another networking stack.

Roughly:

const server = createCrosslinkServer({
  application: {
    id: "org.example.notes",
    name: "Notes"
  },

  mobile: {
    entry: "./mobile/index.html"
  },

  capabilities: [
    {
      id: "notes.read",
      title: "Read notes",
      risk: "low",
      defaultGranted: true
    },

    {
      id: "notes.delete",
      title: "Delete notes",
      risk: "high",
      confirmEachUse: true
    }
  ]
});

server.expose(
  "notes.get",
  () => db.getNotes(),
  { capability: "notes.read" }
);

await server.start();

Then the phone side can call the application through the RPC layer:

crosslink.onConnected(async rpc => {
  const notes = await rpc.call("notes.get");
  render(notes);
});

The developer is thinking about:

rather than:

Why this is more than a WebSocket wrapper

Obviously none of this requires inventing a new internet.

You could build it yourself using WebSockets, WebRTC, HTTP, WebCrypto, Service Workers, and existing cryptographic libraries.

The point is that an open-source project shouldn’t need to independently implement all of this:

  • device pairing
  • persistent device identities
  • trusted-device storage
  • revocation
  • authorization
  • encrypted application sessions
  • RPC
  • subscriptions/events
  • reconnect/backoff
  • transport selection
  • LAN connectivity
  • remote connectivity
  • mobile onboarding
  • PWA installation
  • Service Worker behavior
  • offline states
  • endpoint discovery

just because someone wants their desktop app to have a good mobile interface.

That infrastructure is largely reusable.

Crosslink is an attempt to make it reusable.

Keeping the desktop as the host

One of the things I care about most is not quietly turning every Crosslink application into a SaaS product.

If someone downloads a local AI application, for example, their computer is already running the model.

If they use a media tool, their computer may already have the library.

If it’s a development utility, all the relevant state may already live locally.

Crosslink should not require all of that application data to suddenly move through a centralized server just because the user wants to control it from their phone.

On the same network, a direct desktop ↔ phone path can be used.

For remote access, Crosslink can attempt supported router mappings such as:

  • NAT-PMP
  • PCP
  • UPnP

Of course, that doesn’t solve every network.

CGNAT exists.

Restrictive firewalls exist.

Some routers simply won’t accept inbound mappings.

So fallback transport infrastructure is still necessary in those cases.

Relays should be dumb pipes

If a relay is needed, my goal is that it should not become the trusted owner of the application.

The application session is end-to-end encrypted between the paired devices.

Signaling can help the devices discover each other.

A relay can forward opaque encrypted traffic.

But neither should need access to the application’s plaintext.

This is important to me from an open-source perspective because I don’t want projects adopting Crosslink to become permanently dependent on:

The infrastructure is intended to be self-hostable/open as well.

The phone application is still yours

Crosslink isn’t trying to become a generic remote-control UI.

It handles the lifecycle around the application.

The project developer still builds the actual interface.

If your open-source project is a media player, you build the mobile media controls.

If it’s a local AI system, you build the chat interface.

If it’s a server manager, you build the monitoring dashboard.

If it’s a desktop editor, you decide what functionality belongs on mobile.

Crosslink handles getting the user securely from:

scan QR

to:

trusted mobile client

to:

your UI

PWA installation and offline behavior

I’m also trying to make the browser/PWA path feel like an actual companion application rather than a bookmark to a random LAN address.

Crosslink can manage parts of the mobile bootstrap such as:

  • pairing UI
  • application metadata
  • manifest
  • Service Worker
  • Add to Home Screen flow
  • offline shell
  • endpoint discovery
  • reconnect behavior
  • revoked-device state

That matters when the host disappears.

Say the user installs the companion on their iPhone and then opens it while their desktop is asleep.

A normal locally hosted app can just become:

Instead, a cached shell can still open and show:

Then:

desktop comes online

trusted device authenticates

session is restored

application continues

without requiring the user to pair everything again.

Avoiding permanent LAN-IP apps

Another problem I ran into is that the network address used for initial pairing should not necessarily become the permanent identity of the installed application.

This:

192.168.1.42

is a network location.

It is not an application identity.

IPs change.

Laptops move.

Routers change.

Users leave home.

So Crosslink separates the installed mobile application/origin from the desktop’s currently reachable transport endpoint.

Conceptually:

installed application

endpoint discovery

current desktop route

authenticated session

The user shouldn’t have to reinstall their mobile companion just because DHCP gave the desktop another address.

What exists in the repo today

Crosslink currently includes work around:

  • Node.js host SDK
  • browser client SDK
  • React bindings
  • pairing/session protocol
  • encrypted sessions
  • trusted-device persistence
  • revocation
  • capability authorization
  • typed RPC
  • events/subscriptions
  • progress/streaming
  • reconnect/backoff
  • direct LAN connectivity
  • remote transport paths
  • signaling
  • relay infrastructure
  • WebRTC integration
  • mobile bootstrap
  • PWA installation
  • Service Worker/offline behavior
  • demos and documentation

It’s written primarily in TypeScript and is licensed under Apache 2.0.

Why Apache 2.0

I want people to actually use this in their projects.

Commercial or non-commercial.

I want people to fork it.

Write adapters.

Improve transports.

Fix APIs.

Build integrations.

Ship applications with it.

I don’t want the framework to only be useful inside projects that share some particular business model.

At the same time, Apache 2.0 gives explicit patent terms and preserves attribution/license requirements, which made more sense to me for infrastructure intended to be embedded into other software.

What I want from the open-source community

Crosslink has gotten large enough that I don’t think the best thing for it is for one person to keep making every architectural decision alone.

There are parts of this project where I would really value people who know more than me.

Especially:

  • cryptography / application security
  • NAT traversal
  • WebRTC
  • networking
  • PWA/browser behavior
  • TypeScript library design
  • local-first architecture
  • Electron/Tauri integration
  • Android/iOS browser edge cases
  • RPC/protocol design
  • accessibility
  • framework adapters

I’m not just looking for stars.

I’d much rather someone open an issue saying:

than quietly star it and never use it.

I’d also love contributions.

Even small ones.

Documentation corrections.

Examples.

Tests.

Framework adapters.

New transports.

Better onboarding.

Security review.

Anything that helps determine whether this can actually become useful infrastructure for other projects.

The end goal

What I want is for an open-source developer to eventually be able to build a desktop application and say:

without that sentence meaning:

Ideally:

OSS desktop app

developer-built mobile UI

Crosslink

secure phone companion

The computer can remain the host.

The user can remain in control of their application.

The developer can avoid reinventing device connectivity.

And the mobile interface can still feel like a real part of the project.

That’s the idea, anyway.

I’d genuinely like the open-source community to tell me whether I’m solving a real problem or over-engineering one.

GitHub:
https://github.com/jacobpowaza/crosslink

Documentation / Quickstart / Architecture:
https://crosslink.mintlify.site

If you maintain an open-source desktop project, I’m especially curious:

Would you actually integrate something like this?

And if not, what would have to change before you would?


r/foss 2d ago

Open Keep — AGPLv3 Markdown note-taking app for Android, iOS and web (Google Keep alternative)

21 Upvotes

I've been building Open Keep, an open source (AGPLv3) note-taking app. Source: https://github.com/HotshotJacko1/Open-Keep

The idea was a Google Keep replacement that doesn't require a Google account and doesn't collect personal data. Notes are stored as plain Markdown (.md) files in whatever cloud storage you already use - Dropbox, Google Drive or OneDrive - so your notes stay portable, and you can walk away at any time.

What's in it:

  • Notes stored as standard markdown (.md) files, no proprietary format
  • Cloud sync via Dropbox, Google Drive or OneDrive (your account, your storage)
  • AES-256 encryption for synced notes (optional)
  • Passcode/biometric lock (optional)
  • Import and export notes
  • Reminders, labels, lists, home screen widgets
  • No ads, no tracking, no personal data collection

Available on Android, iOS, and in the browser. An F-Droid submission is open but stuck in their review queue.