Current Version: Cocoalicious 1.0b47 (795k, .zip)

Snow Leopard Compatibility

This latest update (b47) should fix crashes people have been seeing with OS X 10.6 (Snow Leopard).

What is Cocoalicious?

Cocoalicious is a client for Mac OS X. It acts as a desktop interface to your bookmarks

Cocoalicious is open source, available under the terms of the BSD License. If happen to have an iPod (and who doesn't these days?) and you'd like to support Cocoalicious development, you might consider purchasing an $8 license for PodWorks, my iPod song transfer application. Or, if you have an iPhone and use Twitter, you might check out Birdfeed, my iPhone Twitter client.

"Send to Cocoalicious" Bookmarklet

Send to Cocoalicious By far the easiest way to get links from your web browser to Cocoalicious is to drag this button to your browser's bookmark bar and click on it when you want to post a link.

What's New in 1.0b47

  • Fix Snow Leopard-related crashes.

What's New in 1.0b43

  • Fix for the longstanding login problem with the new API URL.
  • Spotlight support! Your bookmarks will now appear in Spotlight searches (thanks to Eric Blair for implementing this).

What's New in 1.0b43

  • Fixed the commonly complained about percent escape crash.
  • Added code to prevent local cache from being overwritten in cases where returns no post data.

What's New in 1.0b42

  • Fixed problem that sometimes prevented the private checkbox from being checked on existing private bookmarks.

What's New in 1.0b41

  • Added support for private bookmarks.
  • Universal binary.
  • Incorporated newest version of Sparkle software update framework.
  • Assorted small improvements and bug fixes.

What's New in 1.0b40

  • Added automatic software update mechanism using Andy Matuschak's awesome Sparkle.

What's New in 1.0b39

  • Local caching of posts.

What's New in 1.0b38

  • Added "extended" and "tags" parameters to "delicious:" URL scheme support. This makes possible an improved "Send to Cocoalicious" bookmarklet, which grabs the currently selected text in the browser window for use as the new posts's extended text.

What's New in 1.0b37

  • Added support for display of favicons, a la Safari.
  • Added minimal Automator support (Find Posts/Tags, Get Selected Post, Filter Posts/Tags).
  • Added AppleScript property to get currently selected post.
  • Added support for "delicious:" URL scheme to make a "Send to Cocoalicious" bookmarklet possible.
  • Improved authentication (logins no longer fails silently, and using Cocoalicious with multiple accounts should be a little easier).
  • Made tags matching case insensitive.
  • Fixed assorted bugs.

What's New in 1.0b36

  • Fixed possible crash related to setting ratings.

What's New in 1.0b35

  • Cocoalicious now recognizes tags that consist entirely of repeated asterix characters as star ratings, and displays the ratings in the post table as graphic stars, à la iTunes. The ratings can also be manipulated directly by dragging in the rating column (again, just like iTunes).
  • The columns in the post table are now sortable.
  • Typing while the tag table has focus will now cause the first match for the letters typed to be automatically selected (à la Address Book).
  • The API access code will now check to see if a second has elapsed since the last API request, and delay the request if it hasn’t (per Joshua's instructions in the API documentation).
  • Assorted bugs are fixed, including one for a crasher that could happen on reload.

What's New in 1.0b34

  • Fixed regression that caused full text search results to be unsorted.
  • Fixed timing-dependent extended search bug.
  • Fixed bug with submitting posts with plus signs or semicolons in the text.

What's New in 1.0b33

  • The tag list and post lists are now managed completely on the client side (in memory) after the initial download of the posts from The entire post list is no longer downloaded from each time a post is submitted or modified--it is simply added to the list on the client side and submitted to asynchronously. This is an enormous performance win.
  • All interaction with the API is now asynchronous. The UI will no longer block during submission of new posts, modification of existing posts, tag renames, "tagging by dragging," etc.

What's New in 1.0b31

  • The full text search feature is finally available in a released version. It's still got some rough edges, but overall works quite well. To try it, choose File > Index All Posts, wait for the indexing to finish, and then switch the search type to Full Text. Thanks to Andrew Wooster for lots and lots of hard work on this feature.
  • The tags field in the new post entry form now has an autocomplete facility, which can be triggered either manually by pressing F5 or (optionally) automatically after a user specified delay. Thanks to Fraser Speirs for his work on this.
  • The search field now uses a slight delay before beginning a search, which makes for smoother performance.
  • The preferences window can now be closed using escape or command-w.
  • Assorted bugs and memory leaks have been fixed.
  • All references to the "dotted" version of the app's name ( have been changed to Cocoalicious, since it is less awkward looking. Users of previous versions may note that their preferences are reset (since the name of Cocoalicious' preferences file has changed).

What's New in 1.0b30

  • "New Post from Safari" can now grab the current selected text in the browser for use as the new post's extended text.
  • AppleScript support has been added (see Armin Briegel's sample scripts).
  • The web preview pane can now be toggled off, and it will not load pages if it is not visible.
  • A toolbar has been added.
  • The search type (basic, extended, etc.) is now persistent across application launches.
  • The search field placeholder text now reflects the specific type of search selected.
  • There is now a better (i.e. working) fix for the problem with renaming a tag to an existing tag.

What's New in 1.0b28

  • Client-side tag filtering: Cocoalicious no longer makes separate HTTP requests to the API to obtain lists of posts filtered by a tag. Rather, the app does all of its own tag filtering on the client-side.
  • Tag intersections by multiple selection: Selecting multiple tags in the tag list now gives you the set of all posts marked with those tags.
  • Tagging by dragging: Users can now add a tag to an existing post by dragging the post to the tag in the tag list (thanks to David Schaefgen for implementing this).
  • Display of extended text via tooltips: Extended text can now be viewed via tooltips, which appear when the user hovers the mouse over a row in the post table (thanks to David Schaefgen for implementing this). We still plan to provide alternative ways of viewing this text in the future.
  • Numerous bug fixes: Including a fix for a problem with renaming a tag to an existing tag, and a regression in a previous build that stopped "Copy As HTML Tag" from working correctly.

What's New in 1.0b23

  • Added "Main window opacity when in background" preference.

What's New in 1.0b22

  • Rewrote authentication mechanism to allow secure storage of password in keychain instead of preferences.
  • Made automatic login a preference.
  • Changed API client code to use the new "/posts/all" call instead of "/posts/recent?count=10000."
  • Made entire API URL prefix (instead of just the server name) configurable to more easily support planned changes to the API.
  • Added "Delete Selected Post" function.
  • Re-enabled tag renaming.
  • Fixed bugs here and there (can't remember them all).

What's New in 1.0b21

  • Added creator code to app for better interoperability with PulpFiction.

What's New in 1.0b20

  • Made it so that indeterminate progress indicator no longer annoyingly spins during type-ahead search.

What's New in 1.0b19

  • Fixed regression introduced in b18, which caused new posts to sometimes go into the system with an older date.

What's New in 1.0b18

  • Indeterminate progress indicator (a.k.a. the spinny thing) now spins during page loads in the preview pane.
  • Fixed bug that caused edited posts to be reposted with the current date (causing them to float up to the top).

What's New in 1.0b17

  • Added editing of existing posts.
  • Added preference and keyboard modifier (option key) to cause links to be opened in the default browser in the background.
  • Changed the initially focused control of main window to be the search field.
  • Changed tab order of controls to exclude the web preview (tabbing order is now: search field, tag list, post list, then back to search field).
  • Made the selection of the initially focused control in the posting interface smarter. The second (description) field is now focused initially if there is a URL on the pasteboard.
  • Changed the date display so that the date format as specified in the International preference pane is honored.
  • Made posting interface fields longer.
  • Changed name of app bundle from "" to "" to correct a problem where the Finder would improperly display the ".app" extension if it was set to show all file extensions.
  • Corrected an embarassing bug that prevented the last tag from being displayed in the tag list.
  • Corrected a problem where double clicking an item in the post list would put its table cell into editing mode, instead of causing it to be opened in the default browser.
  • Corrected assorted other bugs (can't remember them all now, unfortunately).

What's New in 1.0b16

What's New in 1.0b15

  • Corrected drawing problems with view bezels and tables.
  • Corrected problem with improper escaping of "/" characters in usernames, passwords, and posts.
  • Changed keyboard navigation scheme (back arrow now moves focus from posts table to tags table, keyboard no longer opens links in browser).

What's New in 1.0b14

  • Usernames and passwords are now properly percent escaped, which solves a problem that prevented some people from logging in.
  • A minor cosmetic problem where sometimes the preview WebView wouldn't line up against the top bezel properly has been fixed.

What's New in 1.0b13

  • Now significantly more iApp-like thanks to loads of custom UI work!
  • Reconfigured UI layout to cut down on wasted space.
  • Shortened date display format.
  • Modified extended search so it can now be used to search for tag intersections.
  • Enabled primitive caching and conditional HTTP requests to the API, to hopefully avoid unnecessary downloads of data.
  • Switching tag views now causes the current search to be cleared.
  • Fixed a bug that caused & and ? characters to be improperly percent escaped in post text.
  • Temporarily disabled tag renaming feature until problems on the API side are sorted out.

Shouts Out:

Joshua Schachter (for, Bobby Andersen (for the Cocoalicious application icon), Matt Gemmell (for his iTableColumnHeader code), everyone who has given me their feedback.


Tag filtering


Full Text Indexing

Full Text Search & Web Preview

Posting & Tag Completion