Skip to main content

JaySoft AI Tools — open-source codebase intelligence shell and SDK

Project description

JSAT — JaySoft AI Tools

Codebase intelligence shell and SDK. Lightweight by default.

License: MIT Python 3.10+ Author

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 SDKfrom jsat import JSAT
  • Works offline with local Ollama — no API keys required
  • Lightweight by defaultpip install jsat is ~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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsat-0.1.0.tar.gz (85.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jsat-0.1.0-py3-none-any.whl (104.6 kB view details)

Uploaded Python 3

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

Hashes for jsat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d044503fe72e0a894e2a84e022d6a25634f2a377063664c8d6de100686126754
MD5 da36dc8cd1f9ed1d24b06cc28e7ad992
BLAKE2b-256 9f6bcd5364e32488061c786a377afb8ad38bd783d4c142d00bc8e1d723742db2

See more details on using hashes here.

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

Hashes for jsat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 af4767f3bc36aab33be640475e04f69033eaea21bc2f3e48062b2433bdb8812f
MD5 ac1e74b1292f989cf93693f6b46450ac
BLAKE2b-256 209e717b0032889525b8da83e458ae9b97520b08f8d40a1b824a0cbd9c7ab430

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page