Onyx AI is an open-source AI platform designed to connect large language models with your own data, apps, and workflows. Instead of relying only on generic AI knowledge, it allows you to build a system that understands your internal documents, tools, and processes.
It can function as:
An AI assistant for teams
A knowledge search engine
A platform for building custom AI agents
In simple terms, Onyx AI acts like a private, customizable version of tools similar to ChatGPT, but with deeper control over data and behavior.
If you are exploring powerful alternatives to mainstream AI tools, Onyx AI is quickly gaining attention as a flexible and developer-friendly solution. Built with a strong focus on customization, data integration, and self-hosting, Onyx AI goes beyond a simple chatbot and positions itself as a full AI workspace.
Download Onyx AI v4.6.0 Desktop App - Software Mirrors |
|---|
Download Onyx AI v4.6.0 Desktop App for Linux (amd64 - RPM) Onyx_x86_64.rpm Download Onyx AI v4.6.0 Desktop App for Windows (msi) Onyx_x64.msi Download Onyx AI v4.6.0 Desktop App for Windows (exe) Onyx_x64.exe Download Onyx AI v4.6.0 Desktop App for macOS (dmg) Onyx_universal.dmg Download Onyx AI v4.6.0 Desktop App for macOS (tar.gz) Onyx_universal.app.tar.gz Download Onyx AI v4.6.0 Desktop App for Linux (arm64 - deb) Onyx_arm64.deb Download Onyx AI v4.6.0 Desktop App for Linux (amd64 - deb) Onyx_amd64.deb Download Onyx AI v4.6.0 Desktop App for Linux (aarch64 - RPM) Onyx_aarch64.rpm |
Onyx AI v4.6.0 Desktop App Release Notes: Warning
Do not upgrade to this release if you want to preserve your existing indexed documents but have not yet run the document index migration, which can be done from any version v3.x. See additional documentation here.
See the assets to download this version and install.
What's Changed- chore(deps-dev): bump tailwindcss from 4.3.0 to 4.3.3 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13464
- chore(deps): bump setuptools from 80.9.0 to 83.0.0 in /backend/requirements by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13270
- chore(deployment): generate docker compose variants from a shared template by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13487
- fix(craft): expose gateway model capabilities by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13502
- fix(connectors): keep Google Drive checkpoint frontier monotonic across shortcut resolution by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13501
- chore(config): remove the unused ENVIRONMENT env var by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13504
- fix(craft): resolve aliased model token limits by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13505
- feat(cli): attach release binaries to a GitHub release by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13506
- fix(auth): treat the backend login redirect as SSO callback success by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13509
- chore(devcontainer): install the go toolchain by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13513
- chore(cli): clean up release build atomicity and govulncheck flags by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13512
- feat(db): tenant -> database routing seam for multi-shard multitenancy by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13368
- chore(deps): clear 30 dependency security findings by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13503
- fix(craft): render and send image attachments by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13514
- feat(cli): replace glamour with a lightweight internal markdown renderer by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13516
- chore: centralize common trace metadata by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13515
- feat(ods): sync onyx-cli's embedded deployment files via generate-compose by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13524
- fix(storybook): disable Vite publicDir copy to avoid EEXIST on deploy by @claude[bot] in https://github.com/onyx-dot-app/onyx/pull/13525
- fix(slack): resolve workspace metadata lazily instead of on credential load by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13520
- test(craft): move unit tests to discovered paths and prune trivial tests by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13523
- fix(craft): stop the apps page shifting when switching tabs by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13526
- chore(dev): upgrade onyx-devtools to 0.10.3 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13528
- fix(auth): only auto-request offline_access when the IdP advertises it by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13534
- fix(chat): auto-name chat sessions with the session's model, not the global default by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13535
- fix(bookstack): index documents updated on the current day by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13537
- fix(llm): omit empty tools list from litellm completion requests by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13532
- refactor(opal): rename action-link- tokens to action-selection- by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13529
- fix(craft): omit unverified limits for unknown models by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13527
- fix(files): extract cached calculated values from xlsx, not formula strings by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13536
- fix(sharepoint): retry empty/non-JSON Graph responses instead of aborting indexing by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13540
- fix(chat): stop citation processor from corrupting code fences by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13538
- feat(usage): support usage management frontend by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13511
- fix(gateway): strip empty message text before it reaches LiteLLM by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13549
- fix(craft): add icon to main agent row in agent switcher by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13550
- fix(opal): only default CopyButton tooltip when icon-only by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13546
- feat(craft): pre-pull the sandbox image onto the sandbox node pool by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13490
- fix(craft): polish user library modal by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13561
- fix(craft): remove hardcoded reasoningEffort high from opencode config by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13560
- fix(craft): drop the prepuller PriorityClass by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13562
- fix(craft): split aggregator providers by vendor in the model picker by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13552
- feat(craft): persist model picker selection and recommended-only toggle in localStorage by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13582
- fix(craft): disable the sandbox image prepuller in values-localdev by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13585
- feat(cli): onyx-cli deploy — replace install.sh/install.ps1 with a Go installer by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13522
- fix(usage): retain user_usage rows when a user is deleted by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13563
- fix(craft): hide interrupt affordance while a session is restoring by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13586
- chore(deps-dev): bump oxlint from 1.72.0 to 1.75.0 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13577
- chore(dev): upgrade devcontainer image by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13587
- fix(cli): craft is reachable by flag, not offered in the mode question by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13589
- feat(chat): admin-configurable dedicated model for chat auto-naming by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13557
- fix(craft): disable remote OpenCode model fetches by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13593
- fix(scripts): account for Craft in tenant cleanup by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13591
- feat(cli): teach onyx-cli deploy to manage prod compose deployments by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13594
- fix(web): size the model picker list pane to its content by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13597
- feat(mobile): input-bar controls spec + tool-options foundation by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13091
- feat(search): temporary env to force Search-UI document-set scope by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13491
- feat(mobile): agentic timeline grouping engine + packet contracts by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13092
- feat(reindex): old-index reclaim schema + db helpers by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13351
- feat(reindex): mode-aware old-index deletion primitive by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13352
- feat(usage): add cost limits and enforcement UI by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13600
- fix(helm): let configMap override model server hosts without duplicate keys (chart 0.8.10) by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13614
- feat(usage): add self-service usage dashboard by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13601
- fix(slackbot): restore forced document search for Slack bot answers by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13542
- feat(craft): pre-pull the sandbox image for docker-compose deployments by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13592
- feat(cli): keep the TUI up while Docker Desktop starts by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13617
- fix(cli): count every service that is not up in deploy status by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13616
- feat(cli): add --dev to onyx-cli deploy install by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13618
- feat(usage): add model cost overrides by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13602
- feat(auth): add oauth account and prior-email schema by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13578
- feat(auth): capture per-credential identity for usage attribution by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13606
- ci(golang): run go tests with the race detector by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13620
- feat(usage): add admin per-user usage reporting by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13603
- fix(cli): pick the deploy palette for the terminal background by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13623
- fix(chat): classify model refusals instead of generic EmptyLLMResponseError by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13332
- chore(install): make install.sh a bootstrap for onyx-cli deploy by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13615
- feat(db): optional FOR UPDATE on fetch_user_by_id by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13630
- feat(auth): record the IdP subject on the mapping at login by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13579
- refactor(craft): consolidate turn/queue/liveness/client timeouts into a registry by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13631
- refactor(craft): drop redundant sandbox manager singletons by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13627
- chore: add refusal reasons by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13628
- fix: hierarchynodes accessible private connectors by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13625
- fix(auth): resolve the tenant from the IdP subject before the email by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13580
- fix(craft): shared replay-safe session workspace setup with exec completion sentinel by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13632
- feat(craft): durable reserve/reconcile/finalize sandbox provisioning lifecycle by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13633
- feat(auth): treat a user's prior addresses as the same principal by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13581
- feat(gateway): let external OpenAI-compatible clients use the LLM gateway by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13604
- fix(auth): adopt the provider's address on login by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13564
- feat(db): enumerate tenants across every shard by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13518
- feat(mobile): timeline processor + pacing hooks by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13610
- feat(mobile): timeline state hooks by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13609
- feat(mobile): render-prop renderer contract + answer migration by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13611
- fix(install): persist ~/.local/bin on PATH for non-root installs by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13651
- fix(web): open AccountPopover above its trigger on mobile by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13653
- chore(dev): upgrade devcontainer image by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13657
- chore(dev): upgrade onyx-devtools to 0.10.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13658
- chore(devcontainer): playwright chromium for the MCP, self-healing ods web, dev-workflow docs by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13654
- fix(box): map OAuth 400s to actionable credential errors by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13655
- perf(llm): raise provider listing cache TTL to 300s by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13659
- feat(web): default to full-width chat below md and hide the toggle by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13660
- fix(craft): preserve requested session names by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13662
- fix(celery): launch beat watchdog as module by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13664
- fix: knowledge pane query filters by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13665
- fix(notifications): make notification creation race-safe by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13663
- chore(deps-dev): bump ty from 0.0.31 to 0.0.63 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13576
- fix(gateway): open a trace so gateway LLM calls are metered by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13666
- feat(llm): admin-selectable API mode for Bifrost (chat completions / responses) by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13642
- feat(connector-stability): credential capability check framework by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13519
- refactor(backend): remove obsolete mypy-era type: ignore directives by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13674
- fix(llm): harden litellm responses bridge for gateway streaming variants by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13668
- perf(llm): invalidate provider listing cache on persona edits, TTL to 600s by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13673
- fix(usage): sort per-model usage breakdown by cost descending by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13676
- feat(gateway): serve the OpenAI Responses API for Codex CLI (non-streaming) by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13605
- fix(web): always show hover-revealed buttons on touch devices by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13680
- feat(connector-stability): credential capability report generation by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13533
- fix(admin): collapse LLM provider cards to one column on small screens by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13682
- fix(web): make the folded sidebar logo open the sidebar by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13672
- feat(gateway): stream the Responses API output-item lifecycle by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13624
- feat(gateway): refuse gateway params we cannot honor by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13650
- fix(license): auto-deliver renewals and warn admins only when action exists by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13425
- fix(web): avoid fabricating Azure deployment_name on provider edit by @ArslanRasheed60 in https://github.com/onyx-dot-app/onyx/pull/13693
- fix(craft): reconcile sandbox lifecycle transitions by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13698
- feat(craft): bake webapp dev-server env into the sandbox so hand-started servers work by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13699
- feat(gateway): serve the Anthropic Messages API for Claude Code by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13687
- feat(db): place new tenants on a configured shard by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13661
- feat(metrics): publish tenant count per shard by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13683
- feat(connector-stability): stricter verdict aggregation and no trivial pass fallbacks by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13684
- fix(db): size the connection pool per shard instead of splitting it by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13706
- fix(slack): correct link, email, code and list rendering in bot answers by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13626
- feat(gateway): pass extended thinking through the Anthropic Messages API by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13691
- feat(cli): concurrent multi-query support for onyx-cli search by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13709
- docs(env): drop the tenant-sharding block from the compose template by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13716
- feat(gateway): tag PAT gateway traffic with its own LLM flow by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13700
- chore(craft): bump sandbox onyx-cli pin to 1.3.3 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13714
- feat(mobile): timeline primitives + StepContainer by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13690
- feat(mobile): reasoning renderer + full-text reader for the agent timeline by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13694
- feat(mobile): agent timeline composition + parallel tabs by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13695
- fix(indexing): cap summarization LLM call time to stop worker wedge by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13613
- refactor: remove Craft usage limits by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13705
- feat(gateway): support forcing a specific named tool via tool_choice by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13692
- fix(logging): cap third-party DEBUG log noise and single-path LiteLLM emission by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13701
- fix(web): gate SSO provider config to single-tenant deployments by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13717
- fix(cli): upgrade Go dependencies for security fixes by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13729
- fix(tests): stop celery logging tests leaking third-party log cap state by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13732
- feat(craft): two-tier turn budgets with sandbox-side wrap-up steer by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13667
- feat(mcp): arbitrary connection headers for all servers by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13715
- feat(gateway): native Anthropic passthrough for /v1/messages by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13697
- feat(connector-stability): implement source operations framework by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13707
- refactor(settings): make /admin/settings a PATCH with partial-merge by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13266
- feat(gateway): serve the OpenAI Responses API natively for true OpenAI models by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13724
- fix(llm): broaden Mistral tool-ordering bridge detection, keep post-tool reminders by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13539
- fix(llm): route chat model selection by model configuration id by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13731
- feat(connector-stability): source-operation enforcement and capability-check wiring by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13708
- fix(connectors): batch admin connector files listing into one query by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13702
- feat(log-export): celery collector and cleanup tasks by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13681
- test(auth): lock in JWT_PUBLIC_KEY_URL passthrough behavior by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13738
- chore(celery): port remaining worker stubs to versioned EE apps by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13686
- fix(auth): gate the search surface on read:search instead of basic by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13739
- test(gateway): integration suite driving real Claude Code and Codex through the passthroughs by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13730
- chore(craft): upgrade OpenCode to 1.18.13 by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13741
- fix(craft): document webapp preview base path and real lint/typecheck commands to the agent by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13735
- fix(desktop): import tauri::Manager in the Windows Alt-menu module by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13742
- fix(connectors): pin create-connector sidebar and reskin step rail by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13745
- feat(log-export): async export endpoints with worker fan-out by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13736
- feat(connector-stability): gateway credential construction helper by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13747
- test: airgapped deployments by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13733
- fix: normalize API prefixes before middleware gates by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13748
- feat(craft): add webapp bootstrap script generator and tool assets by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13711
- feat(ee): move the LLM gateway into EE by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13746
- fix(ci): rename tauri-action input to releaseAssetNamePattern by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13754
- feat(mobile): deep-research toggle in the chat composer by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13726
- feat(mobile): actions menu — force a tool + enable/disable per agent by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13728
- fix(gateway): hide the LLM gateway PAT scope below Enterprise tier by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13753
- feat(usage): expose flow and provider detail in usage exports by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13750
- chore(deps): bump shadcn from 4.11.0 to 4.16.0 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13758
- chore(deps-dev): bump @tailwindcss/postcss from 4.3.1 to 4.3.3 in /backend/onyx/server/features/build/sandbox/image/templates/outputs/web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13759
- fix(ci): seed Enterprise license for Craft Compose tests by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13763
- fix(voice): support non-English languages in the Azure voice provider by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13762
- feat(desktop): global summon shortcut + View-menu navigation accelerators by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13765
- feat(opal): support alignment overrides in Table cells and headers by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13768
- fix(llm): stop dropping reasoning params for Vertex Anthropic and gateway-routed Claude by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13775
- fix(llm): stream natively on registry miss for OpenAI responses surface by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13788
- fix(craft): preview legacy PowerPoint files by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13785
- fix(auth): claim an unowned account on first SSO login by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13791
- fix(chat): correct long-chat context accounting and model-switch replay by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13764
- chore(llm): unify Azure and OpenAI responses fake-stream patches by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13801
- feat(web-connector): URL rewrite rules for stored document links by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13154
- fix(craft): make waking a session reliable, not a race by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13688
- feat(usage): accept a client-supplied report_id for generation by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13771
- feat(usage): cap spending-limit token budgets at one trillion (backend) by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13782
- feat(web): add usage analytics building blocks by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13769
- feat(craft): lazy webapp provisioning on setup and restore by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13712
- feat(craft): gate Preview tab on webapp readiness with three-state UX by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13713
- feat(usage): redesign the create-spending-limit modal (frontend 1/2) by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13783
- fix(perm-sync): stop duplicate gdrive group-sync crawls from stacking to OOM by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13703
- feat(desktop): summon shortcut toggles -- press while focused hides by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13803
- fix(web): app-level undo/redo for the input bar so Cmd+Z stops eating drafts by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13804
- fix: fetch perms for sharepoint hierarchynodes by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13778
- fix(craft): align session deletion modal by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13793
- fix(mcp): discover OAuth metadata before consent by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13790
- feat(usage): extract TokenRateLimitsPanel and rework the limits table (frontend 2/2) by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13784
- feat(log-export): switch the admin export page to the async flow by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13776
- fix(confluence): survive DC attachment-pagination 400s in indexing, reindex, and pruning by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13805
- refactor(web): modernize MCP OAuth callback UI with Opal components by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13812
- feat: efficient sharepoint role fetching by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13813
- chore(llms): update recommended models by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13827
- feat(external-apps): narrow Google scopes on Onyx's OAuth client by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13761
- fix(helm): route /scim to api server in ingress mode by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13838
- chore(gha): build the desktop app for Windows on presubmit by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13829
- chore(agents): require ASD-STE100 Simplified Technical English by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13839
- test(craft): drive lazy webapp provisioning in the craft integration suites by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13830
- fix: correct MCP OAuth actions in popover by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13815
- feat(web): rework per-user usage panel by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13806
- fix(workers): reap Chromium orphans in spawned connector children by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13832
- fix(opensearch): don't fail api-server startup when the index is write-blocked by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13833
- fix(web): keep native row role on clickable opal Table rows by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13846
- fix(craft): preserve stale state during live session load by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13842
- chore(log-export): remove the superseded sync download endpoint by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13849
- test(unit): reset EE state leaked by import side effects by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13844
- feat(mobile): source selection in the actions menu + token refresh loop by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13825
- fix(admin): reflow security page dropdowns between title and description on narrow viewports by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13847
- feat(web): allow production builds to skip type checking by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13848
- fix(highspot): surface plain-text API errors and xfail the 403 tests by @Subash-Mohan in https://github.com/onyx-dot-app/onyx/pull/13853
- fix(admin): prevent date range picker pills from clipping in narrow headers by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13860
- fix(web): stop rendering "Anonymous" while the current user is unresolved by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13852
- fix(craft): restore stale skills after turn failure by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13859
- fix(web): fix react-doctor error-class findings and enforce via oxlint plugin by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13850
- fix: preserve HTML table and link boundaries by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13864
- chore: remove spending limits page and make cost-budget API Enterprise-only by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13862
- fix(web): show the container host note on all self-hosted providers by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13858
- feat: avoid redundant SharePoint list item lookups by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13851
- ci: skip type checking in the Playwright web image build by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13871
- chore(deps-dev): bump @typescript/native-preview from 7.0.0-dev.20260706.1 to 7.0.0-dev.20260707.2 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13566
- chore(deps): bump marked from 18.0.5 to 18.0.7 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13568
- chore(deps-dev): bump tailwindcss from 4.3.1 to 4.3.3 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13569
- chore(deps): bump lucide-react from 1.21.0 to 1.25.0 in /web by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13572
- chore(web): upgrade Next.js to 16.3.0 to cut dev server memory by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13868
- chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13571
- chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13574
- chore(deps): bump azure/setup-helm from 5.0.0 to 5.0.1 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13573
- chore(deps): bump astral-sh/setup-uv from 8.2.0 to 9.0.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13565
- feat(connector-stability): slack source operations gateway by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13772
- chore(deps): bump gitpython from 3.1.57 to 3.1.58 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13820
- chore(deps): bump h2 from 4.3.0 to 4.4.1 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13799
- chore(deps-dev): bump pypdf from 6.14.2 to 6.15.0 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13822
- chore(deps-dev): bump aiohttp from 3.14.1 to 3.14.3 by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13723
- chore(vscode): Recommand dev containers extension by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13881
- feat(usage): add per-user attribution to usage report exports by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13843
- feat(log-export): skip worker fan-out on deployments without a celery broker by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13882
- fix(craft): trust custom CAs in sandbox proxy by @jack-watroba in https://github.com/onyx-dot-app/onyx/pull/13767
- feat(log-export): re-attach the export page to an in-flight export via URL param by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13879
- feat(db): add the incognito record mode column by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13886
- feat(usage): add PDF review pack to exports by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13872
- feat(chat): incognito chat sessions with content-free records by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13866
- chore(deps): bump github.com/go-git/go-git/v5 from 5.19.1 to 5.19.2 in /tools/ods by @dependabot[bot] in https://github.com/onyx-dot-app/onyx/pull/13818
- fix(ods): detect cherry-pick target from release branches, not tags by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13880
- refactor(opal): give spacing a numeric scale by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13909
- feat(admin): incognito availability and record modes by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13894
- refactor(FE): clarify date range picker ownership beyond admin pages by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13910
- chore(lint): enable flake8-bugbear ruff rules by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13891
- feat(scheduled-tasks): add MCP pre-approval UI by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13883
- feat(scheduled-tasks): support MCP pre-approvals by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13884
- chore(docker): default web + model-server bases to non-DHI images by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13915
- chore(dev): upgrade onyx-devtools to 0.11.0 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13914
- refactor(opal): move the card padding scale onto Spacing by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13916
- fix(gitbook): index child pages when no updatedAt present by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13918
- refactor(opal): read sidebar fold state from context in SidebarTab by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13920
- feat(web): add workspace analytics page by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13808
- fix(web): restore the mobile sidebar toggle on create-connector pages by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13857
- feat: publish MCP OAuth client metadata by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13876
- feat: use client metadata during MCP OAuth discovery by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13877
- refactor(opal): move SidebarTab folded styling to CSS by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13923
- fix(opal): make the SidebarTab click target keyboard focusable by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13921
- fix: improve Craft Kubernetes download reliability by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13925
- fix(web): keep co-located tests out of the Docker build context by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13927
- feat: add CIMD-only MCP OAuth E2E coverage by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13893
- refactor(opal): finish the padding migration and close the scales by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13919
- feat(chat): incognito page mode with ephemeral files and projects by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13895
- feat(llm): incognito provider policies and usage accounting by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13905
- feat(connector-stability): slack capability checks by @acaprau in https://github.com/onyx-dot-app/onyx/pull/13551
- fix(usage): Make shared usage ranges exact calendar windows by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13911
- refactor(web): migrate the clean Card call sites to Opal by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13930
- fix(chat): accept incognito attachments before the first message by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13932
- ci: only republish Helm charts when chart files change by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13942
- refactor(chat): collapse the incognito sweep and unify the delete path by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13933
- fix(auth): drop the unsigned onyx_tid tenant cookie by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/13934
- fix(ods): skip pre-push hooks on tag pushes by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13926
- feat(usage): Let personal usage share exact calendar ranges by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13912
- fix(usage): Clarify personal usage and budget context by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13922
- fix(helm): truncate all child resource names to the 63-char k8s limit (chart 0.8.15) by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13944
- chore(dev): upgrade onyx-devtools to 0.11.1 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13945
- feat(craft): Sheets/Slides for Drive, and Gmail draft creation on cloud by @Danelegend in https://github.com/onyx-dot-app/onyx/pull/13928
- fix(web): keep deep research out of project chats by @raunakab in https://github.com/onyx-dot-app/onyx/pull/13951
- fix(opal): clear stale sidebar tab hover state by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13950
- fix(usage): align performance date controls by @rohoswagger in https://github.com/onyx-dot-app/onyx/pull/13952
- feat: allow forward-only contextual retrieval model updates by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13946
- refactor(opal): suppress the folded tab tooltip instead of controlling it by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13953
- fix: distribute Craft Kubernetes assets as artifacts by @evan-onyx in https://github.com/onyx-dot-app/onyx/pull/13957
- refactor(web): inline single-use sidebar JSX variables by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13956
- chore: remove dead config constants and dead Stripe build-arg plumbing by @justin-tahara in https://github.com/onyx-dot-app/onyx/pull/13955
- fix(web): keep the groups cell observing its container by @jmelahman in https://github.com/onyx-dot-app/onyx/pull/13954
- fix(mcp): request offline access from Google OAuth and surface dead grants by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13924
- refactor(mcp): centralize credential checks in credentials.py by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13947
- refactor(mcp): rename auth wire fields for clarity by @wenxi-onyx in https://github.com/onyx-dot-app/onyx/pull/13948
- fix(llm): parse LM Studio option-object capabilities (#13981) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/13998
- fix(celery): make Redis Sentinel work for beat and the result backend (#13987) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14001
- fix(web): make code block inner radius concentric with its wrapper (#13999) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14004
- fix(desktop): open window.open links in the browser again (#14021) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14024
- fix(llm): let the backend decide which reasoning levels a model offers (#14020) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14060
- feat(web): let admins turn the reasoning control off (#14071) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14092
- fix(scim): survive Entra soft-delete tombstones and heal rename collisions (#14074) to release v4.6 by @nmgarza5 in https://github.com/onyx-dot-app/onyx/pull/14093
- fix(scim): refuse rename adoption of privileged accounts (#14096) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14107
- fix: prune unowned hierarchy nodes on connector delete (#14076) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14112
- fix: Jira poll windows skip updates in non-UTC timezones (#14114) to release v4.6 by @onyx-cherry-pick[bot] in https://github.com/onyx-dot-app/onyx/pull/14118
New Contributors- @ArslanRasheed60 made their first contribution in https://github.com/onyx-dot-app/onyx/pull/13693
Full Changelog: https://github.com/onyx-dot-app/onyx/compare/v4.5.0...v4.6.0 |
Key Features of Onyx AI
1. AI Chat with Your Own Data
Onyx connects to documents, databases, and apps, allowing it to generate answers based on real company knowledge instead of generic internet data.
2. Advanced RAG and Hybrid Search
It uses retrieval-augmented generation and hybrid search techniques to improve accuracy and reduce hallucinations.
3. Custom AI Agents
You can build agents with specific instructions, tools, and workflows, enabling automation of tasks like research, reporting, or analysis.
4. Deep Research Capabilities
Onyx AI can combine web data and internal sources to deliver structured insights instead of simple search results.
5. Open Source and Self-Hosted
One of its biggest strengths is transparency. You can deploy it on your own infrastructure, keeping full control over your data and privacy.
6. Multi-LLM Support
Onyx allows integration with different AI models, giving users flexibility instead of locking them into a single provider.
Performance and Use Cases
Onyx AI is designed for productivity and enterprise use rather than casual chatting. It performs best when connected to structured data, internal tools, or large document collections.
Common use cases include:
Internal knowledge assistants for companies
Developer and engineering workflows
Research and data analysis
Automated reporting and insights generation
Because of its architecture, it can also query live structured data and generate actionable outputs, not just text responses.
User Experience
The interface is modern and similar to a chat-based AI tool, but with added layers like agents, connectors, and configurations.
However, it is not beginner-focused. Setting up Onyx AI, especially self-hosting and integrations, requires some technical knowledge. This makes it more suitable for developers, startups, and tech teams rather than casual users.
Pros and Cons
Pros
Open source and highly customizable
Strong privacy with self-hosting options
Supports multiple AI models
Powerful data integration and automation
Advanced research and analysis capabilities
Cons
Setup can be complex for beginners
Requires infrastructure for full potential
Overkill for simple AI chat use
Who Should Use Onyx AI
Onyx AI is ideal for:
Developers building AI-powered tools
Companies needing internal AI assistants
Teams working with large datasets or documentation
Users who want full control over AI behavior and data
It is less suitable for users who just want a simple plug-and-play chatbot.
Final Verdict
Onyx AI stands out as a powerful open-source alternative in the AI ecosystem. It is not just another chatbot but a full platform for building intelligent systems tailored to your data and workflows.
Onyx AI is an excellent choice for advanced users and teams who want flexibility, privacy, and deep integration. While it requires some setup effort, the payoff in capability and control is significant.
Post a Comment/Report Broken Link: