# கணக்குகளை நிர்வகித்தல்

> ccam add, ccam login, ccam list, ccam rename, ccam remove, ccam import மூலம் Claude Code கணக்குகளைச் சேர்க்கவும், உள்நுழையவும், பட்டியலிடவும், பெயர் மாற்றவும், நீக்கவும், இறக்குமதி செய்யவும்.

Source: https://ccam.dev/ta/features/accounts/ · Updated 2026-10-19

ஒவ்வொரு ccam கணக்கும் தனக்கென உள்நுழைவு கொண்ட ஒரு தனி Claude Code config கோப்புறை. இந்தக் கட்டளைகள் கணக்குகளை உருவாக்குகின்றன, உள்நுழைகின்றன, பட்டியலிடுகின்றன, பெயர் மாற்றுகின்றன, நீக்குகின்றன, உங்களிடம் ஏற்கெனவே உள்ள கோப்புறைகளைப் பதிவு செய்கின்றன.

## பயன்பாடு

```sh
ccam add                                   # wizard on a terminal: name, shared items, shortcut, login
ccam add work --shortcut ccwork            # no wizard: log in, then create the ccwork command
ccam add side --no-login --share history=team
ccam login side                            # run claude auth login inside the account
ccam logout side                           # remove the login token
ccam list                                  # table of accounts; ccam ls is the same
ccam list --json                           # machine-readable
ccam use 2                                 # make slot 2 the default account
ccam rename side personal
ccam remove personal                       # asks, then moves the folder to the trash
ccam import                                # find ~/.claude and ~/.claude-* and ask about each
ccam import ~/.claude-ops --name ops
ccam completion zsh > "${fpath[1]}/_ccam"
```

ஒரு கட்டளை `<name|number>`-ஐ ஏற்கும் இடங்களில், கணக்கின் பெயரையோ அதன் slot எண்ணையோ, அதாவது `ccam list`-இன் `#` நெடுவரிசையை, கொடுக்கலாம்.

options இல்லாமல் டெர்மினலில் இயக்கும் `ccam add` ஒரு wizard-ஐத் திறக்கும். அது பெயரைக் கேட்டு, பிறகு பகிரப்பட்ட உருப்படிகளின் தேர்வுப் பட்டியலைக் காட்டி (உரையாடல் வரலாற்றைத் தவிர அனைத்தும் தேர்வுசெய்யப்பட்டிருக்கும்), பிறகு `Create a shortcut command for work? [y/N]` என்றும், `y` கொடுத்தால் `Shortcut name [ccwork]:` என்றும் கேட்கும். `--share`, `--shortcut`, `--no-login` ஆகியவற்றில் ஏதேனும் ஒன்று, அல்லது டெர்மினலுக்குப் பதிலாக ஒரு pipe, wizard-ஐத் தவிர்க்கும்; அப்போது பெயர் கட்டாயம், `--shortcut` ஒன்றைப் பெயரிடாவிட்டால் குறுக்குவழி உருவாக்கப்படாது.

`ccam list` slot, பெயர், குறுக்குவழி, மின்னஞ்சல், பகிரப்பட்ட உருப்படிகள், கடைசிப் பயன்பாடு ஆகியவற்றைக் காட்டும், இயல்புநிலைக் கணக்குக்கு முன் `*` இருக்கும்:

```console
$ ccam list
   #  Name      Shortcut  Email             Shared                        Last used
*  1  work      ccwork    user@example.com  mcp settings md ext           -
   2  personal  -         me@side.dev       settings md ext history@team  -
```

`--json` உடன், ஒவ்வொரு கணக்கும் `slot`, `shortcut`, `name`, `email`, `default`, `dir`, `last_used` (கணக்கு ஒருபோதும் தொடங்கப்படவில்லை என்றால் விடப்படும்), `share` ஆகியவற்றைக் கொண்ட ஒரு object. `share` ஒவ்வோர் உருப்படியையும் (`mcp`, `settings`, `memory`, `extensions`, `history`) அதன் குழுப் பெயருடன் அல்லது `"local"` உடன் இணைக்கும்.

## Options

