Comparisons

Comparisontheir pages read 22 Sep 2026

Onyx vs attest_tag

Onyx puts a company’s knowledge in front of its people and agents — a chat UI, a Slack bot, connectors synced continuously — so the difference is what its pages leave unsaid: attest_tag holds every write for a Confirm in the thread by default, prints model and cost under each reply, routes access grants to an approver who is never the asker, and ships as one MIT binary you can run yourself.

Which model answers

Any endpoint, per thread

What a turn costs, and who sees it

Model and cost under every reply

Where it runs

Hosted, or one binary of yours

Who holds the credentials

The proxy. Never the model

Who may approve

Never your own request

What you can audit

Every call, exportable

Pick attest_tag when

  • A credential is given to the service, never to the model: an in-process proxy injects it one hop before the request leaves, the model only ever emits a URL and a method, and responses are scrubbed of secret-shaped values before they reach the model or Slack.
  • Budgets that stop rather than report: a monthly budget for the workspace, another per channel, and a per-user hourly rate limit — the bot pauses at the ceiling and says so.
  • The model is set per workspace, per channel and per thread with !model, and a heavy model is routed to automatically for code, threads past 25 messages or 20,000 characters, and turns that have made eight tool calls.
  • “Fix this and raise a PR” hands the change to a separate worker container that clones the branch, runs the tests, makes the change, runs them again and opens a draft pull request; it pushes one branch and never merges.
  • A flat monthly fee by plan size plus prepaid AI credit, never per seat — up to 10 users for $49, up to 250 for $599, each with AI credit included — with every feature in the free plan and the open-source binary, so what a paid plan adds is scale and paperwork.
The ten questions, side by side

Their page, ours

What the hero says, and what the rest of the site does not.

A hero line is a promise about the product. The questions an engineer asks before rolling one out are usually answered somewhere else on the site — or not answered. These are the ones we looked for.

Onyxtheir hero, verbatim

“Complete Context for Your Humans and Agents”

Onyx, read 22 Sep 2026

Onyx is an open-source platform that connects to your enterprise knowledge and gives humans and agents context, with a chat and search UI, custom agents and a Slack bot.

What their pages do not say

  • A Confirm before an agent action runs
  • Who may approve what, and whether anyone may approve their own request
  • What a turn cost, printed under the reply
  • How stored secrets are encrypted, and who can view them

On the public pages listed under the table, as of 22 Sep 2026. An absence is a fact about a page, not about the product; if one of these has since been answered, we will change it.

attest_tagthe same questions, in writing

Side by side

Ten questions worth asking either way.

Our column is the same on every comparison, and each cell ends where the mechanism is shown. Theirs is Onyx’s own pages, quoted or closely paraphrased, as read 22 Sep 2026.

01Which model answers

attest_tag

Any OpenAI-compatible endpoint — OpenRouter, a vendor API, or a model you host. Ships on google/gemini-flash, with a heavy model routed to automatically for code and long threads, and a per-thread override.
Models and cost

Onyx

Any model: “Swap providers in one click, route each team to a different model, or run open weights on your own GPUs.” The Business tier lists “Access to All Major LLMs”; provider keys stay server-side behind their LLM gateway.
02What a turn costs, and who sees it

attest_tag

Metered per completion and printed under the reply beside the model that answered, with !usage for the month by channel. A monthly budget for the workspace, another per channel, and a per-user hourly rate limit — the bot pauses at the ceiling rather than reporting having crossed it.
Audit and budgets

Onyx

An admin ledger: “Chat, agents, and gateway calls in one ledger. Search by user, drill into a day, export CSV or PDF”, with token or dollar ceilings per workspace, group or user. The homepage quotes a per-query cost in a benchmark comparison; their pages do not state a cost shown to the asker under each reply.
03Where it runs

attest_tag

Hosted by us, or one MIT-licensed Go binary with the console embedded on your own infrastructure — Docker, Cloud Run, Fargate, Container Apps or Kubernetes. The same code either way. Where HIPAA applies, run it yourself so nothing leaves your network, and we sign a business associate agreement with you.
Self-hosted

Onyx

“Onyx runs entirely in your cloud or on bare metal” and “can run entirely inside your network boundary”. On the pricing page, On-Premise Deployments is listed under Enterprise; Business is the cloud plan.
04Who holds the credentials

attest_tag

The service, never the model. Sealed with AES-256-GCM at rest — under a key you hold, on a self-host — injected by a proxy at the network edge, and scrubbed back out of every response before it reaches the model or the thread.
Credentials, in the guardrails

Onyx

“Provider keys stay server-side”; “Clients hold a scoped Onyx token.” Slack bot, app and user tokens are entered in the Onyx Admin Panel. On the pricing page “Encryption of Secrets” is listed under Business (their Enterprise Edition doc lists “Encrypted Secrets” under Enterprise); the method is not stated.
05Before it changes something

attest_tag

Any method other than GET, HEAD or OPTIONS is held for a card in the thread — Confirm, Cancel, or say what you actually wanted. Pending writes expire after five minutes. A fix job opens a draft pull request and never merges.
Human-in-the-loop writes

Onyx

Not stated on their site.
06Who may approve

attest_tag

