This is unofficial LastPass API.
There are also a C#/.NET port and a Python port available.
This library implements fetching and parsing of LastPass data. The library is still in the proof of concept stage and doesn't support all LastPass features yet. Only account information (logins, passwords, urls, etc.) is available so far.
There is a low level API which is used to fetch the data from the LastPass
server and parse it. Normally this is not the one you would want to use. What
you want is the Vault
class which hides all the complexity and exposes all
the accounts already parsed, decrypted and ready to use. See the example
program for detail.
A quick example of accessing your account information:
require "lastpass.rb"
vault = LastPass::Vault.open_remote "username", "password"
vault.accounts.each do |i|
puts "#{i.name}: #{i.username}, #{i.password} (#{i.url})"
end
A multifactor password (YubiKey, Google Authenticator) can optionally be appended to the login credentials:
vault = LastPass::Vault.open_remote "username", "password", "multifactor_password"
The blob received from LastPass could be safely stored locally (it's well encrypted) and reused later on.
There's an iOS app called LostPass that is based on a totally incomplete C++ port of this library. If you are a LastPass user it would have made your life much easier if I didn't have to take it down from the App Store. Now it's open source and if you have a developer account or a jailbroken phone you could build it and install it on the phone. The source code is here.
Contribution in any form and shape is very welcome. Have comments, suggestions, patches, pull requests? All of the above are welcome.
- Chris D'Ambrosio for adding proxy support
The library is released under the MIT license.