Local-first alias manager for zsh, bash, and fish

Shell aliases from one local store.

Aliaz stores aliases in SQLite, writes shell integration for zsh, bash, and fish, and syncs encrypted records between machines only when you opt in.

  • SQLite local store
  • zsh, bash, and fish output
  • JSON import/export
  • optional encrypted sync
~/workstation . zsh
$ aliaz add gs "git status"
Added gs
$ aliaz list
gs git status
$ aliaz init zsh
Wrote ~/.config/aliaz/aliases.sh
Configured ~/.zshrc

# optional sync
$ aliaz register --username ada
Registered ada
Recovery phrase: ...
$ aliaz sync
Synced: pulled 0, pushed 1, latest version 1
Laptop A alias gs="git status"
->
Encrypted records sync account required
Install

Copy, paste, keep moving.

The release installer downloads the matching macOS or Linux binary, verifies checksums when possible, installs Aliaz to ~/.local/bin, and can configure shell integration during install.

release install macOS/Linux
$ curl -fsSL https://raw.githubusercontent.com/oshabana/aliaz/main/install.sh | sh
$ aliaz add gs "git status"
$ aliaz list
$ aliaz register --username ada
$ aliaz sync
Set ALIAZ_INSTALL_SHELLS, ALIAZ_INSTALL_SYNC, ALIAZ_VERSION, or ALIAZ_INSTALL_DIR to customize installs. cargo install --path .
How it works

Three moving parts, no dotfile maze.

Aliaz treats aliases as small records: readable locally, printable as shell-safe alias definitions, and encrypted before optional sync.

01

Save aliases locally

Add aliases from the CLI and keep the canonical source in Aliaz instead of scattering edits across shell profiles.

02

Sync encrypted data

Register or log in to a sync account, then push and pull encrypted alias records with aliaz sync.

03

Initialize your shell

Generate stdout output with aliaz generate, or write managed zsh, bash, and fish files with aliaz init. zsh and bash startup files are configured once.

device MacBook
local aliases
sync encrypted bundle
sync account data
device Linux box
zsh . bash . fish
Command surface

What the current CLI supports.

The first workflow is local alias management. Sync, recovery, and self-hosting are available when you need multiple machines.

shells

Works with zsh, bash, and fish

Generate shell-specific alias files while keeping one portable alias source.

sync

Aliases follow you across devices

Register once, save the recovery phrase, log in on another machine, and run sync to pull encrypted alias records.

recovery

Recovery phrase protected

Aliaz stores the phrase in the OS credential store and prints it once during registration. Without it, encrypted aliases cannot be recovered.

self-host

Bring your own sync URL

register and login accept --sync-url, and the repository includes the Worker and D1 migrations for the sync service.

weight

Local-first by default

The core workflow is local: add, list, edit, delete, migrate from .zshrc, import/export JSON, and check setup with status or doctor.

CLI preview

Real commands, real outputs.

The examples mirror the current CLI output: local commands work without an account, while sync starts after register or login.

aliaz quickstart
$ aliaz register --username ada
Registered ada
Recovery phrase: ...

$ aliaz add gl "git log --oneline --decorate"
Added gl

$ aliaz list
gs  git status
gl  git log --oneline --decorate
dc  docker compose

$ aliaz sync
Synced: pulled 0, pushed 3, latest version 3

$ aliaz init zsh
Wrote ~/.config/aliaz/aliases.sh
Configured ~/.zshrc
Docs preview

Docs start with the local workflow.

The docs preview follows the current command set: install, quickstart, shell integration, migration, import/export, sync, logout, status, and doctor.

Introduction

Manage aliases without hand-editing every profile.

Aliaz stores aliases locally in SQLite. You can print shell-safe definitions with generate, or write managed shell integration files with init.

Sync is optional: local alias management works without an account. Register only when you want encrypted records shared through a sync server.

Quickstart

Add an alias, inspect the local list, then initialize the shell integration for the current environment.

$ aliaz add gs "git status"
$ aliaz list
$ aliaz init fish
$ aliaz doctor
Command coverage

Local workflows stay scriptable.

Aliaz keeps every operation available from the CLI, including shell generation, migration, JSON import/export, status, and doctor checks.

  • SQLite

    Local store

    Aliases are stored in SQLite under the operating system's standard data directory.

  • generate/init

    Shell output

    generate prints definitions; init writes managed files for zsh, bash, and fish.

  • JSON

    Import/export

    JSON export can print to stdout or write a file. Import upserts aliases by name.

  • status/doctor

    Status checks

    status reports local and sync state. doctor checks the database, integration files, sync config, and secret storage.

Open source

Open source CLI and sync server.

Aliaz is an MIT-licensed open-source project. The GitHub repository includes the Rust CLI, the installer, a Cloudflare Worker sync API, D1 migrations, and tests.

Support helps cover release work, documentation, sync hosting, and maintenance.

oshabana/aliaz
Open-source CLI alias sync
shells
3
sync
optional
license
MIT
FAQ

Short answers for terminal users.

The important behavior is explicit: what sync encrypts, which shells work, and what happens when recovery material is lost.

Does Aliaz support zsh, bash, and fish?

Yes. Aliaz keeps one alias source and exports the file format your shell expects.

Is my data encrypted?

Alias names and commands are encrypted before upload. Sync is optional and requires registration or login.

Can I self-host it?

Yes. The repository includes Cloudflare Worker code and D1 migrations for the sync service.

What happens if I lose my recovery phrase?

Aliaz cannot recover encrypted aliases without it. Keep the phrase somewhere durable before depending on sync recovery.

Do I need a dotfiles repo?

No. Aliaz can complement dotfiles, but the primary workflow is a local SQLite-backed alias source plus generated shell files.