Codebook Data Structure

This article describes how your passwords and other secure information are stored and organized in Codebook. Codebook has a simple, flexible data model; understanding it will help you get the most out of Codebook.

The main record type in Codebook for storing your passwords, along with other credentials you need to remember or secure, is called an Entry.

An Entry consists of three main attributes:

  • A name
  • An icon
  • A list of Fields

You'll want to create a new Entry for each account or password you store in Codebook. For instance, if you have a Twitter account, it would make sense to create an Entry named "Twitter" (if you have multiple Twitter accounts, a more distinct name like "Twitter @TeamZetetic" or "Twitter @Codebook" might be appropriate). The name and icon you choose will make it easier to look up your password later.

But where do things like the username and password for your Twitter account get stored? That's where the Fields come in—the Fields of an Entry are its list of credentials, the account details. A Field is our generic term for a particular credential, like an email address or a password, that is attached to an Entry. Each Field has a Label that helps distinguish it by name in the interface, and establishes how the Field behaves (more on that later).

In the case of our Twitter Entry, at a minimum we'll want to add an Email field, a Password field, and fill in those values. But we can also add a Website field to help associate it with a particular web page.

Twitter Entry screenshot

The display and behavior of each Field on an Entry is determined by its label. Tapping (or right-clicking) on the Email field provides the option to compose an email. The Password word field masks the password itself and provides options to reveal it or to Magnify it (the Magnify feature displays a password modally in large type). The Website field provides an option to launch the URL in a web browser or other corresponding application. Information about all the Labels and their features is available.

An Entry can have any number of Fields, and you can re-arrange them as you see fit. You can also have multiple Fields on an Entry of the same type, for instance if you want to have two Password fields, to hang onto and old version, for instance. Though, you might want to add a new Label named "Old Password" for that! Check out the Customize Labels feature for more information.

Entries and iOS AutoFill Passwords

Entries that are configured with an Email field, a Password field and, optionally, a Website field, will make your passwords easier to lookup using Codebook's integration with iOS AutoFill Passwords. More information about how Entry records work with AutoFill is available.

Codebook stores your Entries in a list of Categories that you can customize. Every Entry is stored inside one Category, there are no sub-Categories. Each Category is assigned a name and an icon. When you create a new Entry in a Category, the Entry's icon will default to the selected Category's icon. During setup Codebook creates a Passwords category and a Notes category, but you can rename or delete these and add any additional Categories you like. For example, you might create a Category named "Credit Cards" to store Entries for each of your credit cards.

There's another type of Entry record in Codebook, we call them Notes, or Note Entries more specifically. Unlike regular Entry records, which have an icon, a name, and a list of Fields, Note Entries are simply multi-line text. They are useful for storing lots of freeform text, or quickly jotting something down. Notes are stored inside Categories just like regular Entries. A Note's name is taken from the first line of text in a note.

However, if you wish to store smaller bits of multiline text on a regular Entry amongst your other Fields (rather than having an entire Note Entry of multiline text), you can do that, too. Among the default set of Labels that Codebook installs during setup is one called Note that allows for multiline text. We refer to these as Note Fields.

While every Entry in Codebook is stored inside a Category, there are several other features we provide for viewing your Entries in Codebook, we call these Views. They can be useful as organizational tools as well as to find a particular Entry you're looking for.


Shows the 20 most recent entries you've viewed in Codebook.


Shows all of the entries in your database, sorted and grouped by the last date and time they were modified. This feature is available on iOS, macOS, and Windows only.


Displays all the Notes in your database, regardless of Category. It can be sorted by creation date, or last modified date. This feature is available on iOS and macOS only.

Next Steps