ftime is a read-only CLI for answering one question quickly:
What changed in this folder recently?
The name stands for files by time. It scans only the first level of a directory, sorts entries by mtime, and groups them into time buckets so you can see recent changes without recursive noise.
- Read-only by design: no delete, rename, or write operations
- Depth-1 only: see the current folder, not the whole tree
- Buckets:
Active/Today/This Week/History - TTY output for humans, JSON Lines for scripts
Use it when you want to:
- clean up
~/Downloads - check build output in
./target - inspect a log or sync folder
- answer "did anything change here?" in seconds
ftime
ftime ~/Downloads
ftime ./target
ftime /var/log/app
ftime --exclude-dots
ftime --json | jq -r '.path'--json emits one JSON object per line, so it works well with jq and other scripts.
Active
Cargo.toml
Today
README.md
This Week
docs/
History
target/
ls -ltis fine for a quick sorted listing, but it does not group files into recency buckets.ezais great when you want a richer file listing with metadata, modified sorting, and size columns.fdis great when you want recursive search and filters such as "changed within".batis for reading file contents, not for understanding a folder’s recent activity.
ftime is for a different job: a read-only, depth-1 view of recent changes in one folder.
Fetches the latest published installer from GitHub Releases. This installs the latest published release, not unreleased main.
Rust is not required for the GitHub Releases installer.
curl -fsSL https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-install.sh | bashpowershell -ExecutionPolicy Bypass -Command "iwr https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-install.ps1 -UseBasicParsing | iex"Default Windows install dir: %LOCALAPPDATA%\Programs\ftime\bin.
Windows installer currently targets x86_64 / AMD64.
Uses the published crate from crates.io.
cargo install ftime --locked
ftime --versionRequires Rust/Cargo 1.92+.
cargo install --path . --force
hash -r
ftime --versionUninstall steps are documented in ## Uninstall, including custom install directories.
Common flags:
-a, --all: expandHistoryin TTY mode-A, --absolute: show absolute local timestamps like2026-03-16 20:49:28 (UTC+09:00)--check-update: report whether a newer published release is available--self-update: update the current installed binary to the latest published release--exclude-dots: hide dotfiles--no-ignore: disable built-in and file-based ignore rules
ftime --check-update
ftime --self-updateTypical output:
update available: 1.0.1 -> 1.0.2
ftime updated 1.0.1 -> 1.0.2 in /home/tn/.local/bin
ftime is already up to date at 1.0.1 in /home/tn/.local/bin
ftime now points to 1.0.1 (was 1.0.3) in /home/tn/.local/bin
When invoked via a symlink, ftime --self-update updates that symlink directory.
If your current binary predates --self-update, reinstall once from the latest GitHub Releases installer.
curl -fsSL https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-uninstall.sh | bashIf you installed to a custom directory, pass the same location again:
curl -fsSL https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-uninstall.sh | env INSTALL_DIR=/custom/bin bashpowershell -ExecutionPolicy Bypass -Command "iwr https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-uninstall.ps1 -UseBasicParsing | iex"powershell -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((iwr https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-uninstall.ps1 -UseBasicParsing).Content)) -InstallDir 'C:\custom\bin'"cargo uninstall ftimeMIT (see LICENSE)
