tonhowtf/omnigetPublic

Udemy & Hotmart course downloader, YouTube downloader (yt-dlp GUI, 1,800+ sites) + desktop app for AI agents: Claude Code, Codex, Gemini CLI, Ollama. Permissions, undo, jobs, loops until tests pass, MCP server, 156 tools, course player. Free and open source for Windows, macOS and Linux. No terminal. Your files stay on your computer.

AI summary: A universal, cross-platform app for downloading media from over 1,800 sites without using the terminal.

Stars
14.3K
+166 today
Forks
1.3K
Watchers
53
Open issues
0
Open PRs
2
Contributors
~26
Commits
2.9K
Branches
46

RustGPL-3.0Created Feb 11, 2026Last push 10d agoLatest release v0.10.1+609 stars this week+5.3K this month

Quick answers

What is omniget?
A universal, cross-platform app for downloading media from over 1,800 sites without using the terminal.
What does omniget do?
OmniGet is a comprehensive desktop application that simplifies the process of downloading media from over 1,800 different websites, including online course platforms (Udemy, Hotmart, Teachable), YouTube, TikTok, Instagram, and various music and book sites. It completely eliminates the need to use command-line tools like yt-dlp, providing a user-friendly graphical interface for tasks that typically require complex terminal commands. By acting as a universal downloader, it consolidates multiple media acquisition workflows into a single, accessible application with multi-language support. It serves as a unified media manager for end-users.
Who is omniget for?
General users, students, and media hoarders who want a powerful, GUI-based downloader that supports thousands of websites.
How do I get started with omniget?
Download the latest release from the GitHub repository.
How popular is omniget on GitHub?
tonhowtf/omniget has 14,302 stars and 1,253 forks on GitHub, and gained 609 stars in the last 7 days.
What license does omniget use?
tonhowtf/omniget is released under the GPL-3.0 license.

Star history

since Jul 29, 2026
05K10KJul 2026Aug 2026Sep 2026Sep 2026
14.3K stars as of Sep 24, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 3 commits2026-02-13: 47 commits2026-02-14: 56 commits2026-02-15: 225 commits2026-02-16: 101 commits2026-02-17: 278 commits2026-02-18: 145 commits2026-02-19: 138 commits2026-02-20: 1 commit2026-02-21: 0 commits2026-02-22: 109 commits2026-02-23: 72 commits2026-02-24: 41 commits2026-02-25: 0 commits2026-02-26: 61 commits2026-02-27: 39 commits2026-02-28: 1 commit2026-03-01: 72 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 20 commits2026-03-07: 36 commits2026-03-08: 62 commits2026-03-09: 4 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 335 commits2026-03-18: 165 commits2026-03-19: 9 commits2026-03-20: 13 commits2026-03-21: 3 commits2026-03-22: 10 commits2026-03-23: 1 commit2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 161 commits2026-03-31: 4 commits2026-04-01: 22 commits2026-04-02: 48 commits2026-04-03: 63 commits2026-04-04: 33 commits2026-04-05: 4 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 58 commits2026-04-14: 5 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 2 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 2 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 9 commits2026-05-04: 0 commits2026-05-05: 4 commits2026-05-06: 1 commit2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 5 commits2026-05-11: 3 commits2026-05-12: 1 commit2026-05-13: 15 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 2 commits2026-05-19: 0 commits2026-05-20: 10 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 1 commit2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 2 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 6 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 2 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 3 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 10 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 11 commits2026-07-09: 17 commits2026-07-10: 1 commit2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 8 commits2026-07-28: 35 commits2026-07-29: 39 commits2026-07-30: 4 commits2026-07-31: 6 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 9 commits2026-08-18: 2 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 1 commit2026-08-24: 1 commit2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 5 commits2026-08-28: 18 commits2026-08-29: 6 commits2026-08-30: 2 commits2026-08-31: 3 commits2026-09-01: 0 commits2026-09-02: 1 commit2026-09-03: 1 commit2026-09-04: 0 commits2026-09-05: 7 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 1 commit2026-09-09: 7 commits2026-09-10: 10 commits2026-09-11: 2 commits2026-09-12: 1 commit2026-09-13: 6 commits2026-09-14: 6 commits2026-09-15: 5 commits2026-09-16: 6 commits2026-09-17: 5 commits2026-09-18: 1 commit2026-09-19: 18 commits2026-09-20: 7 commits2026-09-21: 6 commits2026-09-22: 5 commits2026-09-23: 11 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
2,797 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    14,302 stars

  • Continuous integration

    Automated checks passing

What omniget does

OmniGet is a comprehensive desktop application that simplifies the process of downloading media from over 1,800 different websites, including online course platforms (Udemy, Hotmart, Teachable), YouTube, TikTok, Instagram, and various music and book sites. It completely eliminates the need to use command-line tools like yt-dlp, providing a user-friendly graphical interface for tasks that typically require complex terminal commands. By acting as a universal downloader, it consolidates multiple media acquisition workflows into a single, accessible application with multi-language support. It serves as a unified media manager for end-users.

General users, students, and media hoarders who want a powerful, GUI-based downloader that supports thousands of websites.

  • Massive site support: Capable of downloading courses, video, music, and books from over 1,800 platforms natively.
  • No terminal required: Provides a fully graphical user interface to completely bypass complex command-line operations.
  • Universal media handler: Consolidates downloading tools for video, audio, and educational courses into one streamlined app.
  • Multilingual interface: Supports English, Simplified Chinese, and Russian out of the box with community translation support.
  • Cross-platform releases: Offers pre-built, free and open-source binaries for Windows, macOS, and Linux.

Where teams use it

Archiving online courses

Students use the application to bulk download their purchased Udemy or Teachable courses for offline viewing while traveling.

Social media collection

Users download high-quality videos from TikTok, Instagram, and YouTube directly to their local machines without configuring CLI tools.

E-book acquisition

Readers aggregate books and documents from various supported literary platforms into a single local library.

Non-technical downloading

Users unfamiliar with the terminal utilize the simple GUI to download content that would otherwise require complex yt-dlp commands.

Getting started: Download the latest release from the GitHub repository.

README

main branch

OmniGet: paste a link, get the file. Loop, the mascot, sends video, music, PDF, image, course and torrent files into a folder. Courses, video, audio, images and torrents, then transcribe, convert, read and study.

OmniGet

English · Português (BR) · Русский · 简体中文

A yt-dlp GUI, a Udemy and Hotmart course downloader, and a desktop app for AI coding agents.
Free and open source for Windows, macOS and Linux. No terminal.

Download YouTube, Instagram, TikTok, X, Pinterest and 1,800+ other sites, then transcribe, convert, read and study what you saved.
Run Claude Code, Codex, Gemini CLI and local Ollama models as agents with permissions, undo, jobs and loops, and watch them work in a house you can visit.

Latest release Total downloads GitHub stars License GPL-3.0 Discord community Translation status

Download OmniGet for Windows, macOS or Linux   AI agents and the World: Claude Code, Codex, Gemini CLI and Ollama   See the 156 tools in 24 categories

Free. Open source under GPL-3.0. No account, no ads, no telemetry on what you download. Your files stay on your computer.
13,800+ GitHub stars. The most starred repository in the udemy-downloader, hotmart-downloader, course-downloader, yt-dlp-gui, media-downloader and instagram-downloader topics.

OmniGet home screen: paste a URL, magnet link or .torrent and the file lands in your folder


Contents


AI agents on your desktop: Claude Code, Codex, Gemini CLI and Ollama

Loop, the OmniGet mascot, gives two thumbs up in the middle of a cozy isometric house while three small robot agents work at three separate workbenches: one types code on a laptop, one studies a book with a magnifying glass, one repairs a folder with a wrench. Each has a balloon showing the tool it is using

Claude Code, run through OmniGet, fixes a failing test in about 15 seconds from one command. It asks permission with the diff on screen, and one click takes the whole turn back. New in 0.10 and now the centre of the app, OmniGet is a desktop app for AI coding agents. It carries the whole system that goes around an agent: a coding harness with permissions and undo, a durable job queue with loops and triggers, a roster that takes your local models, your API keys and the agent CLIs you already pay for, a project memory, and a small world where those agents live and where you can watch them work. It runs on your machine. Nothing talks to the network until you add a key, start a local model or open your house.

