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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| scip_atlas-1.0.0.tar.gz | 92.5 kB | Without provenance | Details for scip_atlas-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scip_atlas-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for scip_atlas-1.0.0-py3-none-any.whl |
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
|
Security for scip-atlas 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.