Skip to content

versenilvis/apotheke

Apotheke

Apotheke (/a.poˈteː.kə/) is a smart alias command tool.

Stars Twitter

License: AGPL-3.0 license Status Documentation PRs Welcome

Tiếng Việt | English

Warning

Currently, Apotheke is under development.

Preview

image

Install

One-liner (recommended):

curl -sS https://raw.githubusercontent.com/versenilvis/apotheke/main/install.sh | sudo sh

Important

Apotheke uses root permission (sudo) just to put its binary file in /usr/bin instead of ~/.local/bin, so you won't need to export ~/.local/bin path in your shell config
Please read here

Or with Go:

go install github.com/versenilvis/apotheke/cmd/apotheke@latest

Or build from source:

git clone https://github.com/versenilvis/apotheke
cd apotheke
make install

Shell setup

Add to your shell config to enable the a shortcut:

Bash:

echo 'eval "$(apotheke init bash)"' >> ~/.bashrc

Zsh:

echo 'eval "$(apotheke init zsh)"' >> ~/.zshrc

Fish:

echo 'apotheke init fish | source' >> ~/.config/fish/config.fish

Commands

Important

  • Please read from the docs

Tutorial

Important

  • Please read from the docs

More examples

Important

  • Please read from the docs

Uninstall

rm ~/.local/bin/apotheke
rm -rf ~/.local/share/apotheke

Remove the eval line from your shell config file.

FAQ

Q: Why did you build this?

A: To store 'codex resume' and 'cursor-agent --resume=' commands that I always forget after turn off the terminal.

Q: How is Apotheke different from shell aliases?

A: Shell aliases are static and require editing config files. Apotheke offers:

  • Fuzzy matching (a kd → kubectl delete pod)
  • Frecency ranking (frequently used commands rank higher)
  • Tags and organization
  • Safety confirmations for dangerous commands
  • Argument appending (a kdp my-pod → kubectl delete pod my-pod)

Q: How is it different from shell history?

A: History searches all commands. Apotheke only stores commands you explicitly bookmark with meaningful names.

Q: Does it work on Windows?

A: Yes, but shell integration requires Git Bash, WSL, or PowerShell with custom setup.

Q: Can I sync across machines?

A: Not built-in yet. Maybe in the future. Or you can manually copy the database file.

Q: What does "Apotheke" mean?

A: Well, I just asked ChatGPT what is "storage" in Acient Greek and it said 'Apotheke'.

License

AGPL-3.0 license

Contributing

Please follow my Contributing when you make a pull request.

About

Better way to alias commands (inspired by Zoxide).

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published