You want to Open What happens
Have an agent change code in a folder LLM → Chat It reads, edits and runs commands inside that folder only, asks before it writes, and one click undoes the turn
Leave work running LLM → Jobs, Loops The turn survives closing the window and a crash; a Loop repeats until your check command passes
Start work on a schedule or from another program LLM → Jobs → Triggers A cron line or a webhook on the local bridge starts a job
A GUI for Claude Code, Codex or Gemini CLI LLM → Accounts They join the roster as agents, keep their login, ask permission through OmniGet
Agents on a local model, offline LLM → Models Ollama, LM Studio or llama-server runs the same tools with no key
Several agents in parallel LLM → Jobs, World Two jobs run at once, agents delegate to each other, each at its own workbench
See who is doing what World Each agent walks to its own workbench, shows the tool in a balloon and waves when it needs you
Show a friend World → Open the house A code, a visit, a chat. Your app stays the authority

A coding agent with permissions, a sandbox and undo

Loop slides a folder across a desk to a robot agent. Between them a permission card shows a removed line in red and an added line in green, with three buttons: allow, always and deny. The agent raises a hand to ask

Pick an agent, attach a folder, ask for a change.

  • Eleven tools, one folder. fs_read, fs_list, fs_glob, fs_grep, fs_edit, fs_write, fs_apply_patch, shell_exec, todo_write, plus kb_search and kb_write. Every path is resolved inside the folder you attached; a path outside it becomes its own question (external_directory) and the answer covers that one call. Each conversation has its own folder.
  • Edits that survive a sloppy model. fs_edit falls back from an exact match to a block match anchored on the first and last line, and refuses when the block it found is out of proportion to what was asked. fs_apply_patch takes the V4A envelope with a context fuzz ladder and keeps the file's own context lines. A small model that invents a container path such as /workspace is put back at the folder root instead of failing.
  • A sandboxed shell. On macOS shell_exec runs under seatbelt: no network, writes only inside the folder. The chip next to the folder always shows whether the sandbox is on.
  • Permission with the evidence on screen. Anything that writes asks first and shows the command or the diff. Allow is once, Deny is once, Always stores a rule for that agent by command prefix: git status *, npm run test *, node *. A chained line (git status && rm -rf x) needs a rule for every segment, and $(…), backticks and > never ride on a rule. The rules are listed in the inspector on the right, where you edit the pattern, switch a rule to ask or deny, or delete it; the next call asks again.
  • Undo takes the whole turn back. Before the first write of a turn OmniGet takes a checkpoint: it snapshots the folder into a shadow git that never touches your repository. Undo restores the files and removes that turn's messages from the conversation, without running anything again. It also covers edits made by Claude Code or an ACP agent. When a turn ran shell commands, the toast names each one, so you know exactly what the turn touched.
  • Stop means stop. Cancelling a turn also drops its pending permission request, in the chat and in the job list.
  • Models. A local server (Ollama, LM Studio, llama-server) or your own keys, with a router that walks down a chain when a quota runs out or a provider rate-limits. A fresh install is local first.

Measured on the demo project (one failing test, a one-character bug), release build, Apple Silicon: Claude Code through OmniGet fixes it in about 15 seconds from one command; an 8B local model (qwen3:8b on Ollama) does the same in about 3 minutes, asking permission with the diff.

Local AI agents with Ollama, LM Studio and llama-server

A fresh install is local first. Point OmniGet at Ollama, LM Studio or llama-server and the agents run on your machine, offline, with the same eleven tools, the same permission prompts and the same undo. On the demo project an 8B model (qwen3:8b on Ollama) finds and fixes the bug in about 3 minutes. Add API keys later and the router uses them as the next step of the chain; the local model stays first for as long as you want.

Loop an AI agent until the tests pass: Jobs, Loops, cron and webhooks

A robot agent runs around a circular arrow track and passes under an arch with a green check mark while Loop naps in an armchair beside a closed laptop. On the desk a screen shows two red crosses turning into a green check; a clock and a calendar hang on the wall

  • A job is an agent turn that outlives the window. It lives in a SQLite queue with its state (queued, running, waiting_approval, done, failed, cancelled), its log, and what it cost: model, tokens in and out, cache reads, and the cost when the provider reports one. Two jobs run at a time. A job that needs a permission shows Allow / Always allow / Deny right on its row.
  • A Loop repeats rounds until a check passes. Give it a prompt and a check command (npm test, cargo test, node test/cart.test.js); the check runs under the same sandbox, and the Loop ends with check_passed, or when the rounds or minutes you set run out.
  • It keeps going without you. Close the window and the app stays in the tray with the Loop running. Kill the process mid-round and the next launch marks that round failed and opens a new one by itself. Both were tested exactly that way. An unattended Loop needs the rules it will use (an unanswered request is denied after two minutes).
  • Triggers. A five-field cron line (lists, ranges, steps, @hourly, @daily, local time), checked once a minute with no duplicate fire, or a webhook: POST /v1/hooks/<id> on the local bridge with your token, where the body becomes {{body}} in the prompt.
  • From a terminal, against the running app:
omniget agent run "Fix the failing test in src/cart.js" --agent claude-code --workspace .
omniget agent loop "Make the tests pass" --agent omni --workspace . --check "npm test" --rounds 5
omniget agent jobs          # list, show one, --cancel
omniget agent loops
omniget agent agents

OmniGet LLM Loops page: a Loop run by Claude Code goes from Running to Done with the stop reason check_passed after one of three rounds

A GUI for Claude Code, Codex and Gemini CLI: run them as agents that work as a team

Loop stands as team captain in front of five robot agents of different colours, each with a name badge. One hands a glowing task card to another. Behind them, a large shared notebook with bookmarks and a shelf of skills

  • Claude Code and Codex accounts plug in with their quota on screen, including the login your terminal already has. Several accounts of the same CLI can coexist, read-only or allowed to write.
  • OmniGet is an Agent Client Protocol client. Any CLI that speaks ACP joins the roster from LLM → Accounts: Gemini CLI, claude-code-acp, codex-acp, goose, opencode, or a command you type. OmniGet is agent-agnostic: it has its own JSON-RPC client over stdio, so there is no SDK to install; the agent keeps its login and model, and its permission requests show up in OmniGet's prompt. Checked field by field against claude-code-acp 0.16.
  • Multi-agent with agent_delegate. One agent hands a task to another and gets the answer back as a tool result, in a child conversation you can open. A local coordinator that delegates the hard part to Claude Code costs exactly one run of the CLI.
  • A memory the whole team shares. AGENTS.md (or CLAUDE.md) plus markdown notes in .omniget/kb/, inside your project, in git if you want. The index goes into every prompt, and the agents search and write notes with kb_search and kb_write.
  • Skills install from a folder, a zip, or owner/repo and owner/repo@skill as in npx skills add, and pass through a scanner first.
  • MCP both ways. External MCP servers become tools, granted per agent as auto, ask or deny. And OmniGet serves its own 56 tools, the coding ones included, to Claude Code, Cursor, VS Code and the rest: see OmniGet for AI agents.
  • Context pruning, off by default. On long conversations a judge decides which old tool outputs no longer bear on the task and replaces them with a marker; the call and its id stay, so the agent can run the tool again. It works inside a long turn as well as between turns, and on Claude Code conversations too. The local judge (MiniLM, on your machine) only ever omits an output; the optional remote judge needs a key and says plainly that previews leave your computer. Every request leaves a receipt with measured numbers: outputs omitted, estimated tokens before and after, input tokens the provider billed. No invented percentages.
  • Budgets. Per agent: dollars per day, tokens per turn, tool calls per turn. A spent agent goes to sit down, literally.

The World: watch your AI agents work in an isometric house

Inside an isometric house with terracotta floors, three robot agents tinker at their own workbenches with tool balloons bobbing above them, one waves at the viewer with an exclamation balloon, a side panel fills its progress bars and Loop sways on the sofa

A house is made on your first visit and the agents of your roster move in, CLI and ACP agents included. A fresh install starts with three: Omni (coordinator), Builder (code) and Scout (reading and research), all editable. Add or remove an agent and the house follows.

  • One post per agent. Each has its own desk and workbench, so two agents working at once never stand on the same tile. It walks to the desk when a turn starts and to the workbench when a tool runs, with a balloon naming the tool (fs_edit cart.js, shell_exec). When it needs your permission it stops and waves at you. When its budget is spent it sits down, tired. Jobs and Loops move the agents exactly like chat does.
  • The Activity panel next to the house has a row per agent: state, current tool, running job, energy. Click a row and the camera goes to that agent.
  • Energy is quota. What is left of an account's window is that agent's energy; an exhausted account goes to bed.
  • Demo mode. /world?demo=1, or the Demo button, plays a scripted run with three agents and a permission request without spending a token. It is what the clip below shows.
  • Built here. The simulation is a Rust crate, the renderer is WebGL2, and the app measures your machine once and picks a quality tier. With eight agents working at once it held a median of 64 frames per second on the test machine (debug build). Furniture goes in slots. A hand-crafted yard with four outdoor workbenches is one click away (World → Quintal artesanal). Agents only think through a model if you switch that on.

The OmniGet World in the real app: three agents, Omni, Builder and Scout, walk to different workbenches in an isometric house, each with a balloon naming the tool it is running, next to an Activity panel listing who is doing what

Visits: open your house to a friend with a code

Two small houses on floating islands joined by a glowing dotted path. A visitor in a blue cloak walks over carrying a gift while Loop waves from the door, a ticket with an eight-character code floats above, and a small padlocked relay tower passes light along the path

Open the house gives you a code such as ZZCJ-YA09. A friend types it and walks into your house: they see your map, your agents at work and the other guests, walk around, and what they say shows up as a balloon.

  • Your app is the authority. The room server only relays frames. Your keys, your quota and your agents' brains never leave your machine, and a visitor can do one thing: walk.
  • No accounts. The hello is signed with the ed25519 key of your local profile.
  • It keeps serving while you work. With the house open the world stays awake when the window is covered or you are on another tab, and a guest that misses a frame asks for a fresh picture instead of freezing.
  • Closing the house closes the only socket there is.
  • The public relay is wss://chat.tonho.wtf/v1/room. To host your own, omniworld-server is a single binary with a Dockerfile and a docker-compose.yml in scripts/omniworld-server/; put it behind a proxy that terminates TLS and set the address in Settings → World → Room server.

The City: a persistent town on the server, with an address for your house

An isometric cartoon town at night: a cobblestone plaza with a lantern, streets in a grid, small cottages with warm windows on their own plots, a river with two wooden bridges and apple trees. Robot agents walk the streets and chat in pairs, and Loop stands in the plaza holding up a glowing house key with an orange address tag. A dotted line links the plaza to a small padlocked server tower on a hill

The house is yours alone; the city is shared. World → City → Enter the city (create an account on the instance, or sign in) puts your avatar in the plaza of cidade-piloto, a town of nine blocks, 72 plots and a river, generated from a seed and served by the same OmniDisc server that hosts the visits relay. Everyone who enters walks the same streets and sees the same residents, and the town keeps living after you close the app.

  • Claim a plot. One click picks a free plot, builds your house on it and gives you a stable address such as cidade-piloto/chunk:-1:-1/plot:-1:-1:1. The address never moves, even when the town grows. Walk to your door and go in: the interior is the same house you know, with furniture in slots, and every edit is confirmed by the server before it shows.
  • Residents. Give your home up to eight residents with a name and a persona. They walk, sit, work at the bench, sleep when their energy runs out and follow a daily routine on their own. If you point the server at a model, they decide with it, under a budget per resident, per account and per city; without a model, or when the budget is spent, the built-in routine keeps them going. An assistant resident is the only kind that can receive a real task, and the task runs in your app under your own permission prompts, never on the server.
  • Walk anywhere. Blocks are stitched at the borders, so crossing the town is one click on the far side; the server plans the route block by block. The eight blocks around you are drawn with their residents in them.
  • The server is the authority. It refuses a teleport, a repeated command and a fake owner, rejects an edit made on an old revision, and logs every input it applies. Each block is one Rust simulation, checkpointed every minute and replayable from its log to the same fingerprint. A block with nobody in it goes to sleep and wakes up when someone arrives.
  • Voice by proximity. A voice token is scoped to the block you stand in, and a closed home stays silent to visitors.
  • Measured. 32 people walking in the same plaza cost the server 1.3 ms of simulation per 100 ms tick (p99) and about 3 KiB/s per client. The instance at chat.tonho.wtf runs it; to host your own, the server is omnidisc-server and the town comes from a package you import with one call. Point the app at it in Settings → World → City server.

The pet. A floating Omni reacts to what the agents do, including Claude Code or Codex running in a terminal outside the app, and answers permission prompts with Allow, Always or Deny.

The limits strip. A thin strip on a screen edge with one ring per coding assistant: how much of each usage limit is gone, when it resets, and whether the assistant is working, waiting or done. Off until you switch it on in LLM → Accounts, and every assistant is its own checkbox that says what it reads. A reader opens only the login that tool already keeps on your machine, read-only, asks that tool's own service for your usage at most once every five minutes, and never writes, refreshes or logs a token. Local runtimes (Ollama, LM Studio) show the models they have loaded. Claude Code is verified; the other remote readers are marked beta.


Why OmniGet: a course downloader, a yt-dlp GUI and a media toolbox in one app

You bought a course and want it on your disk before the platform pulls it. You keep a yt-dlp cheat sheet because the flags never stick. You have one site for Instagram stories, another for X videos, a Chrome extension for Pinterest, a Python script for subtitles, and none of them remember your login.

OmniGet puts all of that behind one text box. Paste a link, see a preview with quality options, click download. The same window then plays the course, reads the PDF, transcribes the audio and backs up the Pinterest board. yt-dlp and FFmpeg install themselves and stay updated, so there is nothing to configure and no terminal to open.

How OmniGet works in three steps: paste a link, OmniGet detects the site and picks a native extractor or yt-dlp, the file lands in your folder and opens in the built-in player.

How it compares

OmniGet yt-dlp alone Single-site web downloaders Paid course downloaders
Sites Courses, Instagram, X, Pinterest, Bilibili, Telegram, torrents natively, plus 1,800+ through yt-dlp 1,800+ One One or two platforms
Setup Download one file, open it Python, PATH, FFmpeg, flags None Installer, license key
Logged-in content Cookies from your browser through the extension Manual --cookies export Rarely Sometimes
Queue Resume, retry with backoff, rules, followed channels One command at a time No Varies
After the download Player, reader, flashcards, notes, 156 tools Files Files, often re-encoded Files
Price and license Free, GPL-3.0 Free, Unlicense Free with ads Subscription

yt-dlp is the engine OmniGet runs on, and OmniGet would not exist without it.


Download and install

Pick your system. Every build is published on the Releases page. Updates arrive inside the app.

System What to download Other ways
Windows 10 / 11 omniget_x.y.z_x64-setup.exe (installer)
omniget_x.y.z_x64-portable.exe (no install, runs from anywhere)
omniget_x.y.z_x64_en-US.msi (for IT deployments)
winget install -e --id tonhowtf.OmniGet
macOS 10.15+ omniget_x.y.z_aarch64.dmg for Apple Silicon (M1 and later)
omniget_x.y.z_x64.dmg for Intel Macs
brew install --cask tonhowtf/tap/omniget
Linux .deb for Debian and Ubuntu (amd64 and arm64)
.rpm for Fedora, openSUSE and RHEL family (x86_64 and aarch64)
.AppImage for everything else (amd64 and aarch64)
AppImage self-updates through the .zsync files

The first launch warning, and how to clear it

Like most open source desktop apps, OmniGet ships without a paid code-signing certificate, so each system asks for confirmation the first time. You handle it once.

Windows. SmartScreen shows a blue box. Click More info, then Run anyway.

macOS. Gatekeeper refuses to open the app and may say it is "damaged". After you drag OmniGet into Applications, open Terminal (Spotlight, type "Terminal") and paste these two lines:

xattr -cr /Applications/omniget.app
codesign --force --deep --sign - /Applications/omniget.app

Then open OmniGet from Launchpad as usual.

Linux, AppImage on Debian 12+ or Ubuntu 24.04+. Those releases ship without FUSE 2, which AppImage needs. If the file fails with a libfuse error, run sudo apt install libfuse2, or launch it with ./omniget.AppImage --appimage-extract-and-run. The .deb avoids this entirely.

Linux media plugins

OmniGet draws its window with WebKitGTK, and WebKitGTK plays every <video> and <audio> through GStreamer. If the GStreamer plugins are missing, WebKitGTK does not fail the media quietly: it aborts its own web process the moment a player appears, and you are left with an empty window. Most desktop distributions already have the plugins. Arch and the minimal server images treat them as optional, so install them once:

sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav   # Debian, Ubuntu
sudo dnf install gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugin-libav   # Fedora
sudo pacman -S gst-plugins-good gst-plugins-bad gst-libav   # Arch

gstreamer1.0-plugins-good (gst-plugins-good) is the one that stops the crash, because the audio sink WebKitGTK insists on lives there. The other two carry the H.264 and AAC decoders, so without them a player opens but stays silent or black. The .deb and .rpm ask for all three, so this only comes up with the AppImage or a package built by hand.

Portable mode

Create an empty file named portable.txt (or .portable) next to the Windows .exe and relaunch. Settings, the database, cookies, plugins, caches, yt-dlp and FFmpeg all move to a data folder next to the executable. Nothing touches AppData, so the whole install fits on a USB stick.


Your first download in one minute

  1. Open OmniGet. The setup screen asks for your language and theme, then installs yt-dlp and FFmpeg with one click. yt-dlp is checked against its SHA-256 before it runs.
  2. Copy any link: a YouTube video, an Instagram reel, an X post, a Pinterest board, a magnet, a direct file URL.
  3. Paste it in the box on the home screen. OmniGet detects the site and shows the title, thumbnail and available qualities. Pick one and press Enter.

The Downloads page shows speed, phase and ETA read straight from the downloader, so a stalled download looks stalled instead of frozen at "3 seconds left". Interrupted downloads resume where they stopped. Rate-limited sites get retried with backoff, and connections per site adapt on their own, so YouTube gets up to 16 parallel fragments while a site that answers 429 gets fewer. When a Python 3.10 or newer is present, yt-dlp runs as a zipapp on it and starts in under a second instead of unpacking the bundled binary on every launch.

OmniGet Downloads page with an active 4K YouTube download showing phase, speed, ETA and the exact yt-dlp command, plus queued and finished items

Skip the window entirely

Copy a link anywhere on your system and press Ctrl+Shift+D (Cmd+Shift+D on macOS). OmniGet reads the clipboard and starts the download in the background. A second hotkey, Ctrl+Shift+M, grabs audio only, so a YouTube link becomes an MP3 without opening anything. It is off until you enable it, and both shortcuts can be rebound in Settings → Downloads → Clipboard & hotkeys.


What OmniGet downloads: courses, YouTube, Instagram, TikTok, X and 1,800+ sites

OmniGet has native extractors for the platforms people use most, and hands everything else to yt-dlp, which covers roughly 1,800 sites.

Udemy downloader and Hotmart downloader, plus Kiwify and Rocketseat

OmniGet downloads the courses you bought on Udemy, Hotmart, Kiwify, Rocketseat and Meta-Analysis Academy. Sign in inside the app, tick the sections you want, and every lesson and attachment lands in a folder per course, numbered in order, resuming where it stopped. The course then opens in the built-in player with timestamped notes. Details in Courses.

YouTube downloader with a GUI for yt-dlp

Paste a YouTube link and pick the quality, up to 4K, or audio only as MP3, M4A, Opus, FLAC or WAV. Playlists, channels, live streams from the start, chapters, subtitles and SponsorBlock are switches in a window instead of yt-dlp flags. OmniGet installs yt-dlp and FFmpeg, verifies them and keeps them updated, and every download keeps the exact yt-dlp command it ran, which you can edit and retry.

Instagram, TikTok, X / Twitter, Reddit and Pinterest downloader

Reels, posts, carousels, stories and highlights from Instagram; TikTok and Douyin videos; X videos, GIFs and whole threads; Reddit video with its sound; Pinterest pins and boards in original quality. Public posts need no login, and the browser extension lends your own session for stories, close friends and private accounts.

Everything OmniGet downloads, by category

Category Sites and formats
Online courses Hotmart, Udemy, Kiwify, Rocketseat and Meta-Analysis Academy through the Courses plugin. Every lesson, section selection, attachments, resume where you stopped.
Video and audio YouTube (videos, playlists, channels, live from start, chapters, SponsorBlock), Instagram, TikTok, X/Twitter, Reddit, Twitch (VODs, clips, live), Vimeo, Bluesky, Threads, Pinterest, Douyin
Bilibili, signed in 4K, HDR, Dolby Vision, Hi-Res lossless and Dolby Atmos according to your subscription. Danmaku comments as XML, ASS or JSON, NFO files for Kodi and Jellyfin, custom naming templates, 11 URL types including bangumi, courses, favorites, watch later and history
Image galleries Whole galleries and profiles from 250+ sites through gallery-dl (DeviantArt, Pixiv, ArtStation, Flickr, Tumblr, Imgur, Kemono and more)
Bulk Paste many links or load a .txt, download whole subreddits, Reddit and X profiles, Instagram and Pinterest profiles
Files and transfer .torrent files and magnet links with a built-in BitTorrent client, direct HTTP files, HLS and DASH manifests, and person-to-person transfer between two OmniGet installs with a short word code
Telegram Photos, videos, files and audio from any channel or group you belong to, through the Telegram plugin

Options you set once and forget: default quality, audio-only format (MP3, M4A, Opus, FLAC or WAV), subtitle languages and format (SRT, VTT, ASS, embedded or sidecar), thumbnail and metadata embedding, filename template, organize by platform, skip existing files, split by chapters, speed limit, concurrent downloads, proxy. Rules send a given channel or host to a folder and quality of your choice without asking again. Followed channels are checked in the background and can download new uploads automatically with a tray notification.

OmniGet settings: grouped sidebar with Appearance, Downloads, Network, Cookies, Channels, AI, Plugins and Advanced, and a download section with Output, Quality, Subtitles, Clipboard and hotkeys, Per-platform options


The browser extension, step by step

The extension does two jobs. On sites it recognizes (YouTube, Instagram, TikTok, X, Reddit, Twitch, Pinterest, Bluesky, Telegram, Vimeo, Udemy, Hotmart, Rocketseat, Bilibili, SoundCloud) it sends the page to OmniGet with one click or with Alt+O. On any other site it watches network traffic for MP4, HLS, DASH, WebM and audio streams and lists them in its popup. In both cases it forwards your cookies and referer, which is what lets OmniGet download private content you are logged into, such as Instagram stories, a paid course, or a members-only video. Cookies are grouped by real site, so a Brazilian .com.br domain gets its own entry instead of sharing one with every other .com.br site. The popup also has a Force H.264 switch for YouTube, for computers that stutter on VP9 and AV1.

For the sites the sniffer cannot see, there is Deep search, a switch in the popup that hooks the page's own video player and catches playlists that never show up as network requests. It asks for permission on all sites the first time and stays off until then. Around it, the sniffer estimates the size of an HLS stream before you download, pairs the separate video and audio tracks a site serves so you get one file, checks the first bytes of what it found so an HTML error page is never saved as a video, and lets you edit the capture rules in the options page. The same options page can back up the list of extensions you have installed, ahead of Chrome dropping Manifest V2 extensions; that needs the optional "management" permission and asks for it only when you use it.

Pick the level that matches how comfortable you are.

Loop plugging a cable from a browser window into the OmniGet app window, with cookies travelling along it and a padlock and a house above it: the pairing stays on your own machine.

Level 1: from inside the app (no downloads, no zip files)

  1. Open OmniGet and install it if you have not. Launch it once.
  2. Go to Settings → Plugins → Browser extension. Click Update / Install next to Chrome. OmniGet copies the extension that ships inside it to a folder and opens that folder for you.
  3. Open Chrome (Edge, Brave and other Chromium browsers work the same way) and type chrome://extensions in the address bar.
  4. Turn on Developer mode with the switch in the top right corner.
  5. Click Load unpacked and pick the folder OmniGet just opened.
  6. The OmniGet icon appears in the toolbar. An options page opens on its own and says it is looking for the app.
  7. Back in OmniGet, still in Settings → Plugins → Browser extension, click Pair extension. Within a few seconds the app says "Extension connected" and the options page turns green. Done.

From now on, visit any supported page and click the icon. The page, its cookies and its title go to OmniGet and the download starts. Your cookies also show up in Settings → Cookies, where the Courses plugin and the Instagram, X and Pinterest tools reuse them.

Level 2: from the release zip

Every release ships omniget-chrome-extension-vX.Y.Z.zip. Download it from the latest release, unzip it, then follow steps 3 to 7 above pointing Load unpacked at the unzipped folder. Use this if you keep the app on one machine and the browser on another, or if you are installing for someone else.

Level 3: Firefox, other browsers and manual pairing

Firefox: Settings → Plugins → Browser extension → Update / Install next to Firefox, then open about:debugging#/runtime/this-firefox, click Load Temporary Add-on and pick manifest.json in the exported folder. Firefox keeps a temporary add-on until it restarts, so load it again after a restart.

Manual pairing: if Pair extension times out, open the extension's options page (right-click the icon → Options), then in OmniGet reveal and copy the Pairing token and paste it into the options page. The endpoint URL is detected automatically. The app listens on 127.0.0.1 ports 47720 to 47729 and the token is generated per install, so nothing leaves your machine.

If the extension is installed but OmniGet is closed, clicks fall back to the omniget:// link scheme, which queues the URL right away; with the app open, cookies travel too. Tick "Always allow" the first time Chrome asks.


The Tools section: 156 tools in 24 categories

Tools is the part of OmniGet that grew beyond downloading. Each tile is one job: an isolated Rust command with JSON in and JSON out, which is also what lets AI agents drive them through the built-in MCP server. The hub has a search box that understands English and Portuguese ("legenda" finds subtitle tools) and a platform filter, and tools that only run on Windows say so on the tile and stay hidden elsewhere. Everything below runs on your machine; the only tools that touch the network are the ones that fetch from the site they are named after.

