sysscope
v1.0.1
Published
π Audit your Mac/Linux machine and see exactly which local AI models (Ollama) and CPU/GPU dev workloads it can actually run β model-by-model fit verdict, health scorecard, and zero installs.
Maintainers
Readme
π SysScope β System Capability & AI-Readiness Audit
GitHub repo Β· Gist mirror Β· run it instantly: npx sysscope
A small, modular, read-only shell tool that audits any Mac (and most Linux boxes) and tells you, in plain language:
- What hardware you have β CPU, GPU, Neural Engine, RAM, storage, battery, thermals
- What dev & AI software is installed β languages, package managers, containers, VMs, LLM tooling
- Which local AI models you can actually run β a model-by-model "fits / tight / too big" verdict tuned to your memory
- What to run together β a health scorecard and concurrency advice so you don't blow your RAM budget
It prints a colorized terminal report and writes a shareable Markdown report (plus optional JSON). It never changes your system β it only reads.
Made for the common question: "I want to run Ollama / Docker / emulators / VMs on this machine β what will actually run well, and what should I pick?"
βΆ Try it now (no install):
npx sysscope⨠Features
- π§ AI capability engine β computes a realistic memory budget (unified RAM on Apple Silicon, VRAM on NVIDIA, or CPU-only) and grades 15 popular Ollama models against it.
- π₯οΈ Real hardware detection β Apple Silicon core layout, GPU cores, Metal version, NVIDIA VRAM, disk pressure, battery health, thermal throttling.
- π©Ί Health scorecard β disk / memory / AI / battery rated π’π‘π₯ with one-line reasons.
- π§© Modular β one job per file (
lib_*,mod_*). Easy to read, extend, or trim. - π¦ Single-file bundle β
build.shconcatenates everything intoaudit-bundle.shforcurl | bashdistribution. - π Privacy mode β
--shareredacts serials, UUIDs, and hostname so you can post the report publicly. - π€ Interactive or unattended β menu-driven by default, fully scriptable with flags.
- π Multiple outputs β pretty terminal, Markdown report, and machine-readable JSON.
- π Portable β pure Bash, compatible with the bash 3.2 that ships on macOS (no extra installs).
π Quick start
Option A β run it with npx (no install, no clone) β
npx sysscopeThat's the whole thing. npx fetches and runs it; you get an interactive menu, then a saved sysscope-report-*.md. Pass any flag straight through:
npx sysscope --ai-only # "which models can I run?"
npx sysscope --quick --yes # fast, unattended
npx sysscope --share # redacted, shareable reportNeeds Node (for
npx) andbash(built in on macOS/Linux; use WSL/Git Bash on Windows). The launcher only runs the local audit β it makes no network calls.Want the very latest (unreleased) version straight from
main? Usenpx github:aoneahsan/sysscope.
Option B β clone the repo (modular version)
git clone https://github.com/aoneahsan/sysscope.git
cd sysscope
chmod +x audit.sh
./audit.shOption C β single file, no Node
# Download just the self-contained bundle and run it
curl -fsSLO https://raw.githubusercontent.com/aoneahsan/sysscope/main/audit-bundle.sh
bash audit-bundle.sh
# β¦or pipe it (always review remote scripts first!):
curl -fsSL https://raw.githubusercontent.com/aoneahsan/sysscope/main/audit-bundle.sh | bashπΉοΈ Usage
./audit.sh [options]
PRESETS
-f, --full Full audit (default)
-q, --quick Faster: skips software inventory & deep disk scan
-a, --ai-only Just "what AI models can I run?"
OUTPUT
-o, --output FILE Markdown report path (default: ./sysscope-report-<timestamp>.md)
--no-report Terminal only
--json [FILE] Also write JSON metrics
--deep Include slow probes (largest items in home folder)
PRIVACY
--share Redact serials / UUIDs / hostname (safe to publish)
BEHAVIOR
-y, --yes Non-interactive (accept defaults)
--no-color Disable colors
--gist-url URL Feedback URL printed in the report
-V, --version Print version
-h, --help Show helpExamples
./audit.sh # interactive, full audit, saves a report
./audit.sh --quick --yes # fast, unattended
./audit.sh --ai-only # which models fit?
./audit.sh --share -o report.md # redacted, shareable
./audit.sh --json metrics.json # full audit + JSON metricsπ Sample output (excerpt, redacted)
== Local AI / LLM Capability ==
Inference backend unified memory (Metal GPU shares 16 GB)
Usable memory budget ~11.5 GB for the model + context
Capability tier Comfortable β 7β9B daily (14B tight)
[OK ] Hardware-accelerated local inference is available.
Which models fit (Ollama, Q4 quantization)
MODEL PARAMS ~SIZE FITS?
llama3.1:8b 8B 4.7GB β
yes
qwen2.5-coder:7b 7B 4.7GB β
yes
gemma2:9b 9B 5.4GB β
yes
qwen2.5:14b 14B 9.0GB π‘ tight
gemma2:27b 27B 16.0GB π΄ too big
== Health Scorecard & Recommendations ==
Disk π₯ critical Only 19 GB free β reclaim before installing tools.
Memory π’ good 16 GB β one very-heavy workload at a time.
Local AI π Comfortable β 7β9B daily (14B tight) (~11.5 GB budget)The Markdown report contains the same content as GFM tables, ready to paste into an issue, wiki, or gist comment.
π§ How the AI capability engine works
- Find the memory budget that matters for inference:
- NVIDIA GPU β ~92% of VRAM (
nvidia-smi). - Apple Silicon β
total RAM β 4.5 GB(the GPU shares unified memory; the rest is for macOS + a couple of apps). - CPU-only β
total RAM β 3 GB, with a "this will be slow" warning.
- NVIDIA GPU β ~92% of VRAM (
- Grade each model in a built-in catalog: a model comfortably fits if
size Γ 1.3 β€ budget(the Γ1.3 covers the KV cache / context), is tight if it merely fits, else too big. - Pick a tier (Minimal β Workstation) and print a tailored starter set plus install commands.
Generation speed is memory-bandwidth-bound, so the tool gives qualitative tok/s ranges rather than false precision.
Note: on Apple Silicon, local LLM runtimes (Ollama, llama.cpp) use the GPU via Metal, not the Neural Engine. SysScope says so explicitly to clear up a common myth.
π§© Project structure
Each file does one thing and is sourced by audit.sh:
| File | Responsibility |
|------|----------------|
| audit.sh | Entry point: arg parsing, interactive menu, orchestration |
| lib_core.sh | Output/formatting, OS detection, prompts, helpers |
| lib_report.sh | Markdown + JSON document lifecycle, tables |
| mod_system.sh | OS, model, chip, kernel identity |
| mod_cpu.sh | CPU topology (P/E cores) |
| mod_memory.sh | RAM, swap, pressure |
| mod_gpu.sh | GPU, unified vs discrete VRAM, accelerators |
| mod_storage.sh | Disk capacity, free space, biggest items |
| mod_power.sh | Battery health, charge, thermal throttling |
| mod_software.sh | Languages, package managers, containers, AI tooling |
| mod_ai.sh | Local-AI capability assessment |
| mod_recommend.sh | Health scorecard + workload guidance |
| build.sh | Bundles all of the above into audit-bundle.sh |
Extending it
Add a mod_yours.sh that defines mod_yours() using the helpers (section, field, status, bullet, table_begin/table_row, j). Register it in audit.sh (the _SS_MODULES list and a preset in modules_for_preset), then ./build.sh to refresh the bundle.
π» Compatibility
| Platform | Support | |----------|---------| | macOS (Apple Silicon) | β Full β the primary target | | macOS (Intel) | β Full | | Linux (NVIDIA / generic) | π‘ Best-effort β hardware, RAM, disk, AI budget, software; battery/thermals limited | | Windows | β Use WSL (Linux path) |
Requires only Bash 3.2+ and standard Unix tools (awk, sed, df). No root, no installs.
π Privacy
By default the report includes your serial number and hostname (handy for your own records). Run with --share (or answer "yes" to the redaction prompt) to replace those with βΉredactedβΊ and stamp a privacy banner β then the Markdown is safe to post publicly.
SysScope makes no network connections and writes nothing outside the report/JSON paths you choose.
π¬ Feedback & contributing
Found a value that looked wrong on your machine, or want a check added (more GPUs, more models, BSD support)?
- Open an issue: https://github.com/aoneahsan/sysscope/issues β include your OS + chip + the line that looked off (no serials needed;
--shareredacts them for you). - Or fork and tweak a
mod_*.shβ it's deliberately small. After editing modules, run./build.shto refreshaudit-bundle.sh, then open a PR.
The built-in model catalog in mod_ai.sh is just data; PRs that keep model sizes current are very welcome.
π License
MIT β see LICENSE. Use it, fork it, ship it.
β οΈ Disclaimer
SysScope is read-only and reports estimates (model sizes, speeds, and budgets are approximate and depend on quantization, context length, and other running apps). Always sanity-check before making purchasing or production decisions.
