axiom

AI coding assistant

The AI pair programmer that ships code 10x faster.

Multi-line completions, codebase-aware refactors and a privacy mode that keeps your code on-device. Works in VSCode, JetBrains, Vim, Zed and the browser.

axiom · ~/utils
// Format relative time for activity feeds
export function formatRelativeTime(date: Date) {
  const diff = Date.now() - date.getTime()
  const minutes = Math.floor(diff / 60000)

  if (minutes < 60) return `${minutes}m ago`
  // Build a function that handles hours and days
  
  const hours = Math.floor(minutes / 60)
  if (hours < 24) return `${hours}h ago`
  return `${Math.floor(hours / 24)}d ago`
}
main TypeScript
Axiom Tab accept

Trusted by 4,231 developers

Acme
Nimbus
Forge
Vector
Helio
Pulse

Trusted with enterprise data

SOC 2 Type II
HIPAA
GDPR
SSO + audit log

Works everywhere

Drops into your existing stack.

Native plugins for the editors developers actually use, plus a CLI for everything else.

VSCode

Side-by-side suggestions and inline edits.

JetBrains

IntelliJ, PyCharm, WebStorm and the rest of the suite.

Vim / Neovim

Lua plugin with full async completions.

Zed

Native integration shipped with Zed 0.180.

Cursor

Bring your own model with the Cursor adapter.

CLI

Run Axiom from any shell with axiom run.

Built for speed

Numbers that matter when you’re shipping.

Independent benchmarks across 8M lines of public TypeScript, Python and Go. Reproduce yours with axiom bench.

1.2M

tokens / sec

Local inference on Apple M3.

94.7%

accuracy

Type-correct completions on TypeBench.

23ms

first-token latency

Median across the integration test suite.

Refactor mode

Highlight a block, describe the change.

Axiom rewrites the code in place with a unified diff you can accept, reject or amend hunk-by-hunk. Your tests run on the proposed change before it touches your working tree.

  • Hunk-level accept/reject — keep what you want, drop what you don’t.
  • Tests run on the proposed change in a sandbox before applying.
  • Knows your codebase types, conventions and prior commits.

src/payments/stripe.ts

ts
export async function chargeCard(  customer: Customer,  amount: number,  amount: Cents,) {  if (amount < 1) {    throw new Error("invalid amount")  }  assertPositive(amount)   return stripe.charges.create({    customer: customer.stripeId,    amount,    amount: amount.value,    currency: "usd",  })}

Privacy mode

Your code never leaves your machine.

Axiom Privacy ships with a local 8B-parameter model fine-tuned for code. No telemetry, no training on your repos, no exceptions.

Read the architecture
  • On-device inference

    No cloud round-trip. Works offline. Your code never leaves the laptop.

  • No training on your code

    Your repos are never used to train Axiom. Audited yearly.

  • Open weights

    The 8B-parameter Privacy model is open-source. Inspect, fine-tune, self-host.

Agent mode

See what your buyer ships, not what your screenshot shows.

Six AI primitives — chat composer, reasoning trace, tool-use timeline, citation card, token meter, model picker — wired into a working refactor session. Drop them in and you have the surface of Cursor / Claude Code without the wiring weekend.

  1. Read the surrounding signatures

    read312ms

    parseConfig is called from 7 sites; 3 are tests. Two callers ignore the second arg.

  2. Pick the safe rename: keep arity, return shape stays

    plan97ms

    Rename to loadConfig. Same shape. Tests stay green.

  3. Edit src/config.ts and 3 callers

    edit624ms
  4. Run typecheck

    tool1.8s

    tsc --noEmit · 0 errors, 0 warnings.

  1. search

    Codebase grep

    87ms

    parseConfig\(

    7 matches across 4 files

  2. edit

    src/config.ts

    142ms

    export function parseConfig → loadConfig

  3. tool

    pnpm typecheck

    tsc --noEmit

    Verifying types across the symbol graph…

  4. tool

    Run unit tests

    pnpm test config

src/config.ts __tests__/config.test.ts 4.3k / 200k

Session tokens

84k / 200k

-18%
42% of limit $0.25 this period

parseConfig — internal RFC

docs.axiom.dev · Section 4.2 · Config loading

92% confidence
Renames are safe when arity is preserved; callers that ignored the second argument are not affected.

TypeScript handbook · Symbols

typescriptlang.org · rename refactor

78% confidence
The language server renames every reference, including JSDoc @see tags, when the symbol graph is complete.

Active model

Pricing

Free for solo devs. Powerful for teams.

Start on-device, free, forever. Upgrade only when you need shared codebase context or admin controls.

Developer

Free

Single user. Unlimited completions on-device.

  • Unlimited completions
  • All editor integrations
  • Privacy mode included
Download

Team

Most popular
$20 / user / month

Shared codebase context, admin controls, billing.

  • Everything in Developer
  • Codebase-wide context
  • SSO + audit log
  • Usage analytics
Start free trial

Enterprise

Custom

Self-hosted, SOC 2, dedicated success manager.

  • Everything in Team
  • Self-hosted deployment
  • SOC 2 Type II
  • Dedicated support
Contact sales

Need more detail? See full pricing →

Stop waiting on your IDE.

Ship like there’s a senior next to you. Free for solo devs, no card required.

Get Axiom — free for solo devs