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
- scip-cli — SCIP → SQLite index (structure, refs, analyze).
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| scip_atlas-1.0.0.tar.gz | 92.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|