| Option | என்ன செய்யும் | இயல்புநிலை |
| --- | --- | --- |
| `ccam add --no-login` | உள்நுழையாமல் கணக்கை உருவாக்கும்; பின்னர் `ccam login <name>` மூலம் உள்நுழையுங்கள் | off |
| `ccam add --share <item=group>` | ஓர் உருப்படியை ஒரு குழுவுடன் பகிரும், அல்லது தனிப்பட்டதாக வைக்க `item=local`. பலமுறை கொடுக்கலாம் | `mcp`, `settings`, `memory`, `extensions` `default`-இல்; `history` local |
| `ccam add --shortcut <command>` | இந்தக் குறுக்குவழிக் கட்டளையையும் `~/.local/bin`-இல் உருவாக்கும் | none |
| `ccam list --json` | கணக்குகளை JSON ஆக அச்சிடும் | off |
| `ccam remove -y`, `--yes` | கேட்காமல் நீக்கும் | off |
| `ccam import --name <name>` | நீங்கள் கொடுக்கும் கோப்புறைக்கான கணக்குப் பெயர் | கோப்புறைப் பெயரிலிருந்து பெறப்படும் |
| `ccam import -y`, `--yes` | கண்டுபிடித்த ஒவ்வொரு கோப்புறையையும் கேட்காமல் இறக்குமதி செய்யும் | off |
| `--dry-run` | எதையும் மாற்றாத `ccam list` மற்றும் `ccam completion` இதை மதிக்கும். `add`, `login`, `logout`, `use`, `rename`, `remove`, `import` இதை `` --dry-run is not supported by `ccam add`; nothing was changed `` (கட்டளையைப் பெயரிட்டு) என்று மறுக்கும் | off |

`ccam login`, `ccam logout`, `ccam use`, `ccam rename` ஆகியவற்றுக்குச் சொந்த options இல்லை. `ccam completion` `bash` அல்லது `zsh`-ஐ ஏற்கும்; வேறு எதுவும் `only bash and zsh are supported` என்று தோல்வியடையும்.

கணக்குப் பெயர்கள் `a-z`, `0-9`, `-`, `_` ஆகியவற்றால் ஆன 1 முதல் 32 எழுத்துகள், ஓர் எழுத்து அல்லது இலக்கத்தில் தொடங்க வேண்டும். `ccam 2` என்றால் slot 2 என்பதால், பெயர் முழுவதும் இலக்கங்களாக இருக்க முடியாது. பெயர் ஒரு ccam கட்டளையாகவும் இருக்க முடியாது (`add`, `list`, `ls`, `run`, `use`, `next`, `usage`, `u`, `share`, `mcp`, `login`, `logout`, `rename`, `remove`, `rm`, `import`, `migrate`, `doctor`, `shims`, `shortcut`, `completion`, `help`, `version`, `statusline`, `update`), அதனால் `ccam <name>` ஒருபோதும் குழப்பமாக இருக்காது. இந்தப் பட்டியல் `internal/config`-இல் உள்ள `config.Reserved`.

## இது எப்படி வேலை செய்கிறது

`ccam add work --shortcut ccwork` `addProfile`-இல் (`internal/cli/profiles.go`) இந்தப் படிகளை இயக்குகிறது:

1. எதுவும் உருவாக்கப்படும் முன், `config.ValidateName` பெயரையும், `shim.Check` குறுக்குவழியையும் சரிபார்க்கின்றன.
2. `profile.Add` `0700` mode-உடன் `~/.local/share/ccam/profiles/work/`-ஐ உருவாக்கி, கணக்குக்கு மிகக் குறைந்த காலி slot எண்ணைக் (`Config.NextSlot`) கொடுக்கிறது, அதனால் நீக்கப்பட்ட கணக்கின் எண் மீண்டும் பயன்படுத்தப்படும். முதல் கணக்கு இயல்புநிலை ஆகிறது.
3. `applyShare` புதிய, காலியான கோப்புறையை `share.Build` மற்றும் பிறகு `Apply` மூலம் அதன் பகிர்வுக் குழுக்களுடன் இணைக்கிறது, எடுத்துக்காட்டாக `settings.json`-ஐ `groups/default/settings.json`-உடன். இது தோல்வியடைந்தால், புதிய கோப்புறை நீக்கப்படும், ஏனெனில் மீதமிருக்கும் கோப்புறை ஒவ்வொரு மறுமுயற்சியையும் `folder already exists` என்று தடுக்கும்.
4. கணக்கு `fsutil.AtomicWrite` மூலம் `~/.config/ccam/config.toml`-இல் சேமிக்கப்படுகிறது: ஒரு தற்காலிகக் கோப்பு, `fsync`, பிறகு `rename`, அதனால் crash ஒருபோதும் பாதி config-ஐ விட்டுச்செல்லாது.
5. `runLogin` கணக்குக் கோப்புறைக்கு அமைக்கப்பட்ட `CLAUDE_CONFIG_DIR` உடன் `claude auth login`-ஐத் தொடங்குகிறது. உள்நுழைவு தோல்வியடைந்தால், கணக்கு அப்படியே இருக்கும், ccam பிழையை அச்சிட்டு, பின்னர் `ccam login work`-ஐ இயக்கச் சொல்லும்.
6. `profile.ReadEmail` `profiles/work/.claude.json`-இலிருந்து `oauthAccount.emailAddress`-ஐ எடுக்கிறது. அந்தக் கோப்பு பல megabytes ஆக இருக்கலாம், அதனால் `TopLevelValue` முழுக் கோப்பையும் parse செய்வதற்குப் பதிலாக அந்த ஒரு key-ஐ மட்டும் தேடுகிறது.
7. `shim.Install` `~/.local/bin/ccwork`-ஐ ccam binary-உடன் இணைக்கிறது; அது தொடங்கும்போது `argv[0]`-ஐ `config.toml`-இல் தேடுகிறது.

உள்நுழைவுக்குச் சில நிமிடங்கள் ஆகலாம், இடையில் மற்றொரு ccam config-ஐச் சேமிக்கக்கூடும். அதனால் காத்திருக்கும் கட்டளைகள் `env.update` மூலம் சேமிக்கின்றன; அது `config.toml`-ஐ மீண்டும் ஏற்றி, அந்த ஒரு மாற்றத்தை (இங்கே, மின்னஞ்சல்) பொருத்தி, சேமிக்கிறது. இதே காரணத்துக்காக `ccam remove` தன் கேள்விக்குப் பிறகு மீண்டும் ஏற்றுகிறது.

`ccam login` ஏற்கெனவே உள்ள கணக்குக்குப் படி 5 மற்றும் 6-ஐ இயக்குகிறது. `ccam logout` கணக்கில் `claude auth logout`-ஐ இயக்கி, சேமித்த மின்னஞ்சலை அழிக்கிறது. `ccam use` `config.toml`-இல் `default`-ஐ மட்டுமே மாற்றி எழுதுகிறது.

### தொலைநிலைக் கணினியில் உள்நுழைதல்

SSH வழியாக, `claude auth login`-இன் browser பகுதி உடைந்துவிடக்கூடும். Claude Code சர்வரில் `http://localhost:<port>/callback`-இல் உள்ள ஒரு callback சர்வரில் உள்நுழைவுக்காகக் காத்திருக்கிறது, ஆனால் உள்நுழைவை முடிக்கும் browser உங்கள் கணினியில் இயங்குகிறது, அங்கே அந்த முகவரி எங்கும் செல்லாது, browser `ERR_CONNECTION_REFUSED` போன்ற பிழையைக் காட்டும். முகவரியில் இன்னும் ஒருமுறைக் குறியீடு உள்ளது, அதனால் ccam அதைச் சேர்க்க முடியும்:

