Saleh
Isfahan, Iran · 32.65°N 51.67°E

Saleh

Full-stack developer and AI engineer. I build agents that cite their sources, ask before they act, and survive a restart.

Computer engineering · University of Isfahan Scroll
01 About
Portrait of Saleh at a café table, a green drink in the foreground

I like projects that go all the way through.

I'm Saleh (Mohammad Saleh Mahdinejad on paper), a computer engineering student at the University of Isfahan, on GitHub since December 2023. The Persian-language products and open-source tools further down this page are what I've been working on most recently.

Most of what I build has a model somewhere inside it, but the part that decides whether it holds up is everything around the model: retrieval that finds the right page, a queue that survives a crash, a confirmation step before anything irreversible.

I work in Persian and English, and so do the tools I make.

Based in
Isfahan, Iran
Studying
Computer Engineering, University of Isfahan
Languages
Persian, English
On GitHub
since December 2023
02 Selected work

Four open-source tools,
two products in production.

Looping showreel rendered entirely from code
Agent skill
01 / 04MIT

Cinewright

Teaches coding agents to make cinema-grade video, entirely from code.

  • 239 techniques in 17 families: 32 transitions, 50,000-particle morphs, a from-scratch 3D renderer, a sound engine.
  • Every frame is a pure function of time, so an agent can render one frame, look at it, fix one number and try again.
  • Persian and right-to-left text are first-class. No dependencies, no stock footage, no video model.
  • JavaScript
  • WebGL
  • Node.js
  • FFmpeg
  • Agent skills
Avorythm showing a video with dual subtitles and a target-language picker
Extension + desktop app
02 / 04MIT

Avorythm

Hear every voice, or just read it, in your language.

  • Live translated speech with original and translated captions, and four independent outputs: original audio, dub, source subtitles, translated subtitles.
  • A Chrome and Edge extension, on the Chrome Web Store, plus a desktop app for Windows, macOS and Linux that also processes uploaded audio and video.
  • A synchronized player records a tab, dubs it and exports audio, subtitles and video. No analytics, no telemetry.
  • Python
  • JavaScript
  • Gemini
  • Groq Whisper
  • FFmpeg
  • Chrome MV3
SourceLens workspace: sources on the left, a chat in the middle, answer evidence on the right
Research workspace
03 / 04v2.2 · MIT

SourceLens

Multilingual research, grounded in evidence.

  • Agentic RAG: the model plans several searches, picks its filters, and says so when the sources don't support an answer.
  • Chroma vectors fused with SQLite FTS5. PDFs, images, audio, video and web pages, in English and Persian, left-to-right and right-to-left.
  • Research Studio: 13 workflows that turn evidence into audio overviews, editable slides, video, reports, quizzes and maps.
  • Python
  • FastAPI
  • SQLite FTS5
  • Chroma
  • Node.js
  • FFmpeg
Web · feeds GitHub Reddit Telegram X evidence LLM router Telegram
Self-hosted
04 / 04MIT

Newsroom

A news desk that runs on your own machine.

  • Collects from websites and feeds, GitHub, Reddit, Telegram and X, with a cursor, health check and cooldown for every source.
  • Evidence lineage lives in PostgreSQL. Reports go through a bounded multi-provider LLM router and arrive on Telegram.
  • English or Persian reports with Jalali dates. New sources and model routes stay off until you approve or validate them.
  • Python
  • PostgreSQL
  • Docker
  • Telegram
  • LLM routing
03 Approach

How I build agents.

Ground every claim.

Answers point at the page they came from. When the sources can't support an answer, the system says so instead of improvising.

Keep actions on a leash.

Tools have schemas. Irreversible steps wait for a yes. New sources and model routes stay switched off until someone has checked them.

Make long work survive.

Queues, checkpoints, retries and cancellation. Progress you can watch, and recovery when the process restarts.

Check the shape before the content.

Model output is parsed against a schema. A malformed tool call is repaired or retried, never trusted.

05 On GitHub, live
Public repositories
20
Followers
40
Stars across my repos
—
06 Contact

Have something
worth building?

msmahdinejad@gmail.com

Email is best. I'm also on Telegram and LinkedIn.