What is Secret Agent?

Secret Agent is a helper application which runs along side the Codebook for Desktop Applications. It allows you to quickly access and insert your Codebook data into other applications and browsers without bringing up the main Codebook window. Secret Agent is a feature of Codebook for Windows and Codebook for macOS. It is not available on iOS and Android.

Enabling The Feature

  • macOS: Codebook -> Preferences -> General -> "Enable Secret Agent with keyboard command"
  • Windows: File -> Preferences -> "Run Secret Agent at Windows Login"

Adjust the Secret Agent Keybinding to your liking, or just leave it as the default.
Default hotkey combinations:

  • macOS: ⇧ + ⌘ + \
  • Windows: ⇧ + Ctrl + \

Filling Out Forms

Inserting a single value using Secret Agent

Basic Insertion from Zetetic on Vimeo.

Place your cursor in the field which you'd like to fill (i.e. password field of a login form). Launch Secret Agent using the hotkey you specified in preferences, search for the desired record, select it, select the desired field and it will be inserted.

Basic Form Fill (Run Default Action)

Default Action from Zetetic on Vimeo.

Run Default Action can be invoked with the Play button when viewing an Entry in Secret Agent (or Command + R in macOS and Control + R in Windows). First, it looks to see if you have a Secret Agent Action (explained further down in this post) field on the entry and runs that. If not, it attempts to run a default action using the username/email and password fields on the record to insert in the active application.

Custom Secret Agent Action

Custom Action from Zetetic on Vimeo.

Custom Secret Agent actions can be invoked by searching for the entry within Secret Agent and selecting the "Secret Agent Action" field associated with it. Alternately you can "Run Default Action" on the entry as noted above. In this example we're logging into Dropbox with 2 factor authentication enabled. The custom Secret Agent Action is: #[email]<tab>#[password]<enter><wait3>#[totp]<enter>. It's associated with this Secret Agent Action suggestion: Page 1: Email & Password, Page2: TOTP (More explained about this under "Helpful Tips and Suggestions")

Settings up a Custom Action

Add a custom label of type "Secret Agent Action"

File -> Customize Label. Add a new label, name it whatever you'd like (e.g. "Quick Fill"), and set the 'Mode' to "Secret Agent Action".
Note: new installations should have a "Secret Agent Action" field already installed by default.

Add a field of the name you just created ("Quick Fill")

Open an existing entry or create a new entry. Add a field, and set the label to the "Quick Fill" label you just created. Start typing in the field, you'll notice a list of suggestions shows up in a small table underneath. You can arrow down or up (or click) to cycle through the suggestions to see what their representative commands are. Once you find one that you'll think will be suitable for the site or form you're trying to fill, hit enter, and save the entry.

Try it out!

Go to a website or form that you'd like to fill in, click in the first field that you'd like to fill and call Secret Agent using it's defined key combination. Search for the appropriate entry (in our example "New Entry") and arrow down to the Secret Agent Action field ("Quick Fill" in our example), hit enter and the command sequence will be activated. In our example, it will fill the username ("MyUsername"), tab, fill the password ("@=wX[7qp,rceZ7"dH"), and hit enter to sign in.

Helpful tips and suggestions

We recommend filling the target form once manually (without using the mouse) to determine what commands are necessary. As you're filling it, note which keys you're using to navigate between fields and submit the form. This should directly parallel with the available commands: <tab>, <enter>, <waitN> (where N is the number of seconds to wait) <space> (we've found this one handy for toggling those "Remeber me" check boxes).

We've pre-populated the Secret Agent Action suggestions table with, what we believe to be, the most common scenarios. The available suggestions are:

        Username & Password
        Email & Password
        Page 1: Username, Page 2: Password
        Page 1: Email, Page 2: Password
        Page 1: Password, Page 2: TOTP
        Page 1: Username & Password, Page 2: TOTP
        Page 1: Email & Password, Page2: TOTP
        Page 1: Username, Page 2: Password, Page 3: TOTP
        Page 1: Email, Page 2: Password, Page 3: TOTP
      
The scripts themselves actually look like this, and you’ll see these displayed as the Command field’s value once selected:

        #[username]<tab>#[password]<enter>
        #[email]<tab>#[password]<enter>
        #[username]<enter><wait2>#[password]<enter>
        #[email]<enter><wait2>#[password]<enter>
        #[password]<enter><wait2>#[totp]<enter>
        #[username]<tab>#[password]<enter><wait3>#[totp]<enter>
        #[email]<tab>#[password]<enter><wait3>#[totp]<enter>
        #[username]<enter><wait2>#[password]<enter><wait3>#[totp]<enter>
        #[email]<enter><wait2>#[password]<enter><wait3>#[totp]<enter>
      

As the syntax suggests, you can enter your own command matching your own custom label names, for instance:

    #[groupid]<tab>#[login]<enter><wait3>#[password]<enter>
  
The <waitN> command is useful after <enter> when you have to fill out multiple forms in succession, and need to allow time for the next form to load. As always, if you have questions, suggestions or feedback, please let us know at support@zetetic.net