URL Shrink provides a system-wide utility to shorten and expand URLs across multiple services (is.gd, bit.ly, etc.)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
URL Shrink.xcodeproj
URL Shrink_Prefix.pch


URL Shrink
URL Shrink is an OS X tool for converting URLs to shorter permalinks on various web services. It was designed to make it extremely easy to write a bit of code to integrate with other web services, including private URL services. Users can also specify their preferred service which is saved as a default.

URL Shrink is licensed under the BSD license, and its adoption within Mac and iPhone applications is encouraged.


- Automatic downtime detection and re-routing
- Compiled .framework and .a for including in Mac and iPhone apps, respectively
- Text service
- Command line client
- Shared default selection across applications (and sync across machines with MobileMe/Dropbox/etc.)

Grab the source code from GitHub. After you clone, be sure to check out submodules. Compile the application and run.

Run the application and copy a URL to the clipboard. Then, press Option-Shift-Space (hardwired for now). It will convert the URL to a shrunken URL in the background and replace it. That's all it can do for now.

URL Shrinkers
There are six shrinkers in the system right now:

1. Loopback - This is mainly for debugging, it simply returns the URL you submitted
2. TinyURL.com
3. is.gd
4. tr.im
5. digg.com
6. idek.net

Writing a URL Shrinker
You need to write two methods in your URL shrinker:

-(void)performShrinkOnURL:(NSURL *)url;
This performs the guts of the shrink. You can schedule asynchronous operations to run, such as NSURLRequests. Whenever the URL is retrieved (which doesn't have to be in this method), you must call doneShrinking:, supplying either the shrunken URL or nil if there was an error.

+(NSString *)name;
Must return a human-readable and unique name for your URL shrinker.

Note: Developers no longer need to implement the +load method in subclasses of the URL Shrinker base-class.