JaySoft AI Tools — open-source codebase intelligence shell and SDK
Project description
JSAT — JaySoft AI Tools
Codebase intelligence shell and SDK. Lightweight by default.
What is JSAT?
JSAT gives any AI (Claude, Codex, Gemini, or local Ollama) deep, structured understanding of your codebase — so you spend less time explaining context and more time shipping.
- Interactive shell like IPython, but for codebase intelligence
- Python SDK —
from jsat import JSAT - Works offline with local Ollama — no API keys required
- Lightweight by default —
pip install jsatis ~80MB and starts in <800ms
Quick Start
pip install jsat # core only
pip install jsat[local] # + Ollama for local AI (recommended)
cd your-project/
jsat init --profile solo # write .jsat.yaml
jsat index . # build the codebase graph
jsat # start the shell
JSAT Shell v0.1.0
> what does this project do?
> which services write to the orders table?
> blast-radius src/payment/refund.py
Installation Profiles
| Profile | Command | Size | Use case |
|---|---|---|---|
| Core | pip install jsat |
~80MB | Quick evaluation |
| Local AI | pip install jsat[local] |
~85MB | Solo dev with Ollama |
| Standard | pip install jsat[standard] |
~120MB | Individual engineers |
| Team | pip install jsat[team] |
~200MB | Engineering teams |
| CI | pip install jsat[ci] |
~90MB | CI pipelines (no AI cost) |
| Full | pip install jsat[all] |
~350MB | Power users |
System Auto-Detection
JSAT probes your machine on first run and selects the right backends:
jsat doctor # see what's detected and what to install
| Your setup | Graph | Embeddings | Cache |
|---|---|---|---|
| Laptop, Ollama running | SQLite | nomic-embed-code (local) | disk |
| Team server (Neo4j+Qdrant+Redis) | Neo4j | text-embedding-3-small | Redis |
| ARM (Apple M2, Pi) | SQLite | nomic-embed-code via Metal | disk |
| CI environment | SQLite | none (skipped) | memory |
Python SDK
from jsat import JSAT
js = JSAT(repo=".")
js.index()
# Natural language query
result = js.query("what calls the refund endpoint?")
print(result.answer)
# Blast radius — trace impact of a change
report = js.blast_radius("src/payment/refund.py")
for impact in report.impacts:
print(f"{impact.severity}: {impact.node_name}")
# Incident investigation
incident = js.investigate_incident("500 errors on checkout since 14:00")
for h in incident.hypotheses:
print(f"Score {h.score}: {h.commit_summary}")
# Export for sharing
js.export("backup.jsat.zip")
CLI Reference
jsat index [PATH] [--branch HEAD] [--force]
jsat shell
jsat doctor [--refresh] [--json]
jsat init --profile solo|team|ci|raspberry-pi
jsat export OUTPUT
jsat import ARCHIVE
jsat skills list
jsat version
Architecture
JSAT is built around a graph-native architecture:
- tree-sitter for multi-language AST parsing
- SQLite (local) or Neo4j (team) for the codebase graph
- Ollama (local) or any cloud LLM for AI features
- Lazy loading — nothing heavy loads until you use it
All backends implement ABCs — tools never call backends directly.
Project
- Author: Jay Prakash Sonkar (@iamjpsonkar)
- Email: iamjpsonkar@gmail.com
- License: MIT
- Specification:
plan.md| Implementation guide:prompt.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jsat-0.1.0.tar.gz.
File metadata
- Download URL: jsat-0.1.0.tar.gz
- Upload date:
- Size: 85.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d044503fe72e0a894e2a84e022d6a25634f2a377063664c8d6de100686126754
|
|
| MD5 |
da36dc8cd1f9ed1d24b06cc28e7ad992
|
|
| BLAKE2b-256 |
9f6bcd5364e32488061c786a377afb8ad38bd783d4c142d00bc8e1d723742db2
|
File details
Details for the file jsat-0.1.0-py3-none-any.whl.
File metadata
- Download URL: jsat-0.1.0-py3-none-any.whl
- Upload date:
- Size: 104.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af4767f3bc36aab33be640475e04f69033eaea21bc2f3e48062b2433bdb8812f
|
|
| MD5 |
ac1e74b1292f989cf93693f6b46450ac
|
|
| BLAKE2b-256 |
209e717b0032889525b8da83e458ae9b97520b08f8d40a1b824a0cbd9c7ab430
|