`runLogin` உங்கள் டெர்மினலை Claude Code-இடம் ஒப்படைப்பதில்லை. அது Claude Code-இன் standard input-ஐ ஒரு pipe-உடன் இணைக்கிறது, நீங்கள் தட்டச்சு செய்யும் ஒவ்வொரு வரியையும் `relayLogin` அதற்குள் நகலெடுக்கிறது, அதனால் Claude Code-இன் `Paste code here` கேள்வியில் ஒட்டப்படும் குறியீடு இன்னும் வந்துசேரும். ஒரு வரி callback முகவரியாக இருந்தால், host `localhost`, `127.0.0.1` அல்லது `[::1]` ஆக இருந்து, port கொடுக்கப்பட்டு, பாதை `/callback` ஆக இருந்து, `code` மற்றும் `state` இரண்டும் இருந்தால் மட்டுமே `callbackURL` அதை ஏற்கிறது; `http://`-ஐ விட்டுவிடலாம். பிறகு `deliverCallback` browser செய்திருப்பது போலவே, 10 வினாடி வரம்புடனும் redirects-ஐப் பின்தொடராமலும், சர்வரில் அந்த முகவரியைக் கோருகிறது. கோரிக்கை காத்திருக்கும் `claude auth login`-இன் callback சர்வரை அடைகிறது (வரைபடத்தில் கோடிட்ட வரி). Claude Code குறியீட்டைப் பெற்று உள்நுழைவைச் சேமிக்கிறது, Linux-இல் கணக்குக் கோப்புறையில் உள்ள `.credentials.json`-இல். ஒட்டப்பட்ட வரி ccam-ஐ ஒருபோதும் வேறொரு host-ஐத் தொடர்புகொள்ள வைக்க முடியாது.

உள்நுழைவு தொடங்கும் முன் ccam இதை அச்சிடும்:

```text
On a remote machine? If the browser ends on a http://localhost:…/callback page that does not load, paste that address here.
```

வெற்றிபெற்றால் அது `→ Passed the sign-in to Claude Code on this machine.` என்று அச்சிடும்.

### பெயர் மாற்றம், நீக்கம், இறக்குமதி

`ccam rename` மற்றும் `ccam remove` கணக்கின் கோப்புறையிலும், கணக்கின் பெயரில் ccam வேறிடங்களில் வைத்திருப்பவற்றிலும் செயல்படுகின்றன. `nameState` அந்தப் பாதைகளைப் பட்டியலிடுகிறது: `~/.local/state/ccam/last-used/<name>`, `~/.local/state/ccam/mcp/<name>`, usage caches `~/.local/state/ccam/usage/<name>.json` மற்றும் `<name>.statusline.json`. `ccam remove work` அவற்றை இந்த வரிசையில் கையாள்கிறது:

`ccam remove` முதலில் கணக்கு இயங்கிக்கொண்டிருந்தால் மறுத்து, பிறகு கேட்கும். கணக்கு நீட்டிப்புகளைப் பகிர்ந்தால், `RewritePluginPaths` குழுவின் `installed_plugins.json` மற்றும் `known_marketplaces.json`-ஐ மாற்றி எழுதுகிறது, ஏனெனில் Claude Code இந்தக் கணக்கின் கோப்புறை வழியாகச் செல்லக்கூடிய absolute plugin பாதைகளைச் சேமிக்கிறது. `profile.Trash` கோப்புறையை `~/.local/share/ccam/trash/<name>-<time>/`-க்கு நகர்த்துகிறது, கணக்கு `config.toml`-இலிருந்து நீங்குகிறது, அதே பெயருடைய பிந்தைய கணக்கு அவற்றைப் பெறாமல் இருக்க `nameState` பாதைகள் நீக்கப்படுகின்றன, குறுக்குவழி இணைப்பும் நீக்கப்படுகிறது. மீட்டெடுக்க, கோப்புறையைக் குப்பையிலிருந்து திரும்ப நகர்த்துங்கள்.

`ccam rename` கோப்புறையின் பெயரை மாற்றி, அதன் `plugins/`-இல் உள்ள plugin பாதைகளைப் பழைய கோப்புறையிலிருந்து புதியதுக்கு மாற்றி எழுதி, இயல்புநிலையையும் உடன் கொண்டு சென்று, `nameState` பாதைகளைப் புதிய பெயருக்கு நகர்த்துகிறது. குறுக்குவழிக் கட்டளை தன் பெயரை வைத்திருக்கும். plugin மாற்றி எழுதுதல் தோல்வியடைந்தால், config சேமிக்கப்படாததால், கோப்புறையின் பெயர் மீண்டும் பழையதாக மாற்றப்படும்.

