Requirements • QuickStart • Overview • Support • License
Anchor allows you to create dynamic CLI's as your GitOps marketplace. It connects to any git repository with a simple opinionated structure and expose executable commands as dynamic command-line-interface utility to use from any environment, CI and local.
Anchor can help in reducing the amount of CLI utilities created in a variety of languages in an organization, it does so by connecting to an existing/new git repositories and exposing what is required such as shell scripts, Python scripts, binary usage with options/arguments or any other executable.
Anchor has two modes for running an actions / actions-sets (workflows):
| :heavy_exclamation_mark: WARNING |
|---|
| Anchor is still in alpha stage, breaking changes might occur. |
git (recommended v2.30.0 or higher)The fastest way (for macOS and Linux) to install anchor is using Homebrew:
brew install ZachiNachshon/tap/anchor
Alternatively, tap into the formula to have brew search capabilities on that tap formulas:
# Tap
brew tap ZachiNachshon/tap
# Install
brew install anchor
For additional installation methods read here.
Maintainers / Contributors:
Anchor?Allow a better experience on repositories containing lots of scripts managed by multiple teams, make them approachable and safe to use by having a documented and controlled process with minimum context switches for running scripts / installing applications / orchestrate installations / do whatever you require
Allowing to compose different actions from multiple channels (shell scripts, CLI utilities etc..) into a coherent well documented workflow with rollback procedure
Having an action / workflow execution plan explained in plain english and managed via a central versioned controlled remote repository in a GitOps way that can be shared with others to use easily
Remove the fear of running an arbitrary undocumeted script that relies on ENV vars to control its execution
Using an agnostic client that doesn’t change, rather, changes are reflected based on the remote git repository(ies) it relies on
Reduce the amount of CLI utilities created in a variety of languages in an organization
Please refer to the documentation for detailed explanation on how to configure and use anchor.
Follow these steps to connect to a remote git playground repository and check the dynamic CLI live experience. All actions are no-op, you can safely run them as they only print to stdout.
Take anchor for a spin using the following steps, connect to a remote playground repository and check the different use-cases it might be used for:
bash
anchor config set-context-entry playground \
--repository.remote.url=https://github.com/ZachiNachshon/anchor-playground.git \
--repository.remote.autoUpdate=false \
--set-current-context
Type anchor to fetch the repository and print all available commands
Check which items are available under the team-infra command:
bash
anchor team-infra status
team-infra command to start an interactive action selection, try running an action/workflow:bash
anchor team-infra select
run command to run an action non-interactively:bash
anchor team-infra run backoffice --action=install-jenkins-master
bash
anchor team-infra run backoffice --workflow=provision-jenkins-server-agents
| :bulb: Note |
|---|
This is a quick overview just to get a grasp of how simple it is to use anchor. |
To add anchor support to an existing or new git repository, please read the documentation. |
Anchor is an open source project that is currently self maintained in addition to my day job, you are welcome to show your appreciation by sending me cups of coffee using the the following link as it is a known fact that it is the fuel that drives software engineering ☕
MIT
$ claude mcp add anchor \
-- python -m otcore.mcp_server <graph>