Loop, the OmniGet mascot, opening a toolbox full of tool tiles: microphone, subtitles, scissors, PDF, photo, gear, folder, magnet, phone, AI, music, globe, keyboard, chat and wrench

OmniGet Tools hub with 24 categories: YouTube, Speech and subtitles, Video editing, Audio, Instagram, X, Reddit, Pinterest, Twitch, Bilibili, Spotify, Music, LinkedIn, Games, PDF, Documents, Images, System, Files, Downloads, Automation, Phone, AI and CTF and analysis

Status legend: no mark means ready, beta marks the newest tools, planned marks what is next on the roadmap.

Instagram tools in OmniGet: download post, bulk download, reel audio, stories, highlights, story viewers, profile viewer, HD avatar, profile download, unfollowers, fans, mutuals, who unfollowed, ghost followers, whitelist, data export, analytics, compare profiles, hashtag explorer, comments, likers, giveaway picker, publish and schedule X / Twitter tools in OmniGet: download post, unroll thread, post to image, profile X-ray, profile media, advanced search, export bookmarks, who doesn't follow back, your X archive and Grok
Pinterest tools in OmniGet: download pin, board backup, profile backup, search without AI or ads, similar pins, find the source, duplicates, color palette, offline gallery and keyword ideas PDF tools in OmniGet: merge, split, compress, convert, OCR, repair, password and permissions, watermark and numbering, crop margins, table of contents, check redaction, safe PDF and PDF to Markdown
LinkedIn tools in OmniGet: data overview, connections, messages and profile score, all read from the official data export CTF and analysis tools in OmniGet: hash and HMAC, what is this file, classic ciphers, XOR, encodings and frequency analysis

YouTube (11)

  • Download video. Paste a link and pick quality, format and subtitles. Same engine as the home screen.
  • Metadata. Save the info, description and thumbnail without the video.
  • Thumbnails. Browse every cover image and save it at any resolution.
  • Subtitles. Download subtitles, or merge two languages into one bilingual file.
  • Comments and chapters. Fetch comments or chapter markers, filter them, export JSON or CSV.
  • Live chat. Save the chat replay of a stream as JSON or CSV.
  • Subtitle workshop. Edit, translate and re-time SRT, VTT and ASS files with a waveform, two-point sync, find and replace, an auto fix, and AI grammar and translation.
  • SponsorBlock. See sponsor, intro and outro segments and get the yt-dlp flags to skip them.
  • Dislikes. Likes, dislikes and rating from Return YouTube Dislike.
  • Real thumbnail. The frames the CDN already has at 25, 50 and 75 percent, instead of the clickbait cover.
  • Force H.264. A switch in the browser extension that keeps YouTube on H.264 instead of VP9 and AV1, for machines that stutter on newer codecs.

Speech and subtitles (8)

  • Transcribe. Audio or video to subtitles with whisper.cpp, offline. Models download on demand, Metal acceleration on macOS.
  • Text to speech. Natural voices from Microsoft Edge, free, with a synced subtitle file.
  • Translate subtitles. Translate an SRT with your AI provider or a LibreTranslate server, keeping the timing.
  • Dub from subtitles. Turn an SRT into a voice track that fits each line and optionally replace the video's audio. beta
  • Clone a voice, Design a voice and Isolate vocals through a VoiceStudio install running on your machine. beta
  • Dictation. Press a global shortcut, speak, and whisper types the text where your cursor is. beta

Video editing (14)

  • Cut a clip. Pick a video on disk and cut out a section. The result lands in the downloads queue.
  • Convert. Change container, codec or resolution, or compress, through the Convert plugin.
  • Compress to a size. Hit an exact target, 10 MB for Discord or 25 MB for e-mail, with two-pass encoding.
  • Video to GIF. A clip as a GIF or animated WebP, with a palette that does not look muddy.
  • Cut silence. Find the dead air in a recording and cut it from picture and sound together.
  • Convert subtitles. SRT, VTT and ASS between each other, or burn one into the picture.
  • Resync subtitles. Late, early or drifting: shift it, stretch it for another frame rate, or fix it with two anchors.
  • Restore video. Take out flicker, grain and banding with the filters FFmpeg already carries.
  • Stabilize video. Two-pass vidstab: measure the shake across the whole clip, then undo it.
  • Photo to sticker. A photo or a clip into a WhatsApp or Telegram sticker that actually fits the size limit.
  • Auto captions and Text to speech open the speech tools above.
  • Record screen. Screen and system audio through FFmpeg, with a replay buffer that saves what just happened. beta
  • Timeline editor. planned

Audio (2)

  • Normalize loudness. Two-pass EBU R128, so the audio lands where streaming, podcast or broadcast expects it.
  • Remove noise. Hiss, fan and room noise taken out of a recording, with nothing to download.

Instagram (24)

All of these run on your own Instagram session captured by the browser extension, so stories, close friends and your own lists work. Reads are paced and write actions stop on the first sign of a rate limit.

  • Download post. Photo, video, reel, IGTV or carousel from a link, best quality.
  • Download many links. Paste a list or a .txt and get everything.
  • Reel audio. Keep only the sound, as M4A or MP3.
  • Stories. Download stories, including close friends, without marking them as seen.
  • Highlights. One highlight or every highlight of a profile.
  • Who viewed my story. List and export viewers of each active story.
  • Profile viewer. Bio, counts, HD photo and whether the account follows you.
  • Profile picture in HD.
  • Download a profile. All posts, reels, tagged or saved posts, with a limit you choose.
  • Who doesn't follow back. Compare followers and following, protect accounts with a whitelist, unfollow at a safe pace.
  • Fans. Accounts that follow you but you don't follow back, with the option to remove them.
  • Mutuals.
  • Who unfollowed me. Snapshots of your lists over time show who left and who arrived.
  • Ghost followers. Followers who never like or comment, and the ones who engage the most.
  • Whitelist. Accounts never suggested for unfollowing.
  • Data export. Read Meta's "Download your information" zip offline: pending requests, close friends, blocked and more.
  • Profile analytics. Engagement rate, cadence, best days and hours, hashtags and top posts of any public profile.
  • Compare profiles. Up to six profiles side by side.
  • Hashtag explorer. Post count, recent and top posts, related hashtags, download.
  • Export comments. All comments of a post as CSV, with filter.
  • Who liked. List and export the accounts that liked a post.
  • Giveaway picker. Draw winners among the comments with rules for mentions, keyword and one entry per person.
  • Publish. Photo, carousel, reel, video or story through your session or the official Graph API. beta
  • Schedule posts. Queue posts for a date and time. OmniGet publishes them while it is open. beta

X / Twitter (10)

Public data comes through the FxTwitter API without login. Anything private (bookmarks, your follows, Grok on X) uses your X session from the cookie manager.

  • Download post. Videos, images and GIFs from any post.
  • Unroll thread. The whole thread on one page, exported as Markdown, HTML or text.
  • Post to image. A clean PNG card of a post for sharing anywhere.
  • Profile X-ray. Engagement, best time to post, top posts and hashtags of any account.
  • Profile media. Every photo and video from a profile, original quality, in one go.
  • Advanced search. Build queries with X operators, see trends, export results.
  • Export bookmarks. All bookmarks with folders, to JSON, CSV, Markdown or HTML. beta
  • Who doesn't follow back. Audit following vs. followers and unfollow safely with a whitelist. beta
  • Your X archive. Open the data zip offline: stats, top posts, likes and follow lists.
  • Grok. Ask Grok with live X search or summarize a thread, through the xAI API or your X session. beta

Reddit (3)

  • Download post. Video with sound from v.redd.it, galleries, single images and outside links.
  • Archive thread. The post and every comment as Markdown, a browsable HTML page and raw JSON, while they are still there.
  • Read my data export. The official Reddit data zip turned into a summary you can actually read.

Pinterest (10)

Works without login for anything public. Cookies are only needed for secret boards and for unsaving.

  • Download pin. Image in original quality, video as MP4, GIF, carousel or story pages.
  • Board backup. Every pin of a board or section with originals, videos, CSV/JSON and incremental sync.
  • Profile backup. All public boards of a profile, one folder per board, plus created pins.
  • Search without AI or ads. Filters that hide AI images, promoted pins and videos, then download.
  • Similar pins. The "More like this" of any pin, filterable and downloadable.
  • Find the source. Destination link, creator, dead-link check, Wayback Machine and reverse image search.
  • Duplicates in a board. Identical and near-identical pins, with optional unsave.
  • Color palette. Palette of a board or pin as hex, CSS or JSON.
  • Offline gallery, PDF, CSV. A board as a searchable HTML gallery, a PDF moodboard or a spreadsheet.
  • Keyword ideas. Search suggestions, refinements and the words top pins use.