`ccam import` ஒரு கோப்புறையை அது இருக்கும் இடத்திலேயே, `config.toml`-இல் `dir` ஆகப் பதிவு செய்கிறது. அது அதை ஒருபோதும் நகர்த்துவதோ நகலெடுப்பதோ இல்லை: நகலெடுக்கப்பட்ட refresh token நகல்களை ஒன்றையொன்று வெளியேற்ற வைக்கும். கோப்புறை argument இல்லாமல், அது பதிவுசெய்யப்படாத `~/.claude` மற்றும் `~/.claude-*` கோப்புறைகளைத் தேடி, ஒவ்வொன்றைப் பற்றியும் கேட்கும்; பெயர்கள் கோப்புறையிலிருந்து வருகின்றன (`~/.claude` என்பது `main`, `~/.claude-work` என்பது `work`, `~/.claude-2` என்பது `acct2`), பெயரைப் பெற முடியாத கோப்புறை பயன்படுத்த வேண்டிய `--name` கட்டளையுடன் பட்டியலிடப்படும். `CLAUDE_CONFIG_DIR` இல்லாமல், Claude Code `.claude.json`-ஐ உங்கள் home கோப்புறையில் `~/.claude`-க்கு அருகில் வைக்கிறது, அதனால் நீங்கள் `~/.claude`-ஐ இறக்குமதி செய்து அதற்குச் சொந்த `.claude.json` இல்லையென்றால், ccam `~/.claude/.claude.json`-இலிருந்து `~/.claude.json`-க்கு இணைப்பை உருவாக்கும். அப்போது வெறும் `claude`-உம் `ccam main`-உம் ஒரே கணக்கைப் பார்க்கும். நீங்கள் `ccam share`-ஐ இயக்கும் வரை இறக்குமதி செய்யப்பட்ட கணக்குகள் எதையும் பகிராது, குறுக்குவழியும் உருவாக்கப்படாது.

`ccam completion bash|zsh` கணக்குப் பெயர்களையும் நிறைவுசெய்யும் ஒரு completion script-ஐ அச்சிடும்.

## பாதுகாப்பும் விளிம்பு நிலைகளும்

- கணக்கு இயங்கும்போது `ccam rename` மற்றும் `ccam remove` மறுக்கும் (`refuseRunning`), `work is running; quit its Claude Code session first` என்று, ஏனெனில் அமர்வு கோப்புறையில் தொடர்ந்து எழுதுகிறது.
- இறக்குமதி செய்யப்பட்ட கணக்கில் `ccam remove` அதன் பதிவை மட்டுமே நீக்கும்: `✓ main unregistered (folder ... left in place)`. உங்கள் `~/.claude` குப்பைக்கு நகர்த்தப்படாது.
- `profiles/`-இல் ஏற்கெனவே கோப்புறை உள்ள பெயரை `ccam add` மறுத்து, `ccam import`-ஐச் சுட்டிக்காட்டும்.
- `ccam import` ஏற்கெனவே பதிவுசெய்யப்பட்ட கோப்புறை, கோப்புறை அல்லாத பாதை, ஏற்கெனவே எடுக்கப்பட்ட பெயர் ஆகியவற்றை மறுக்கும்.
- `ccam logout` மற்றும் `ccam login` கணக்கு இயங்குகிறதா என்று சரிபார்ப்பதில்லை.
- relay Claude Code-ஐ அடைய முடியாவிட்டால், எடுத்துக்காட்டாக உள்நுழைவு முடிந்த பிறகு, அது காரணத்துடன் `ccam: could not pass the sign-in to Claude Code:` என்று அச்சிடும். HTTP பிழை பொதுவாகக் குறியீடு காலாவதியானது என்று பொருள்; உள்நுழைவை மீண்டும் தொடங்குங்கள்.

## தொடர்புடையவை

- [Claude Code-ஐத் தொடங்குதல்](https://ccam.dev/ta/features/launch.md)
- [குறுக்குவழிக் கட்டளைகள்](https://ccam.dev/ta/features/shortcuts.md)
- [MCP சர்வர்கள், அமைப்புகள், வரலாற்றைப் பகிர்தல்](https://ccam.dev/ta/docs/sharing.md)
- [பல Claude Code கணக்குகள்](https://ccam.dev/ta/guides/multiple-claude-code-accounts.md)
