profileme 0.1.0

Local-only filesystem profiler that builds a persona profile using a local LLM

profilerpersonafilesystemlocal-llmprivacyself-knowledge rusttokioreqwestindicatifwalkdirllmcli rust

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 N cap files processed
  • --max-file-bytes N skip bigger files (default 2MB)
  • --ocr run tesseract on images
  • --include-hidden include hidden dirs/files
  • --include-code also scan source code files (off by default; code is noisy for personality profiling)
  • --exclude NAME extra dir names to skip
  • --extract-only extract text only, no LLM
  • --no-llm run without an LLM: heuristic extraction + heuristic profile
  • --resume skip already-processed files
  • --model-url, --model point at a different local server

Output

  • profile.md final persona document
  • .profileme/facts.jsonl per-file extracted facts
  • .profileme/checkpoints/ resume state
  • .profileme/partial_*.md intermediate 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

14 files — expand to browse

click a file to view it · full files tab ↗

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.

⑂ fork download bundle (.tar.gz) nd download JG2HQZWB/profileme nd run JG2HQZWB/profileme nd fork JG2HQZWB/profileme /api/projects/profileme/context /api/projects/profileme/context license readme recent small · maintainer JG2HQZWB… · 14 files · 97051 bytes · 1 downloads · 3 views · updated 2026-10-25

doubles — similar projects

all doubles →