Osmantic/ODSPublic

ODS V3 Pre-Release: Public testing and refinement ahead of the official V3 launch. Turn your PC, Mac, or Linux box into a private AI server.

AI summary: An automated deployment system that wires together Ollama, Open WebUI, and workflow tools to create a private AI server.

Stars
7K
+38 today
Forks
988
Watchers
41
Open issues
285
Open PRs
3.5K
Contributors
~80
Commits
6K
Branches
1.1K

PythonApache-2.0Created Feb 9, 2026Last push todayLatest release v3.0.0+144 stars this week+893 this month

Quick answers

What is ODS?
An automated deployment system that wires together Ollama, Open WebUI, and workflow tools to create a private AI server.
What does ODS do?
The Osmantic Deployment System (ODS) is a comprehensive orchestration tool that transforms any standard PC or server into a fully featured, private AI appliance. It automates the complex process of installing, configuring, and networking various open-source AI tools like Ollama, Open WebUI, n8n, and ComfyUI. By providing a unified control dashboard, ODS manages local model inference, chat interfaces, RAG pipelines, and agentic workflows under a single local stack. It ensures that all prompts and data remain completely private on the local hardware while still offering cloud API integrations when explicitly requested.
Who is ODS for?
Homelab operators, privacy-conscious developers, and small teams looking to deploy a complete, self-hosted AI ecosystem with zero manual configuration.
How do I get started with ODS?
Check documentation at osmantic.com for installation scripts.
How popular is ODS on GitHub?
Osmantic/ODS has 6,969 stars and 988 forks on GitHub, and gained 144 stars in the last 7 days.
What license does ODS use?
Osmantic/ODS is released under the Apache-2.0 license.

Star history

since Aug 31, 2026
02K4K6KAug 2026Sep 2026Sep 2026Oct 2026
7K stars as of Oct 4, 2026. Measured daily since Aug 31, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-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: 3 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 12 commits2026-02-17: 4 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 8 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 1 commit2026-03-04: 19 commits2026-03-05: 31 commits2026-03-06: 6 commits2026-03-07: 0 commits2026-03-08: 19 commits2026-03-09: 30 commits2026-03-10: 19 commits2026-03-11: 34 commits2026-03-12: 12 commits2026-03-13: 10 commits2026-03-14: 3 commits2026-03-15: 32 commits2026-03-16: 48 commits2026-03-17: 74 commits2026-03-18: 43 commits2026-03-19: 16 commits2026-03-20: 29 commits2026-03-21: 14 commits2026-03-22: 27 commits2026-03-23: 31 commits2026-03-24: 27 commits2026-03-25: 7 commits2026-03-26: 11 commits2026-03-27: 9 commits2026-03-28: 26 commits2026-03-29: 13 commits2026-03-30: 6 commits2026-03-31: 10 commits2026-04-01: 26 commits2026-04-02: 53 commits2026-04-03: 49 commits2026-04-04: 28 commits2026-04-05: 24 commits2026-04-06: 21 commits2026-04-07: 17 commits2026-04-08: 37 commits2026-04-09: 13 commits2026-04-10: 23 commits2026-04-11: 26 commits2026-04-12: 38 commits2026-04-13: 8 commits2026-04-14: 5 commits2026-04-15: 3 commits2026-04-16: 6 commits2026-04-17: 7 commits2026-04-18: 15 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 2 commits2026-04-22: 13 commits2026-04-23: 2 commits2026-04-24: 38 commits2026-04-25: 7 commits2026-04-26: 8 commits2026-04-27: 0 commits2026-04-28: 13 commits2026-04-29: 7 commits2026-04-30: 1 commit2026-05-01: 0 commits2026-05-02: 29 commits2026-05-03: 6 commits2026-05-04: 0 commits2026-05-05: 1 commit2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 36 commits2026-05-11: 0 commits2026-05-12: 47 commits2026-05-13: 16 commits2026-05-14: 6 commits2026-05-15: 8 commits2026-05-16: 12 commits2026-05-17: 0 commits2026-05-18: 9 commits2026-05-19: 36 commits2026-05-20: 19 commits2026-05-21: 12 commits2026-05-22: 20 commits2026-05-23: 24 commits2026-05-24: 11 commits2026-05-25: 37 commits2026-05-26: 11 commits2026-05-27: 1 commit2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 1 commit2026-06-02: 2 commits2026-06-03: 15 commits2026-06-04: 3 commits2026-06-05: 4 commits2026-06-06: 0 commits2026-06-07: 6 commits2026-06-08: 1 commit2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 12 commits2026-06-13: 8 commits2026-06-14: 29 commits2026-06-15: 1 commit2026-06-16: 1 commit2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 1 commit2026-06-20: 0 commits2026-06-21: 4 commits2026-06-22: 2 commits2026-06-23: 6 commits2026-06-24: 4 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 17 commits2026-06-28: 0 commits2026-06-29: 10 commits2026-06-30: 3 commits2026-07-01: 0 commits2026-07-02: 4 commits2026-07-03: 0 commits2026-07-04: 3 commits2026-07-05: 2 commits2026-07-06: 7 commits2026-07-07: 6 commits2026-07-08: 7 commits2026-07-09: 15 commits2026-07-10: 39 commits2026-07-11: 46 commits2026-07-12: 34 commits2026-07-13: 34 commits2026-07-14: 16 commits2026-07-15: 36 commits2026-07-16: 31 commits2026-07-17: 11 commits2026-07-18: 24 commits2026-07-19: 78 commits2026-07-20: 48 commits2026-07-21: 9 commits2026-07-22: 15 commits2026-07-23: 24 commits2026-07-24: 21 commits2026-07-25: 48 commits2026-07-26: 39 commits2026-07-27: 17 commits2026-07-28: 14 commits2026-07-29: 2 commits2026-07-30: 20 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 4 commits2026-08-06: 1 commit2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 1 commit2026-08-10: 2 commits2026-08-11: 1 commit2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 1 commit2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 1 commit2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 3 commits2026-08-21: 1 commit2026-08-22: 6 commits2026-08-23: 2 commits2026-08-24: 2 commits2026-08-25: 3 commits2026-08-26: 1 commit2026-08-27: 23 commits2026-08-28: 50 commits2026-08-29: 30 commits2026-08-30: 69 commits2026-08-31: 38 commits2026-09-01: 7 commits2026-09-02: 52 commits2026-09-03: 38 commits2026-09-04: 8 commits2026-09-05: 13 commits2026-09-06: 48 commits2026-09-07: 97 commits2026-09-08: 69 commits2026-09-09: 97 commits2026-09-10: 130 commits2026-09-11: 61 commits2026-09-12: 46 commits2026-09-13: 68 commits2026-09-14: 72 commits2026-09-15: 121 commits2026-09-16: 59 commits2026-09-17: 10 commits2026-09-18: 5 commits2026-09-19: 15 commits2026-09-20: 0 commits2026-09-21: 2 commits2026-09-22: 11 commits2026-09-23: 149 commits2026-09-24: 64 commits2026-09-25: 197 commits2026-09-26: 81 commits2026-09-27: 51 commits2026-09-28: 21 commits2026-09-29: 35 commits2026-09-30: 73 commits2026-10-01: 30 commits2026-10-02: 0 commits2026-10-03: 0 commits
4,214 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    4,214 commits in 52 weeks

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

