Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 14 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ Run standalone in your terminal, embed underneath Claude Code or Codex, or integ
into CI pipelines and orchestration DAGs. Precision data tooling for any LLM.

[![npm](https://img.shields.io/npm/v/altimate-code)](https://www.npmjs.com/package/altimate-code)
[![npm downloads](https://img.shields.io/npm/dm/altimate-code)](https://www.npmjs.com/package/altimate-code)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
[![CI](https://github.com/AltimateAI/altimate-code/actions/workflows/ci.yml/badge.svg)](https://github.com/AltimateAI/altimate-code/actions/workflows/ci.yml)
[![Slack](https://img.shields.io/badge/Slack-Join%20Community-4A154B?logo=slack)](https://altimate.ai/slack)
[![Slack](https://img.shields.io/badge/Slack-Join%20Community-4A154B?logo=slack)](https://altimate.studio/join-agentic-data-engineering-slack)
[![Docs](https://img.shields.io/badge/docs-docs.altimate.sh-blue)](https://docs.altimate.sh)

</div>
Expand All @@ -42,8 +40,6 @@ altimate # Launch the TUI
/connect # Interactive setup — choose your provider and enter your API key
```

> **No API key?** Select **Codex** in the `/connect` menu — it's built-in and requires no setup.

Or set an environment variable directly:
```bash
export ANTHROPIC_API_KEY=your_key # Anthropic Claude
Expand All @@ -57,6 +53,8 @@ altimate /discover

`/discover` auto-detects dbt projects, warehouse connections (from `~/.dbt/profiles.yml`, Docker, environment variables), and installed tools (dbt, sqlfluff, airflow, dagster, and more). Skip this and start building — you can always run it later.

> **Headless / scripted usage:** `altimate --yolo` auto-approves all permission prompts. Not recommended with live warehouse connections.

> **Zero additional setup.** One command install.
Comment on lines +56 to 58
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix markdownlint MD028 blockquote formatting (Line 59).

There is a blank line inside a blockquote between Line 58 and Line 60, which triggers no-blanks-blockquote.

Suggested fix
 > **Headless / scripted usage:** `altimate --yolo` auto-approves all permission prompts. Not recommended with live warehouse connections.
-
 > **Zero additional setup.** One command install.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> **Headless / scripted usage:** `altimate --yolo` auto-approves all permission prompts. Not recommended with live warehouse connections.
> **Zero additional setup.** One command install.
> **Headless / scripted usage:** `altimate --yolo` auto-approves all permission prompts. Not recommended with live warehouse connections.
> **Zero additional setup.** One command install.
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 59-59: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 58 - 60, Markdownlint MD028 is triggered by a blank
line inside the blockquote containing the lines "**Headless / scripted usage:**
`altimate --yolo` auto-approves all permission prompts. Not recommended with
live warehouse connections." and "**Zero additional setup.** One command
install." — remove the blank line between these two blockquote lines (make them
contiguous in the same blockquote) so there are no empty lines inside the
blockquote and the MD028 warning is resolved.


## Why a specialized harness?
Expand Down Expand Up @@ -89,7 +87,7 @@ no hallucinated SQL advice, no guessing at schema, no missed PII.
- **FinOps** — credit consumption, expensive query detection, warehouse right-sizing, idle resource cleanup
- **PII Detection** — 15 categories, 30+ regex patterns, enforced pre-execution

**Works seamlessly with Claude Code and Codex.** altimate is the data engineering tool layer — use it standalone in your terminal, or mount it as the harness underneath whatever AI agent you already run. The two are complementary.
**Works seamlessly with Claude Code and Codex.** Use `/configure-claude` or `/configure-codex` to set up integration in one step. altimate is the data engineering tool layer — use it standalone in your terminal, or mount it as the harness underneath whatever AI agent you already run. The two are complementary.

altimate is a fork of [OpenCode](https://github.com/anomalyco/opencode) rebuilt for data teams. Model-agnostic — bring your own LLM or run locally with Ollama.

Expand Down Expand Up @@ -145,19 +143,15 @@ Teach your AI teammate project-specific patterns, naming conventions, and best p

## Agent Modes

Each agent has scoped permissions and purpose-built tools for its role.
Each mode has scoped permissions, tool access, and SQL write-access control.

| Agent | Role | Access |
| Mode | Role | Access |
|---|---|---|
| **Builder** | Create dbt models, SQL pipelines, and data transformations | Full read/write |
| **Analyst** | Explore data, run SELECT queries, and generate insights | Read-only enforced |
| **Validator** | Data quality checks, schema validation, test coverage analysis | Read + validate |
| **Migrator** | Cross-warehouse SQL translation, schema migration, dialect conversion | Read/write for migrations |
| **Researcher** | Deep-dive analysis, documentation research, and knowledge extraction | Read-only |
| **Trainer** | Teach project-specific patterns, naming conventions, and best practices | Read + write training data |
| **Executive** | Business-audience summaries — translates findings into revenue, cost, and compliance impact | Read-only |
| **Builder** | Create dbt models, SQL pipelines, and data transformations | Full read/write (write SQL prompts for approval; `DROP DATABASE`/`DROP SCHEMA`/`TRUNCATE` hard-blocked) |
| **Analyst** | Explore data, run SELECT queries, FinOps analysis, and generate insights | Read-only enforced (SELECT only, no file writes) |
| **Plan** | Outline an approach before acting | Minimal (read files only, no SQL or bash) |

> **New to altimate?** Start with **Analyst mode** — it's read-only and safe to run against production connections.
> **New to altimate?** Start with **Analyst mode** — it's read-only and safe to run against production connections. Need specialized workflows (validation, migration, research)? Create [custom agent modes](https://docs.altimate.sh).

## Supported Warehouses

Expand All @@ -171,46 +165,13 @@ Model-agnostic — bring your own provider or run locally.

Anthropic · OpenAI · Google Gemini · Google Vertex AI · Amazon Bedrock · Azure OpenAI · Mistral · Groq · DeepInfra · Cerebras · Cohere · Together AI · Perplexity · xAI · OpenRouter · Ollama · GitHub Copilot

> **No API key?** **Codex** is a built-in provider with no key required. Select it via `/connect` to start immediately.

## Skills

altimate ships with built-in skills for every common data engineering task — type `/` in the TUI to browse available skills and get autocomplete. No memorization required.

## Architecture

```
altimate (TypeScript CLI)
|
@altimateai/altimate-core (napi-rs → Rust)
SQL analysis, lineage, PII, safety — 45 functions, ~2ms per call
|
Native Node.js drivers
10 warehouses: Snowflake, BigQuery, PostgreSQL, Databricks,
Redshift, MySQL, SQL Server, Oracle, DuckDB, SQLite
```

The CLI handles AI interactions, TUI, and tool orchestration. SQL analysis is powered by the Rust-based `@altimateai/altimate-core` engine via napi-rs bindings (no Python required). Database connectivity uses native Node.js drivers with lazy loading.

**No Python dependency**: All 73 tool methods run natively in TypeScript. No pip, venv, or Python installation needed.

**dbt-first**: When working in a dbt project, the CLI automatically uses dbt's connection from `profiles.yml` — no separate warehouse configuration needed.

### Monorepo structure

```
packages/
altimate-code/ TypeScript CLI (main entry point)
drivers/ Shared database drivers (10 warehouses)
dbt-tools/ dbt integration (TypeScript)
plugin/ Plugin system
sdk/ SDKs (includes VS Code extension)
util/ Shared utilities
```

## Community & Contributing

- **Slack**: [altimate.ai/slack](https://altimate.ai/slack) — Real-time chat for questions, showcases, and feature discussion
- **Slack**: [Join Slack](https://altimate.studio/join-agentic-data-engineering-slack) — Real-time chat for questions, showcases, and feature discussion
- **Issues**: [GitHub Issues](https://github.com/AltimateAI/altimate-code/issues) — Bug reports and feature requests
- **Discussions**: [GitHub Discussions](https://github.com/AltimateAI/altimate-code/discussions) — Long-form questions and proposals
- **Security**: See [SECURITY.md](./SECURITY.md) for responsible disclosure
Expand All @@ -221,9 +182,10 @@ Contributions welcome — docs, SQL rules, warehouse connectors, and TUI improve

## Changelog

- **v0.5.0** (March 2026) — smooth streaming mode, builtin skills via postinstall, `/configure-claude` and `/configure-codex` commands, warehouse auth hardening
- **v0.4.9** (March 2026) — Snowflake auth overhaul (all auth methods), dbt tool regression fixes, parallel CI builds
- **v0.4.2** (March 2026) — yolo mode, Python engine elimination (all-native TypeScript), tool consolidation, path sandboxing hardening, altimate-dbt CLI, unscoped npm package
- **v0.4.1** (March 2026) — env-based skill selection, session caching, tracing improvements
- **v0.4.0** (Feb 2026) — data visualization skill, 100+ tools, training system
- **v0.4.0** (March 2026) — data visualization skill, 100+ tools, training system
- **v0.3.x** — [See full changelog →](CHANGELOG.md)

## License
Expand Down
10 changes: 10 additions & 0 deletions docs/docs/assets/css/extra.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
/* --- Header: banner logo replaces site-name text --- */
.md-header__button.md-logo img {
height: 1.6rem;
width: auto;
}

.md-header__ellipsis > .md-header__topic:first-child {
display: none;
}

/* Make nav section headers more prominent */
.md-nav--primary > .md-nav__list > .md-nav__item--section > .md-nav__link {
font-weight: 700;
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 0 additions & 2 deletions docs/docs/getting-started/quickstart-new.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ export ANTHROPIC_API_KEY=sk-ant-...
altimate
```

> **No API key?** Select **Codex** in `/connect` — it's built-in with no setup.

---

## Step 3: Connect Your Warehouse
Expand Down
4 changes: 1 addition & 3 deletions docs/docs/getting-started/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Install altimate-code, connect your warehouse and LLM, configure a

# Setup

> **You need:** npm 8+ or Homebrew. An API key for any supported LLM provider, or use Codex (built-in, no key required).
> **You need:** npm 8+ or Homebrew. An API key for any supported LLM provider.

---

Expand Down Expand Up @@ -49,8 +49,6 @@ Minimal config file option (`altimate-code.json` in your project root):
}
```

> **No API key?** Select **Codex** in the `/connect` menu. It's a built-in provider with no setup required.

### Changing your LLM provider

Switch providers at any time by updating the `provider` and `model` fields in `altimate-code.json`:
Expand Down
189 changes: 4 additions & 185 deletions docs/docs/index.md
Original file line number Diff line number Diff line change
@@ -1,191 +1,10 @@
---
title: altimate
title: altimate-code
hide:
- toc
- navigation
---

<style>
.md-content h1:first-child { display: none; }
.hero img { max-width: 280px; image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; }
</style>
<script>window.location.replace("getting-started/");</script>

<div class="hero" markdown>

<p align="center">
<img src="assets/images/altimate-code-banner.png" alt="altimate-code" />
</p>

<p class="hero-tagline">The open-source data engineering harness.</p>

<p class="hero-description">100+ tools for building, validating, optimizing, and shipping data products. Use in your terminal, CI pipeline, orchestration DAGs, or as the harness for your data agents. Evaluate across any platform, independent of a single warehouse provider.</p>

<p class="hero-actions" markdown>

[Get Started](getting-started.md){ .md-button .md-button--primary }
[View on GitHub :material-github:](https://github.com/AltimateAI/altimate-code){ .md-button }

</p>

</div>

<div class="hero-install" markdown>

```bash
npm install -g altimate-code
```

</div>

---

<h2 class="section-heading">Purpose-built for the data product lifecycle</h2>
<p class="section-sub">Every tool covers a specific stage: build, validate, optimize, or ship. Not general-purpose AI on top of SQL files.</p>

<div class="grid cards" markdown>

- :material-database-search:{ .lg .middle } **SQL Anti-Pattern Detection**

---

19 rules with confidence scoring. Catches SELECT *, missing filters, cartesian joins, non-sargable predicates, and more.

- :material-graph-outline:{ .lg .middle } **Column-Level Lineage**

---

Automatic lineage extraction from SQL. Trace any column back through joins, CTEs, and subqueries to its source.

- :material-cash-multiple:{ .lg .middle } **FinOps & Cost Analysis**

---

Credit analysis, expensive query detection, warehouse right-sizing, and unused resource cleanup.

- :material-translate:{ .lg .middle } **Cross-Dialect Translation**

---

Transpile SQL between Snowflake, BigQuery, Databricks, Redshift, PostgreSQL, and more.

- :material-shield-lock-outline:{ .lg .middle } **PII Detection & Safety**

---

Automatic column scanning for PII. Safety checks and policy enforcement before every query execution.

- :material-pipe:{ .lg .middle } **dbt Native**

---

Manifest parsing, test generation, model scaffolding, incremental model detection, and lineage-aware refactoring.

</div>

---

<h2 class="section-heading">Use anywhere in your stack</h2>
<p class="section-sub">Run interactively, automate in CI, embed in DAGs, or mount as the tool layer for your AI agents.</p>

<div class="grid cards" markdown>

- :material-console:{ .lg .middle } **Terminal**

---

Interactive TUI with 100+ tools, autocomplete for skills, and persistent memory across sessions.

- :material-pipe-disconnected:{ .lg .middle } **CI Pipeline**

---

Headless mode for automated validation, schema diffing, and anti-pattern checks in GitHub Actions or any CI system.

- :material-graph:{ .lg .middle } **Orchestration DAGs**

---

Call the harness from Airflow, Dagster, or Prefect tasks to add data quality gates and lineage checks to your pipelines.

- :material-robot-outline:{ .lg .middle } **Data Agent Harness**

---

Mount altimate as the tool layer underneath Claude Code, Codex, or any AI agent, giving it deterministic, warehouse-aware capabilities.

</div>

---

<h2 class="section-heading">Purpose-built agent modes</h2>
<p class="section-sub">Each agent has scoped permissions and purpose-built tools for its role.</p>

<div class="grid cards" markdown>

- :material-hammer-wrench:{ .lg .middle } **Builder**

---

Create dbt models, SQL pipelines, and data transformations with full read/write access. SQL writes prompt for approval. Destructive SQL is hard-blocked.

- :material-chart-bar:{ .lg .middle } **Analyst**

---

Explore data, run SELECT queries, and generate insights. Read-only access is enforced. SQL writes are denied, not prompted. Safe bash commands auto-allowed.

- :material-clipboard-text:{ .lg .middle } **Plan**

---

Plan before acting. Read-only with minimal permissions. No SQL, no bash, no file modifications.

</div>

Create custom agents with tailored permissions for specialized workflows like validation, migration, research, or executive reporting. See [Agent Configuration](configure/agents.md#custom-agents).

---

<h2 class="section-heading">Works with any LLM</h2>
<p class="section-sub">Model-agnostic. Bring your own provider or run locally.</p>

<div class="pill-grid" markdown>

- :material-cloud: **Anthropic**
- :material-creation: **OpenAI**
- :material-google: **Google**
- :material-aws: **AWS Bedrock**
- :material-microsoft-azure: **Azure OpenAI**
- :material-server: **Ollama**
- :material-router-wireless: **OpenRouter**

</div>

---

<h2 class="section-heading">Evaluate across any platform</h2>
<p class="section-sub">First-class support for 10 databases. Migrate, compare, and translate across platforms, not locked to one vendor.</p>

<div class="pill-grid" markdown>

- :material-snowflake: **Snowflake**
- :material-google-cloud: **BigQuery**
- :simple-databricks: **Databricks**
- :material-elephant: **PostgreSQL**
- :material-aws: **Redshift**
- :material-duck: **DuckDB**
- :material-database: **MySQL**
- :material-microsoft: **SQL Server**
- :material-database-outline: **Oracle**
- :material-database-search: **SQLite**

</div>

---

<div class="doc-links" markdown>

**Documentation**: [Getting Started](getting-started.md) | [Guides](data-engineering/guides/cost-optimization.md) | [Tools](data-engineering/tools/sql-tools.md) | [Configuration](configure/config.md)

**Extend**: [SDK](develop/sdk.md) | [Plugins](develop/plugins.md) | [Server API](develop/server.md)

</div>
Redirecting to [Getting Started](getting-started/index.md)...
Comment on lines +8 to +10
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Inconsistent redirect targets between JavaScript and fallback link.

The JavaScript redirect navigates to getting-started/ (Line 8), but the fallback markdown link points to getting-started/index.md (Line 10). For consistency, both should use the same path.

🔗 Proposed fix for consistent redirect paths
 <script>window.location.replace("getting-started/");</script>
 
-Redirecting to [Getting Started](getting-started/index.md)...
+Redirecting to [Getting Started](getting-started/)...
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<script>window.location.replace("getting-started/");</script>
<div class="hero" markdown>
<p align="center">
<img src="assets/images/altimate-code-banner.png" alt="altimate-code" />
</p>
<p class="hero-tagline">The open-source data engineering harness.</p>
<p class="hero-description">100+ tools for building, validating, optimizing, and shipping data products. Use in your terminal, CI pipeline, orchestration DAGs, or as the harness for your data agents. Evaluate across any platform, independent of a single warehouse provider.</p>
<p class="hero-actions" markdown>
[Get Started](getting-started.md){ .md-button .md-button--primary }
[View on GitHub :material-github:](https://github.com/AltimateAI/altimate-code){ .md-button }
</p>
</div>
<div class="hero-install" markdown>
```bash
npm install -g altimate-code
```
</div>
---
<h2 class="section-heading">Purpose-built for the data product lifecycle</h2>
<p class="section-sub">Every tool covers a specific stage: build, validate, optimize, or ship. Not general-purpose AI on top of SQL files.</p>
<div class="grid cards" markdown>
- :material-database-search:{ .lg .middle } **SQL Anti-Pattern Detection**
---
19 rules with confidence scoring. Catches SELECT *, missing filters, cartesian joins, non-sargable predicates, and more.
- :material-graph-outline:{ .lg .middle } **Column-Level Lineage**
---
Automatic lineage extraction from SQL. Trace any column back through joins, CTEs, and subqueries to its source.
- :material-cash-multiple:{ .lg .middle } **FinOps & Cost Analysis**
---
Credit analysis, expensive query detection, warehouse right-sizing, and unused resource cleanup.
- :material-translate:{ .lg .middle } **Cross-Dialect Translation**
---
Transpile SQL between Snowflake, BigQuery, Databricks, Redshift, PostgreSQL, and more.
- :material-shield-lock-outline:{ .lg .middle } **PII Detection & Safety**
---
Automatic column scanning for PII. Safety checks and policy enforcement before every query execution.
- :material-pipe:{ .lg .middle } **dbt Native**
---
Manifest parsing, test generation, model scaffolding, incremental model detection, and lineage-aware refactoring.
</div>
---
<h2 class="section-heading">Use anywhere in your stack</h2>
<p class="section-sub">Run interactively, automate in CI, embed in DAGs, or mount as the tool layer for your AI agents.</p>
<div class="grid cards" markdown>
- :material-console:{ .lg .middle } **Terminal**
---
Interactive TUI with 100+ tools, autocomplete for skills, and persistent memory across sessions.
- :material-pipe-disconnected:{ .lg .middle } **CI Pipeline**
---
Headless mode for automated validation, schema diffing, and anti-pattern checks in GitHub Actions or any CI system.
- :material-graph:{ .lg .middle } **Orchestration DAGs**
---
Call the harness from Airflow, Dagster, or Prefect tasks to add data quality gates and lineage checks to your pipelines.
- :material-robot-outline:{ .lg .middle } **Data Agent Harness**
---
Mount altimate as the tool layer underneath Claude Code, Codex, or any AI agent, giving it deterministic, warehouse-aware capabilities.
</div>
---
<h2 class="section-heading">Purpose-built agent modes</h2>
<p class="section-sub">Each agent has scoped permissions and purpose-built tools for its role.</p>
<div class="grid cards" markdown>
- :material-hammer-wrench:{ .lg .middle } **Builder**
---
Create dbt models, SQL pipelines, and data transformations with full read/write access. SQL writes prompt for approval. Destructive SQL is hard-blocked.
- :material-chart-bar:{ .lg .middle } **Analyst**
---
Explore data, run SELECT queries, and generate insights. Read-only access is enforced. SQL writes are denied, not prompted. Safe bash commands auto-allowed.
- :material-clipboard-text:{ .lg .middle } **Plan**
---
Plan before acting. Read-only with minimal permissions. No SQL, no bash, no file modifications.
</div>
Create custom agents with tailored permissions for specialized workflows like validation, migration, research, or executive reporting. See [Agent Configuration](configure/agents.md#custom-agents).
---
<h2 class="section-heading">Works with any LLM</h2>
<p class="section-sub">Model-agnostic. Bring your own provider or run locally.</p>
<div class="pill-grid" markdown>
- :material-cloud: **Anthropic**
- :material-creation: **OpenAI**
- :material-google: **Google**
- :material-aws: **AWS Bedrock**
- :material-microsoft-azure: **Azure OpenAI**
- :material-server: **Ollama**
- :material-router-wireless: **OpenRouter**
</div>
---
<h2 class="section-heading">Evaluate across any platform</h2>
<p class="section-sub">First-class support for 10 databases. Migrate, compare, and translate across platforms, not locked to one vendor.</p>
<div class="pill-grid" markdown>
- :material-snowflake: **Snowflake**
- :material-google-cloud: **BigQuery**
- :simple-databricks: **Databricks**
- :material-elephant: **PostgreSQL**
- :material-aws: **Redshift**
- :material-duck: **DuckDB**
- :material-database: **MySQL**
- :material-microsoft: **SQL Server**
- :material-database-outline: **Oracle**
- :material-database-search: **SQLite**
</div>
---
<div class="doc-links" markdown>
**Documentation**: [Getting Started](getting-started.md) | [Guides](data-engineering/guides/cost-optimization.md) | [Tools](data-engineering/tools/sql-tools.md) | [Configuration](configure/config.md)
**Extend**: [SDK](develop/sdk.md) | [Plugins](develop/plugins.md) | [Server API](develop/server.md)
</div>
Redirecting to [Getting Started](getting-started/index.md)...
<script>window.location.replace("getting-started/");</script>
Redirecting to [Getting Started](getting-started/)...
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/index.md` around lines 8 - 10, The redirect targets are
inconsistent: the JS call window.location.replace("getting-started/") and the
fallback markdown link [Getting Started](getting-started/index.md) differ; pick
one canonical path and make both use it (either change the JS argument in
window.location.replace to "getting-started/index.md" or update the markdown
link target to "getting-started/") so the script redirect and the fallback link
point to the exact same location.

4 changes: 1 addition & 3 deletions docs/docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Install altimate-code and run your first SQL analysis. The open-so

# Quickstart

> **You need:** npm 8+ or Homebrew. An API key for any supported LLM provider, or use Codex (built-in, no key required).
> **You need:** npm 8+ or Homebrew. An API key for any supported LLM provider.

---

Expand Down Expand Up @@ -48,8 +48,6 @@ Minimal config file option (`altimate-code.json` in your project root):
}
```

> **No API key?** Select **Codex** in the `/connect` menu. It's a built-in provider with no setup required.

---

## Step 3: Connect Your Warehouse _(Optional)_
Expand Down
2 changes: 1 addition & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ copyright: "&copy; 2026 Altimate Inc. All rights reserved."
theme:
name: material
custom_dir: docs/overrides
logo: assets/logo.png
logo: assets/images/altimate-code-banner-sml.png
favicon: assets/images/favicon.png
font:
text: Inter
Expand Down
Loading