Ryjo

Omnitool is a prototype Chrome extension allowing fast access to custom utilities.


Omnitool was inspired by my developer experience on a small team supporting a suite of web applications for a Fortune 50 client. Day-to-day operations included tedious, repeated tasks such as:

Team members had previously written a handful of small and useful one-off browser extensions. I designed Omnitool as a way to consolidate these one-off tools in an efficient, flexible interface.

Omnitool has an omnibox-style interface for utility search and invocation. It offers speed, simplicity, and flexibility for tasks lacking support from built-in browser tools.

Some noteworthy features:

  1. SIMPLICITY
    • A unified tool search interface.
    • A consistent command-based model for tool invocation.
    • A pattern for wrapping pre-existing pages as tools with an 'iframe'.
help screenshot autocomplete screenshot

  1. FAST
    • Opens with a configurable keyboard shortcut (rec. CMD + K).
    • Autocomplete for tool search.
    • An invocation history with shortcuts for tool selection and re-invocation.

execution history screenshot lorem command screenshot

  1. FLEXIBLE
    • Tool definitions that support a wide range of custom tools.
    • Optional tool implementations patterns for tool panes, tool execution output, and hybrid text/GUI tool interfaces.
    • Tool 'pinning' to allow for multiple tool selection.

links tool screenshot color tool screenshot pinned tool screenshot

The Omnitool 'demo-tools' branch includes tool samples that showcase these features (as shown in the above screenshots).

The tool development pattern is very straightforward. A tool definition consists of a small package of files.

tool definition files screenshot

The tool logic and metadata are defined in a JS/TS module.

sample tool logic screenshot

The optional tool UI is defined in a linked Vue component.

tool Vue component screenshot

See source on GitHub.

Some outstanding items:

Thank you for reading!