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 claudeanypick 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:
--withon the command line — this launch only- The project binding for the current directory
- 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/workCleaning 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 claudereset only removes AnyPick-managed configuration. It never touches native auth
files or your own settings.