Writes that grant access leave the thread and go to an approver’s DM. Nobody approves their own request — enforced three times over, once in SQL — and a request routes to the least powerful tier that covers every call in it.
Access requests and tiers

Onyx

Not stated on their site.
07What you can audit

attest_tag

Every turn, tool call, proxied request and completion — with tokens and cost — in a console you run, exportable as CSV. Self-hosted, it is a table in your own database.
The audit trail

Onyx

“Full audit trail on every query and response”, tier not named. On the pricing page, Business lists “Query History & Usage Dashboards” and Enterprise adds “Data Exports”; the gateway’s usage ledger exports CSV or PDF.
08Source and licence

attest_tag

MIT. The repository is the product: the hosted service runs the same binary you can clone, read and build.
The same binary, inside your network

Onyx

“Open source, so the code is auditable end to end”, with a public GitHub repository; their Open Source Statement says core capabilities are “completely free”. Their marketing and docs pages do not name the licence; the GitHub README the homepage links to says the Community Edition is “available freely under the MIT license” and that an Enterprise Edition adds extra features.
09What it costs

attest_tag

A free plan that does not expire — $5 of model spend a month — then a flat monthly fee by plan size, $49 for up to 10 users to $599 for up to 250 users, with AI credit included. Never per seat, and every feature in every plan.
Pricing

Onyx

Business at $20 per user a month, billed annually; Enterprise is contact sales. No free, community or self-hosted column appears on the pricing page, and a “Start Free Trial” button is shown; their Open Source Statement says core capabilities are completely free.
10Where it lives

attest_tag

Slack and Microsoft Teams, from one console: channels, threads and DMs in Slack; channel reply chains, group chats and one-to-one chats in Teams. It joins the channels you invite it to, and there is no second place for the team to go.
Threads and streaming

Onyx

A web chat and search UI, plus Slack: “Access Onyx’s responses and agents directly within Slack” via @onyxbot, the /onyx command, DMs and channel messages. “Coming soon to Microsoft Teams, Zendesk and other platforms.”

“Not stated on their site.” means we read the pages below on 22 Sep 2026 and did not find it — not that the product lacks it. Ask them; a vendor that answers all ten in writing is a good sign about the vendor. If we have something wrong, tell us and we will fix the page.

Pages read: Onyx homepagePricingSecure AI solutionsIntegrationsAgents & ActionsLLM GatewayOpen Source Statement (docs)Slack Bot setup (docs)

Questions

What people ask about Onyx and attest_tag.

Is attest_tag an open-source alternative to Onyx?
Both publish their source. Onyx’s homepage says “Open source, so the code is auditable end to end” and links a GitHub repository, and its GitHub README says the Community Edition is “available freely under the MIT license”, with an Enterprise Edition on top. attest_tag ships under the MIT licence: one Go binary with the admin console embedded, one database, the same code the hosted service runs. Onyx is an enterprise knowledge platform with a chat UI and a Slack bot; attest_tag is a teammate in Slack and Microsoft Teams, with no chat UI of its own.
Can I run attest_tag on my own servers?
Yes, at no fee and with no limits set by us: Docker on a laptop or VM, Google Cloud Run, AWS Fargate, Azure Container Apps, or Kubernetes with Helm. Onyx states it “runs entirely in your cloud or on bare metal” and can sit inside your network boundary; on its pricing page, On-Premise Deployments is listed under Enterprise, while its Open Source Statement says core capabilities are completely free.
Which model does each run on?
Onyx says it works with any LLM and provider — OpenAI, Anthropic, Azure, Bedrock or local open-weight models — and can route each team to a different model, with provider keys held server-side. attest_tag talks to any OpenAI-compatible endpoint, ships on google/gemini-flash, lets you set the model per workspace, per channel and per thread with !model, and routes to a heavier model automatically for code, long threads and turns that have made eight tool calls.
What does a turn cost, and who sees it?
In attest_tag every completion’s tokens and cost are measured and printed under the reply in the thread; !usage shows the month’s spend by channel against the budget. A typical answered question on the default model costs about $0.002, a fix job about $0.18. Onyx’s pages describe an admin ledger of chat, agent and gateway calls with per-user search and CSV or PDF export; a per-turn figure shown to the asker is not stated.
Does Onyx hold a write for a human before it runs?
Onyx’s pages do not say. The Agents & Actions page says agents “complete complex tasks by executing Actions, reason in between steps, and proactively engaging users when needed”, and does not describe a confirm step before an action. In attest_tag any method other than GET, HEAD or OPTIONS is held: the bot posts what it intends to do with Confirm, Cancel and “Something else…” buttons, and the pending write expires after five minutes.
Can someone approve their own request?
Not in attest_tag. A write that grants access leaves the thread and goes to an approver as a DM with Approve and Deny; nobody approves their own request, enforced three times over, once in SQL. Approvers hold a tier naming the bundle they may grant from, and a request routes to the least powerful tier that covers every call in it. Onyx’s pages do not state approver roles or a self-approval rule.

More comparisons

The same ten questions, asked of the others.

All comparisons

Try both

Run both in the same channel for a week.

We mean it. attest_tag answers in threads, so it will not collide with whatever else is in the channel, and a week of your own questions settles this faster than any table.

Half an hour to set up, one channel to start, and the free plan needs no card. See what it costs.