Skip to content
factlog - File ACTivity LOGger
Python Emacs Lisp Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


factlog - File ACTivity LOGger


Factlog logs your activity on files and uses it for searching.

Rich command line interface. Useful for unix style searching:

factlog list | xargs grep 'def record'

"I want to see some Python files I edited recently":

factlog list --include-glob '*.py'

"I want to list files in this particular project I touched. I don't care about in which branch I opened the file.":

factlog list --under BRANCH-A --under BRANCH-B --relative

"I want to see last 50 notes I took with title":

factlog list --under MY-NOTE-DIRECTORY --relative --title --limit 50

"The files I touched are huge. I want to search only the locations I touched.":

factlog list -C 50 | grep 'def record'

Editor plugin

Factlog currently only have Emacs integration. If you make a plugin for other editors, please let me know. See interfaces for plugin for more information.


Factlog has Emacs plugin. You can get factlog.el from factlog repository.

Command line programs

Factlog is easy to integrate with command line programs such as less and vim. See shell/ for sample setup. You can use shell/ like this:

source PATH/TO/factlog/shell/
alias less="factlog-record-wrapper \\less"
alias vim="factlog-record-wrapper \\vim"

Interfaces for plugin

Command line interface

If your editor can run a command line program, it is possible to write a factlog plugin! See factlog record --help.

RPC interface

Work in progress...

Python interface

Work in progress...

More to come / ideas

  • Ranking based on many data points: how many times you write to the file, how recent you visited the file, etc.
  • Understand "project" (VCS repository).
  • Concurrent grep.
  • Extract URLs in the documents and use them as URL bookmark.


Factlog is licensed under LGPL v3. See COPYING for details.

Something went wrong with that request. Please try again.