Skip to main content

scip-atlas

Python CLI that reads a scip-cli SQLite index plus a git worktree and upserts a sidecar SQLite file (atlas.db). The two databases are the artifact you ship. Consumers ATTACH and join on path strings.

Install

pip install -e ".[dev]"
pip install -e ../scip-cli   # for integration tests / indexing
pre-commit install

# Fast loop while iterating (skips integration unless sync/summarize core changed):
./scripts/test.sh --changed
# scip-atlas is on PATH inside the active venv (same as scip-cli)

Usage

# From the repo root (after scip-cli reindex):
cd /path/to/repo
scip-atlas sync
scip-atlas summarize

# Defaults: git root = cwd, index = ~/.cache/scip-cli/projects/<slug>/index.db, sidecar = atlas.db beside index
# Override when needed:
scip-atlas sync --repo /path/to/repo --index /path/to/index.db --sidecar /path/to/atlas.db

# Index can include tests; atlas skips git/summary augment by default (same globs as scip-cli)
scip-atlas sync --include-tests
scip-atlas sync --exclude 'generated/**'

# SQL across index + sidecar (`files`, … are SELECT-only views; sidecar DML via atlas.*):
scip-atlas query 'SELECT COUNT(*) FROM documents d JOIN files f ON f.relative_path = d.relative_path'
scip-atlas query --write "DELETE FROM atlas.files WHERE relative_path = 'path/removed/from/index'"

summarize uses ~/.config/scip-atlas/config.toml ([models.*] endpoints, [prompts], [summarize] limits). First run copies a template and exits until models.<name>.configured = true. After upgrading scip-atlas, merge new template keys without losing your models:

scip-atlas config merge --dry-run   # preview
scip-atlas config merge             # writes backup, then merges

See docs/spec.md § Config file.

Query without git

Copy both files anywhere (sync checkpoints WAL so atlas.db alone is enough). Join on relative_path. scip-atlas query attaches the sidecar and exposes sidecar tables as unqualified names for SELECT (TEMP VIEWs). --write allows mutations; target the sidecar with atlas.files, atlas.dirs, etc. (not unqualified names). Index writes are possible but prefer scip-cli reindex.

ATTACH '/path/to/atlas.db' AS atlas;

SELECT d.relative_path, ct.name, c.commit_time, c.message
FROM documents d
JOIN atlas.files f ON f.relative_path = d.relative_path
JOIN atlas.commits c ON c.sha = f.commit_sha
JOIN atlas.committers ct ON ct.email = c.committer_email
WHERE d.relative_path = 'src/helper.ts';

SELECT relative_path, name, parent_path
FROM atlas.dirs
WHERE parent_path = 'src';

SELECT relative_path, name FROM atlas.files WHERE name LIKE 'Handler%' LIMIT 10;

Docs

Doc What it is
docs/prd.md Why it exists, scope
docs/spec.md Schema, commands, incremental rules
docs/roadmap.md Staged delivery
CHANGELOG.md Release notes

Development

./scripts/test.sh          # ruff, basedpyright, pytest
./scripts/smoke.sh         # end-to-end: index fixture, sync, ATTACH, FTS
pytest -m integration -q   # needs scip-typescript (npx)

Sibling tools

  1. scip-cli — SCIP → SQLite index (structure, refs, analyze).
  2. scip-atlas (this) — git metadata + search overlay + LLM summaries.

Release files for scip-atlas 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scip-atlas 1.0.0
File Size Uploaded
scip_atlas-1.0.0.tar.gz 92.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scip-atlas 1.0.0
File Interpreter ABI Platform
scip_atlas-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 133.7 kB

Release files / scip_atlas-1.0.0.tar.gz

Download URL scip_atlas-1.0.0.tar.gz
Size 92.5 kB
Tags Source
SHA-256 checksum
How to use checksums
840a160d99b4f41e942f0c386710b98491a0b0200d2e3c882fa269b9204ec398
BLAKE2b-256 checksum
How to use checksums
a08e8f45b6b25030c3ce77bc9d2144d59b7bf1f1b5bdf3bdabcd0559100d0ed0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / scip_atlas-1.0.0-py3-none-any.whl

Download URL scip_atlas-1.0.0-py3-none-any.whl
Size 41.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ef4d1b7c96f1597a1f94c5362ea674a1045d21ea408066e08193b6473389ce1
BLAKE2b-256 checksum
How to use checksums
aa5a6973093b89a2470ab3ec474eca23f10965bea395377af68e9218ded5a8cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page