I Built a Local Registry for My CLI Tools

I Built a Local Registry for My CLI Tools

Over time, my development machine became full of small commands.

Some were global npm packages.
Some were pnpm tools.
Some were shell scripts.
Some were internal tools.
Some were small automation co…


This content originally appeared on DEV Community and was authored by Alucard

I Built a Local Registry for My CLI Tools

Over time, my development machine became full of small commands.

Some were global npm packages.

Some were pnpm tools.

Some were shell scripts.

Some were internal tools.

Some were small automation commands created for AI-assisted coding workflows.

The problem was not installation.

The problem was memory.

I kept asking myself:

  • What does this command do?
  • Where is the repository?
  • Who maintains it?
  • How do I use it?
  • Is it still active?
  • Why did I add it?

So I built a small CLI tool called tool-manage.

GitHub:
https://github.com/AlucPro/tool-manage

npm:
https://www.npmjs.com/package/@alucpro/tool-manage

What it does

tool-manage gives local commands a sqlite-backed registry.

It can:

  • register a command from PATH
  • save metadata
  • store help output
  • import JSON specs
  • generate starter JSON templates
  • update records
  • soft-delete old commands

Example

tm --add pnpm
tm --show pnpm
tm --update pnpm

tm --generate sync-notes
tm --add ./sync-notes.json

tm --remove old-script

Why not just use npm global list?

Because I do not only want to know what is installed.

I want to know what each command means in my workflow.

Package managers are good at installing things.
They are not designed to preserve the context around local commands, private scripts, or internal tools.

Why JSON specs?

Some tools do not expose good package metadata.

Some are just shell scripts.

Some are internal commands.

For those cases, tool-manage can generate a starter JSON file:

tm --generate sync-notes

Then I can complete the description and import it later.

AI-assisted workflow

One use case I care about is AI-assisted coding.

When an AI assistant creates or explains a script, I can ask it to generate a tool-manage JSON spec for that command.

Then I can import it:

tm --add ./generated-command.json

This makes small tools easier to remember and reuse.

What this tool is not

It is not a package manager.

It is not a version manager.

It does not replace npm, pnpm, nvm, volta, or mise.

It is just a memory layer for the commands already living on your machine.

Feedback welcome

I am still refining the workflow.

If you maintain many small scripts, internal tools, or local CLI commands, I would like to know how you currently manage them.


This content originally appeared on DEV Community and was authored by Alucard


Print Share Comment Cite Upload Translate Updates
APA

Alucard | Sciencx (2026-05-20T07:05:36+00:00) I Built a Local Registry for My CLI Tools. Retrieved from https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/

MLA
" » I Built a Local Registry for My CLI Tools." Alucard | Sciencx - Wednesday May 20, 2026, https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/
HARVARD
Alucard | Sciencx Wednesday May 20, 2026 » I Built a Local Registry for My CLI Tools., viewed ,<https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/>
VANCOUVER
Alucard | Sciencx - » I Built a Local Registry for My CLI Tools. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/
CHICAGO
" » I Built a Local Registry for My CLI Tools." Alucard | Sciencx - Accessed . https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/
IEEE
" » I Built a Local Registry for My CLI Tools." Alucard | Sciencx [Online]. Available: https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/. [Accessed: ]
rf:citation
» I Built a Local Registry for My CLI Tools | Alucard | Sciencx | https://www.scien.cx/2026/05/20/i-built-a-local-registry-for-my-cli-tools/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.