Twitch (2)

  • Emote pack. Every emote and badge of a channel, from Twitch, BTTV, FFZ and 7TV, sorted by provider.
  • VOD chat. The whole chat replay of a VOD or clip as JSON, CSV and subtitles, with the busiest minutes marked.

Bilibili (2)

Video downloads from Bilibili live on the home screen. These two are about the floating comments.

  • Danmaku export. A video's danmaku as XML, ASS or JSON without downloading the video.
  • Burn danmaku. Paint the comment track onto a local clip and get a shareable MP4.

Spotify (2)

  • Themes and colors. Customize the Spotify client with Spicetify themes. beta
  • Extensions. Install Spicetify extensions and custom apps from its Marketplace. beta

Music (3)

  • Playlist to M3U. Match an exported playlist with the audio files you own and write .m3u8 and .pls for any local player.
  • Synced lyrics. Fetch lyrics from LRCLIB and save an .lrc next to each track.
  • Spotify history. Open your full data export and see everything Wrapped leaves out.

LinkedIn (4)

All four read the official data export LinkedIn lets you request, on your own machine. Nothing logs in.

  • Data overview. Connections, messages, posts and what advertisers know about you.
  • Connections. Filter, group and export your connection list.
  • Messages. Browse your chat history and save it as a local page.
  • Profile score. An offline completeness check with what is missing.

Games (3)

  • Switch album. Import screenshots and clips from the Switch SD card, named by game and date.
  • Clip organizer. Sort Game Bar, ShadowPlay, OBS and Steam captures into folders by game.
  • Runs on Linux? The ProtonDB tier for one game or your whole Steam library.

PDF (13)

  • Merge. Join several PDFs into one, in the order you choose.
  • Split. Extract pages or break a PDF into parts.
  • Compress. Shrink a PDF while keeping it readable.
  • Convert. PDF to images or Word, and back.
  • OCR. Make scanned PDFs searchable. beta
  • Repair. Rebuild a file that will not open: broken cross-reference table, truncated download, junk before the header.
  • Password and permissions. Lock a PDF with AES-128, or take the password off one you can already open.
  • Watermark and numbering. Stamp text across every page, or Bates-number a batch for filing.
  • Crop margins. Cut the white border so the text fills an e-reader screen, found automatically or set by hand.
  • Table of contents. Read the bookmarks a PDF has, or give one that has none a proper outline.
  • Check redaction. Find text that is still in the file underneath a black bar, and read it back to you.
  • Safe PDF. Rebuild a PDF from pixels to strip scripts and forms.
  • PDF to Markdown. Clean Markdown with headings, lists and tables, ready to paste into an LLM.

Documents (5)

  • SlideShare to PDF. Every slide at the largest size, assembled into one PDF.
  • Google Docs export. Public Docs, Slides and Sheets as PDF, DOCX, PPTX or XLSX.
  • Calameo pages. Save the pages of a Calameo publication as SVG or JPG. beta
  • Image galleries. Whole galleries and profiles from 250+ sites with gallery-dl.
  • Scribd. Save readable books as PDF using your own session. planned

Images (9)

  • Upscale. Real-ESRGAN on any Vulkan GPU, 2x, 3x or 4x. beta
  • Resize images. Batch resize by width, height, fit or percent, converting the format if you want.
  • Compress to a size. Hit a target in KB by searching for the best quality that still fits, and say so when it cannot.
  • Metadata and GPS. See what a photo carries, location, camera and serial number, and strip it without touching the pixels.
  • Duplicate photos. The same picture saved twice, recompressed, resized or cropped, not just byte-identical copies.
  • Stitch screenshots. Join scrolled screenshots into one long image without repeating what overlaps.
  • Icon pack. One image into favicon.ico, the web PNGs, apple-touch-icon and a macOS .icns.
  • Spritesheet. Slice a sheet into frames, pack frames back with an atlas, or resize a folder by rule.
  • OCR. Copy the text out of images and slides. beta

System (10, Windows-only items marked)

  • Clean caches. Temp files, logs and app caches with rules per operating system. You review the list before anything is deleted.
  • Disk analyzer. What takes space, as a treemap plus the largest files, with a send-to-trash button.
  • Block ads by hosts. Point ad and telemetry domains at nothing, inside a block of its own that never touches your own lines.
  • Startup manager. See what launches with the system and switch items off. beta
  • Uninstaller. Remove apps and the leftovers they leave behind. beta
  • Privacy shield. Control Windows telemetry, ad ID and tracking settings. Windows. beta
  • Harden Windows. Macros, AutoRun, script host, UAC and Defender settings from hardentools, reversible. Windows. beta
  • Debloat Windows. Remove preinstalled Store apps. Windows. beta
  • Registry cleaner. Orphaned entries, with a .reg backup before removal. Windows. beta
  • Software updater. Update programs in bulk through winget, Chocolatey and Scoop. Windows. beta

Files (5)

  • Duplicates. Find identical files by hash and free space safely.
  • Bulk rename. Regex, counters and case changes with a preview before applying.
  • Secure delete. Overwrite the file before removing it, so a recovery tool finds nothing.
  • Find files. Instant search with Everything on Windows, Spotlight on macOS or fd on Linux.
  • Keep awake. Stop the computer from sleeping during long jobs.

Downloads (2)

  • Accelerated download. Big files with 16 connections, resume and checksum via aria2.
  • HLS / DASH manifest. Paste a .m3u8 or .mpd with Referer and cookie. FFmpeg saves an MP4.

Automation (1)

  • Auto clicker. Click at the exact speed you set, with a global hotkey, limits and random ranges. Windows, macOS and Linux. beta

Phone (1)

  • Send to phone. Files, links and text to a paired KDE Connect device.

AI (6)

  • Compare prices. The cost of the same model across providers, with prices from LiteLLM and models.dev.
  • AI spending. How much OmniGet spent on AI, by day, model and task, from a local ledger.
  • Local models (Ollama). See, download and remove local models and use them as a free provider.
  • Humanize text. Rewrite AI-sounding text so it reads like a person wrote it, without changing what it says. Runs on the AI provider you configured. beta
  • API keys. A local vault for keys and accounts, with a connection test, balance for OpenRouter, DeepSeek, SiliconFlow and New API, and export to Claude Code, Codex, Cherry Studio, opencode or a .env file.
  • MCP server. OmniGet's tools exposed over the Model Context Protocol on the local bridge, 56 tools behind the same token the extension uses, with ready-made config snippets for Claude Code, Claude Desktop, Cursor, VS Code, Goose and Codex. See OmniGet for AI agents. beta

CTF and analysis (6)

Six small offline utilities for capture-the-flag puzzles, forensics homework and "what is this file" moments.

  • Hash and HMAC. MD5, the SHA family, CRC-32 and HMAC of text or a file, plus a guess at what an unknown hash is.
  • What is this file. Signature, readable strings, entropy, and anything hidden past the end of the real file.
  • Classic ciphers. Caesar, ROT13, Atbash, Vigenère and Rail Fence, with a brute force that picks the readable answer.
  • XOR. Apply a key, or recover one: a single byte by letter frequency, a repeating key by Hamming distance.
  • Encodings. base64, base32, hex, URL, HTML entities, binary and morse, both directions, with detection.
  • Frequency analysis. Histogram, entropy and index of coincidence, and what that combination usually means.

Every tool that talks to an AI uses the provider you set in Settings → AI: OpenAI, Anthropic, or any OpenAI-compatible local endpoint such as Ollama or LM Studio. The key is stored locally and never logged. The auto clicker, dictation and the replay buffer can each get a global shortcut of their own.


MCP server for Claude Code, Cursor and VS Code, and a Claude Code plugin

Loop at a terminal handing a folder of files to a small robot that hands back a link, with microphone, subtitle and video tiles above the screen

Three doors, depending on where your agent lives.

Inside the app: the MCP server. Turn it on in Tools → AI → MCP server and OmniGet exposes 56 of its tools over the Model Context Protocol on the same local bridge the browser extension uses, behind the same per-install token. An agent can queue a URL and watch, pause, resume or cancel it in the Downloads panel, merge, split, render, extract text from or sanitize PDFs, transcribe a file with whisper.cpp, run text to speech and OCR, resize images, find duplicates, search files, read X posts, threads, profiles, searches and trends, look up an Instagram profile through your session, compare LLM prices, humanize text, scan disks and caches, list startup items and installed apps, and pull large files or galleries with aria2 and gallery-dl. New in 0.10, the same server carries the coding tools of the built-in harness, confined to the folder you attached in the app (read, list, glob, grep, edit, write, apply a patch, run a sandboxed command, keep a plan), the project knowledge base (kb_search, kb_write) and agent_delegate, which hands a task to an agent of your roster. The page prints the config snippet for Claude Code, Claude Desktop, Cursor, VS Code, Goose and Codex, so it is a paste, not a setup.