What ODS does

The Osmantic Deployment System (ODS) is a comprehensive orchestration tool that transforms any standard PC or server into a fully featured, private AI appliance. It automates the complex process of installing, configuring, and networking various open-source AI tools like Ollama, Open WebUI, n8n, and ComfyUI. By providing a unified control dashboard, ODS manages local model inference, chat interfaces, RAG pipelines, and agentic workflows under a single local stack. It ensures that all prompts and data remain completely private on the local hardware while still offering cloud API integrations when explicitly requested.

Homelab operators, privacy-conscious developers, and small teams looking to deploy a complete, self-hosted AI ecosystem with zero manual configuration.

  • Automated toolchain orchestration: Installs and wires together Ollama, Open WebUI, n8n, and ComfyUI without manual configuration.
  • Unified control dashboard: Provides a single interface to manage models, services, system extensions, and monitor GPU utilization.
  • Local-first privacy: Ensures all RAG document processing, image generation, and chat inference happen entirely on local hardware.
  • Workflow integration: Includes built-in support for autonomous agents, voice interfaces, and complex tool-calling automations.
  • Cross-platform compatibility: Designed to run reliably across Windows, macOS, and Linux operating systems.

Where teams use it

Homelab AI deployment

Enthusiasts can quickly spin up a comprehensive AI stack on their home servers without manually configuring Docker networks and service dependencies.

Secure corporate knowledge bases

Teams can deploy a private RAG pipeline to search sensitive internal documents without sending data to external cloud providers.

Local automation workflows

Developers can use the integrated n8n environment to build voice agents and automations powered entirely by local language models.

Private image generation

Designers can run ComfyUI workflows locally to generate concepts without relying on subscription-based API services.

Getting started: Check documentation at osmantic.com for installation scripts.

README

main branch

ODS V3 Pre-Release

Osmantic Deployment System

Public testing and refinement ahead of the official V3 launch.

Osmantic

Turn your PC, Mac, or Linux box into a private AI server.

AI server and homelab setup is rapidly becoming a solved problem. It should feel that way for everyone.

License: Apache 2.0 + Pixel ODS-only GitHub Stars ODS V3 Pre-Release Release

Watch the demo

ODS installs and wires together everything you need to run AI locally, so you do not have to assemble Ollama, Open WebUI, n8n, ComfyUI, and privacy tools by hand:

  • Local model inference — run open models on your own hardware
  • ChatGPT-style web UI — talk to your models from any browser
  • Control dashboard — manage models, services, setup, GPU status, and extensions from one place
  • Voice, agents, and workflows — build automations that can listen, speak, call tools, and get work done
  • RAG and search — connect local documents, private search, and retrieval workflows
  • Image generation — run local image tools without sending prompts to a hosted API
  • Privacy and ops — keep service auth, secrets, observability, and diagnostics in one local stack

No cloud required. No subscriptions required. Your prompts and data stay on your machine unless you choose otherwise. Cloud and hybrid API modes are optional when you want them.

Release validation: Operational changes are checked with a release-grade fleet and distro lab: zero-prereq bootstrap, fresh installs, product flows, full-model capabilities, lifecycle recovery, and the final User Green gate. See Release Validation for what a green run proves.

ODS V3 Pre-Release: V3 is in public testing and refinement ahead of its official launch. Try it, share feedback, and help us improve the experience. The pinned source snapshot (v3.0.0) is available for reproducibility. Full fleet qualification is incomplete; see the V3 Pre-Release notes and the promotion record for known task limitations, available evidence, and remaining release gates.

Repo layout: the repository root holds the public README, installers, security policy, GitHub workflows, and project coordination docs. The ods/ directory is the product runtime: services, installer phases, compose overlays, dashboard, CLI, tests, and operator docs.

Release consumption: v3.0.0 is the latest published source release, presented as V3 Pre-Release during public testing and refinement. Its GitHub Latest designation does not mark the official V3 launch or establish full fleet qualification. main continues receiving fixes; pin a tag or audited commit and retain its validation receipt when reproducibility matters. V3 fixes land on main; release/2.6.x is the older 2.6 maintenance lane. See Release Channels, Installer Trust, and Forkability.

September main update: the quickstarts below follow development main, including the September Portal/platform promotion. That merge is not a new stable release or proof of complete fleet qualification. Native Pixel source-update and backup/recovery limits are documented in Source Updates. Use a pinned release or audited commit when reproducibility is required.

Release verification is being qualified: the commands below still use development main; they do not provide signed-release provenance. The verified installer preview is kept separate until a signed immutable release passes end-to-end testing. This security update does not switch the public installation channel prematurely.

Get Started

Choose your system, copy the block, run it in a normal terminal. ODS installs the stack, picks a model for your hardware, starts the services, and gives you the local web UI.

Linux or macOS

curl -fsSL https://install.osmantic.com/ods.sh | bash

Windows PowerShell — guided Ubuntu/WSL2 setup with Pixel/Portal

$ProgressPreference = "SilentlyContinue"
$odsSrc = Join-Path $env:TEMP ("ods-install-" + [guid]::NewGuid().ToString("N"))
$odsZip = Join-Path $odsSrc "ods-main.zip"
New-Item -ItemType Directory -Path $odsSrc | Out-Null
Invoke-WebRequest "https://github.com/Osmantic/ODS/archive/refs/heads/main.zip" -OutFile $odsZip
Expand-Archive -LiteralPath $odsZip -DestinationPath $odsSrc -Force
cd (Get-ChildItem -LiteralPath $odsSrc -Directory | Select-Object -First 1).FullName
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install.ps1

Linux and macOS: Docker must be installed and running.

Windows: open a normal PowerShell window (not "Run as administrator"), paste the block, and answer the prompts. Nothing else needs to be installed first. The installer:

  1. Checks free disk space (40 GB) and that hardware virtualization is on.
  2. Offers to enable WSL2 and install Docker Desktop with winget. Windows asks for administrator permission, then one restart; setup continues by itself after you sign in again.
  3. Offers to download Ubuntu 24.04 and asks you, in PowerShell, for a new Ubuntu username and password.
  4. Starts Docker Desktop and checks that it is connected to Ubuntu. If not, it shows the one setting to turn on in Docker Desktop and continues as soon as it works.
  5. Installs ODS inside Ubuntu with --pixel --no-hermes --no-openclaw. When Ubuntu asks for your [sudo] password, type the Ubuntu password; nothing appears while you type.
  6. Verifies Pixel and Portal, then opens Portal in your browser and adds an ODS Portal shortcut to your desktop.

Each step asks before changing anything and stops with instructions if it cannot finish; rerun the same command after fixing it. There is no fallback to Hermes or the native Windows installer. On NVIDIA machines, update the Windows driver to 570 or newer first. To use an existing distribution, add -Distro <name> (names from wsl -l -v).

Existing native Windows installations are not automatically migrated or deleted; see Windows Quickstart before switching.

If another device runs your ODS model gateway and this Windows PC only needs image generation, use the standalone ComfyUI installer. It keeps its Docker project and data separate from a full ODS installation.

The hosted Linux/macOS endpoint proxies the current bootstrap from repository main. Reviewed merges reach it automatically after edge-cache refresh. ODS_REF selects a compatible repository checkout. See Installer Trust to inspect the script or install a stable release or audited commit manually.

Windows users should not run the curl ... | bash command from PowerShell. The PowerShell block above downloads the public ODS source ZIP and delegates installation to Ubuntu/WSL2. For more detail, see the Windows Quickstart.

After the installer completes successfully, Portal opens at http://localhost:3001/pixel (the Windows installer opens it for you and prints the exact URL). http://localhost:3000 is Open WebUI, a separate interface. Verify that Portal is available and send a message; a loaded dashboard alone does not prove Pixel is ready. If installation fails or Portal is degraded, follow the Windows Quickstart checks before proceeding.

WSL GPU access must be checked separately. NVIDIA needs a supported Windows driver and GPU access inside WSL/Docker. On AMD, Windows setup runs Lemonade through an ODS task bound to the selected WSL installation. Once that ownership is verified, Dashboard Models supports compatible GGUF downloads (including Hugging Face), activation, context changes, and unload/resume. An independently configured Lemonade service remains externally managed. Older ODS tasks without the installation binding require an installer rerun; see the Windows Quickstart and WSL2 GPU guide.

For Linux, macOS, or the recommended Windows/WSL installation, uninstall from the matching Linux/macOS terminal (open Ubuntu on Windows):

cd ~/ods
./ods-uninstall.sh --force

For a native Windows installation only:

$installDir = "$env:USERPROFILE\ods"
cd $installDir
.\ods.ps1 uninstall --force

Windows recovery note: if the runtime folder is partial and .\ods.ps1 is missing, run the same command from a source checkout as .\ods\installers\windows\ods.ps1 uninstall --force. It verifies the containers' Compose installation directory before removing resources. A shared ods project name does not authorize removing another Windows or WSL installation. Unattached volumes with no verifiable owner are preserved, with an error naming the resource; --force does not bypass this check.

API endpoint: Linux Docker installs expose llama-server on http://localhost:11434 by default (OLLAMA_PORT) while containers use llama-server:8080. macOS native Metal and Windows native/Lemonade paths use http://localhost:8080 unless overridden. Open WebUI stays on http://localhost:3000.

No GPU? ODS also runs in cloud mode — same full stack, powered by OpenAI/Anthropic/Together APIs instead of local inference:

./install.sh --cloud

Port conflicts? Every port is configurable via environment variables. See .env.example for the full list, or override at install time:

WEBUI_PORT=9090 ./install.sh

New here? Read the Friendly Guide or listen to the audio version — a complete walkthrough of what ODS is, how it works, and how to make it your own. No technical background needed.


At A Glance

Question Answer
What is it? A local AI server stack for your own hardware, with a one-command Linux/macOS installer and a PowerShell installer for Windows.
Who is it for? People who want private AI at home, in a lab, or on a workstation without hand-wiring a dozen services.
What do I get? Local inference, Open WebUI chat, a control dashboard, voice, agents, workflows, RAG, search, image generation, privacy tools, observability, and developer tools.
What does it run on? Linux, Windows with WSL2/Docker Desktop, and macOS Apple Silicon.
Is cloud required? No. Local mode is the default; cloud and hybrid API modes are optional.
If you know... ODS adds...
Ollama / llama.cpp The surrounding server stack: chat, dashboard, voice, RAG, workflows, agents, privacy, and service management.
Open WebUI A full installer and control plane around Open WebUI, plus pre-wired local services.
AnythingLLM Broader local AI appliance behavior beyond RAG: inference, chat, voice, workflows, image generation, and ops.
n8n self-hosted AI starter kits Workflow automation as one part of a larger private AI server.

Current Platform Support

Platform Status
Linux (NVIDIA + AMD Strix Halo) Supported — see the hardware and distro limits in the support matrix
Linux + Intel Arc (SYCL) Experimental / Tier C — validation is hardware-specific
Windows (NVIDIA + AMD) Supported — install and run today
macOS (Apple Silicon) Supported — install and run today

Tested Linux distros: Ubuntu 26.04/24.04/22.04, Debian 12, Linux Mint 21.3, Fedora 41+, Rocky Linux 9, Arch Linux, Manjaro, CachyOS, and openSUSE Tumbleweed. Other distros using apt, dnf, pacman, or zypper should also work — open an issue if yours doesn't.

Release validation: Operational changes run through a release-grade gate that covers zero-prereq bootstrap, clean installs, product behavior, full-model capabilities, lifecycle recovery, and User Green. See Release Validation and the Validation Matrix.

Windows: Requires Docker Desktop with WSL2 backend. NVIDIA GPUs use Docker GPU passthrough; AMD Strix Halo runs through the platform-specific accelerated path documented in the Windows installer and support matrix.

macOS: Requires Apple Silicon (M1+) and Docker Desktop. llama-server uses native Metal acceleration; Portal's gateway and managed host helpers also run natively. The UI, ingress, sandbox and supporting services run in Docker. See the macOS Quickstart.

See the Support Matrix for supported platform claims and the Validation Matrix for the layered test surface used to test those claims.


Why ODS?

A handful of companies control the vast majority of global AI traffic — and with it, your data, your costs, and your uptime. Every query you send to a centralized provider is business intelligence you don’t own, running on infrastructure you don’t control, priced on terms you can’t negotiate.

If AI is becoming critical infrastructure, it shouldn’t be rented. Self-hosting local AI should be a sovereign human right, not a career choice.

Because running your own AI shouldn't require a CS degree and a weekend of debugging CUDA drivers. Right now, setting up local AI means stitching together a dozen projects, writing Docker configs from scratch, and praying everything talks to each other. Most people give up and go back to paying OpenAI.

We built ODS so you don't have to.

  • One command — detects your GPU, picks the right model, generates credentials, launches everything
  • Chatting in under 2 minutes — bootstrap mode gives you a working model instantly while your full model downloads in the background
  • Full service stack, pre-wired — chat, agents, voice, workflows, search, RAG, image generation, privacy tools, observability, and developer tools. All talking to each other out of the box
  • Fully moddable — every service is an extension. Drop in a folder, run ods enable, done
Manual install (Linux)
git clone https://github.com/Osmantic/ODS.git
cd ODS/ods
./install.sh
Windows (PowerShell)

The installer prepares WSL2, Ubuntu and Docker Desktop when they are missing; nothing needs to be installed first.

Open a normal PowerShell session (not "Run as administrator") and run:

$ProgressPreference = "SilentlyContinue"
$odsSrc = Join-Path $env:TEMP ("ods-install-" + [guid]::NewGuid().ToString("N"))
$odsZip = Join-Path $odsSrc "ods-main.zip"
New-Item -ItemType Directory -Path $odsSrc | Out-Null
Invoke-WebRequest "https://github.com/Osmantic/ODS/archive/refs/heads/main.zip" -OutFile $odsZip
Expand-Archive -LiteralPath $odsZip -DestinationPath $odsSrc -Force
cd (Get-ChildItem -LiteralPath $odsSrc -Directory | Select-Object -First 1).FullName
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\install.ps1

The Set-ExecutionPolicy command allows the installer script to run in the current session. It does not change your system-wide policy. Running as Administrator is not recommended for the installer because user-level paths such as .opencode, data/, and .env can be created with admin-owned permissions.

