Skip to content

tsutomu-n/ftime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ftime = files by time

English | 日本語 | 中文

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.

release

demo_ftime

  • 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

Why ftime?

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

Common examples

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.

Example output

Active
  Cargo.toml
Today
  README.md
This Week
  docs/
History
  target/

Compared to other tools

  • ls -lt is fine for a quick sorted listing, but it does not group files into recency buckets.
  • eza is great when you want a richer file listing with metadata, modified sorting, and size columns.
  • fd is great when you want recursive search and filters such as "changed within".
  • bat is 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.

Install

GitHub Releases (recommended)

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.

macOS / Linux

curl -fsSL https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-install.sh | bash

Windows (PowerShell)

powershell -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.

crates.io

Uses the published crate from crates.io.

cargo install ftime --locked
ftime --version

From source (for unreleased main)

Requires Rust/Cargo 1.92+.

cargo install --path . --force
hash -r
ftime --version

Uninstall steps are documented in ## Uninstall, including custom install directories.

Common flags:

  • -a, --all: expand History in TTY mode
  • -A, --absolute: show absolute local timestamps like 2026-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

Update

ftime --check-update
ftime --self-update

Typical 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.

Uninstall

GitHub Releases install

macOS / Linux

curl -fsSL https://github.com/tsutomu-n/ftime/releases/latest/download/ftime-uninstall.sh | bash

If 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 bash

Windows PowerShell

powershell -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 install / cargo install --path .

cargo uninstall ftime

Learn More

License

MIT (see LICENSE)

About

Read-only CLI to see recently changed files in time buckets, without recursive noise.

Topics

Resources

License

Stars

Watchers

Forks

Contributors