Awesome-omni-skill makefile

Makefile structure and install workflow

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/makefile" ~/.claude/skills/diegosouzapw-awesome-omni-skill-makefile-0afcc9 && rm -rf "$T"
manifest: skills/tools/makefile/SKILL.md
source content

Makefile Conventions

Installation constraint: Always use the Makefile for installing tools and applications. Never run

brew install
,
npm install -g
, or other package manager commands directly — the Makefile is the single source of truth for what is installed and how it is configured.

Structure targets to be self-documenting: the target name should clearly indicate its purpose, avoiding the need for comments.

Sections (respect this organization)

  • terminal
    : Shell and terminal tools (fish, tmux, nvim, wezterm...)
  • work
    : Development tools (cursor, docker, gh, terraform...)
  • personal
    : Personal apps (obsidian, rust, spotify...)
  • utils
    : Utility applications (cleanshot, keycast...)

Target Patterns

  • Tool targets depend on
    brew
    and the binary path
  • Config targets create symlinks from
    ~/.dotfiles/
    to
    ~/.config/
    or
    ~/
  • Use
    ${BREW_BIN}
    and
    ${APP_BIN}
    variables for paths
  • GUI apps (
    .app
    ) are macOS-only; CLI tools should work on both macOS and Linux

Example

newtool: brew ${BREW_BIN}/newtool
${BREW_BIN}/newtool:
	brew install newtool

Note: Homebrew works on both macOS and Linux. For Linux-only alternatives, consider adding conditional targets.

Installation Workflow

When adding a new tool: (1) add it to the Makefile in the right section, (2) run

make <tool-name>
. Do not install via
brew install
or
npm install -g
outside the Makefile.