An interactive terminal browser for .safetensors files
Project description
sft
A fast, interactive terminal browser for .safetensors files.
AI-agent friendly — run sft skill install to teach Claude, Cursor, and Codex CLI how to use it.
Why?
If you work with ML models, you've probably found yourself wondering "what's actually in this .safetensors file?" — the layer names, shapes, dtypes, sizes. Maybe you want to check if a model has the layers you expect, compare two checkpoints, or just explore an unfamiliar architecture.
sft lets you do that instantly from your terminal. No Python scripts, no notebooks, no waiting for tensors to load into memory. It reads only the file header, so even multi-gigabyte models open in milliseconds.
⚡ Installation
The recommended way to install is via uv:
uv tool install sft-cli
This makes sft available globally as a command.
Or install with pip:
pip install sft-cli
Usage
sft model.safetensors
That's it. Navigate with arrow keys, search with /, quit with q.
✨ Features
- Hierarchical browser — Tensors grouped by namespace (e.g.,
model.layers.0.attention) - Instant startup — Header-only parsing, works on multi-GB files
- Search — Filter tensors by name with
/ - Sort — By name, size, or rank with
s - Inspect — View full tensor details with
Space - Metadata — See embedded file metadata with
m - Read-only — Never touches your model files
⌨️ Keybindings
| Key | Action |
|---|---|
↑/↓ |
Navigate |
←/→ |
Collapse/expand tree |
Tab |
Switch panels |
/ |
Search |
s |
Cycle sort mode |
Space |
Tensor details |
m |
File metadata |
f |
Filter by dtype |
q |
Quit |
Use with AI agents
sft ships with an installable agent skill that teaches AI coding agents (Claude Code, Cursor, Codex CLI, and anything supporting the ~/.agents/skills/ open standard) when and how to use the CLI:
sft skill install # auto-detects installed agents
sft skill status # see where it's installed and how
sft skill uninstall # tidy up
The default install is a symlink (or directory junction on Windows) into each agent's well-known skills directory, so the skill auto-updates whenever you upgrade sft-cli (uv tool upgrade sft-cli / pip install -U sft-cli). Pass --mode copy if you'd rather have a frozen copy.
Every command also supports --json for reliable parsing — agents are taught to always pass --json when their output will be parsed.
License
MIT
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 sft_cli-0.2.0.tar.gz.
File metadata
- Download URL: sft_cli-0.2.0.tar.gz
- Upload date:
- Size: 213.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62399f7636bc704dd904a0b952a252a6339f57535de12fe515a240bcc30b1fd9
|
|
| MD5 |
09428d52c9e30f9c09a89bc28e21f03d
|
|
| BLAKE2b-256 |
1f6971e0d9eeee8b915dbdeddeaa79575fbb7a386de0e2f13abfb806483ef118
|
Provenance
The following attestation bundles were made for sft_cli-0.2.0.tar.gz:
Publisher:
publish.yml on matanby/sft-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sft_cli-0.2.0.tar.gz -
Subject digest:
62399f7636bc704dd904a0b952a252a6339f57535de12fe515a240bcc30b1fd9 - Sigstore transparency entry: 1569273038
- Sigstore integration time:
-
Permalink:
matanby/sft-cli@3dd51de7a730323b079a0278d87b4c7c4fc7a18b -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/matanby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3dd51de7a730323b079a0278d87b4c7c4fc7a18b -
Trigger Event:
release
-
Statement type:
File details
Details for the file sft_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: sft_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 99.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28435ec196036b5a1783295cb015297bbffa54f79286b85c0942a0b99a48b59b
|
|
| MD5 |
45ceb997bc95cfabd3923457acb6ccf6
|
|
| BLAKE2b-256 |
f542f8030fee06fab32270f82b0fa4b19fd82b1f5f148c4022192a6a1b866ff3
|
Provenance
The following attestation bundles were made for sft_cli-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on matanby/sft-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sft_cli-0.2.0-py3-none-any.whl -
Subject digest:
28435ec196036b5a1783295cb015297bbffa54f79286b85c0942a0b99a48b59b - Sigstore transparency entry: 1569273083
- Sigstore integration time:
-
Permalink:
matanby/sft-cli@3dd51de7a730323b079a0278d87b4c7c4fc7a18b -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/matanby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3dd51de7a730323b079a0278d87b4c7c4fc7a18b -
Trigger Event:
release
-
Statement type: