npm package: @t-oil/contx
Description: Continue + Context — save and resume AI sessions across Claude CLI, GPT CLI, Gemini CLI, Cursor
Author: t-Oil
Latest version: 0.1.0

# contx

> **Continue + Context** — ทำงานต่อเนื่องข้าม AI tools โดยไม่ต้องอธิบายซ้ำ

[![npm version](https://img.shields.io/npm/v/@t-oil%2Fcontx)](https://www.npmjs.com/package/@t-oil/contx)
[![license](https://img.shields.io/github/license/t-Oil/contx)](LICENSE)

**[🇬🇧 Read in English](README.md)**

---

## ปัญหาที่แก้

ทุกครั้งที่สลับ AI tool — Claude CLI ไป Cursor, Cursor ไป GPT CLI — context หาย ต้องเสียเวลาอธิบาย task เดิมซ้ำทุกครั้ง

```
Claude CLI  →  Cursor  →  GPT CLI  →  Gemini CLI
    💀 context หายทุกครั้งที่ switch
```

## วิธีแก้

`contx` คือ CLI เบาๆ ที่เซฟ session state ไว้ในเครื่อง แล้ว inject เข้า AI tool ถัดไปโดยอัตโนมัติ

```
Claude CLI  →  Cursor  →  GPT CLI  →  Gemini CLI
    ✅ context ต่อเนื่องทุกครั้ง
```

---

## การทำงาน

```
contx save          เซฟ session ปัจจุบัน → ~/.contx/sessions.db
contx load          โหลด context → stdout (pipe เข้า tool ได้เลย)
contx inject        เขียน context → .cursor/rules/ (Cursor อ่านอัตโนมัติ)
contx setup         เพิ่ม shell aliases สำหรับ Claude, GPT, Gemini CLI
```

ไม่มี daemon ไม่มี background process ไม่ใช้ network แค่ SQLite file ในเครื่อง

---

## ติดตั้ง

```bash
git clone https://github.com/t-Oil/contx
cd contx
npm install
npm run build
npm link
```

หรือผ่าน npm (เมื่อ publish แล้ว):

```bash
npm install -g @t-oil/contx
```

---

## เริ่มใช้งาน

**ขั้นตอนที่ 1 — ตั้งค่าครั้งแรกครั้งเดียว**

```bash
contx setup
source ~/.zshrc   # หรือ ~/.bashrc
```

**ขั้นตอนที่ 2 — เซฟ context ก่อนจบ session**

```bash
contx save
```

ระบบจะถามว่า:
- ตอนนี้กำลังทำอะไรอยู่?
- ขั้นตอนถัดไปคืออะไร?
- ไฟล์ไหนที่กำลังแก้อยู่?

หรือส่งเป็น flag เพื่อข้าม prompt:

```bash
contx save --task "refactor auth middleware" --next "add tenantId to JWTPayload" --tool claude
```

**ขั้นตอนที่ 3 — ทำงานต่อใน tool ใหม่**

```bash
# Claude CLI
claude-ctx "continue"

# GPT / sgpt
gpt-ctx "continue"

# Gemini CLI
gemini-ctx "continue"

# Cursor IDE
contx inject --tool cursor
# → Cursor อ่าน .cursor/rules/contx.mdc อัตโนมัติตอน AI request ครั้งถัดไป

# Copy ไปวางใน tool ใดก็ได้
cc
```

---

## ตัวอย่างการใช้งานจริง

### Scenario 1 — Claude CLI → Cursor

ทำงานใน Claude CLI แล้วอยากต่อใน Cursor

**ก่อนจบ session บอก Claude ว่า:**
```
สรุป session นี้แล้ว run contx save ให้หน่อย
```

Claude จะ run:
```bash
contx save --task "refactor auth middleware — extracted verifyToken fn, tests passing" \
           --next "add tenantId to JWTPayload, inject into Request via middleware" \
           --tool claude
```

**จากนั้นเปิด Cursor แล้ว inject:**
```bash
contx inject --tool cursor
# เปิด Cursor → เริ่ม chat → context อยู่ที่นั่นแล้ว
```

---

### Scenario 2 — Cursor → GPT CLI

ทำงานใน Cursor แล้วอยากต่อใน GPT CLI

**ใน Cursor terminal เซฟก่อน:**
```bash
contx save --task "fix chart rendering bug in Dashboard" \
           --next "check ResponsiveContainer width prop" \
           --tool cursor
```

**จากนั้นต่อใน GPT CLI:**
```bash
gpt-ctx "continue from where I left off"
# context inject อัตโนมัติผ่าน alias
```

---

### Scenario 3 — พักงาน แล้วเปิดต่อวันถัดไป

**ก่อนปิด:**
```bash
contx save
```

**เช้าวันถัดไป เปิด tool ไหนก็ได้:**
```bash
cd ~/projects/my-api
claude-ctx "good morning, let's continue"
# โหลด session ของ my-api อัตโนมัติ
```

---

## คำสั่งทั้งหมด

| คำสั่ง | ทำอะไร |
|---|---|
| `contx save` | เซฟ session ปัจจุบันลง local cache |
| `contx load` | print context ออก stdout (pipeable) |
| `contx inject --tool cursor` | เขียน context เข้า Cursor rules |
| `contx status` | ดู sessions ล่าสุด |
| `contx setup` | เพิ่ม shell aliases เข้า rc file |

### โหมดของ `contx load`

| โหมด | ~Token | เหมาะกับ |
|---|---|---|
| `--mode brief` | ~300 | งานเล็ก แก้ bug |
| `--mode normal` | ~1,000 | handoff ทั่วไป (default) |
| `--mode full` | ~3,000 | งานใหญ่ หลายวัน |

```bash
contx load --mode brief | claude "continue"
```

---

## Auto-detect Project

`contx load` จะตรวจจาก folder ปัจจุบันอัตโนมัติ ไม่ต้องระบุชื่อ project

```bash
cd ~/projects/my-api
contx load          # โหลด session ของ my-api อัตโนมัติ

cd ~/projects/dashboard
contx load          # โหลด session ของ dashboard อัตโนมัติ
```

Override ได้ตลอดด้วย `--project`:

```bash
contx load --project my-api
```

---

## ข้อมูลเก็บที่ไหน

ทุกอย่างเก็บที่ `~/.contx/sessions.db` (SQLite) ในเครื่องคุณเท่านั้น

- ไม่มี cloud sync
- ไม่มี telemetry
- ไม่มี network request

---

## Tool ที่รองรับ

| Tool | วิธีเชื่อม | Seamless |
|---|---|---|
| Claude CLI | `claude-ctx "..."` (shell alias) | ✅ |
| GPT / sgpt | `gpt-ctx "..."` (shell alias) | ✅ |
| Gemini CLI | `gemini-ctx "..."` (shell alias) | ✅ |
| Cursor IDE | `contx inject --tool cursor` | ✅ อ่านอัตโนมัติ |

---

## ร่วมพัฒนา

ยินดีรับ PR ทุกอย่าง กรุณาเปิด issue ก่อนถ้าเป็น major change

```bash
git clone https://github.com/t-Oil/contx
cd contx
npm install
npm run dev
```

---

## License

MIT