clippingkeeper stores all your web "clippings" (title, url, text) in a database for later retrieval. I wrote it to reliably store weblog entries and other web pages for later use in my own "list of..." weblog entries.

clippingkeeper is usually called from a Javascript bookmarklet, which (at least using the Opera web browser), will populate the title and url fields with (your choice of) title and url of the selected text (if you have a link selected), or title and url of the current page.

clippingkeeper uses a Python cgi script to store and view the entries. To use clippingkeeper, you must have a web server capable of calling Python version 2.4 scripts, and a PostGreSQL database accessible to the web server.

Current version



Expat License, AKA MIT License.


  1. Modify clippingkeeper.example.cfg to suit your web server (cgiurl), database ([db] section), and personal tastes ([categories] section).
  2. Save clippingkeeper.example.cfg as clippingkeeper.cfg (i.e. remove the ".example" from the name).
  3. Run clippingkeeper.postgresql.sql on your database to create the ckentries table. A convenience script, deploy.pgsql.example.bsh, is included. Modify the capitalized arguments as necessary.
  4. Copy the following to the cgi-bin/ directory of your chosen web server:
    • clippingkeeper.css
    • clippingkeeper.cfg
  5. Test clippingkeeper by calling it with no arguments (i.e. http://yourhost/cgi-bin/ You should see the main page ("Add an entry").


  • Add an entry.
  • View the entries.
  • When you want to set some entries as used, meaning you want to publish them somewhere else and no longer see them in the "new" view, select them from the "view new" link. Another page will appear, with those links in a textbox, ready for copying.

The entries will appear as a list in the selected format (ReST format, or HTML anchors).

clippingkeeper will not delete the entries immediately; you must go to the admin page and flush the table to permanently delete the entries.


  • add user-selected output format
  • add deletion of isnew=0 records

author: Andrew Ittner
© 2007
Last modified 2021-08-09