Vipengele
Kuanzisha Claude Code
Ukurasa huu umetafsiriwa kwa mashine kutoka Kiingereza. Marekebisho yanakaribishwa. Hariri ukurasa huu kwenye GitHub
Katika ukurasa huu
ccam work huanzisha Claude Code kama akaunti work, na kila kitu kinachokuja baada ya jina huenda kwa claude kama kilivyo. Itumie popote ambapo ungecharaza claude: kwenye terminal, katika script, au ingizo likipitishwa kwa pipe.
Matumizi
ccam work # Claude Code as the account work
ccam 2 # the account with number 2 (see ccam list)
ccam work --resume # claude --resume, as work
ccam work -p "fix the tests" --output-format json
cat log.txt | ccam work -p "find the cause"
ccam -p "summarise" # no name: the default account
ccam use work # make work the default account
ccam run work --continue # same as ccam work --continue
ccam # the picker on a terminal, the list otherwise
ccam --dry-run work -p hi # print the command instead of running itToa jina la akaunti au namba yake kutoka ccam list. ccam haisomi hoja zinazokuja baada ya jina, kwa hiyo ccam work --help huonyesha msaada wa Claude Code. -- baada ya jina ni hiari. Standard input, exit code na signals hufanya kazi kama kwa claude.
Hoja ya kwanza inapoanza na - na si mojawapo ya chaguo za ccam yenyewe, ccam huanzisha akaunti chaguo-msingi pamoja na hoja zote. Chaguo-msingi ni akaunti iliyowekwa kwa ccam use, au akaunti yenye namba ya chini zaidi ikiwa hujaweka moja.
Kichaguzi
ccam bila hoja hufungua kichaguzi wakati standard input na output ni terminal, na vinginevyo huchapisha ccam list. Huonyesha namba ya kila akaunti, barua pepe, matumizi ya saa 5, matumizi ya mwisho na vipengele vinavyoshirikiwa; matumizi hujazwa kila akaunti inapojibu.
| Kitufe | Inachofanya |
|---|---|
Enter |
Huanzisha Claude Code kama akaunti iliyochaguliwa |
1 hadi 9 |
Huanzisha akaunti yenye namba hiyo |
Up/Down, k/j |
Husogeza uteuzi |
a |
Hufunga kichaguzi na huendesha mchawi wa ccam add |
s |
Huhariri vipengele vinavyoshirikiwa vya akaunti iliyochaguliwa (Space au x hubadilisha, Enter hutekeleza, Esc hurudi nyuma) |
d |
Hufanya akaunti iliyochaguliwa kuwa chaguo-msingi |
r |
Huleta matumizi tena, bila cache fupi |
q, Esc, Ctrl+C |
Hutoka |
Kichaguzi hujifunga kabla ya kutenda, kwa hiyo terminal hurejeshwa kabla Claude Code haijaanza. Baada ya d au badiliko la kushiriki hufunguka tena. Badiliko la kushiriki huonyesha mpango na huuliza kwanza, kama ccam share inavyofanya.
Chaguo
| Chaguo | Inachofanya | Chaguo-msingi |
|---|---|---|
--dry-run |
Huchapisha mazingira na amri ambayo ccam ingeendesha, kisha hutoka | imezimwa |
-v, --version |
Huchapisha ccam <version> (kama hoja ya kwanza tu) |
|
-h, --help |
Msaada wa ccam, kama ccam --help au ccam run --help |
Kanuni za hoja:
- ccam husoma chaguo zake yenyewe kabla ya jina la akaunti tu. Baada ya jina, kila hoja ni ya Claude Code, pamoja na
--dry-runna--help. --dry-runhufanya kazi kamaccam --dry-run work,ccam run --dry-run worknaccam --dry-run(akaunti chaguo-msingi). Inaheshimiwa, haikataliwi.ccam run <name|number> [claude args]ni muundo mrefu waccam <name>.ccam runbila jina hutumia akaunti chaguo-msingi.- Majina ya akaunti hayawezi kuwa majina ya amri za ccam kama
add,list,runauusage, kwa hiyoccam <word>kamwe haina utata.
Jaribio la dry run huchapisha mstari mmoja ambao unaweza kubandika kwenye shell:
$ ccam --dry-run work -p "fix the tests"
CLAUDE_CONFIG_DIR=/home/me/.local/share/ccam/profiles/work /home/me/.local/bin/claude --mcp-config=/home/me/.local/share/ccam/groups/default/mcp.json -p 'fix the tests'Jinsi inavyofanya kazi
Kila uanzishaji hupitia hatua zile zile, kuanzia mstari wa amri hadi exec:
Kila kisanduku huwaka hatua yake inapoendeshwa, na mistari iliyo chini ni mazingira na hoja ambazo Claude Code huanza nazo.
cmd/ccam/main.gohuitaapp.Main. Ikiwa ccam ilianzishwa kwa jina lingine, ni njia fupi na huenda moja kwa moja kwa launcher.app.parsehuangaliaos.Argskabla cobra haijahusika.ccampeke yake (kichaguzi), jina la amri ya ccam (config.Reserved),-h/--helpna-v/--versionpekee ndizo huenda kwacli.Execute. Kila kitu kingine ni uanzishaji.launcher.Launchhusoma~/.config/ccam/config.toml, faili pekee ambayo huichanganua.launcher.Preparehupata akaunti kwa jina au namba, huondoa--moja ya mwanzo, na hutafuta programu yaclaudekwaResolveClaude. Utafutaji katika PATH huhifadhiwa kwenye cache katika~/.local/state/ccam/claude-pathpamoja na muda wa mwisho wa kubadilishwa kwa faili, kwa hiyo ccam haitafutiPATHkila inapoanzisha. Faili iliyobadilika au inayokosekana husababisha utafutaji mpya. Njia yaclaude_binkatikaconfig.tomlhutumiwa kama ilivyo. ccam hukataaclaudeambayo ni ccam yenyewe, ikilinganisha kwa inode, kwa sababu hilo lingesababisha mzunguko usioisha.checkLinkshulinganisha folda ya akaunti~/.local/share/ccam/profiles/<name>/na mipangilio yake ya kushiriki kwashare.Check, ambayo huitalstatnareadlinktu, system call moja au mbili kwa kila kipengele. Kiungo kinachokosekana huundwa papo hapo. Chochote kinachoweza kupoteza data husimamisha uanzishaji.applyMCPhuongeza seva za MCP zinazoshirikiwa (tazama hapa chini).session.Registerhurekodi kipindi. ccam huandika alama yenye jina la PID yake, ikiwa na muda wa kuanza wa mchakato, kwenye$XDG_RUNTIME_DIR/ccam/profile-<name>/<pid>(au~/.local/state/ccam/locks/bilaXDG_RUNTIME_DIR). Kwa akaunti inayoshiriki historia ya mazungumzo,historyCheckkwanza hutafuta kipindi kinachoendeshwa katikahistory-<group>-<hash>, ambapo hash ni ya folda ya sasa, na husajili hapo pia.exechuhifadhi PID, kwa hiyo baadaye alama hutaja mchakato wa Claude Code wenyewe. Ni alama, si kufuli inayoshikiliwa, kwa sababu michakato ambayo Claude Code huanzisha ingerithi kufuli na kuiendelea kuishikilia baada ya kipindi kuisha.Plan.Exechuweka kichwa cha terminal kuwaclaude · <name>(wakati standard error ni terminal), huandika muda wa uanzishaji kwenye~/.local/state/ccam/last-used/<name>bilafsync, na huitasyscall.Exec.
Claude Code huendeshwa ikiwa CLAUDE_CONFIG_DIR imewekwa kuwa folda ya akaunti na CCAM_PROFILE imewekwa kuwa jina la akaunti. ccam huondoa thamani zozote za vigezo hivi ambazo ilirithi. Kwa folda ya ~/.claude iliyosajiliwa kwa ccam import kwenye macOS, pia huweka CLAUDE_SECURESTORAGE_CONFIG_DIR kuwa thamani tupu, ili akaunti na claude ya kawaida zitumie kuingia kule kule kwa Keychain.
Kwa nini exec
syscall.Exec hubadilisha mchakato wa ccam kwa claude, kwa hiyo ccam haibaki kwenye kumbukumbu, vibonyezo vya vitufe, signals na exit code ni vya Claude Code yenyewe, na hoja hubaki kuwa safu (array), kamwe si mfuatano wa shell. Kazi baada ya kipindi, kama kugundua seva zilizoongezwa kwa claude mcp add, hufanyika katika uanzishaji unaofuata: ccam hulinganisha muda wa kubadilishwa wa .claude.json na ~/.local/state/ccam/mcp/<name>/seen na huichanganua faili tu ilipobadilika.
Jinsi mstari wa amri unavyoelekezwa
Mistari mitatu ya amri, njia tatu kupitia internal/app:
Njia fupi hutambuliwa kwa argv[0], ccam <name> kwa hoja ya kwanza, na zote mbili huishia katika syscall.Exec. Amri ya ccam kama ccam usage pekee ndiyo hufika kwa cobra.
Seva za MCP zinazoshirikiwa
Kwa mkakati wa chaguo-msingi wa flag, ccam hupitisha seva za MCP za kikundi kwa Claude Code kama hoja, ikiwekwa kabla ya zako:
mcp.FlagArgs hurudisha hoja tu ikiwa mcp.json ya kikundi ipo, na Plan.InsertArgs huiweka mara tu baada ya claude. --mcp-config au --strict-mcp-config yako mwenyewe basi bado inatumika juu yake. Ni hoja moja, --mcp-config=<path>, kwa sababu --mcp-config ya Claude Code hupokea thamani kadhaa: ikiandikwa kama hoja mbili, ingesoma pia prompt inayofuata kama faili ya usanidi.
Kwa mcp_strategy = "sync" katika config.toml, ccam huandika seva katika .claude.json ya akaunti badala yake, na huruka hilo ikiwa akaunti tayari inaendeshwa.
Remote Control
ccam work rc (au ccam work remote-control) huanzisha Remote Control ya Claude Code kama work. claude remote-control hukataa --mcp-config kabla ya kitenzi chake na haipokei yoyote baada yake, na vipindi vyake husoma seva za MCP kutoka .claude.json ya akaunti tu. Kwa hiyo mkakati wa flag hufanya kazi tofauti hapa:
remoteControlhuchukua hoja ya kwanza baada ya akaunti isiyoanza na-kama kitenzi cha Claude Code. Kinapokuwaremote-controlaurc,mcp.FlagArgshaiongezi chochote.mcp.Syncedhulinganisha muda wa kubadilishwa wamcp.jsonya kikundi nasync-stampya akaunti. Ikiwa.claude.jsontayari ina seva za sasa za kikundi, au kikundi hakina seva yoyote, Remote Control huanza bila swali.Vinginevyo ccam hutaja seva ambazo vipindi vingezikosa na huuliza:
ccam: Remote Control sessions only get MCP servers stored in account work's .claude.json, not the shared MCP servers (ctx, fs). Copy them into .claude.json (a backup is kept)? [y/N]Kwa
y,mcp.Synchuzinakili kama mkakati wasyncunavyofanya: chini ya kufuli ya Claude Code, baada ya nakala rudufu, ikihifadhi seva za akaunti yenyewe. KwaN, au bila terminal, Remote Control huanza bila hizo, na ccam huelekeza kwamcp_strategy = "sync", ambayo huzinakili kabla ya kila uanzishaji.
ccam huuliza kwa kila uanzishaji wa Remote Control hadi seva zinakiliwe, na baada ya kunakiliwa huuliza tena tu mcp.json ya kikundi inapobadilika tena. Nakala iliyo katika .claude.json hushinda --mcp-config katika uanzishaji wa kawaida unaofuata, kwa hiyo ccam mcp add, remove na import husasisha nakala zinazoshikiliwa na akaunti nyingine (Seva za MCP zinazoshirikiwa).
Bajeti ya ms 10
ccam huongeza kwa kiwango cha juu ms 10 (p95) kabla Claude Code haijaanza. Njia ya uanzishaji kamwe haijengi mti wa amri wa cobra, haianzishi Bubble Tea wala haifungui muunganisho wa mtandao, na TestPackageInitIsCheap hushindwa ikiwa fanksheni za init() za vifurushi zinachukua zaidi ya ms 5 kwa jumla. scripts/perf-check.sh hupima ccam --dry-run work, ccam work na njia fupi kwa hyperfine na hushindwa juu ya ms 10, na BenchmarkLaunchPath katika internal/launcher huendesha hatua hizo kwa mzunguko. Ili kuona muda wa kila hatua, weka CCAM_TRACE=1:
$ CCAM_TRACE=1 ccam --dry-run work >/dev/null
ccam trace: start 2.830ms (total 2.830ms)
ccam trace: load config 0.397ms (total 3.227ms)
ccam trace: prepare 0.112ms (total 3.339ms)
ccam trace: check links 0.238ms (total 3.578ms)
ccam trace: prelaunch 0.083ms (total 3.661ms)Usalama na hali maalum
- Jina au namba isiyojulikana husimama na
no account "<name>"na huelekeza kwaccam list. Ikiwa hakuna akaunti kabisa, ccam hukuomba uongeze moja kwaccam add <name>. - Ikiwa njia inayoshirikiwa imegeuka kuwa faili ya kawaida au inaelekea mahali pasipo sahihi, ccam husimama na
stopped because of share link problems:, huziorodhesha, na hukuomba uendesheccam doctor --fix. Haihamishi data kwenye njia ya uanzishaji. - Ikiwa Claude Code nyingine inayoshiriki historia ya mazungumzo na akaunti hii (kikundi kile kile) inaendeshwa katika folda ile ile, ccam huonya kwamba historia inaweza kuchanganyika na huuliza
Run anyway? [y/N]. Bila terminal huonyesha onyo na huendelea. --dry-runhuruka usawazishaji wa MCP, taarifa ya seva mpya, ukaguzi wa historia, alama ya kipindi, kichwa na muda wa matumizi ya mwisho, na haifanyi exec. Bado hukagua viungo vya kushiriki, na huunda kiungo kinachokosekana kama uanzishaji wa kawaida ungefanya.ccam work rcwakatiworktayari inaendeshwa huacha.claude.jsonbila kuigusa, husema hivyo, na huanzisha Remote Control bila seva za kikundi; iendeshe tena baada ya kipindi kuisha ili kuzinakili. Kwa--dry-runhuchapisha ujumbe lakini haiulizi wala hainakili.- Kwa
mcp_strategy = "sync", usawazishaji ulioshindwa huchapishaccam: MCP sync failed (launching anyway): …na Claude Code huanza na seva ilizokuwa nazo tayari.