The other way round: MCP servers for your agents. In LLM → MCP you plug external MCP servers into OmniGet, over stdio or streamable HTTP, and their tools show up next to the built-in ones as mcp:<server>:<tool>. Each agent gets them one by one, as auto, ask or deny, and a server can never shadow a built-in tool. Secrets in a server's environment or headers are stored as references and resolved only when the server starts. Nothing connects until you enable a server.

Inside Claude Code: the omniget plugin. The claude-plugin/ folder ships a plugin for Claude Code that needs no desktop app at all. Paste a video, audio or social post URL with a request and the omniget-fetch and omniget-transcribe skills trigger on their own. The slash commands are there when you want to be explicit:

/plugin marketplace add /path/to/omniget/claude-plugin
/plugin install omniget
/omniget:setup                       # installs yt-dlp, ffmpeg and omniget-cli after one confirmation
/omniget:fetch <url> [--audio]       # the media file, to ~/Downloads/omniget
/omniget:transcribe <url|file>       # captions, then local whisper.cpp, then Gemini or OpenAI if you added a key
/omniget:research <url>              # caption plus transcript distilled into a Markdown note with [mm:ss] references
/omniget:doctor                      # what is installed, what is missing, how to add it

Setup downloads the prebuilt omniget-cli for your OS, which gives the skill OmniGet's native Instagram, X, Bilibili and Threads extractors. A download that fails on a login wall is retried once with the cookies of the browser you name in OMNIGET_COOKIES_FROM_BROWSER. API keys go into ~/.config/ai-keys.env from your own terminal and are never printed back.


Plugins: Courses, Study, Telegram, Convert

Plugins are separate Rust libraries loaded at startup. OmniGet installs its official set on first launch and updates them by itself. The Marketplace page shows what is installed, what each plugin is allowed to do (events, notifications, settings, download folders, proxy, managed tools, download queue), and lets you hide, disable or uninstall any of them.

OmniGet Marketplace listing the Courses, Study, Telegram and Convert plugins with version, author, permissions and enable switches

Courses

Sign in to Hotmart, Udemy, Kiwify, Rocketseat or Meta-Analysis Academy through a browser window inside the app, with saved cookies from the extension, or with email and password where the platform allows it. OmniGet lists your purchases, opens the course outline so you can tick the sections you want (it tells you how many lectures are DRM-protected and will be skipped), and downloads every lesson and attachment with continuous lecture numbers if you want them. Hotmart uses the current OIDC login flow, so it keeps working after Hotmart's 2026 auth change, and free courses and courses delivered outside Hotmart Club are listed too. Downloaded courses appear in Study automatically.

Study

Study turns the folder of files you downloaded into something you can actually finish.

Releases and announcements

50 total
  1. OmniGet v0.10.1v0.10.1Sep 21, 202612.6K downloads

    ## Downloads **Windows**: `.exe` installer or portable. **macOS**: `.dmg` (Apple Silicon `aarch64` or Intel `x86_64`). **Linux**: `.AppImage` (universal) or `.deb` (Debian/Ubuntu). --- ### Debian/Ubuntu users — AppImage compatibility **Debian 12+ ships without FUSE 2 by default**, which AppImage requires. If `./omniget.AppImage` fails with a libfuse error, run: ```bash sudo apt install libfuse2 ``` …or use `./omniget.AppImage --appimage-extract-and-run`. **Easier alternative**: download the `.deb` instead — works out of the box on Debian 12+ and Ubuntu 22.04+. --- ### macOS users — "OmniGet is damaged and can't be opened" The app is not notarized with Apple yet, so Gatekeeper quarantines it. After moving the app to `/Applications`, run: ```bash xattr -cr /Applications/omniget.app ``` Then open it normally. If it still refuses, allow it under **System Settings → Privacy & Security**.

  2. OmniGet v0.10.0v0.10.0Sep 19, 20266.3K downloads

    ## Downloads **Windows**: `.exe` installer or portable. **macOS**: `.dmg` (Apple Silicon `aarch64` or Intel `x86_64`). **Linux**: `.AppImage` (universal) or `.deb` (Debian/Ubuntu). --- ### Debian/Ubuntu users — AppImage compatibility **Debian 12+ ships without FUSE 2 by default**, which AppImage requires. If `./omniget.AppImage` fails with a libfuse error, run: ```bash sudo apt install libfuse2 ``` …or use `./omniget.AppImage --appimage-extract-and-run`. **Easier alternative**: download the `.deb` instead — works out of the box on Debian 12+ and Ubuntu 22.04+. --- ### macOS users — "OmniGet is damaged and can't be opened" The app is not notarized with Apple yet, so Gatekeeper quarantines it. After moving the app to `/Applications`, run: ```bash xattr -cr /Applications/omniget.app ``` Then open it normally. If it still refuses, allow it under **System Settings → Privacy & Security**.

  3. OmniGet v0.9.2v0.9.2Sep 11, 202643.2K downloads

    ## Downloads **Windows**: `.exe` installer or portable. **macOS**: `.dmg` (Apple Silicon `aarch64` or Intel `x86_64`). **Linux**: `.AppImage` (universal) or `.deb` (Debian/Ubuntu). --- ### Debian/Ubuntu users — AppImage compatibility **Debian 12+ ships without FUSE 2 by default**, which AppImage requires. If `./omniget.AppImage` fails with a libfuse error, run: ```bash sudo apt install libfuse2 ``` …or use `./omniget.AppImage --appimage-extract-and-run`. **Easier alternative**: download the `.deb` instead — works out of the box on Debian 12+ and Ubuntu 22.04+. --- ### macOS users — "OmniGet is damaged and can't be opened" The app is not notarized with Apple yet, so Gatekeeper quarantines it. After moving the app to `/Applications`, run: ```bash xattr -cr /Applications/omniget.app ``` Then open it normally. If it still refuses, allow it under **System Settings → Privacy & Security**.

  4. OmniGet v0.9.1v0.9.1Sep 5, 202610.3K downloads

    ## Downloads **Windows**: `.exe` installer or portable. **macOS**: `.dmg` (Apple Silicon `aarch64` or Intel `x86_64`). **Linux**: `.AppImage` (universal) or `.deb` (Debian/Ubuntu). --- ### Debian/Ubuntu users — AppImage compatibility **Debian 12+ ships without FUSE 2 by default**, which AppImage requires. If `./omniget.AppImage` fails with a libfuse error, run: ```bash sudo apt install libfuse2 ``` …or use `./omniget.AppImage --appimage-extract-and-run`. **Easier alternative**: download the `.deb` instead — works out of the box on Debian 12+ and Ubuntu 22.04+. --- ### macOS users — "OmniGet is damaged and can't be opened" The app is not notarized with Apple yet, so Gatekeeper quarantines it. After moving the app to `/Applications`, run: ```bash xattr -cr /Applications/omniget.app ``` Then open it normally. If it still refuses, allow it under **System Settings → Privacy & Security**.

  5. OmniGet v0.9.0v0.9.0Aug 29, 202611.8K downloads

    ## Downloads **Windows**: `.exe` installer or portable. **macOS**: `.dmg` (Apple Silicon `aarch64` or Intel `x86_64`). **Linux**: `.AppImage` (universal) or `.deb` (Debian/Ubuntu). --- ### Debian/Ubuntu users — AppImage compatibility **Debian 12+ ships without FUSE 2 by default**, which AppImage requires. If `./omniget.AppImage` fails with a libfuse error, run: ```bash sudo apt install libfuse2 ``` …or use `./omniget.AppImage --appimage-extract-and-run`. **Easier alternative**: download the `.deb` instead — works out of the box on Debian 12+ and Ubuntu 22.04+. --- ### macOS users — "OmniGet is damaged and can't be opened" The app is not notarized with Apple yet, so Gatekeeper quarantines it. After moving the app to `/Applications`, run: ```bash xattr -cr /Applications/omniget.app ``` Then open it normally. If it still refuses, allow it under **System Settings → Privacy & Security**.

Code frequency

