JavaScript HTML CSS
Failed to load latest commit information.
.idea There are a lot of unresolved functions variable issues in Jasmine. T… Apr 8, 2015
assets Merge pull request #32 from johnhawkinson/external-pdf Dec 4, 2017
test First few tests of ContentDelegate. Apr 17, 2015
.gitignore Fixes #176. You'll no longer see the docket availability when you're … Nov 3, 2017
.travis.yml Add .travis.yml file, which necessitates package.json. Apr 3, 2015
COPYING Initial commit: a working extension that adds "R" icons next to links… Jan 23, 2013
Gruntfile.js Upgrades jquery to make Firefox happy. Aug 8, 2017 Removes permissions to access No longer needed. Nov 3, 2017 Updates testing documentation with random tweaks. May 26, 2015
background.js Support external PDF viewers via option Nov 19, 2017
content.js feat(Content Scripts): Adds support for show_doc URLs Dec 11, 2017
content_delegate.js content_delegate.js: Eliminate de_caseid variable Dec 12, 2017
manifest.json feat(Version): Bumps the version number Dec 12, 2017
notifier.js Be polite. Every console.log() invokation should say "RECAP:" Nov 16, 2017
options.html fix(Options Page): Tweaks the language in the tooltip for the externa… Dec 4, 2017
options.js Merge pull request #32 from johnhawkinson/external-pdf Dec 4, 2017
pacer.js pacer.js: ignore case in caseid RE match Dec 12, 2017
package.json Updates the version in package.json...not sure it matters though. Nov 2, 2017
recap-chrome.iml Adds `node_modules` as an excluded directory in Intellij May 26, 2015
recap.js fix(recap.js): Don't send the pacer_case_id if null or undefined Dec 12, 2017
toolbar_button.js toolbar_button.js: Guard items['options'] Nov 16, 2017
utils.js debug() conditional printing Dec 9, 2017

Build Status

What is this?

This is the code for the RECAP Chrome and Firefox extensions, a program that is used to liberate millions of documents from the PACER system. To install this extension please visit its homepage at

Reporting Issues

Please report all issues at the centralized RECAP issue repo, /freelawproject/recap.

Joining as a Developer

If you wish to contribute to our efforts to drain PACER, please get in touch using the contact form on Free Law Project's website or simply get to work on an issue that interests you.


  1. You can load an "unpacked extension" from chrome://extensions/ if you enable developer options in Chrome. The same can be accomplished in Firefox by going to about:debugging, clicking "Load Temporary Add-on" and then selecting any file.

  2. While it's true that every court has their own customized version of PACER, there is a PACER training site that does not charge fees. You can use this if you wish to work on the system without accruing charges. If you are accruing charges while working on this extension, Free Law Project may be able to help. Let us know.

  3. While you're testing things across versions of PACER, you can use a handy website (json/html) created by @audiodude to find suitable versions of PACER.

  4. If you want to auto-zip your code on changes, you have two options. First, you can install a utility called entr and run:

     command ls *.js | entr zip -FSr * --exclude=*node_modules*

    Alternatively, for Firefox, you can use the web-ext tool, with a command like:

     web-ext run --firefox-profile recap-debugging --start-url --start-url

    To run that you'll need a recap-debugging profile first, but running that will set up auto-reload of the extension in Firefox. It will also load a couple useful URLs in your debugging window.


We got that! You can (and should) run the tests before you push. To do that, install the dependencies described in package.json by running:

npm install -g grunt-cli

And any other commands in .travis.yml.

Then run:

grunt jasmine

If the tests pass, give a push to your repo and send us a pull request.

When we pull your code using Github, these tests will be automatically run by the Travis-CI continuous integration system. You can make sure that your pull request is good to go by waiting for the automated tests to complete.

For more information on testing see

The current status if Travis CI on our master branch is:

Build Status

Releasing a New Version

When a new version is needed, the release process is:

  1. Update package.json and manifest.json with a new release version.

  2. Run web-ext lint to ensure no regressions.

  3. Commit the code.

  4. Tag the code with something like:

     git tag -s '0.8.4' -m "Releases 0.8.4, fixing replaceState and pushState to work in Chrome 43." -u '' -f
     git push --tags -f
  5. Zip up the archive with the rather archaic:

     zip -FSr * --exclude=*node_modules*
  6. Upload that to the Chrome Market.

  7. Upload that to

  8. Make a new release on Github announcing the release.


RECAP for Chrome Copyright 2013 Ka-Ping Yee

RECAP for Chrome is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. RECAP for Chrome is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with RECAP for Chrome. If not, see: