# การสลับไปยังบัญชีถัดไป

> ccam next เปิด Claude Code ด้วยบัญชีถัดจากบัญชีที่คุณใช้ล่าสุด --auto เลือกบัญชีที่ใช้งาน 5 ชั่วโมงน้อยที่สุด และ --continue ทำการสนทนาต่อ

Source: https://ccam.dev/th/features/next/ · Updated 2026-10-19

`ccam next` เปิด Claude Code ด้วยบัญชีอื่นโดยที่คุณไม่ต้องระบุชื่อ ใช้เมื่อบัญชีถึงขีดจำกัดการใช้งาน: `ccam next` แบบธรรมดาจะเลือกบัญชีถัดจากบัญชีที่คุณใช้ล่าสุด `--auto` จะเลือกบัญชีที่เหลือโควตามากที่สุดในช่วง 5 ชั่วโมง และ `--continue` จะนำการสนทนาล่าสุดไปต่อในบัญชีใหม่

## การใช้งาน

```sh
ccam next                       # the account after the one you used last
ccam next --auto                # the account with the lowest 5-hour usage
ccam next --continue            # the next account that shares history, with claude --continue
ccam next -c --auto             # both: lowest usage among accounts sharing history
ccam next -- -p "summarize"     # pass arguments to claude after --
ccam --dry-run next --auto      # print the choice and the command, start nothing
```

```console
$ ccam --dry-run next
→ personal → work
CLAUDE_CONFIG_DIR=/home/you/.local/share/ccam/profiles/work /usr/local/bin/claude
```

ccam พิมพ์การสลับเป็น `→ <from> → <to>` ทาง standard error จากนั้นเริ่ม Claude Code ด้วยบัญชีใหม่แบบเดียวกับ `ccam <name>` `<from>` คือบัญชีที่คุณใช้ล่าสุด อาร์กิวเมนต์หลัง `--` จะส่งต่อให้ `claude` โดยไม่เปลี่ยนแปลง

## ตัวเลือก

| ตัวเลือก | สิ่งที่ทำ | ค่าเริ่มต้น |
| --- | --- | --- |
| `--auto` | เลือกบัญชีที่เข้าสู่ระบบแล้วซึ่งใช้งาน 5 ชั่วโมงน้อยที่สุด โดยข้ามบัญชีที่ใช้ไปถึง 100% | ปิด |
| `-c`, `--continue` | พิจารณาเฉพาะบัญชีที่ใช้ประวัติการสนทนาร่วมกับบัญชีที่คุณใช้ล่าสุด และเริ่ม `claude --continue` | ปิด |
| `-- <claude args>` | อาร์กิวเมนต์ที่ส่งให้ `claude` ต่อจากอาร์กิวเมนต์ของ ccam เอง | ไม่มี |
| `--dry-run` | รองรับ: พิมพ์ `→ <from> → <to>` และบรรทัดคำสั่งที่จะรัน โดยไม่เริ่ม Claude Code และไม่บันทึกการเริ่ม | ปิด |

`--auto` และ `--continue` ใช้ร่วมกันได้ เมื่อใช้ `--continue` ตัวเลือก `--continue` จะถูกวางไว้ก่อนอาร์กิวเมนต์ของคุณ

## วิธีการทำงาน

การเริ่มทุกครั้งผ่าน ccam จะเขียนเวลาลงใน `~/.local/state/ccam/last-used/<name>` `ccam next` อ่านไฟล์เหล่านี้ ตรวจว่าบัญชีใดเข้าสู่ระบบแล้ว แล้วจึงเลือก

1. `cli.candidates` สร้าง `next.Candidate` หนึ่งรายการต่อบัญชีจาก `config.toml`: ได้แก่ บัญชี เวลาที่เริ่มครั้งล่าสุด (`launcher.LastUsed`) และบัญชีนั้นมีการเข้าสู่ระบบหรือไม่ (`creds.Has`: มี `.credentials.json` ที่อ่านได้ หรือบน macOS มีรายการในพวงกุญแจ (Keychain))
2. หากไม่ใส่ `--auto` `next.Rotate` จะเรียงบัญชีตามหมายเลขสล็อตและหาบัญชีที่เริ่มล่าสุด ซึ่งคือบัญชีที่คุณกำลังสลับออก หากยังไม่มีบัญชีใดถูกเริ่มเลย จะใช้สล็อตต่ำสุด
3. จากตรงนั้นจะไล่ไปข้างหน้าตามลำดับสล็อต วนจากสล็อตสุดท้ายกลับไปสล็อตแรก และคืนบัญชีแรกที่เข้าสู่ระบบแล้ว
4. `launcher.LaunchWith` เตรียมและเริ่มบัญชีที่เลือกเหมือนกับที่ `ccam <name>` ทำทุกประการ: ตรวจลิงก์ของบัญชี ใช้การตั้งค่า MCP ที่ใช้ร่วมกัน ลงทะเบียนเซสชัน และแทนที่ ccam ด้วย `claude` ผ่าน `syscall.Exec`

การไล่เริ่มที่บัญชีที่ใช้ล่าสุด และหยุดที่บัญชีแรกที่เข้าสู่ระบบแล้วซึ่งอยู่ถัดไป:

`work` ถูกเริ่มล่าสุด การไล่จึงเริ่มต่อจากบัญชีนี้ `side` ไม่มีการเข้าสู่ระบบจึงถูกข้าม และเลือก `lab` หาก `lab` ออกจากระบบไปแล้วด้วย การไล่จะวนกลับไปที่ `personal` (`% len` ในแผนภาพ) การหมุนเวียนไม่มีทางคืนบัญชีที่คุณเริ่มต้นมา: หากไม่มีบัญชีอื่นที่เข้าสู่ระบบแล้ว จะหยุดพร้อมข้อผิดพลาด

### --auto

`--auto` ตัดสินจากการใช้งานแทนลำดับสล็อต `cli.pickAuto` เก็บบัญชีที่เข้าสู่ระบบแล้วไว้ สอบถามการใช้งานของทุกบัญชีพร้อมกันด้วย `Fetcher.FetchAll` ตัวเดียวกับที่ `ccam usage` ใช้ และให้ `usage.Best()` เป็นผู้เลือก:

`usage.Best()` เลือกเปอร์เซ็นต์ 5 ชั่วโมงที่ต่ำที่สุด และข้ามบัญชีที่ใช้ไปถึง 100% หรือไม่ทราบการใช้งาน 5 ชั่วโมง การสอบถามทำตามกฎของ `ccam usage`: ตัวเลขที่ดึงมาเมื่อไม่ถึง 60 วินาทีที่แล้วจะถูกนำกลับมาใช้ แต่ละบัญชีมีเวลา 3 วินาที และบัญชีที่ไม่ตอบกลับหรือการเข้าสู่ระบบหมดอายุแล้วจะถูกตัดสินจากตัวเลขที่บันทึกไว้ ช่วงเวลาที่บันทึกไว้ซึ่งเลยเวลารีเซ็ตไปแล้วจะนับเป็น 0% บัญชีที่ช่วงเวลารีเซ็ตไปแล้วจึงไม่ถูกมองข้าม `--auto` ไม่เคยต่ออายุโทเค็น ต่างจากการหมุนเวียนแบบธรรมดา `--auto` อาจเลือกบัญชีที่คุณใช้ล่าสุดได้หากบัญชีนั้นยังเหลือโควตามากที่สุด

### --continue

`--continue` ของ Claude Code เปิดการสนทนาล่าสุดในโฟลเดอร์ปัจจุบัน ซึ่งจะใช้ได้ก็ต่อเมื่อบัญชีใหม่มองเห็นการสนทนานั้น ดังนั้นเมื่อใช้ `--continue` ccam จะพิจารณาเฉพาะบัญชีที่อยู่ในกลุ่ม `history` เดียวกับบัญชีที่คุณใช้ล่าสุด แล้ววาง `--continue` ไว้หน้าอาร์กิวเมนต์ของคุณ บัญชีที่ประวัติเป็น `local` ไม่ได้ใช้ร่วมกับใครเลย `--continue` จากบัญชีแบบนั้นจึงล้มเหลวเสมอ ให้เปิดการใช้ร่วมกันก่อนด้วย `ccam share <name> --history on` (ดูที่[การใช้ร่วมกัน](https://ccam.dev/th/docs/sharing.md))

## ความปลอดภัยและกรณีพิเศษ

- บัญชีที่ไม่มีการเข้าสู่ระบบจะไม่ถูกเลือกเลย หากไม่มีบัญชีอื่นที่เข้าสู่ระบบแล้ว `ccam next` แบบธรรมดาจะหยุดด้วย `no logged-in account other than <name>`
- เมื่อใช้ `--continue` และไม่มีบัญชีใดใช้ประวัติร่วมกัน: `` no other account shares conversation history with <name>. Turn it on with `ccam share <name> --history on` ``
- เมื่อใช้ `--auto` และไม่มีบัญชีที่เข้าสู่ระบบแล้ว: `no logged-in account to pick` เมื่อทุกบัญชีเต็มหรือไม่ทราบการใช้งาน: `` no account with known usage and headroom (see `ccam usage`) ``
- `--auto` ส่งคำขอผ่านเครือข่ายแม้จะใส่ `--dry-run` โดยจะอ่านเท่านั้น และไม่เคยเขียนไฟล์โทเค็น
- บัญชีที่เลือกจะเริ่มผ่านเส้นทางเดียวกับ `ccam <name>` จึงผ่านการตรวจแบบเดียวกัน รวมถึงคำเตือนเมื่อมี Claude Code อีกตัวที่ใช้ประวัติเดียวกันกำลังทำงานอยู่ในโฟลเดอร์นี้
- `last-used` จะถูกเขียนเฉพาะเมื่อ Claude Code เริ่มทำงานจริง `--dry-run` จะไม่แตะไฟล์นี้ การทดลองรันจึงไม่ทำให้การหมุนเวียนเลื่อนไปข้างหน้า

## หัวข้อที่เกี่ยวข้อง

- [ขีดจำกัดการใช้งาน](https://ccam.dev/th/features/usage.md)
- [ขีดจำกัดการใช้งานและการสลับบัญชี](https://ccam.dev/th/docs/usage-limits.md)
- [ใช้เซิร์ฟเวอร์ MCP การตั้งค่า และประวัติร่วมกัน](https://ccam.dev/th/docs/sharing.md)
- [ขั้นตอนการรับมือเมื่อถึงขีดจำกัดการใช้งาน](https://ccam.dev/th/guides/usage-limit-workflow.md)
