Metadata-Version: 2.4
Name: sanjjaystars
Version: 0.1.0
Summary: ThinkStick launcher: fetches a portable llama.cpp engine + GGUF model and runs a fully offline local AI assistant.
Author-email: SANJJAY <sanjjay@example.com>
License: MIT
Project-URL: Homepage, https://github.com/sanjjay/thinkstick
Keywords: llama.cpp,offline-ai,thinkstick,gguf,local-llm
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31
Requires-Dist: tqdm>=4.66
Dynamic: license-file

# sanjjaystars

ThinkStick launcher. Installs a command that fetches a portable
[llama.cpp](https://github.com/ggml-org/llama.cpp) engine plus a quantized
GGUF model on first run, then serves a fully offline local AI assistant on
`127.0.0.1`. Nothing is ever sent off the machine.

## Install

```bash
pip install sanjjaystars
```

Installing does **not** download or run anything — it only puts the
`sanjjaystars` command on your PATH. That's intentional: packages that
silently download-and-execute at `pip install` time are exactly the
pattern PyPI's security scanners flag as a supply-chain risk, so this
project keeps install and run as two separate, explicit steps.

## Run

```bash
sanjjaystars run
```

First run downloads the engine (~100 MB) and the default model (~4.7 GB,
Qwen2.5-Coder) into a local cache directory, then starts the server and
opens your browser. Every run after that reuses the cache and starts in
a few seconds.

```bash
sanjjaystars list-models          # see what's available
sanjjaystars run --model research # switch models
sanjjaystars run --model math
sanjjaystars download             # fetch without starting the server
sanjjaystars run --force-download # re-fetch even if cached
```

Cache location defaults to `~/.cache/sanjjaystars` (Linux/macOS) or
`%LOCALAPPDATA%\sanjjaystars` (Windows). Override with the
`SANJJAYSTARS_HOME` environment variable.

## Before you publish this to PyPI

The download URLs in `src/sanjjaystars/config.py` are pinned to specific
llama.cpp release tags and specific GGUF filenames. Both go stale —
llama.cpp cuts new releases regularly, and quantized model repos on
Hugging Face get renamed or re-uploaded. **Verify every URL in
`config.py` against the live release/repo before shipping**, and budget
for updating them again on release day. If a user's download 404s,
that's the first place to check.

## License

MIT — see LICENSE.
