Troubleshooting¶
← Home
- Image is the wrong size or too small in
--inlinemode --inlineshows nothing or garbled output- GitHub rate limit errors
- Large remote trees are slow or truncated
- Archive errors
- MP4 output fails
- SSH authentication failures
- S3 access errors
- Output image is blank or all one colour
- Labels are too small to read
- Windows / WSL2 notes
Image is the wrong size or too small in --inline mode¶
dirplot reads the terminal pixel size via TIOCGWINSZ. This can fail or return wrong values when:
- stdout is a pipe (e.g.
uv run,nohup, CI): pass--canvas WIDTHxHEIGHTexplicitly, or setCOLUMNSandLINESenv vars. - Inside Docker: same as above — the container has no tty.
--inlinein Docker: not supported; use--output - | imgcatinstead (see Running via Docker).
--inline shows nothing or garbled output¶
- Confirm your terminal is in the supported list in Inline terminal display.
- In tmux/screen, the inline protocol may be blocked. Try running dirplot in a bare terminal session.
- AI coding tool terminals (Claude Code, Cursor, Copilot Chat) do not support inline images — use
--showor--output.
GitHub rate limit errors¶
Without a token, GitHub allows 60 unauthenticated API requests per IP per hour. Authenticate via:
gh auth login # Option 1: gh CLI (picked up automatically)
export GITHUB_TOKEN=ghp_… # Option 2: env var
dirplot map github://… --github-token-file ~/.github-token # Option 3: token file
See Examples — GitHub Repositories for full authentication details.
Large remote trees are slow or truncated¶
- Use
--depth Nto limit recursion (start with--depth 3). - GitHub's Git Trees API truncates responses above ~100k entries; dirplot warns and renders what it received.
- For SSH scans, slow hosts may time out on very large trees — use
--depthto reduce thefindtraversal. - If one large file squashes everything else into tiny tiles, add
--log-scale 4.
Archive errors¶
libarchive-cimport error: the Python binding is installed but the system C library is missing. Install it:- Password-protected archive: pass
--password-file <file>or let dirplot prompt interactively. Use--no-inputto fail instead of prompting. .deb/ UDIF.dmgnot supported: see Archive Formats — Intentionally unsupported formats.
MP4 output fails¶
Ensure ffmpeg is installed and on PATH:
ffmpeg -version # should print version info
brew install ffmpeg # macOS
sudo apt install ffmpeg # Debian/Ubuntu
SSH authentication failures¶
- Ensure your key is loaded:
ssh-add -lshould list it. If not:ssh-add ~/.ssh/id_ed25519. - Confirm the host is reachable:
ssh user@host ls /path/to/dir. - dirplot uses
paramiko(pure-Python SSH); keys stored only in an SSH agent or in non-standard formats may need--ssh-key /path/to/key. - Install the SSH extra if you see an import error:
pip install "dirplot[ssh]".
S3 access errors¶
NoCredentialsError: runaws configureor exportAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_DEFAULT_REGION.AccessDenied: the IAM principal needs at minimums3:ListBucketands3:GetObjecton the target bucket.- Slow scans on large buckets: use
--depth Nto limit prefix recursion (e.g.--depth 2).
Output image is blank or all one colour¶
- The directory may be empty or contain only zero-byte files. dirplot tiles are sized by file size — nothing to size means nothing to draw.
- With
--log-scale, a single enormous file can dominate. Try without it first, then add--log-scale 4if the range is too wide. - Check that the path resolves correctly: run
dirplot metrics <path>first to confirm files are found.
Labels are too small to read¶
The default font size is 12 px. If labels appear too small — common on high-resolution displays or when rendering at large canvas sizes — increase it with --font-size:
--font-size is available on map, diff, git, hg, and replay. Automatic font-size scaling based on canvas size is not yet implemented.
Windows / WSL2 notes¶
- Inline display: WSL2 terminals running inside Windows Terminal do not support iTerm2 or Kitty protocols — use
--output file.pngand open the file, or use a supported terminal (e.g. Ghostty for Windows). --inlineslow on WSL2: large images transferred over the WSL2 bridge can be slow; reduce canvas size with--canvas 800x600.- Path separators: always use forward slashes or WSL2 Linux paths (
/mnt/c/…) — Windows-style paths with backslashes are not supported.