profileme 0.1.0
Local-only filesystem profiler that builds a persona profile using a local LLM
what it is
A Rust CLI tool that scans a filesystem, extracts text from many file formats, and uses a local LLM (OpenAI-compatible API) to build a comprehensive persona profile of the computer's owner. Features model-guided file selection (the LLM picks which files to read from a tree), per-file reviews, cumulative profile tracking, characteristics JSON schema, secret redaction, checkpoint/resume, and streaming progress. Everything stays local - no cloud APIs.
readme
profileme
Local-only filesystem profiler. Scans your filesystem, extracts text from many formats, and uses your local LLM (llama-server, OpenAI-compatible) to build a single Markdown profile of you.
Everything stays on your machine. No network calls except to localhost.
Build
cd /path/to/profileme
cargo build --release
Run
Start your model first (recommended: the Qwen IQ3_S build, which has reasoning disabled and responds faster):
cd /path/to/your-model-dir
./start-iq3s.sh
Reasoning models (e.g. saluki) also work — the tool disables chain-of-thought output — but are slower.
Then:
# dry run: see what would be scanned
./target/release/profileme --root ~ --dry-run | head
# small first pass
./target/release/profileme --root ~ --max-files 300 --out profile.md
# full run (resumable)
./target/release/profileme --root ~ --resume --out profile.md
Useful flags
--root PATH(repeatable) roots to scan (default: home)--max-files Ncap files processed--max-file-bytes Nskip bigger files (default 2MB)--ocrrun tesseract on images--include-hiddeninclude hidden dirs/files--include-codealso scan source code files (off by default; code is noisy for personality profiling)--exclude NAMEextra dir names to skip--extract-onlyextract text only, no LLM--no-llmrun without an LLM: heuristic extraction + heuristic profile--resumeskip already-processed files--model-url,--modelpoint at a different local server
Output
profile.mdfinal persona document.profileme/facts.jsonlper-file extracted facts.profileme/checkpoints/resume state.profileme/partial_*.mdintermediate summaries
Privacy
- Skips
.ssh,.gnupg,.pki, secret/key files,.env - Redacts tokens, API keys, private keys, password assignments
- Disable redaction only with
--no-redact
Notes
Scanning an entire home directory can be huge (hundreds of thousands of files).
Use --max-files for a first pass; the crawler prioritizes high-signal files
(READMEs, notes, configs, shell history, docs). Full runs are resumable.
"
files
try it
$ cargo build --release
$ ./target/release/profileme --root ~ --out profile.md
vibe log
model: local LLM (any OpenAI-compatible server)
Built as a local-only tool to profile a person from their filesystem using a local LLM. Features model-guided file selection, per-file reviews with cumulative profile tracking, characteristics JSON schema, streaming progress, and secret redaction.
nd download JG2HQZWB/profileme
nd run JG2HQZWB/profileme
nd fork JG2HQZWB/profileme
/api/projects/profileme/context
/api/projects/profileme/context