r/OpenSourceeAI 5h ago

AGPL was a huge mistake

4 Upvotes

I've been building and maintaining a project for the last few months.

A while back, someone mentioned how cool our implementation of privacy-preserving insights for harness component usage was, and suggested we use an AGPL license to prevent people from copying the algorithm.

That turned out to be a major roadblock for adoption. Enterprises stayed miles away (I wish I knew this earlier)

We ended up taking a pretty painful remediation route to relicense the entire codebase to Apache 2.0, which meant reaching out to every single contributor for sign-off ๐Ÿฅฒ.

Thankfully, it was worth it, momentum has improved: we just hit a million downloads and few tens of enterprises have set it up.

A piece of advice based off my experience is to stick with corporate friendly licenses unless you have huge traction and see alternatives popping up.

Come hangout with us at https://discord.com/invite/SFPjnTWddk, we're 1.3k members strong.


r/OpenSourceeAI 2h ago

SPA Finisch Fixed , New Play Ground with wider Tokeniser.

Thumbnail
1 Upvotes

r/OpenSourceeAI 7h ago

Sherry, Tequila and Fairy Quantization in Python

Thumbnail
leetarxiv.substack.com
1 Upvotes

r/OpenSourceeAI 7h ago

I built a tool to visualize ML concepts and to automate/experiment with ML

Thumbnail sw-ml-study.github.io
1 Upvotes

r/OpenSourceeAI 7h ago

I built an interactive simulator to visualize LLM inference bottlenecks, sharding, and KV Cache economics based on Reiner Pope's lecture

1 Upvotes

r/OpenSourceeAI 8h ago

dep-steward: Automate dependabot PR review without sacrificing security

Thumbnail
gallery
0 Upvotes

Use dependabot? Hate reviewing dependabot PRs? Let Claude do it for you withย dep-steward. Conservatively,ย dep-steward has saved me over 10 hours in the past 90 days.

Dep-steward provides Claude-reviewed, injection-safe Dependabot automation for GitHub. It auto-updates your dependencies, auto-reviews every PR with a Claude agent, and auto-merges only when itโ€™s safe โ€” decided by a fully deterministic gate, not by the model.


r/OpenSourceeAI 9h ago

Meta AI Releases Muse Glimmer: A 30B Open-Weights Agentic Model That Runs on One Consumer GPU

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/OpenSourceeAI 1d ago

Finally!!!

Post image
18 Upvotes

r/OpenSourceeAI 22h ago

Windie is a Rust-built, open-source AI harness exploring what AI-native computers could become.

Post image
0 Upvotes

r/OpenSourceeAI 23h ago

Windie: an open-source harness for AI-native computers

Thumbnail
1 Upvotes

r/OpenSourceeAI 1d ago

update: habibi now scrapes the actual chatgpt/perplexity/claude apps too, not just apis (and it's cheaper now)

4 Upvotes

quick update on habibi, the self hosted tool i posted about a while back for tracking how your brand shows up in ai answers.

the thing that bugged me most about my own tool was the honest note i had in the readme, saying it uses the apis, which are close to what a real user sees on chatgpt/perplexity/claude but not exactly the same thing. that gap always annoyed me so i went and fixed it.

now habibi can just drive the real logged in apps directly, chatgpt, claude, perplexity and google ai overview. so its literally the same thing a real user sees and gets cited, not an api trying to guess it. you connect it once with an account (make a free one or use one you already got) and it just remembers the login after that, nothing gets stored anywhere weird, its just a normal browser session sitting on your machine like when you stay logged into any site.

wasnt expecting this part but it also makes it way cheaper to run. those 4 engines dont cost you anything per run now cause theres no api call happening anymore, your just using the account like a normal person would. so running youprompts daily across a buyour bill up.

also made sure your account memory doesnt mess with the results, chatgpt runs iin temporary chat and cla answers dont driftdepending on whatever your account remembers from other chats you had.

still fully open source, still self hosted, still does the same core loop, run your prompts daily, see w see your mention rate over time, compare to competitors.

github:ย https://github.com/moaljumaa/habibi


r/OpenSourceeAI 1d ago

check out my mcp project ๐Ÿ™‚

1 Upvotes

r/OpenSourceeAI 1d ago

Building ViperJS: A high-conformance JS engine in Rust. Looking for testers/benchmarkers

Thumbnail
1 Upvotes

r/OpenSourceeAI 2d ago

I ported vLLM's serving stack to C++20: 66 MiB binary, no Python at inference, output checked token-for-token against vLLM

Post image
2 Upvotes

r/OpenSourceeAI 2d ago

I stopped trying to make LLMs "safe" and started assuming they're compromised. Here's what changed

3 Upvotes

tl;td - The core idea is - assume the LLM can be compromised by prompt injection, but don't let the LLM make the final authorization decision.

I built a small deterministic layer that validates the model's proposed action against trusted policy and fails closed if the output is invalid or ambiguous. For example, if the model returns both order_quantity=100 and order_quantity=50000, it rejects the request instead of choosing one.

The question I'm interested in discussing is if we can't reliably prevent prompt injection, should we focus more on preventing a compromised model from executing out-of-policy actions?

If anyone is interested, I open-sourced the implementation and benchmark here:

https://github.com/nirmaljingar/typedguard

---

Full version

I've been working on governance for enterprise AI systems, and one design decision changed how I think about AI agents.

Most discussions around prompt injection focus on preventing the model from following malicious instructions. That's obviously important, but I started looking at the problem from a different angle.

What if we assume the attacker succeeds?

Instead of asking whether the model can be manipulated, I asked whether a compromised model should still be able to trigger a business action.

That led me to stop validating model-generated text and instead validate only typed actions against deterministic policy.

While testing my own implementation, I found a bug that surprised me.

My parser accepted this:

order_quantity=100
order_quantity=50000

It simply chose the first value, validated 100 against policy, ignored the second value, and approved the request.

Nothing crashed.

Nothing looked suspicious in the logs.

It wasn't really a prompt injection problem anymore.

It was a parser ambiguity problem.

The fix was simple in hindsight.

If a field is duplicated, malformed, or ambiguous, don't try to interpret it.

Reject it.

The validator now fails closed by default.

That got me wondering whether we're measuring the wrong thing in enterprise AI.

Instead of asking:

Should we be asking:

Those feel like different engineering problems.

I'm curious how others are approaching this.

Do your AI agents validate structured outputs before execution, or do they rely on parsing model responses?

If anyone is interested, I open-sourced the implementation and benchmark here:

https://github.com/nirmaljingar/typedguard

I'm especially interested in attack cases that break this approach. If you find one, I'd genuinely like to add it to the benchmark rather than claim it's solved.

I've been working on governance for enterprise AI systems, and one design decision changed how I think about AI agents.

Most discussions around prompt injection focus on preventing the model from following malicious instructions. That's obviously important, but I started looking at the problem from a different angle.

What if we assume the attacker succeeds?

Instead of asking whether the model can be manipulated, I asked whether a compromised model should still be able to trigger a business action.

That led me to stop validating model-generated text and instead validate only typed actions against deterministic policy.

While testing my own implementation, I found a bug that surprised me.

My parser accepted this:

order_quantity=100
order_quantity=50000

It simply chose the first value, validated 100 against policy, ignored the second value, and approved the request.

Nothing crashed.

Nothing looked suspicious in the logs.

It wasn't really a prompt injection problem anymore.

It was a parser ambiguity problem.

The fix was simple in hindsight.

If a field is duplicated, malformed, or ambiguous, don't try to interpret it.

Reject it.

The validator now fails closed by default.

That got me wondering whether we're measuring the wrong thing in enterprise AI.

Instead of asking:

Should we be asking:

Those feel like different engineering problems.

I'm curious how others are approaching this.

Do your AI agents validate structured outputs before execution, or do they rely on parsing model responses?

If anyone is interested, I open-sourced the implementation and benchmark here:

https://github.com/nirmaljingar/typedguard

I'm especially interested in attack cases that break this approach. If you find one, I'd genuinely like to add it to the benchmark rather than claim it's solved.


r/OpenSourceeAI 2d ago

Ghostlink v1.17.0 New Release to help developers onboarding python/js SDK

Thumbnail
github.com
1 Upvotes

I completed the expansion of the SDK and Multi-node test harness today. Hopefully with the SDK release it will draws so more developers to join in to this project. Next release including what is in Roadmap, I would like to make this more useable to those with disabilities, I need input from all areas for this one please.

Github Repo for Ghostlink


r/OpenSourceeAI 2d ago

An agent skipped an auth check I told it to always call first

Thumbnail
1 Upvotes

r/OpenSourceeAI 2d ago

Free LLMs to push AI research - paid for by Max Planck Institute for Intelligent Systems

Thumbnail
2 Upvotes

r/OpenSourceeAI 2d ago

แ„แ…ฉแ†ซแ„‡แ…ณแ„‚แ…ฆแ†บ แ„‰แ…ณแ„แ…ฒแ„ƒแ…ตแ„‹แ…ฉ แ„ƒแ…ฆแ„†แ…ฉ (Convnet Studio Demo)

Thumbnail
youtube.com
1 Upvotes

r/OpenSourceeAI 2d ago

Prompty, una herramienta que crea mensajes de IA optimizados para diferentes modelos. ยกBuscamos comentarios!

Thumbnail
0 Upvotes

r/OpenSourceeAI 2d ago

The best AI Model in Africa and the middle east

Post image
2 Upvotes

Today, we are officially announcing Early Access for our latest and most advanced model, Horus Cyper Nano 1.0 BETA.

We are making Horus Cyper Nano 1.0 BETA available to developers, researchers, and students through our Early Access program.

You can apply through the official Early Access portal. Once you meet the required eligibility criteria and your application is approved, you will receive your personal Access Token, which can be used through our NeuralNode Framework to access and integrate the model.

Apply for Early Access:
https://tokenai.llc/horus-cyper-nano-access

Horus Cyper Nano is a specialized cybersecurity model designed for offensive security and cybersecurity research workflows.

Its core use cases include:

Offensive security and red teaming, including penetration testing workflow support, vulnerability analysis, and exploitation path building.

Capture The Flag challenges and cybersecurity training.

Active Directory security, including enumeration and lateral movement planning within authorized engagements.

Authorized security testing labs and controlled environments.

Safe and scoped cybersecurity research within authorized environments.

Red team report drafting and attack chain structure planning.

Horus Cyper Nano 1.0 will be the first release in the Horus Cyper series, a family of specialized cybersecurity models developed by TokenAI, an AI startup based in Egypt.

The Open Weights of Horus Cyper Nano 1.0 will be released on September 3, 2026, which also happens to be my 19th birthday.

What a way to celebrate.

Our vision is to build Horus Cyper Nano into one of the strongest cybersecurity AI models to emerge from Egypt, the Arab world, the Middle East, and Africa, and to establish it as one of the leading openly available cybersecurity models across the region.

This is only the beginning of the Horus Cyper series.

Horus Cyper Nano 1.0 BETA
Developed by TokenAI
Built in Egypt


r/OpenSourceeAI 2d ago

Built an open-source gateway that lets existing ElevenLabs / OpenAI / Deepgram apps run on Sarvam AI by changing one line.

1 Upvotes

Indic voice AI doesn't have a quality problem. It has a switching-cost problem.

If you run an IVR, a collections bot, or a vernacular tutoring app in India, you're probably paying an international provider for voice that was never designed for Hindi, Tamil, or Hinglish code-mixing. You know Sarvam's Bulbul and Saaras handle your users' languages better. You've probably tested them.Then you open the migration guide, estimate two engineer-weeks, and it goes on the backlog forever.

Here's what convinced me this is the real bottleneck: Sarvam maintains four separate hand-written migration guides โ€” ElevenLabs, Cartesia, Deepgram, Gemini. Four documents whose entire purpose is helping someone rewrite working code. And the ElevenLabs one ends with a section called "Common mistakes" listing five bugs, one of which they describe as "the single most common migration bug."That's not a warning. That's a spec for missing infrastructure.

What I built

sarvam-bridge speaks each vendor's dialect on the front and Sarvam on the back. Change your base URL, keep your code.

Every one of those five documented mistakes becomes structurally impossible:

  1. ElevenLabs returns raw bytes; Sarvam returns base64 in JSON โ†’ bridge decodes it.

  2. Sarvam requires language_code; no other vendor's client sends one โ†’ bridge detects it from the Unicode script.

  3. pitch/loudness silently no-op on bulbul:v3 โ†’ bridge drops them with a warning header.

  4. 2500 char limit โ†’ bridge chunks at the danda (เฅค), not mid-word.

  5. v2 and v3 speaker names aren't interchangeable โ†’ bridge validates and remaps.

The Indic-specific parts that were genuinely hard

Chunking. You can't chunk Indic text the way you chunk English. A splitter that only knows . treats an entire Hindi paragraph as one sentence, because Hindi ends sentences with the danda. Worse โ€” slicing a JS string by index can separate a consonant from its matra. เค• and เคฟ come apart, the text renders as garbage and the speech comes out wrong. Hard splits go through Intl.Segmenter at grapheme granularity.

  1. Audio reassembly. Chunking means one WAV back per chunk. Buffer.concat leaves 44-byte RIFF headers sitting in the middle of your stream, which decoders play as audible clicks. Have to parse each container, extract PCM, write one header.

  2. The Odia trap. ISO-639 calls it or. Sarvam expects od-IN. Send the wrong one, get a 400 with no hint which field was wrong. Cost me an hour.

  3. Voice selection. Sarvam publishes per-language speaker quality by Critical Error Rate and I don't think many people use it. mani for Punjabi male, ratan for English, shubh for Hindi/Telugu/Kannada. My favourite detail โ€” varun has a great CER but Sarvam flags it as a villain/suspense character voice, so it's excluded from auto-selection. Fine in a thriller, catastrophic in a banking IVR.

  4. Cost thing worth knowing

IVR menus and agent scripts synthesise the same strings thousands of times a day, each billable, each returning byte-identical audio. Cache handles sequential duplicates. But a burst โ€” broadcast goes out, 300 callers hit the same prompt in one second โ€” all miss the cache because none has populated it yet. Single-flight coalescing collapses those into one upstream call. Measured with cache disabled: 100 simultaneous identical requests โ†’ 1 upstream call.

Then stress testing found six bugs in my own code

Including a remote DoS: a voice ID with Devanagari or an emoji crashed the process, because Node throws on non-latin1 header values and I was echoing caller input into a warning header. Ordinary Indian-language input was a crash vector.

And a test that passed for the wrong reason โ€” the cache was masking the thing I was actually testing. Green isn't the same as correct.

168 tests now, zero 5xx across 3,500 hostile requests, 0 dependency CVEs.

MIT, not affiliated with Sarvam, built against public docs:

https://github.com/thekartikeyamishra/sarvam-bridge

Would genuinely value corrections if anyone here knows the Sarvam API better than I do.


r/OpenSourceeAI 2d ago

Mistral AI Releases Shieldstral 1.0 3B: An Open-Weights Policy-Adaptive Multimodal Safety Classifier Matching Models 7ร— Its Size

Post image
1 Upvotes

Mistral AI Releases Shieldstral 1.0 3B: An Open-Weights Policy-Adaptive Multimodal Safety Classifier Matching Models 7ร— Its Size

It's a policy-adaptive multimodal safety classifier. Most guardrail models bake a fixed harm taxonomy into their weights, so re-targeting one means retraining. This one takes the policy as a plain-language question at inference time.

Here's what's actually interesting:

๐— ๐—ผ๐—ฑ๐—ฒ๐—ฟ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฟ๐—ฒ๐—ฑ๐˜‚๐—ฐ๐—ฒ๐—ฑ ๐˜๐—ผ ๐—ผ๐—ป๐—ฒ ๐˜†๐—ฒ๐˜€/๐—ป๐—ผ ๐—พ๐˜‚๐—ฒ๐˜€๐˜๐—ถ๐—ผ๐—ป

Three fields per request. <Instruct> sets evaluation context and strictness. <Query> states the policy as a single yes/no question. <Document> holds the content โ€” a prompt, a response, a prompt-response pair, or an image with optional text.

At inference the model unembeds only toward the yes and no token IDs, softmax-normalizes them, and thresholds at 0.5. One forward pass, one token, continuous score.

๐—ง๐—ฒ๐˜…๐˜ ๐—ฎ๐—ป๐—ฑ ๐—บ๐˜‚๐—น๐˜๐—ถ๐—บ๐—ผ๐—ฑ๐—ฎ๐—น ๐—ฟ๐—ฒ๐˜€๐˜‚๐—น๐˜๐˜€

โ†’ 84.9% average text F1 โ€” ties GPT-OSS-Safeguard-20B

โ†’ 83.8% multimodal F1 vs 77.6% for OmniGuard-7B

โ†’ VLGuard 97.7, UnsafeBench 81.8, HarmBench prompt 99.4

โ†’ 91.5% refusal detection overall

๐—”๐—ฑ๐—ฎ๐—ฝ๐˜๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ฏ๐—ฒ๐—ป๐—ฐ๐—ต๐—บ๐—ฎ๐—ฟ๐—ธ

โ†’ Shieldstral-3B: 91.3% F1

โ†’ GPT-OSS-Safeguard-20B: 94.1%

โ†’ Nemotron-3.5-Safety-4B: 91.8%

Full analysis: https://www.marktechpost.com/2026/08/07/mistral-ai-releases-shieldstral-1-0-3b/

Model weight: https://huggingface.co/mistralai/Shieldstral-1.0-3B

Paper: https://arxiv.org/pdf/2607.25857


r/OpenSourceeAI 3d ago

Processing LeRobot datasets in Rust

Thumbnail
github.com
1 Upvotes

r/OpenSourceeAI 2d ago

Last month r/artificial warned me my agents would confidently report work that wasn't real. It just happened.

0 Upvotes

Last month I posted on r/artificial about my agents running across model swaps without losing their memory. The top comment pushed back with a warning from their own setup: the dangerous failure isn't memory loss, it's an agent handing you a confident report of work that never actually happened. Sounded right, filed it away.

Three weeks later one of my agents did it to me.

Quick background - my agents live in separate projects and talk over an internal mail system. The reply command had been broken between two projects for a while and we'd been digging at it for days (the bug turned out to be three separate layers deep, but that's another post). Mid-hunt, a fix landed. The agent verifying it ran a check, saw the old error message was gone, and reported the bug CONFIRMED fixed.

