Giter Club home page Giter Club logo

bitwarden-autotype's Introduction

Mostly abandoned - still works, but not being developed!

icon bitwarden-autotype

The missing desktop-autotype for Bitwarden.

Autotype/Autofill support has been a requested feature in Bitwarden for years, yet no progress seems to have been made. Queue the Thanos GIF!

thanos

Features

  • Log into your Bitwarden Vault
  • Use a global hotkey (Ctrl-Alt-A) to trigger autotyping
  • Configurable hotkey
  • Match window titles or executable names against Bitwarden Login URLs
  • Choose between multiple matching Logins
  • Autotype following the {USERNAME}{TAB}{PASSWORD}{ENTER} Pattern
  • Custom Autotype Patterns (see #1)
  • Autotype in windows with elevated permissions (see #5)
  • Ability to sync your Vault automatically and manually
  • Pretty UI

How To

  • Install Bitwarden CLI
  • In Bitwarden, set up your login's URL to match the window's title. You may use any match detection for this:
    • Default match detection, Base domain & Host: Wouldn't recommend, since they're geared towards URLs rather than window titles.
    • Starts With: Self-explanatory.
    • Regular expression: The most powerful and versatile option, for example the RegEx .* - Mozilla Firefox would match any Firefox windows.
    • Exact: What it says on the tin - either the window title matches perfectly, or it's out.
    • Never: Why?
  • Download the latest release
  • Run the program
  • A tray icon appears to signal the program is running. Right click it for more option & information.
  • Log into Bitwarden
  • In the window you set up the URL for, hit the Autotype hotkey
  • Feel the magic flow through you

Custom Autotype Patterns

If you want to define your own patterns, you can do so in your Login's Notes. Suppose you wanted to only type the password and hit enter, you'd add this line to your Login's Notes:

Autotype: {PASSWORD}{ENTER}

(Note: the space after Autotype: is required)

You can specify any pattern you want. Supported are:

  • Any Character (some exotic unicode chars may lead to breakage, please report any bugs) except newlines (use {ENTER})
  • {ENTER} to simulate the enter/return key
  • {TAB} to simulate the tab key
  • {USERNAME} to type your login's username field
  • {PASSWORD} to type your login's password field
  • {TOTP} to type the login's two-factor authentication code
  • {SLEEP=X} to pause typing for X milliseconds

Caveats

This is a third party program, not affiliated in any way with Bitwarden. It does not store your logins in any way, but it could. If you don't trust me and cannot read this code, don't use it.

While this program doesn't store your master password, it has to store a session token so you don't have to enter your password every time you want to Autotype. A malicious program on your PC might be able to steal this token from this program's memory. This may also be true for the official Bitwarden client, though. I'm not a security researcher.

Autotyping has inherent risks. For example, if you hit a hotkey while in your favourite chat program, and have URLs set up to match that program's window title, this program will happily broadcast your username & password to the entire chatroom.

This is free software, offered without warranty or liability. I've done my best to create a program I myself can use daily, but don't sue me if it eats your kitten!

Acknowledgements

Like almost all End-user software, this program rides upon the tip of massive open-source iceberg; thousands and thousands of hours of work which I cannot claim credit for.

Special mentions include (but are not limited to!) David Tolnay, the fltk- and fltk-rs Contributors, and everyone working on The Rust Programming Language.

Thank you all for the ecosystem you helped create.

bitwarden-autotype's People

Contributors

dependabot[bot] avatar mcofficer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bitwarden-autotype's Issues

Use custom fields

Hi,
thanks for this great project!

Would it be possible to also use the custom fields of a Bitwarden entry in the autotype sequence?

Support alternative syntax for autotype enteries

This is an enhancement suggestion.

Your project is very similar to anonymous1184/bitwarden-autotype could you consider supporting the same syntax as the other project?

For filling in he has winapp://[appname].exe
and uses a custom field called auto-type, instead of the notes field, personally I feel that is a little cleaner.

I think it would be awesome if you and him were using the same syntax so users, and if it was consistent maybe bitwarden would match it in the future if they add some similar features.

Thanks for the work in developing this, hope this is not rude. I'm just hoping for it to be helpful to the overall community.

Cannot Login due to Captcha

Logs

[19:21:29][bitwarden_autotype::bw_cli] INFO Logging in...
[19:21:36][bitwarden_autotype::bw_cli] ERROR 'bw login' returned non-zero exit code 1
[19:21:36][bitwarden_autotype::bw_cli] ERROR STDERR WAS:
{"response":{"error":"invalid_grant","error_description":"Captcha required.","HCaptcha_SiteKey":"bc38c8a2-5311-4e8c-9dfc-49e99f6df417"},"statusCode":400}
[19:21:36][bitwarden_autotype::bw_cli] ERROR STDOUT WAS:

Linux support

It would be great if this tool could be supported on linux systems. This would probably require a rewrite of the gui part to use some kind of abstraction that supports linux / windows.

Issue: Fails to login when two-step login code required

When Two-step login is enabled, BWAT will not log in.

bitwarden-autotype.log

[19:24:10][bitwarden_autotype::bw_cli] INFO Logging in...
[19:24:16][bitwarden_autotype::bw_cli] ERROR 'bw login' returned non-zero exit code 1
[19:24:16][bitwarden_autotype::bw_cli] ERROR STDERR WAS:
? Two-step login code: �[23D�[23C
[19:24:16][bitwarden_autotype::bw_cli] ERROR STDOUT WAS:

I can log in manually using bw.exe and and then reopen BW-AT.

I input my username and password, and it logs in as normal.

bitwarden-autotype.log

[19:29:03][bitwarden_autotype::bw_cli] INFO Already logged in, unlocking vault...
[19:29:03][bitwarden_autotype] INFO Starting Syncing thread
[19:29:03][bitwarden_autotype::bw_cli] INFO Syncing
[19:29:03][bitwarden_autotype::hotkeys] INFO Registered new hotkey

Custom Autotype sequences

these would be specified in the login's Notes. Planned:

The Essentials:

  • USERNAME
  • TAB
  • PASSWORD
  • ENTER

Advanced:

  • TOTP
  • SLEEP=Xs

How to install?

I figured out that you are using an innosetup script, but when I double-click that script I get:

Compiler error: Line 4: Required parameter FileName missing

Then kInd of figured out that you are using Rust, which I know nothing about. Installed Rust, and tried:
rustc build.rs

Got this:

error[E0433]: failed to resolve: use of
--> build.rs:3:23
|
3 | let mut res = winres::Windo
| ^^^^^^ use of

error: aborting due to previous error

Tried: cargo build
It downloaded a bunch of stuff but got some errors. It created a target directory but I don't know what to do with it. Tried to run the innosetup file again and got the same error as previous.

I"m lost as to how to get this installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.