This command guides WSL/Ubuntu preparation and checks systemd and Docker integration before installing Pixel. See Windows Quickstart. The runtime is normally ~/ods inside Ubuntu; manage it there with ./ods status. Open the Portal dashboard at the URL printed by the installer (normally http://localhost:3001). Native Windows ods.ps1 commands do not manage this Linux runtime.

macOS (Apple Silicon)

Requires Apple Silicon (M1+) and Docker Desktop. Install Docker Desktop first and make sure it is running before you start.

git clone https://github.com/Osmantic/ODS.git
cd ODS/ods
./install.sh

The installer detects your chip, picks the right model for your unified memory, launches llama-server natively with Metal acceleration, and starts all other services in Docker. Manage with ./ods-macos.sh status.

See the macOS Quickstart for details.


What's In The Box

Chat & Inference

  • Open WebUI — full-featured chat interface with conversation history, web search, document upload, and 30+ languages
  • llama-server — high-performance LLM inference with continuous batching, auto-selected for your GPU; Linux Docker host API defaults to localhost:11434, native macOS/Windows paths use localhost:8080, and container API runs on 8080
  • LiteLLM — API gateway supporting local/cloud/hybrid modes
  • TEI Embeddings — text embedding service for RAG and search workflows

Voice

  • Whisper — speech-to-text
  • Kokoro — text-to-speech

Agents & Automation

  • Portal — bundled core conversational assistant on Apple Silicon macOS and qualified Ubuntu 24.04/26.04 or Debian 12 systemd hosts, including qualified WSL2 installations through the Linux installer. No private repository access or separate license flag is required; available in the Dashboard and through a compatible Open WebUI model route. The native PowerShell installer does not install the Portal host runtime.
  • Hermes Agent — independent general-purpose agent, available alongside Portal; includes memory, skills, and a proxy with optional owner-card gating; direct access by default
  • OpenClaw — deprecated legacy autonomous agent, still opt-in during the migration window
  • n8n — workflow automation with 400+ integrations (Slack, email, databases, APIs)
  • APE — Agent Policy Engine for auditing and governing autonomous tool calls
  • OpenCode — browser-based AI coding assistant wired to the local stack
  • Memory Shepherd — host/systemd helper for agent memory lifecycle management

Knowledge & Search

  • Qdrant — vector database for retrieval-augmented generation (RAG)
  • SearXNG — self-hosted web search (no tracking)
  • Perplexica — deep research engine
  • Brave Search — optional paid Brave Search API integration

Creative

  • ComfyUI — node-based image generation

Privacy & Ops

  • Privacy Shield — PII scrubbing proxy for API calls
  • Dashboard — real-time GPU metrics, service health, model management
  • Dashboard API — service health, setup, status, metrics, and management API behind the dashboard
  • Token Spy — token usage monitor for local and proxied LLM traffic
  • Langfuse — optional LLM observability and tracing

Hardware Auto-Detection

The installer detects your GPU and first assigns a deterministic hardware tier. Linux and macOS then run the versioned catalog selector (ods/scripts/select-model.py), while Windows uses the PowerShell catalog selector in ods/installers/windows/lib/tier-map.ps1; both read ods/config/model-library.json to choose the best installable GGUF for the detected memory envelope. The final choice is written to .env as LLM_MODEL, GGUF_FILE, MAX_CONTEXT, and MODEL_RECOMMENDATION_*.

MODEL_PROFILE=qwen is the default non-Gemma catalog profile, so the effective pick can be Qwen, Phi, or DeepSeek depending on what fits best. MODEL_PROFILE=gemma4 forces Gemma 4 where available, and MODEL_PROFILE=auto uses Gemma 4 on NVIDIA, Apple Silicon, and Intel Arc tiers. Override tier selection with ./install.sh --tier 3; override the model family with MODEL_PROFILE=gemma4 ./install.sh or MODEL_PROFILE=auto ./install.sh.

When the Hermes fallback is enabled, installers keep the first-run bootstrap model at a 64K context floor and promote the full local model context to 128K where the selected model supports it. That avoids Hermes's hard 64K minimum while preserving the under-2-minute first chat experience. The examples below are current catalog-selector outputs for common hardware envelopes; exact installs can differ with detected VRAM/RAM, host architecture, existing downloads, or explicit profile overrides. Throughput still needs a local benchmark after first launch.

NVIDIA

Tier / envelope Current default catalog pick Context Example hardware
0 / 8 GB CPU fallback Qwen3.5 2B (Q4_K_M) 8K Low-RAM CPU-only
1 / 8 GB discrete VRAM Qwen3.5 9B (Q4_K_M) 32K RTX 4060, RTX 3060 12GB
2 / 12 GB discrete VRAM Phi-4 14B (Q4_K_M) 16K RTX 4070-class cards
3 / 24 GB discrete VRAM Qwen3.5 27B (Q4_K_M) 32K RTX 4090, A6000
4 / 48 GB discrete VRAM DeepSeek R1 Distill Llama 70B (Q4_K_M) 32K A6000 Ada, L40S
NV_ULTRA / 90+ GB amd64 discrete VRAM Qwen3 Coder Next (Q4_K_M) 128K Multi-GPU A100/H100
NV_ULTRA / 90+ GB arm64 unified memory Qwen3.6 35B-A3B (UD-Q4_K_M) 128K DGX Spark / GB10-class hosts

AMD Strix Halo (Unified Memory)

Tier / envelope Current default catalog pick Context Hardware
SH_COMPACT / 64 GB unified RAM Qwen3.6 35B-A3B (UD-Q4_K_M) 128K Ryzen AI MAX+ 395 (64GB)
SH_LARGE / 96 GB unified RAM DeepSeek R1 Distill Llama 70B (Q4_K_M) 32K Ryzen AI MAX+ 395 (96GB)
SH_LARGE / 124 GB unified RAM Qwen3.6 35B-A3B (UD-Q4_K_M) 128K Ryzen AI MAX+ 395 (128GB class)

The selector routes unified-memory hosts away from Qwen3 Coder Next when that model would otherwise be selected, because current repo policy documents correctness issues on those backends.

Apple Silicon (Unified Memory, Metal)

Tier / envelope Current default catalog pick Context Example hardware
0 / 8 GB unified RAM Phi-4 Mini (Q4_K_M) 128K M1/M2 base (8GB)
1 / 16 GB unified RAM Qwen3.5 9B (Q4_K_M) 32K M4 Mac Mini (16GB)
2 / 32 GB unified RAM Phi-4 14B (Q4_K_M) 16K M4 Pro Mac Mini, M3 Max MacBook Pro
3 / 48 GB unified RAM Qwen3.5 27B (Q4_K_M) 32K M4 Pro (48GB), M2 Max (48GB)
4 / 64+ GB unified RAM Qwen3.6 35B-A3B (UD-Q4_K_M) 128K M2 Ultra Mac Studio, M4 Max (64GB+)

Intel Arc (Linux, SYCL)

Tier / envelope Current default catalog pick Context Example hardware
ARC_LITE / 6 GB discrete VRAM Phi-4 Mini (Q4_K_M) 128K Arc A380
ARC_LITE / 8 GB discrete VRAM Qwen3.5 9B (Q4_K_M) 32K Arc A750
ARC / 16 GB discrete VRAM Phi-4 14B (Q4_K_M) 16K Arc A770 16GB, newer Arc GPUs

Gemma 4 profile tiers remain in the installer tier maps: E2B on entry hardware, E4B on midrange hardware, 26B-A4B on pro hardware, and 31B on large/ultra hardware.


Bootstrap Mode

No waiting for large downloads. ODS uses bootstrap mode by default:

  1. Downloads a tiny 1.5B model in under a minute
  2. You start chatting immediately
  3. The full model downloads in the background
  4. Hot-swap to the full model when it's ready — zero downtime

The bootstrap model starts with a 64K context window so Hermes can work during the first session. After the background download finishes, ODS swaps to the full model and restores the Hermes/full-model context target.

Skip bootstrap: ./install.sh --no-bootstrap


Switching Models

The installer picks a model for your hardware, but you can switch anytime:

ods model current              # What's running now?
ods model list                 # Show all available tiers
ods model swap T3              # Switch to a different tier

If the new model isn't downloaded yet, pre-fetch it first:

./scripts/pre-download.sh --tier 3    # Download before switching
ods model swap T3                    # Then swap (restarts llama-server)

Already have a GGUF you want to use? Drop the single .gguf file in data/models/, then open Dashboard -> Models and load the local entry. For older installs or headless maintenance, update GGUF_FILE and LLM_MODEL in .env, then restart with the CLI:

ods restart llm

Or restart the container directly from the installed ods directory:

docker compose restart llama-server

Rollback is automatic — if a new model fails to load, ODS reverts to your previous model.


Extensibility

ODS is designed to be modded. Every service is an extension — a folder with a manifest.yaml and a compose.yaml. The dashboard, CLI, health checks, and compose stack all discover extensions automatically.

extensions/services/
  my-service/
    manifest.yaml      # Metadata: name, port, health endpoint, GPU backends
    compose.yaml       # Docker Compose fragment (auto-merged into the stack)
ods enable my-service     # Enable it
ods disable my-service    # Disable it
ods list                  # See everything

The installer itself is modular — 19 library modules, a shared service registry, and 13 ordered phases. Want to add a hardware tier, swap a default model, or skip a phase? Start with the installer architecture map so you update the Linux, macOS, Windows, upgrade, and host-agent writers together.

Full extension guide | Installer architecture


ods-cli

The ods CLI manages your entire stack:

ods status                # Health checks + GPU status
ods list                  # All services and their state
ods logs llm              # Tail logs (aliases: llm, stt, tts)
ods restart [service]     # Restart one or all services
ods start / stop          # Start or stop the stack

ods mode cloud            # Switch to cloud APIs via LiteLLM
ods mode local            # Switch back to local inference
ods mode hybrid           # Local primary, cloud fallback

ods model swap T3         # Switch to a different hardware tier
ods enable n8n            # Enable an extension
ods disable whisper       # Disable one

ods config show           # View .env (secrets masked)
ods preset save gaming    # Snapshot current config
ods preset load gaming    # Restore it

How It Compares

Other tools get you part of the way. ODS gets you the whole way.

ODS Ollama + Open WebUI LocalAI
Scope Full AI stack — inference to agents to workflows LLM + chat LLM only
One-command install Everything, auto-configured LLM + chat only LLM only
Hardware auto-detect + model selection NVIDIA + AMD Strix Halo + Apple Silicon + Intel Arc + CPU/cloud fallback No No
AMD APU unified memory support Platform-specific accelerated backend, selected by installer Partial (Vulkan) No
Autonomous AI agents Bundled Portal on qualified hosts; Hermes available alongside it; OpenClaw legacy opt-in No No
Workflow automation n8n (400+ integrations) No No
Voice (STT + TTS) Whisper + Kokoro No No
Image generation ComfyUI No No
RAG pipeline Qdrant + embeddings No No
Extension system Manifest-based, hot-pluggable No No
Multi-GPU Yes (NVIDIA) Partial Partial

Documentation

Quickstart Step-by-step install guide with troubleshooting
Docs Index Maintained map for operators, contributors, and reviewers
Portal runtime Eligibility, licensing boundary, architecture, install, security, tools, rollback, and qualification
Licensing Apache-2.0 ODS code, Pixel's ODS-only grant, and third-party notices
Build On ODS Forking, custom editions, extension templates, and downstream validation
Forkability How to fork, audit, customize, and independently operate ODS
Maintainer Runbook Release, rollback, validation, and operator continuity guidance for maintainers and forks
High-Risk Change Map Which changes require focused checks, fleet validation, or release-grade gates
Headless Setup QR onboarding, first-boot setup, AP mode, mDNS, and local agent access
Support Matrix Current platform and GPU support status
Release Validation User Green gates and the release-grade fleet/distro validation policy
V3 Release Notes Published V3 source identity and qualification boundaries
2.6.0 Release Notes Historical 2.6 release notes, validation receipt, and known validation boundaries
Validation Matrix Sanitized CI, distro lab, and real-hardware fleet release-readiness evidence
Validation Reproducibility How forks and operators can reproduce the validation story on their own hardware
Offline And Mirroring Pinning, mirroring, and preserving release artifacts for independent operation
Installer Trust Inspect-first install paths, ref pinning, and current provenance limits
Model Management Curated and Hugging Face GGUF discovery, verified imports, switching, and recovery
Hardware Guide What to buy, tier recommendations
FAQ Common questions and configuration
Extensions How to add custom services
Installer Architecture Modular installer deep dive
Installer Phase Contracts Phase ownership, idempotency, failure modes, and validation expectations
Compose Resolver Contracts Rules for compose layers, extensions, backends, ports, and mode overlays
Changelog Version history and release notes
Contributing How to contribute

Contributors And Recognition

ODS is built by a growing group of contributors across installers, GPU support, dashboard, security, extensions, docs, and release validation. The README keeps the product overview focused; the long-form credits, upstream acknowledgements, and contributor history live in CONTRIBUTORS.md.

ODS has been recognized by the local AI and developer community, including AMD Featured Developer recognition, selection as a May 2026 AMD Lemonade Developer Challenge winner, and a feature at (Co)nnect: Philly's AI Ecosystem Summit at Pennovation Works.


License

ODS code is Apache-2.0 except the bundled Pixel source, which has a separate ODS-only use and distribution grant. See Licensing, LICENSE, and Pixel's license.


Built by Osmantic and the growing resistance that refuses to rent what should be owned.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 22

Releases and announcements

8 total
  1. ODS V3 Pre-Releasev3.0.0Sep 24, 2026

    # ODS V3 Pre-Release ODS V3 is in **public testing and refinement ahead of the official V3 launch**. Try it, share feedback, and help us improve the experience before launch. The existing `v3.0.0` source tag and numeric product versions are unchanged. The GitHub Latest label supports existing update discovery; it does not mark the official V3 launch. This release is pinned to `bec0c42e7c9885a5aecd419a166a6a81e0d37236`. ## Highlights - ODS product, package, installer, CLI, and dashboard version metadata aligned to 3.0.0. - Hermes opens without an owner card on default installs. Administrators can opt into the owner-card gate; internal API and WebSocket authentication remain in place. - The dashboard OS logo uses a wallpaper-adaptive frosted finish, with stronger contrast in compact navigation. - Pixel/Portal preview inspection, runtime installation, and upgrade cleanup fixes developed during the current six-machine qualification campaign. ## Qualification status Fleet qualification is still in progress. This release does not claim full fleet green or completed UI/model-switching qualification. The laptop, Strixy, Tower1, Tower2, Tower3, and Mac Mini are being

  2. ODS 2.6.0v2.6.0Jul 28, 2026

    ## ODS 2.6.0 ODS 2.6.0 updates the stable line with remote-provider support, Model Switchboard and context selection, GPU reassignment rollback, rootless Linux repair, Windows/macOS native-runtime fixes, dashboard polish, and security hardening. ### Highlights - Remote provider direct/SSH egress, tunnel supervision, dashboard status, and peer model operations. - Model Switchboard stable routing and verified context propagation across LLM applications. - Verified NVIDIA and Linux AMD/ROCm GPU reassignment with rollback. - Rootless Docker bind-mount ownership repair for Linux installs. - Windows native llama-server metrics and reasoning flags, plus safer Lemonade stale-PID handling. - Remote-provider DNS-rebinding/SSRF hardening through validated address pinning with preserved TLS identity. ### Stable refs - Release tag: `v2.6.0` - Stable patch lane: `release/2.6.x` - Release-stamp commit: `f461b3e5e6e3f21077eefb6ca39bc49a2f0b0838` ### Validation - Product candidate: `07e2a21e3ccab197360009ebd3d66b4e6d4d0af2` - Base product commit: `c292e00d5b60f6e4e6b331b2867346f9e9748a2c` - Gate result: green through six-host full-model finalize; strict User Green is not claimed because the

  3. ## Fixed - Owner-card readiness now notices `dream-proxy` after `dream enable dream-proxy` and `dream start dream-proxy` without requiring a manual `dashboard-api` restart. ## Validation - Fleet test run on 2026-05-26 at commit `cff3b21` validated the #1474 fix and passed regressions, zero-prereq bootstrap, install, verify, cloud-mode, dashboard, Hermes, UI, lifecycle, and distro lab validation across tower2, Strix Halo, Spark, and M5 MacBook Pro. - The new `dream-proxy-owner-card-readiness-1474` regression fixture passed on Strix Halo from both already-enabled and disabled states, proving owner-card status returns `ready: true` without restarting `dashboard-api`. - Capability reruns confirmed the initial Strix Halo and M5 MacBook Pro failures were model/timing flakes; full-model capability probes passed on Strix Halo and M5 MacBook Pro, while tower2 and Spark correctly deferred LLM-driven full-model probes on bootstrap models. - Distro lab passed 10/10 Docker lanes and 5/5 Incus VM lanes. ## Fleet Validation Receipt - Release tag: `v2.5.3` - Release stamp commit: `d7784673` - Stable hotfix commit: `75fa4407` - Product validation commit: `cff3b21` (main forward-port of the sam

  4. ## Fixed - Dashboard nginx now re-resolves the `dashboard-api` service through Docker DNS at request time so lifecycle recreation cannot leave `/api/*` and Dream Talk routes pinned to a stale container IP. - Discrete NVIDIA GPUs with less than 4GB VRAM now route to the CPU/Tier 0 fallback by default instead of entering a green install with a crash-looping CUDA `llama-server`. ## Validation - Fleet test run on 2026-05-26 at commit `c1df395` passed User Green: true fresh install, product, full-model capabilities, lifecycle, and UI validation across tower2, Strix Halo, Spark, and M5 MacBook Pro. - Full-model capability probes passed on all 4 enabled hosts, including chat, search, files, code, 76 Hermes skills, Dream Talk SSE streaming, session pooling, SOUL.md context, and install-context grounding. - Distro lab passed 10/10 Docker lanes and 5/5 Incus VM lanes, and all 14 prior regression fixtures stayed green. ## Fleet Validation Receipt - Release tag: `v2.5.2` - Release stamp commit: `2d040dbd` - Product validation commit: `c1df395` - Fleet run: `2026-05-26T11-17-28Z` - Harness: `main@f064e42` with clean true-fresh-install behavior - Gate result: **User Green PASS** - Zero-prer

  5. ## Highlights Dream Server 2.5.1 is the fresh-install and bootstrap-recovery patch release validated after the 2.5.0 audit hardening cycle. - Bootstrap full-model downloads now preserve partial `.part` files, retry with resume support, keep failed status counters populated, cap progress display at 100%, and recover cleanly on the next `dream start`, `dream restart`, or reinstall. - Hermes local-provider calls now use a longer request timeout for slow time-to-first-token backends, fixing the Strix Halo timeout cascade seen with 35B local inference. - Dream Talk owner-portal work is included: streamed SSE replies, live status frames, TTS streaming, mobile owner-card routing, paperclip image/file attachments, and install-context grounding. - Lifecycle and reinstall paths were hardened across compose health waits, delayed port reuse, model-swap container recreation, stale cloud compose-cache invalidation, bundled service CPU limits, and fallback model serving. - LAN web guidance now points operators at the intended proxy surfaces instead of raw API ports or misplaced dashboard banners. - Release documentation, forkability/runbook docs, AI-contribution policy, root security policy, br

Code frequency

additions and deletions
+215.5K-215.5KWeek of 2026-02-08: +1,694 linesWeek of 2026-02-08: -26 linesWeek of 2026-02-15: +16,796 linesWeek of 2026-02-15: -891 linesWeek of 2026-02-22: +58,506 linesWeek of 2026-02-22: -6,227 linesWeek of 2026-03-01: +57,304 linesWeek of 2026-03-01: -56,526 linesWeek of 2026-03-08: +178,488 linesWeek of 2026-03-08: -86,619 linesWeek of 2026-03-15: +44,411 linesWeek of 2026-03-15: -8,660 linesWeek of 2026-03-22: +10,832 linesWeek of 2026-03-22: -3,264 linesWeek of 2026-03-29: +60,919 linesWeek of 2026-03-29: -32,258 linesWeek of 2026-04-05: +122,871 linesWeek of 2026-04-05: -27,562 linesWeek of 2026-04-12: +5,736 linesWeek of 2026-04-12: -1,472 linesWeek of 2026-04-19: +5,272 linesWeek of 2026-04-19: -1,319 linesWeek of 2026-04-26: +2,642 linesWeek of 2026-04-26: -457 linesWeek of 2026-05-03: +911 linesWeek of 2026-05-03: -86 linesWeek of 2026-05-10: +27,583 linesWeek of 2026-05-10: -84,374 linesWeek of 2026-05-17: +49,352 linesWeek of 2026-05-17: -101,399 linesWeek of 2026-05-24: +12,411 linesWeek of 2026-05-24: -3,964 linesWeek of 2026-05-31: +3,400 linesWeek of 2026-05-31: -380 linesWeek of 2026-06-07: +5,188 linesWeek of 2026-06-07: -446 linesWeek of 2026-06-14: +1,797 linesWeek of 2026-06-14: -197 linesWeek of 2026-06-21: +215,513 linesWeek of 2026-06-21: -213,147 linesWeek of 2026-06-28: +1,515 linesWeek of 2026-06-28: -207 linesWeek of 2026-07-05: +23,582 linesWeek of 2026-07-05: -4,008 linesWeek of 2026-07-12: +15,933 linesWeek of 2026-07-12: -1,613 linesWeek of 2026-07-19: +47,583 linesWeek of 2026-07-19: -3,987 linesWeek of 2026-07-26: +19,221 linesWeek of 2026-07-26: -1,463 linesWeek of 2026-08-02: +180 linesWeek of 2026-08-02: -33 linesWeek of 2026-08-09: +348 linesWeek of 2026-08-09: -22 linesWeek of 2026-08-16: +2,012 linesWeek of 2026-08-16: -289 linesWeek of 2026-08-23: +1,220 linesWeek of 2026-08-23: -151 linesWeek of 2026-08-30: +295 linesWeek of 2026-08-30: -96 linesWeek of 2026-09-06: +0 linesWeek of 2026-09-06: -0 linesFeb 8, 2026Sep 6, 2026
+993.5K lines added, -641.1K removed over the last year.

Commits per week

last 52 weeks
5480Week 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: 3 commitsWeek of 2026-02-15: 16 commitsWeek of 2026-02-22: 8 commitsWeek of 2026-03-01: 57 commitsWeek of 2026-03-08: 127 commitsWeek of 2026-03-15: 256 commitsWeek of 2026-03-22: 138 commitsWeek of 2026-03-29: 185 commitsWeek of 2026-04-05: 161 commitsWeek of 2026-04-12: 82 commitsWeek of 2026-04-19: 62 commitsWeek of 2026-04-26: 58 commitsWeek of 2026-05-03: 7 commitsWeek of 2026-05-10: 125 commitsWeek of 2026-05-17: 120 commitsWeek of 2026-05-24: 60 commitsWeek of 2026-05-31: 25 commitsWeek of 2026-06-07: 27 commitsWeek of 2026-06-14: 32 commitsWeek of 2026-06-21: 33 commitsWeek of 2026-06-28: 20 commitsWeek of 2026-07-05: 122 commitsWeek of 2026-07-12: 186 commitsWeek of 2026-07-19: 243 commitsWeek of 2026-07-26: 92 commitsWeek of 2026-08-02: 5 commitsWeek of 2026-08-09: 5 commitsWeek of 2026-08-16: 11 commitsWeek of 2026-08-23: 111 commitsWeek of 2026-08-30: 225 commitsWeek of 2026-09-06: 548 commitsWeek of 2026-09-13: 350 commitsWeek of 2026-09-20: 504 commitsWeek of 2026-09-27: 210 commitsOct 4, 2025Sep 27, 2026
4.2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 18 commitsSun 1:00 — 22 commitsSun 2:00 — 13 commitsSun 3:00 — 15 commitsSun 4:00 — 19 commitsSun 5:00 — 22 commitsSun 6:00 — 12 commitsSun 7:00 — 15 commitsSun 8:00 — 16 commitsSun 9:00 — 24 commitsSun 10:00 — 21 commitsSun 11:00 — 23 commitsSun 12:00 — 12 commitsSun 13:00 — 43 commitsSun 14:00 — 43 commitsSun 15:00 — 55 commitsSun 16:00 — 56 commitsSun 17:00 — 35 commitsSun 18:00 — 24 commitsSun 19:00 — 42 commitsSun 20:00 — 24 commitsSun 21:00 — 25 commitsSun 22:00 — 48 commitsSun 23:00 — 31 commitsMon 0:00 — 27 commitsMon 1:00 — 19 commitsMon 2:00 — 8 commitsMon 3:00 — 5 commitsMon 4:00 — 3 commitsMon 5:00 — 7 commitsMon 6:00 — 15 commitsMon 7:00 — 20 commitsMon 8:00 — 25 commitsMon 9:00 — 25 commitsMon 10:00 — 27 commitsMon 11:00 — 23 commitsMon 12:00 — 23 commitsMon 13:00 — 19 commitsMon 14:00 — 21 commitsMon 15:00 — 25 commitsMon 16:00 — 36 commitsMon 17:00 — 46 commitsMon 18:00 — 34 commitsMon 19:00 — 34 commitsMon 20:00 — 25 commitsMon 21:00 — 48 commitsMon 22:00 — 23 commitsMon 23:00 — 26 commitsTue 0:00 — 16 commitsTue 1:00 — 14 commitsTue 2:00 — 11 commitsTue 3:00 — 18 commitsTue 4:00 — 8 commitsTue 5:00 — 8 commitsTue 6:00 — 17 commitsTue 7:00 — 28 commitsTue 8:00 — 32 commitsTue 9:00 — 18 commitsTue 10:00 — 39 commitsTue 11:00 — 13 commitsTue 12:00 — 34 commitsTue 13:00 — 30 commitsTue 14:00 — 25 commitsTue 15:00 — 23 commitsTue 16:00 — 25 commitsTue 17:00 — 26 commitsTue 18:00 — 44 commitsTue 19:00 — 31 commitsTue 20:00 — 31 commitsTue 21:00 — 30 commitsTue 22:00 — 30 commitsTue 23:00 — 21 commitsWed 0:00 — 29 commitsWed 1:00 — 32 commitsWed 2:00 — 16 commitsWed 3:00 — 30 commitsWed 4:00 — 49 commitsWed 5:00 — 31 commitsWed 6:00 — 4 commitsWed 7:00 — 22 commitsWed 8:00 — 31 commitsWed 9:00 — 29 commitsWed 10:00 — 21 commitsWed 11:00 — 21 commitsWed 12:00 — 36 commitsWed 13:00 — 21 commitsWed 14:00 — 39 commitsWed 15:00 — 23 commitsWed 16:00 — 36 commitsWed 17:00 — 47 commitsWed 18:00 — 17 commitsWed 19:00 — 36 commitsWed 20:00 — 38 commitsWed 21:00 — 56 commitsWed 22:00 — 51 commitsWed 23:00 — 26 commitsThu 0:00 — 35 commitsThu 1:00 — 29 commitsThu 2:00 — 16 commitsThu 3:00 — 17 commitsThu 4:00 — 3 commitsThu 5:00 — 18 commitsThu 6:00 — 5 commitsThu 7:00 — 11 commitsThu 8:00 — 26 commitsThu 9:00 — 26 commitsThu 10:00 — 20 commitsThu 11:00 — 20 commitsThu 12:00 — 21 commitsThu 13:00 — 23 commitsThu 14:00 — 23 commitsThu 15:00 — 42 commitsThu 16:00 — 23 commitsThu 17:00 — 17 commitsThu 18:00 — 32 commitsThu 19:00 — 36 commitsThu 20:00 — 28 commitsThu 21:00 — 28 commitsThu 22:00 — 30 commitsThu 23:00 — 32 commitsFri 0:00 — 16 commitsFri 1:00 — 25 commitsFri 2:00 — 17 commitsFri 3:00 — 42 commitsFri 4:00 — 11 commitsFri 5:00 — 10 commitsFri 6:00 — 17 commitsFri 7:00 — 20 commitsFri 8:00 — 19 commitsFri 9:00 — 25 commitsFri 10:00 — 24 commitsFri 11:00 — 20 commitsFri 12:00 — 50 commitsFri 13:00 — 31 commitsFri 14:00 — 26 commitsFri 15:00 — 39 commitsFri 16:00 — 39 commitsFri 17:00 — 24 commitsFri 18:00 — 22 commitsFri 19:00 — 30 commitsFri 20:00 — 21 commitsFri 21:00 — 28 commitsFri 22:00 — 27 commitsFri 23:00 — 27 commitsSat 0:00 — 15 commitsSat 1:00 — 9 commitsSat 2:00 — 22 commitsSat 3:00 — 22 commitsSat 4:00 — 18 commitsSat 5:00 — 3 commitsSat 6:00 — 0 commitsSat 7:00 — 4 commitsSat 8:00 — 26 commitsSat 9:00 — 19 commitsSat 10:00 — 3 commitsSat 11:00 — 28 commitsSat 12:00 — 21 commitsSat 13:00 — 16 commitsSat 14:00 — 29 commitsSat 15:00 — 22 commitsSat 16:00 — 24 commitsSat 17:00 — 41 commitsSat 18:00 — 49 commitsSat 19:00 — 24 commitsSat 20:00 — 22 commitsSat 21:00 — 31 commitsSat 22:00 — 26 commitsSat 23:00 — 47 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Sep 1, 2026daily#7+331
Aug 31, 2026daily#7+331