Live WebRTC video lessons with Tailscale-secured P2P connections, integrated payments and the Kameleon Presenter β all in one application.
Low-latency video and audio via WebRTC β no central media server. The Chameleon signal server (chameleon_signal.py) handles SDP and ICE relay over WebSocket on port 8766. Runs on Termux on Android too.
All peers connect through your Tailscale mesh β no public IP, no port forwarding. The IDE manages ACLs, device authorisation and auth key generation without leaving the app.
Teach with the full Kameleon stage during your lesson. Students can push answers, drawings and images directly to a Stage-mode stack β moderate and display in real time without switching apps.
Built-in pronunciation coaching widget (pronunciation_widget.py) with phoneme-level feedback β ideal for language teaching where precise articulation matters.
When Tailscale is unavailable, lan_video.py streams video over UDP (port 47732), audio over UDP (port 47733) and collaborative diffs over WebSocket (port 47731) β all on the local network.
Accept payment from students worldwide before granting lesson access
Courses and student enrolments stored in ~/.chameleon/courses.db. The AI can create courses, list enrolments, check payment status and revoke access β all via IDE commands.
Stripe handles GBP payments from UK and international students. Alipay targets Chinese students paying in CNY. PayPal provides a universal fallback with broad country coverage.
For students without card access, accept WeChat Pay proof-of-payment screenshots. The AI reads the image, extracts the amount and reference, and logs the manual payment against the enrolment.
Generate Stripe-hosted payment links for any course. Share the link β student pays β enrolment is created automatically. No checkout page to build or host.
| AI Command | Description |
|---|---|
payment_create_course | Create a new course with price, title and description |
payment_links | Generate Stripe payment link for a course |
payment_status | Check a student's payment and enrolment status |
payment_enrol | Manually enrol a student (e.g. after cash payment) |
payment_revoke | Remove a student's enrolment access |
payment_unpaid | List all students with outstanding balances |
payment_screenshot | Log a WeChat Pay screenshot as proof of payment |
Everything you need β video, slides, payments and enrolment β in a single desktop application.
Get in touch β Back to overview