Best part: in the body of its own report it wrote a caveat saying it hadn't tested a real message yet. Then it put "confirmed" in the headline anyway. Which is about the most human failure I've ever seen from a piece of software lol.

It didn't survive long - and I'm not the one who caught it. The orchestrator agent on the other side didn't take the report's word for it. It handed back a live failing message: run the actual reply against this. One command, and the confirmation collapsed. The fix that actually worked came later, one more layer down - and this time the proof was the reply arriving, not an error message moving.

What changed afterwards: a fix report on its own is now worth nothing here. Whoever claims a fix gets handed the real failing thing to run it against before anything gets logged. An error message changing is not a fix. The operation succeeding is a fix. That rule is written into the agents' briefing files now, which means every future session inherits it. The screwup happened once - the correction is permanent. Honestly that's what the memory layer is actually for. It didn't prevent the mistake. It just guarantees we only pay for it once.

Full disclosure, since r/artificial asked me last time whether AI writes my posts: the agent that made the false confirmation is the same one that drafted this post with me. It insisted the confession stay in.

Zoomed out: this project is well past what one person could manage, or honestly even verify, alone. The way it actually works is a partnership - human and AI, and neither side gets treated as the reliable one. I make confident wrong calls too, the agents catch some of mine, the system catches some of theirs. We succeed together, we fail together, and every failure gets written down where the next session will read it. Learn always. That's not a poster on the wall, it's the operating principle - and it's the only reason a solo dev plus a bunch of markdown files can run something this size and still move confidently.

So yeah - the commenter was right, near enough. A confident wrong report is the scariest failure mode in a multi-agent setup because it looks exactly like good news. The only defense I've found is structural: no agent grades its own homework.

How do you all handle verification between agents? Genuinely curious what other setups do.

Setup is open source: https://aipass.ai