বৈশিষ্ট্য
শর্টকাট কমান্ড
এই পাতাটি ইংরেজি থেকে মেশিনে অনুবাদ করা হয়েছে। সংশোধন স্বাগত। GitHub-এ এই পাতা সম্পাদনা করুন
শর্টকাট হলো এমন একটি কমান্ড যার নাম আপনি নিজে দেন এবং যা একটি অ্যাকাউন্ট হিসেবে Claude Code চালু করে: ccwork --resume ঠিক তাই করে যা ccam work --resume করে। এটি ~/.local/bin-এ ccam-এর একটি লিংক, তাই এটি bash, zsh, স্ক্রিপ্ট এবং PATH থেকে প্রোগ্রাম চালায় এমন যেকোনো কিছুতে কাজ করে। শর্টকাট ঐচ্ছিক; যে অ্যাকাউন্টগুলো আপনি প্রায়ই চালু করেন সেগুলোর জন্য একটি তৈরি করুন।
ব্যবহার
ccam shortcut work ccwork # create the shortcut ccwork for work
ccam shortcut 2 ccside # the account with number 2
ccam shortcut work # show it
ccam shortcut work ccw # rename it; the old link is removed
ccam shortcut work --remove # delete it
ccam add side --shortcut ccside
ccam shims install # recreate missing links of all accounts
ccwork -p "summarise" --output-format jsonccam প্রতিটি পরিবর্তন নিশ্চিত করে:
$ ccam shortcut work ccwork
✓ shortcut for work: ccwork
$ ccam shortcut work ccw
✓ shortcut for work: ccw (was ccwork)
$ ccam shortcut work --remove
✓ ccw removed; work has no shortcut now
$ ccam shortcut work
work: none (add one with `ccam shortcut work ccwork`)একটি অ্যাকাউন্টের সর্বোচ্চ একটি শর্টকাট থাকে, যা ~/.config/ccam/config.toml-এ shortcut হিসেবে সংরক্ষিত থাকে। ccam add উইজার্ড জিজ্ঞেস করে Create a shortcut command for <name>? [y/N] এবং তারপর Shortcut name [cc<name>]:। উইজার্ডের বাইরে ccam add শুধু --shortcut দিলে একটি তৈরি করে। ccam list প্রতিটি অ্যাকাউন্টের শর্টকাট দেখায়, অথবা -।
শর্টকাট প্রতিটি আর্গুমেন্ট Claude Code-এ পাঠায়, ঠিক যেভাবে ccam <name> নামের পরে পাঠায়। এর মধ্যে --dry-run ও --help-ও আছে: চালু করার পূর্বরূপ দেখতে ccam --dry-run work ব্যবহার করুন।
অপশন
| অপশন | কী করে | ডিফল্ট |
|---|---|---|
--remove |
অ্যাকাউন্টের শর্টকাট ও তার লিংক মুছে দেয় | বন্ধ |
-h, --help |
কমান্ডের সাহায্য | |
--dry-run |
ccam shortcut এটি মানে: নামটি যাচাই করে এবং সংরক্ষণ বা লিংক না করে Would set the shortcut of work to ccwork. বা Would remove ccwork, the shortcut of work. প্রিন্ট করে |
বন্ধ |
ccam shims install কোনো আর্গুমেন্ট নেয় না এবং --dry-run প্রত্যাখ্যান করে ccam: --dry-run is not supported by `ccam shims install`; nothing was changed দিয়ে।
নামের নিয়ম, এই ক্রমে যাচাই করা হয়:
- ১ থেকে ৬৪ অক্ষরের,
a-z,0-9,.,-ও_দিয়ে গঠিত, কোনো অক্ষর বা অঙ্ক দিয়ে শুরু; ccam,claudeবাrunবাusage-এর মতো কোনো ccam কমান্ড নয়;- অন্য কোনো অ্যাকাউন্টের শর্টকাট নয়;
~/.local/bin-এ এমন কোনো ফাইল নয় যা আগে থেকেই ccam-এর লিংক নয়;- আপনার
PATH-এ থাকা অন্য কোনো এক্সিকিউটেবলের নাম নয়।
একসঙ্গে একটি কমান্ড ও --remove দিলে give a command or --remove, not both দিয়ে থেমে যায়। অ্যাকাউন্টের আগে থেকে থাকা নামটিই আবার দিলে work: ccwork (unchanged) প্রিন্ট হয় এবং লিংক না থাকলে আবার তৈরি হয়।
এটি কীভাবে কাজ করে
নাম নির্ধারণ করলে checkShortcut চলে, যা bin ফোল্ডার ও ccam বাইনারির আসল পাথ দিয়ে shim.Check ডাকে:
নামটি ক্রমানুসারে যাচাইগুলোর মধ্য দিয়ে নিচে নামে। প্রতিটি যাচাইয়ের পাশে এমন একটি নাম আছে যা সেটি প্রত্যাখ্যান করে: Work প্যাটার্নে ব্যর্থ হয়, run একটি ccam কমান্ড, ccside অন্য অ্যাকাউন্টের, ccfile ~/.local/bin-এ একটি বিদ্যমান ফাইল, আর git /usr/bin/git-কে আড়াল করত। শুধু প্রতিটি যাচাই পেরোনো নামই সংরক্ষিত ও লিংক করা হয়।
shim.Checkনামটি মেলায়^[a-z0-9][a-z0-9._-]{0,63}$-এর সঙ্গে, তারপরconfig.Reserved, তারপরcfg.FindShortcut। এটি~/.local/bin/<name>-এos.Lstatডাকে, এবংPATH-এর অন্য প্রতিটি ফোল্ডারের জন্যos.Statডাকে এবং ccam-এর লিংক নয় এমন এক্সিকিউটেবল ফাইল প্রত্যাখ্যান করে।- ccam
fsutil.AtomicWriteদিয়েconfig.tomlসংরক্ষণ করে (অস্থায়ী ফাইল,fsync, rename)। shim.Removeপুরোনো শর্টকাটের লিংক মুছে দেয়, তবে শুধু যদি সেটি ccam-এর লিংক হয়।shim.Installকনফিগার করা প্রতিটি অনুপস্থিত শর্টকাটের লিংক তৈরি করে,os.Executableওfilepath.EvalSymlinksদিয়ে খুঁজে পাওয়া ccam বাইনারির দিকেos.Symlinkদিয়ে। এটি কখনও কিছু সরায় না।
একটি লিংক ccam-এর নিজের বলে গণ্য হয় যখন os.Readlink ccam পাথ ফেরত দেয়, অথবা যখন লিংক ও ccam পাথ একই ফাইলে পৌঁছায়। প্রতিটি মুছে ফেলা ও প্রতিটি ওভাররাইট যাচাই এই পরীক্ষার মধ্য দিয়ে যায়, তাই ccam নিজের তৈরি না করা ফাইল স্পর্শ করে না।
শর্টকাট চালালে আপনার টাইপ করা নামটিই ccam-এর একমাত্র প্রয়োজন:
শেল PATH-এ ccwork খুঁজে পায়, কার্নেল লিংক অনুসরণ করে ccam বাইনারি চালু করে, এবং argv[0] তখনও ccwork। app.Main-এ ccam ছাড়া যেকোনো নাম একবার config.toml লোড করে এবং shim.Lookup ডাকে, যা সেই অ্যাকাউন্ট খুঁজে বের করে যার shortcut filepath.Base(argv[0])-এর সমান। তারপর launcher.LaunchWith আগে থেকে লোড হওয়া কনফিগ দিয়ে ccam <name>-এর একই ধাপগুলো নেয়, এবং argv[1:] অপরিবর্তিত অবস্থায় claude-এ দেয়।
কেন শেল অ্যালিয়াস বা র্যাপার স্ক্রিপ্ট নয়, সিমলিংক: সিমলিংক প্রতিটি শেলে ও স্ক্রিপ্টে কাজ করে, এটি অতিরিক্ত কোনো শেল চালু যোগ করে না (প্রায় ১ থেকে ২ ms), এবং চালু করা তখনও একটি ফাইল পড়ে। scripts/perf-check.sh hyperfine দিয়ে একটি শর্টকাট মাপে, ccam <name>-এর একই ১০ ms (p95) সীমার বিপরীতে।
নিরাপত্তা ও বিশেষ ক্ষেত্র
- যে লিংক কোনো অ্যাকাউন্টের নয়।
~/.local/bin-এ ccam-এর কোনো লিংকের নাম যদি কোনো অ্যাকাউন্ট ব্যবহার না করে, যেমন আপনিconfig.toml-এ হাতেshortcutসম্পাদনা করার পরে, ccam ডিফল্ট অ্যাকাউন্টে ফিরে যায় না। এটিccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`)দিয়ে থেমে যায়।ccam shortcutদিয়ে আবার নামটি নির্ধারণ করুন, অথবা লিংকটি মুছে দিন। - বিদ্যমান ফাইল। ccam কখনও নিজের তৈরি না করা ফাইল প্রতিস্থাপন করে না।
ccam shims installথেমে যায়<path> already exists and is not a ccam link, so it was left aloneদিয়ে। - সরানো ccam বাইনারি। তখন পুরোনো লিংকগুলো এমন পাথে নির্দেশ করে যা আর নেই, এবং ccam সেগুলোকে নিজের বলে গণ্য করে না। সেগুলো মুছে দিন, তারপর
ccam shims installচালান। - নাম বদল ও সরানো।
ccam renameশর্টকাটের নাম একই রাখে, এবং লিংকটি কাজ করতে থাকে, কারণ এটি ccam-এ নির্দেশ করে আর ccamconfig.toml-এ নামটি খোঁজে।ccam removeঅ্যাকাউন্টের লিংক মুছে দেয়।ccam shortcut <account> <new>নতুনটি তৈরির আগে পুরোনো লিংক মুছে দেয়। - PATH। ccam লিংক তৈরি করার সময়
~/.local/binআপনারPATH-এ না থাকলে এটি প্রিন্ট করেNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:ও তারপর যোগ করার মতোexport PATH=...লাইনটি। - পরে যাচাই।
ccam doctorজানায়missing shortcuts in /home/me/.local/bin: ccworkএবং ফোল্ডারটিPATH-এ না থাকলে সতর্ক করে।ccam doctor --fixঅনুপস্থিত লিংকগুলো তৈরি করে।