# 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
```bash
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):
```bash
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:
```bash
# 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.
"