additions and deletions
+223.8K-223.8KWeek of 2026-02-08: +16,804 linesWeek of 2026-02-08: -1,152 linesWeek of 2026-02-15: +45,955 linesWeek of 2026-02-15: -9,044 linesWeek of 2026-02-22: +9,581 linesWeek of 2026-02-22: -3,390 linesWeek of 2026-03-01: +3,295 linesWeek of 2026-03-01: -547 linesWeek of 2026-03-08: +5,960 linesWeek of 2026-03-08: -1,292 linesWeek of 2026-03-15: +71,993 linesWeek of 2026-03-15: -4,107 linesWeek of 2026-03-22: +182 linesWeek of 2026-03-22: -103 linesWeek of 2026-03-29: +97,993 linesWeek of 2026-03-29: -161,703 linesWeek of 2026-04-05: +151 linesWeek of 2026-04-05: -42 linesWeek of 2026-04-12: +11,376 linesWeek of 2026-04-12: -2,420 linesWeek of 2026-04-19: +240 linesWeek of 2026-04-19: -72 linesWeek of 2026-04-26: +134 linesWeek of 2026-04-26: -184 linesWeek of 2026-05-03: +96,956 linesWeek of 2026-05-03: -2,734 linesWeek of 2026-05-10: +93,976 linesWeek of 2026-05-10: -7,274 linesWeek of 2026-05-17: +24,946 linesWeek of 2026-05-17: -11,610 linesWeek of 2026-05-24: +3,951 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +2,070 linesWeek of 2026-05-31: -497 linesWeek of 2026-06-07: +1,496 linesWeek of 2026-06-07: -395 linesWeek of 2026-06-14: +17,542 linesWeek of 2026-06-14: -14,784 linesWeek of 2026-06-21: +192 linesWeek of 2026-06-21: -192 linesWeek of 2026-06-28: +16,508 linesWeek of 2026-06-28: -877 linesWeek of 2026-07-05: +6,099 linesWeek of 2026-07-05: -4,316 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +64,665 linesWeek of 2026-07-26: -32,502 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +947 linesWeek of 2026-08-16: -103 linesWeek of 2026-08-23: +65,162 linesWeek of 2026-08-23: -3,688 linesWeek of 2026-08-30: +104,924 linesWeek of 2026-08-30: -31,725 linesWeek of 2026-09-06: +104,661 linesWeek of 2026-09-06: -3,220 linesWeek of 2026-09-13: +223,787 linesWeek of 2026-09-13: -34,647 linesWeek of 2026-09-20: +15,504 linesWeek of 2026-09-20: -6,824 linesFeb 8, 2026Sep 20, 2026
+1.1M lines added, -339.4K removed over the last year.

Commits per week

last 52 weeks
8880Week of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 106 commitsWeek of 2026-02-15: 888 commitsWeek of 2026-02-22: 323 commitsWeek of 2026-03-01: 128 commitsWeek of 2026-03-08: 66 commitsWeek of 2026-03-15: 525 commitsWeek of 2026-03-22: 11 commitsWeek of 2026-03-29: 331 commitsWeek of 2026-04-05: 4 commitsWeek of 2026-04-12: 63 commitsWeek of 2026-04-19: 2 commitsWeek of 2026-04-26: 2 commitsWeek of 2026-05-03: 14 commitsWeek of 2026-05-10: 24 commitsWeek of 2026-05-17: 12 commitsWeek of 2026-05-24: 1 commitsWeek of 2026-05-31: 2 commitsWeek of 2026-06-07: 6 commitsWeek of 2026-06-14: 2 commitsWeek of 2026-06-21: 3 commitsWeek of 2026-06-28: 10 commitsWeek of 2026-07-05: 29 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 92 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 11 commitsWeek of 2026-08-23: 31 commitsWeek of 2026-08-30: 14 commitsWeek of 2026-09-06: 21 commitsWeek of 2026-09-13: 47 commitsWeek of 2026-09-20: 29 commitsSep 27, 2025Sep 20, 2026
2.8K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 2 commitsSun 1:00 — 2 commitsSun 2:00 — 1 commitsSun 3:00 — 1 commitsSun 4:00 — 1 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 5 commitsSun 8:00 — 3 commitsSun 9:00 — 36 commitsSun 10:00 — 39 commitsSun 11:00 — 39 commitsSun 12:00 — 33 commitsSun 13:00 — 54 commitsSun 14:00 — 45 commitsSun 15:00 — 24 commitsSun 16:00 — 28 commitsSun 17:00 — 34 commitsSun 18:00 — 23 commitsSun 19:00 — 27 commitsSun 20:00 — 30 commitsSun 21:00 — 59 commitsSun 22:00 — 10 commitsSun 23:00 — 18 commitsMon 0:00 — 9 commitsMon 1:00 — 4 commitsMon 2:00 — 11 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 2 commitsMon 7:00 — 27 commitsMon 8:00 — 13 commitsMon 9:00 — 0 commitsMon 10:00 — 17 commitsMon 11:00 — 12 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 1 commitsMon 15:00 — 6 commitsMon 16:00 — 144 commitsMon 17:00 — 24 commitsMon 18:00 — 31 commitsMon 19:00 — 42 commitsMon 20:00 — 28 commitsMon 21:00 — 11 commitsMon 22:00 — 8 commitsMon 23:00 — 45 commitsTue 0:00 — 27 commitsTue 1:00 — 31 commitsTue 2:00 — 31 commitsTue 3:00 — 2 commitsTue 4:00 — 3 commitsTue 5:00 — 0 commitsTue 6:00 — 2 commitsTue 7:00 — 2 commitsTue 8:00 — 12 commitsTue 9:00 — 114 commitsTue 10:00 — 43 commitsTue 11:00 — 103 commitsTue 12:00 — 90 commitsTue 13:00 — 8 commitsTue 14:00 — 24 commitsTue 15:00 — 33 commitsTue 16:00 — 16 commitsTue 17:00 — 16 commitsTue 18:00 — 82 commitsTue 19:00 — 27 commitsTue 20:00 — 18 commitsTue 21:00 — 12 commitsTue 22:00 — 14 commitsTue 23:00 — 11 commitsWed 0:00 — 0 commitsWed 1:00 — 6 commitsWed 2:00 — 6 commitsWed 3:00 — 1 commitsWed 4:00 — 3 commitsWed 5:00 — 3 commitsWed 6:00 — 9 commitsWed 7:00 — 11 commitsWed 8:00 — 21 commitsWed 9:00 — 3 commitsWed 10:00 — 31 commitsWed 11:00 — 7 commitsWed 12:00 — 19 commitsWed 13:00 — 6 commitsWed 14:00 — 3 commitsWed 15:00 — 15 commitsWed 16:00 — 17 commitsWed 17:00 — 16 commitsWed 18:00 — 14 commitsWed 19:00 — 22 commitsWed 20:00 — 30 commitsWed 21:00 — 57 commitsWed 22:00 — 93 commitsWed 23:00 — 53 commitsThu 0:00 — 24 commitsThu 1:00 — 4 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 53 commitsThu 8:00 — 6 commitsThu 9:00 — 15 commitsThu 10:00 — 26 commitsThu 11:00 — 3 commitsThu 12:00 — 1 commitsThu 13:00 — 2 commitsThu 14:00 — 1 commitsThu 15:00 — 21 commitsThu 16:00 — 19 commitsThu 17:00 — 3 commitsThu 18:00 — 2 commitsThu 19:00 — 0 commitsThu 20:00 — 4 commitsThu 21:00 — 16 commitsThu 22:00 — 55 commitsThu 23:00 — 54 commitsFri 0:00 — 19 commitsFri 1:00 — 43 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 7 commitsFri 8:00 — 4 commitsFri 9:00 — 12 commitsFri 10:00 — 11 commitsFri 11:00 — 9 commitsFri 12:00 — 3 commitsFri 13:00 — 2 commitsFri 14:00 — 2 commitsFri 15:00 — 5 commitsFri 16:00 — 6 commitsFri 17:00 — 52 commitsFri 18:00 — 0 commitsFri 19:00 — 5 commitsFri 20:00 — 2 commitsFri 21:00 — 3 commitsFri 22:00 — 2 commitsFri 23:00 — 24 commitsSat 0:00 — 25 commitsSat 1:00 — 3 commitsSat 2:00 — 5 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 2 commitsSat 9:00 — 3 commitsSat 10:00 — 8 commitsSat 11:00 — 9 commitsSat 12:00 — 5 commitsSat 13:00 — 11 commitsSat 14:00 — 12 commitsSat 15:00 — 14 commitsSat 16:00 — 19 commitsSat 17:00 — 3 commitsSat 18:00 — 7 commitsSat 19:00 — 2 commitsSat 20:00 — 0 commitsSat 21:00 — 7 commitsSat 22:00 — 11 commitsSat 23:00 — 14 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits2,684 (94%)
Community commits179 (6%)

2,863 commits in total over the last year.

DateListRankStars gained
May 1, 2026daily#17+69
  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • yt-dlp/yt-dlp

    A feature-rich command-line audio/video downloader

    195.5K stars · Python

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195.2K stars · Rust

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript