HyperKey

HyperKey

HyperKey is a nifty little command-line tool that allows you to manage and manipulate your data through keys, which are named shortcuts using names or tags that you choose. It goes in a completely different direction from GUIs (Graphical User Interfaces).

In these times, we are buried under a mountain of information. It's all out there, but how do you find it? Modern search engines such as Google do a great job of finding content on the Internet. They achieve this by combining gobs of data about how people found stuff using various queries and they apply the heuristics to each query submitted. But this does not work well for files, especially on your machines, your archives. Filenames often have very little information to help you find them, and more often than not, you did not even pick the name for them. What were those files called? If you do not know, and like me have a huge number of files, pictures, sources, etc., you can spend quite a while drilling around looking for them.

I am proposing an alternative: The notion of a 'hyperkey'. The idea is that instead of you learning where everything is and how to find it, you access data according to how you would like to think of it. You assign a short name to your data that is easy for you to remember, and you reference that data by that name. You can assign any number of names to the same data, so for important things you have even less to remember. Since your data and your access to it are organized around how you think, it becomes effortless to navigate around large complex data systems, the internet, whatever. And HyperKey doesn't just do navigation, it is a full access system: backup, storage, retrieval, archiving, versioning, mirroring, logging. The idea is that you manipulate content that interests you by referring to that content by a key, or keys, of your choosing.

That is what HyperKey does: full access to your data, keyed to names that you choose. All in one tiny little app that barely dents even a small jump drive.

Like a Windows shortcut, you access all of your content (data, favorite links, working directories, etc) all based upon keys that you assign. You access that content via a small set of commands in a command window. For example, you could assign the key 'g' to 'www.google.com', and start your browser with the command: s g.

If you assign keys based upon the first label that comes to mind, that data is almost always easy to find, even years later, because it is based upon how your mind works. You can assign any number of keys to the same retrieval. So you don't have to think about it. You just 'go' to the data, naturally.

The main purpose of HyperKey is to shorten the amount of time it takes to access content, and for those of us battling repetitive-stress injuries, the less mouse-clicking, the better. If you set it up right, most of your common content can be accessed with a couple of keystrokes. As for the command window, it is bound to the right-click context menu, so you can open the program more or less graphically. (A GUI version of HyperKey is in the works.)

The backup features are of tremendous use if your work is inherently iterative, that is, you make large numbers of changes to the same data, such as software developers, CAD designers, and authors. Its most useful feature is the the 'snapshot' backup capability, in which you can make tiny incremental backups as your work day proceeds. Many editing programs such as CAD systems, document editors, and photo editors destructively modify the content, and once that content is corrupted, it can be very hard to get it back to health. But with incremental backups, you can repeatedly save the files, and easily back up to a version earlier in the day, or any other time. It is a power user feature, but is very handy even to general users.

Main Features

  • You can assign any number of keys to the same data
  • You can have any number of characters for the key, although a few characters is better for commonly-used keys. In general, you want it to be something easy to type.
  • You can mirror two file locations ('local', 'server') via a key, and only files that changed are copied or deleted.
  • You can do full backup, restore, retrieval and archiving based upon keys. The backup system automatically saves the files in .zip compresssed format, and timestamps the filenames. The storage format is as ordinary files, directories or .zip files, so no special software is needed to retrieve the archive later. The data is not stored in a proprietary format.
  • You can do simple source-code control using keys, including log files. HyperKey can store backups in up to three locations: Incremental, Daily, and Main. Each time you back up a key, it puts a copy in the Incremental folder, and overlays the Daily and Main copies. This keeps a complete record of all backups, and a record of the backups on a per-day basis. You can then go back and retrieve a specific change on a specific day.
    This allows you the freedom to try out changes, and restore older versions when necessary. It's an 'undo' on a file or folder level. By default, all backups are as deltas, that is, only the files that changed or were deleted are backed up, keeping the backup achives to a minimum. To further reduce backup archive size, by default, all backups are stored in compressed (.zip) format.
  • You can create keys that have associated selection criteria, such as restrict actions only to files that match a wildcard pattern.
  • You can create project-specific database files. The 'database' files used by HyperKey are simple text (.txt) files, editable by any ordinary text editor. You can place them in any folder, and create keys that are specific to that folder's purpose. Since the database file is a small text file, it has a minimum impact upon your storage, while allowing increased control over the folder's contents.
  • You can launch programs, browsers, and batch files, in fact do anything that a batch file can do, because it actually creates batch files to do the work.

Main Commands

Most of the commands below are designed to work with mirrored/backup content. And so one of the optional arguments to the commands will be '-loc' or '-serv', to specify whether you are referring to the 'local' copy (usually on your computer), or the 'server' copy (typically on a file server). But these are arbitrary destinations, and you are free to designate anything as either one.

Command Function Examples
s or start Runs Windows 'Start' command on the target of the key. Defaults to '-loc'. For example: if the target is a URL, brings up the page in your browser. If a folder, opens the folder. If a file, opens the file. s g
s ftp
s synesys.com
2 or s -loc 'Goes' to the 'local' folder of the key. Similar to 'start', but without launching any applications. So if the target is a folder, it opens the folder. If a file, it opens the parent folder of the file. For other types of keys, either does nothing or opens an folder appropriate to that key type. Defaults to '-serv'. 2 pics
g or go 'Goes' to the 'server' folder of the key. Exactly the same as the '2' command, but on the '-serv' location. g pics
put Copies the content from the '-loc' location to the '-serv' location, without backing up the data. put md
b or bak Backs up the content from the '-loc' location to the '-serv' location. By default, makes 3 copies: Incremental, Daily, and Main. By default 'b' does all backups as deltas (meaning it only makes copies of changes), and 'bak' does full backups. '-cp' option forces a checkpoint in the Daily backup folder. b itin
bak hkey -cp update
get Fetches the content from the '-serv' location to the '-loc' location. Options include fetching a specific Daily or Incremental backup. If backups are as deltas, HyperKey reconstructs the version from earlier backups. get pics
get hkey -ver 041509.02
d or diff Compares the content of the '-loc' location with the '-serv' location. By default, 'diff' compares file timestamps only, while 'd' also compares the actual contents of the file of text-type files. Options include forcing a full content comparision regardless of file type, comparing to older backup versions in the same manner as 'get', and opening 'windiff' on the two (local and server) directories. d doc
d hkey -ver 041509.02
fk or find Searches the databases, and prints out any database records that contain the search string. Options include only matching the string to keys, only returning records whose keys exactly match the string, and opening an editor to edit the record that matches. You can search for multiple strings within a single database record using the '+' operator. fk pdf
fk synesys + ftp
use Sets 'current' starting database to the one at the location of the key. This way you can create databases for specific tasks, projects or simply folders. One advantage of this is that you can have very short keys, one or two-letter, that have different definitions in different contexts. use mysite

Other Features

There are a lot of minor bells and whistles. As examples of some of the more useful ones, HyperKey can:

  • Copy strings onto the Windows clipboard
  • Set and read batch environment variables. Thus HyperKey can be used to set up environment variables for batch files.
  • Create and execute multiple-line batch files. This is a handy substitute for a pile of very small batch files.
  • Zip files, with or without encryption. By default, all backup files are .zip files
  • Invoke programs on specific files, such as loading a specific browser for a URL
  • Share working files in a shared folder on a server

Back to Downloads Page

Last Updated: 4/1/12