Skip to main content
* vkl - a better "ls"-experience

This Python script is a wrapper for the GNU/Linux ~ls~-tool for simple
cases. To be precise, it's a substitute (only) for the following command:

: ls -lt --all --reverse --directory --classify --color=auto

In contrast to the standard ~ls~ output, this script visualizes time
in a much better way:

[[file:images/vkl-Screenshot.png]]

Normal ~ls~ command is listing all files without proper way to
visualize brand-new, new, old, and very old files. By introducing
horizontal bars that sub-divide the output in a pseudo-logarithmical
way, the user gets a *much better feeling on the age* of the items in
the current directory.

- *Target group*: users of a GNU/UNIX command line or similar
- Hosted on github: https://github.com/novoid/vkl

By the way: yes, I tried to get this functionality to the GNU project
to be included to ~ls~. I failed miserably. To me, they don't seem to
add such features for many years. Very conservative :-(

** Installation

Get it from [[https://github.com/novoid/vkl][GitHub]] or install it via «pip install vkl».

# --- BEGIN SHARED: 0dependencies --- see https://github.com/novoid/screencasts/
[[https://0dependencies.dev][https://0dependencies.dev/0dependencies.svg]] → [[https://0dependencies.dev/][learn more about 0dependencies]]
# --- END SHARED: 0dependencies --- see https://github.com/novoid/screencasts/

** Usage

#+BEGIN_SRC sh :results output :wrap src
vkl --help
#+END_SRC

#+BEGIN_src
usage: vkl [-h] [-l] [-m | -c | -a] [-p] [-d DELEGATE] [--debug] [--version]

vkl lists the current directory's contents sorted by time and grouped into pseudo-logarithmic age classes (recently, 1 hour, 1 day, 1 week, 1 month, ...) — a visualization GNU ls does not provide.

Homepage: https://github.com/novoid/vkl

options:
-h, --help show this help message and exit
-l, --log displays directory content by a pseudo logarithmic
time (default option)
-m, --mtime sort items using modification time (default option)
-c, --ctime sort items using change time
-a, --atime sort items using access time
-p, --primitivels use primitive output of directory rather than using
GNU ls
-d, --delegate DELEGATE
delegate additional arguments to ls command; for
values starting with a dash use "=", e.g.
--delegate="-la"
--debug enable (senseless) debug output
--version display version and exit

:copyright: (c) 2010-now by Karl Voit <tools@Karl-Voit.at>
:license: GPL v3 or any later version
:URL: https://github.com/novoid/vkl
:bugreports: via github or <tools@Karl-Voit.at>
:version: 2026-07-16
·
#+END_src


Examples:

: vkl
... the simplest case, sorted by modification time

: vkl -c
... sorted by change time

: vkl -p
... using its own (primitive, self-written) output to circumvent output issues or to use it on non-GNU/UNIX system


* How to Thank Me and Contribute to the Project
# --- BEGIN SHARED: how_to_thank_me --- see https://github.com/novoid/screencasts/

I'm glad if you like my tool. I've got way more projects on:

- [[https://github.com/novoid/][GitHub]] (oldest projects),
- [[https://gitlab.com/publicvoit/][GitLab.com]] (older projects), and
- [[https://codeberg.org/publicvoit/][Codeberg]] (newest projects).

If you want to support me:

- [[https://karl-voit.at/2018/06/07/cardware/][Send old-fashioned *postcard* per snailmail]] - I love personal feedback!
- see [[http://tinyurl.com/j6w8hyo][my address]]
- Send feature wishes or improvements as an issue
- Create issues for bugs
- Contribute merge requests for bug fixes
- Check out my other cool projects on the platforms above

If you want to contribute to this cool project, please fork and
contribute!

I am using [[http://www.python.org/dev/peps/pep-0008/][Python PEP8]] and occasionally some ideas from [[http://en.wikipedia.org/wiki/Test-driven_development][Test Driven
Development (TDD)]]. I fancy Python3 with [[https://typing.python.org/en/latest/spec/annotations.html][type annotations]], although I'm
not using them everywhere at the moment. Starting with 2025, I began
to use help from Claude.ai which is a huge improvement, given my lack
of programming practice and knowledge.

After all, each of my tools was developed because I needed its
functionality and could not get it elsewhere - at least to my
knowledge or taste.

# --- END SHARED: how_to_thank_me --- see https://github.com/novoid/screencasts/

* Local Variables :noexport:
# Local Variables:
# mode: auto-fill
# mode: flyspell
# eval: (ispell-change-dictionary "en_US")
# End:

Metadata

Release files for vkl 2026.7.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vkl 2026.7.16
File Size Uploaded
vkl-2026.7.16.tar.gz 247.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vkl 2026.7.16
File Interpreter ABI Platform
vkl-2026.7.16-py3-none-any.whl Python 3 none any Details

Total release size: 267.5 kB

Release files / vkl-2026.7.16.tar.gz

Download URL vkl-2026.7.16.tar.gz
Size 247.3 kB
Tags Source
SHA-256 checksum
How to use checksums
13b059823a31f36c2cb275a09774ab9e1d0512ce93f9ab66e61e6ca201865848
BLAKE2b-256 checksum
How to use checksums
046fa8c3e2c9c35526ec8a9791244836d7d2e0a1da7c8d46355efb9015d2ac6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / vkl-2026.7.16-py3-none-any.whl

Download URL vkl-2026.7.16-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ec21222e3193c1c517b0517cca72695ed75b8b6dd66f4e461c8fc84e000f189
BLAKE2b-256 checksum
How to use checksums
2535879b794eb1a938a631906be906661a497c78d73de5e475cc9e9dc511367f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

2026.7.16 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page