Skip to content

Commit 6d07c44

Browse files
committed
docs: add copilot docs and 0.2.0 changelog
- Record 0.2.0 release notes with copilot coverage - Remove version pin from README install snippets - Document copilot endpoints and auth across guides
1 parent da99270 commit 6d07c44

File tree

6 files changed

+116
-5
lines changed

6 files changed

+116
-5
lines changed

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.2.0] - 2026-01-05
9+
10+
### Added
11+
12+
- GitHub Copilot now documented across the site (index, quickstart, API usage, authentication) with endpoints, auth flow, and model examples.
13+
- Claude `/claude/v1/models` endpoint for model discovery.
14+
15+
### Changed
16+
17+
- Provider list and auth guidance now explicitly include Copilot alongside Claude and Codex.
18+
- Temperature validation guards requests before forwarding to upstream APIs.
19+
- Release workflow accepts `version`, `skip_tests`, and `pypi_only` inputs and gates steps accordingly.
20+
21+
### Fixed
22+
23+
- Tool-call streaming in SDK mode now works for both SSE and dict outputs with correct indexing.
24+
- Race conditions and first-message loss in streaming broadcasts addressed; orphaned `tool_result` blocks sanitized.
25+
- Null `temperature` values stripped from Claude API requests to avoid upstream validation errors.
26+
27+
### Note
28+
29+
- Includes all fixes and improvements from pre-release tags `0.2.0a2–0.2.0a4`.
30+
31+
## [0.2.0a4] - 2026-01-05
32+
33+
### Changed
34+
35+
- Release workflow now accepts `version`, `skip_tests`, and `pypi_only` inputs and gates test/package/docker/release steps accordingly.
36+
- Workflow can check out an explicit ref and tag releases with the provided version.
37+
838
## [0.2.0a3] - 2026-01-04
939

1040
### Fixed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,14 @@ To install the latest stable release without cloning the repository, use `uvx`
156156
to grab the published wheel and launch the CLI:
157157

158158
```bash
159-
uvx --with "ccproxy-api[all]==0.2.0" ccproxy serve --port 8000
159+
uvx --with "ccproxy-api[all]" ccproxy serve --port 8000
160160
```
161161

162162
If you prefer `pipx`, install the package (optionally with extras) and use the
163163
local shim:
164164

165165
```bash
166-
pipx install "ccproxy-api[all]==0.2.0"
166+
pipx install "ccproxy-api[all]"
167167
ccproxy serve # default on localhost:8000
168168
```
169169

docs/getting-started/quickstart.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,15 @@ print(response.choices[0].message.content)
192192
- `POST /api/codex/v1/chat/completions` - Standard OpenAI endpoint
193193
- `GET /api/codex/v1/models` - List available models
194194

195+
### Copilot Plugin (`/copilot`)
196+
- `POST /copilot/v1/chat/completions` - OpenAI chat completions via GitHub Copilot
197+
- `POST /copilot/v1/responses` - OpenAI Responses API
198+
- `POST /copilot/v1/messages` - Anthropic messages (adapter translated)
199+
- `POST /copilot/v1/embeddings` - OpenAI embeddings
200+
- `GET /copilot/v1/models` - List available models
201+
- `GET /copilot/usage` - Copilot usage snapshot
202+
- `GET /copilot/token` - Copilot token status
203+
195204
## Monitoring & Debugging
196205

197206
### Health Check

docs/index.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
# CCProxy API Server
22

3-
`ccproxy` is a local reverse proxy server that provides unified access to multiple AI providers through a plugin-based architecture. It supports Anthropic Claude and OpenAI Codex through dedicated provider plugins, allowing you to use your existing subscriptions without separate API key billing.
3+
`ccproxy` is a local reverse proxy server that provides unified access to multiple
4+
AI providers through a plugin-based architecture. It supports Anthropic Claude,
5+
OpenAI Codex, and GitHub Copilot through dedicated provider plugins, allowing
6+
you to use your existing subscriptions without separate API key billing.
47

58
## Architecture
69

710
CCProxy uses a modern plugin system that provides:
811

9-
- **Provider Plugins**: Handle specific AI providers (Claude SDK, Claude API, Codex)
12+
- **Provider Plugins**: Handle specific AI providers (Claude SDK, Claude API, Codex, Copilot)
1013
- **System Plugins**: Add functionality like pricing, logging, monitoring, and permissions
1114
- **Unified API**: Consistent interface across all providers
1215
- **Format Translation**: Seamless conversion between Anthropic and OpenAI formats
@@ -48,6 +51,20 @@ Provides access to OpenAI's APIs (Responses and Chat Completions) through OAuth2
4851

4952
All plugins support both Anthropic and OpenAI-compatible API formats for requests and responses, including streaming.
5053

54+
### Copilot Plugin (`/copilot`)
55+
Adds GitHub Copilot as a provider with OAuth device flow support and GitHub
56+
flavored auxiliary endpoints.
57+
58+
**Endpoints:**
59+
- `POST /copilot/v1/chat/completions` - OpenAI Chat Completions via Copilot
60+
- `POST /copilot/v1/responses` - OpenAI Responses API
61+
- `POST /copilot/v1/messages` - Anthropic messages (adapter translated)
62+
- `POST /copilot/v1/embeddings` - OpenAI embeddings
63+
- `GET /copilot/v1/models` - List Copilot-exposed models
64+
- `GET /copilot/usage` - GitHub Copilot usage snapshot
65+
- `GET /copilot/token` - Copilot token status
66+
- `GET /copilot/health` - Plugin health (OAuth and gh CLI detection)
67+
5168
## Installation
5269

5370
```bash

docs/user-guide/api-usage.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ curl -X POST http://localhost:8000/claude/v1/messages \
5151
Claude SDK Mode: http://localhost:8000/claude/sdk/v1/
5252
Claude API Mode: http://localhost:8000/claude/v1/
5353
Codex (OpenAI): http://localhost:8000/codex/v1/
54+
Copilot (GitHub): http://localhost:8000/copilot/v1/
5455
```
5556

5657
### Chat Completions
@@ -97,6 +98,26 @@ curl -X POST http://localhost:8000/codex/v1/responses \
9798
{"role": "user", "content": [{"type": "text", "text": "Hello!"}]}
9899
]
99100
}'
101+
102+
# OpenAI Chat Completions via Copilot
103+
curl -X POST http://localhost:8000/copilot/v1/chat/completions \
104+
-H "Content-Type: application/json" \
105+
-d '{
106+
"model": "gpt-4-copilot",
107+
"messages": [
108+
{"role": "user", "content": "Hello from Copilot!"}
109+
]
110+
}'
111+
112+
# OpenAI Responses API via Copilot
113+
curl -X POST http://localhost:8000/copilot/v1/responses \
114+
-H "Content-Type: application/json" \
115+
-d '{
116+
"model": "gpt-4-copilot",
117+
"input": [
118+
{"role": "user", "content": [{"type": "text", "text": "Hello!"}]}
119+
]
120+
}'
100121
```
101122
```
102123

docs/user-guide/authentication.md

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
CCProxy API handles authentication in multiple layers:
66
1. **Claude Authentication**: Your Claude subscription credentials for accessing Claude AI
77
2. **OpenAI/Codex Authentication**: Your ChatGPT Plus credentials for accessing the Response API
8-
3. **API Authentication**: Optional token authentication for securing access to the proxy endpoints
8+
3. **GitHub Copilot Authentication**: Your GitHub account credentials for Copilot chat/completions
9+
4. **API Authentication**: Optional token authentication for securing access to the proxy endpoints
910

1011
## Important: Authentication Methods
1112

@@ -32,6 +33,13 @@ CCProxy supports multiple authentication methods with separate credential storag
3233
- **Requirements**: Active ChatGPT Plus subscription
3334
- **Credential Reuse**: Automatically uses existing Codex CLI credentials if available
3435

36+
### GitHub Copilot Authentication
37+
- **Used by**: `ccproxy auth login copilot` (device flow) and Copilot endpoints
38+
- **Storage**: `$HOME/.config/copilot/credentials.json`
39+
- **Purpose**: Authenticates for GitHub Copilot chat, responses, embeddings, and usage APIs
40+
- **Requirements**: GitHub Copilot access (individual, business, or enterprise)
41+
- **Credential Reuse**: Detects existing GitHub CLI authentication when present
42+
3543
## Authentication Commands
3644

3745
### Claude Authentication Commands
@@ -101,6 +109,32 @@ Shows authentication status for all providers:
101109
- Claude SDK credentials
102110
- Claude API credentials
103111
- OpenAI/Codex credentials
112+
- GitHub Copilot credentials
113+
114+
### GitHub Copilot Authentication Commands
115+
116+
Manage your Copilot device-flow credentials:
117+
118+
#### Login
119+
```bash
120+
# Enable Copilot provider first (if disabled)
121+
ccproxy config copilot --enable
122+
123+
# Start GitHub device flow for Copilot
124+
ccproxy auth login copilot
125+
```
126+
127+
Flow:
128+
1. Prints a GitHub device code and verification URL.
129+
2. Complete authentication in the browser.
130+
3. Stores credentials in `$HOME/.config/copilot/credentials.json`.
131+
4. Automatically refreshes Copilot tokens when they near expiry.
132+
133+
#### View Copilot Status
134+
```bash
135+
ccproxy auth status copilot
136+
```
137+
Shows token expiry, detected plan (individual/business/enterprise), and whether a Copilot token is present.
104138

105139
#### View Detailed OpenAI Credentials
106140
```bash

0 commit comments

Comments
 (0)