Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

How to install:

Put *.py to one of your $PATH directories (for example, ~/bin or /usr/local/bin).

After first run the ~/.pylbooru will be created and settings.cfg will be put
into. Check it and set TAGSDIR, UNSORTEDDIR and QUERYDIR to existing dirs where your
sorted and unsorted pictures are located and query results will be placed. Your pictures directory
should look like this:

~/pics <-- TAGSDIR
  +-- Anime -+- pic1.jpg
  |          |
  |          +- pic2.jpg
  |          |
  |          +- neko.jpg -------------------+
  |          |                              |
  |          +- fun_neko.jpg ---+           |
  |                             |           |
  +-- Cats -+- cat1.jpg         |           | hardlink
  |         |                   | hardlink  |
  |         +- fun_neko.jpg ----+           |
  |         |                   |           |
  |         +- neko.jpg --------|-----------+
  |                             |
  +-- Humor -+- fun_neko.jpg ---+
	     +- lol.jpg
	     +- fun_strip.jpg

I.e. pictures dir contains only directories which names are tags and tags
contains only files which are hardlinked when one file belongs to several
tags. I suggest saving pictures to some Unsorted tag-dir and then tag them
using It's a simple utility which is designed to do fast tagging
with autocompletion and hotkeys. It shows your pictures in UNSORTEDDIR and
allow to enter any number of tags in the bottom field. Bash-like
autocompletion of tags is provided. When you've entered all tags, press Tag
button or Ctrl+S to make hardlinks. If you set "Delete tagged" checkmark, the
original file in UNSORTEDDIR will be deleted (don't worry, it will have links
in tag-directories so it won't be actually deleted, just unlinked). If you
added some new pictures to UNSORTEDDIR, press Refresh button or Ctrl+R or F5
to load those new pics and tag them. See --help for parameters and

When you sorted your collection run to index them all. Make some
coffee and wait until the process finishes. Now you can filter the collection
with Try --help for parameters and examples.

Recent activity


Commits by eurekafag were pushed to eurekafag/pylbooru

3d6b85f - Skipping, deleting files. Tooltips with hotkeys description. Automatic tag suggestion for selected files (by filename).

Commits by eurekafag were pushed to eurekafag/pylbooru

9c052cc - Added: multiple files selection and tagging; tag list; TODO list; skipping non-graphic files in UNSORTEDDIR; overriding UNSORTEDDIR for one launch via command line parameter; recursive ...
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.