Requires this bundle in Textmate.
Copilot can work without Intelephense with any supported by copilot language.
The server now supports automatic GitHub Copilot authentication during startup with a terminal-based flow.
When the server starts, it automatically:
- Checks if Copilot is already authenticated
- If not authenticated, starts an interactive terminal login flow
- Displays a user code and opens GitHub in your browser
- Waits for you to complete authentication
- Verifies the authentication was successful
The authentication happens automatically when you start the server - no additional setup required!
Features:
- Automatic browser opening (cross-platform)
- User-friendly terminal interface with colored output
- Retry mechanism (up to 3 attempts)
- Graceful fallback if authentication fails
The server also supports GitHub Copilot authentication through the following API endpoints:
-
Start Authentication -
POST /
with methodsignIn
- Initiates GitHub OAuth flow
- Returns user code and verification URI
- Response includes:
status
: "pending" or "success" (if already signed in)userCode
: Code to enter on GitHubverificationUri
: GitHub URL to visitexpiresIn
: Code expiration time in secondsinterval
: Polling interval in seconds
-
Complete Authentication -
POST /
with methodsignInConfirm
- Confirms authentication after user enters code on GitHub
- Request body:
{"userCode": "YOUR_CODE"}
- Returns success/error status with user info
-
Check Status -
POST /
with methodcheckStatus
orauthStatus
- Checks current authentication status
- Returns user info if authenticated
# 1. Start authentication
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d '{"Method": "signIn", "Body": {}}'
# Response: {"status": "pending", "userCode": "ABC123", "verificationUri": "https://github.com/login/device", ...}
# 2. User visits the verification URI and enters the code
# 3. Confirm authentication
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d '{"Method": "signInConfirm", "Body": {"userCode": "ABC123"}}'
# Response: {"status": "success", "user": "username"}
# 4. Check authentication status anytime
curl -X POST http://localhost:8080 \
-H "Content-Type: application/json" \
-d '{"Method": "authStatus", "Body": {}}'