Skip to content

Project bindings

Give one repository its own client source without touching your global default.

Updated View as Markdown

anypick link writes a binding scoped to the current directory. It wins over the global default when you run a client from inside that directory, and it is invisible everywhere else.

cd ~/src/my-app
anypick link claude                        # copy the global binding into this project
anypick link claude --with grok/work       # or bind explicitly
anypick run claude                         # project binding wins
anypick unlink claude

anypick unlink with no client removes every project binding in the current directory.

Resolution order

When run needs a binding it takes the first one it finds:

  1. --with on the command line — this launch only
  2. The project binding for the current directory
  3. The global binding from anypick use

If none exist, run exits 5 rather than guessing.

anypick current shows the effective binding for every client, so you can see which layer won.

A typical split

One client per customer, without switching by hand:

anypick use claude --with grok/work            # your default everywhere

cd ~/src/client-a
anypick link claude --with openrouter-work     # this repo only

cd ~/src/client-b
anypick link claude --with gemini/work

Cleaning up

anypick unlink removes the binding but leaves the client’s config as the last activation left it. To strip the configuration AnyPick wrote for a client:

anypick reset claude

reset only removes AnyPick-managed configuration. It never touches native auth files or your own settings.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close