Custom Commands

Create and run your own shell commands right from Vicinae.

Set up a command once with placeholders, icons, and groups, then find and run it instantly through search. Run quietly in the background and get output copied to clipboard, or open it in your terminal.

Features

  • Manage commands: create, edit, duplicate, and delete
  • Run how you want: background (output goes to clipboard) or terminal window that stays open
  • Groups: put commands in groups like git, docker, or system, filter with a dropdown, and search by group name
  • Placeholders that ask for input: write {{host}}, {{branch}}, {{msg}}, or any {{name}} and get a field for each one when you run
  • System placeholders that fill themselves: {{clipboard}}, {{home}}, {{user}}, {{date}}, {{time}}, {{datetime}} are filled automatically and handled safely
  • Case insensitive: {{clipboard}} and {{Clipboard}} work the same
  • Custom icons: paste a URL or a file path like https://example.com/icon.png or ~/icons/foo.svg. Leave it empty and you get the default terminal icon
  • Working directory: set a folder per command, with a global default if you do not set one
  • Import and export: copy all commands to clipboard as JSON and import them back
  • Fast search: filter by name, command, description, or group

Command

CommandTitleDescription
commandsCustom CommandsCreate and run your custom shell commands

Find it in Vicinae by searching for Custom Commands.

How placeholders work

Add {{key}} anywhere in your command.

  • If it is a system placeholder, it fills in on its own
  • If it is a custom name, you will see a field for it when you run the command

All placeholder names are case insensitive.

Examples:

NameCommandWhat happens
Open projectcode {{path}}Asks for a path
Commitgit commit -m "{{msg}}" && git push origin {{branch}}Asks for message and branch
Use clipboard`echo {{clipboard}}jq`
Backupmkdir -p {{home}}/backup-{{date}}Uses your home and today's date
Copy to serverscp {{file}} {{host}}:/tmpAsks for file and host

Values are passed safely to the shell, so special characters in clipboard or input do not break your command.

Preferences

PreferenceTypeDescription
TerminalText fieldTerminal to use, for example kitty or gnome-terminal --. Leave empty to use the system default
Default Working DirectoryText fieldFolder to use when a command does not have its own working directory

The window closes after a successful run so you can keep going.

Where commands are saved

Commands are saved locally in Vicinae storage under the key custom-commands:commands.

Installation

cd extensions/custom-commands
npm install
npm run build   # build once
# or
npm run dev     # watch while you develop

Requirements

  • Vicinae installed
  • Node.js 18 or newer
  • A shell available on your system (bash on Linux and macOS, PowerShell on Windows)

Supported platforms

  • Linux
  • macOS
  • Windows

License

MIT