ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An AI-powered coding interview coach that guides your thinking — never gives you the answer.
CodeWhisper is a native desktop overlay application for developers who want to get genuinely better at coding interviews — not just memorize solutions. It sits on top of your screen while you tackle LeetCode, HackerRank, or any interview problem, reads the problem via OCR, and coaches you using the Socratic method: asking targeted questions that push you toward the solution yourself rather than handing it to you.檢視完整 README ↗An AI-powered coding interview coach that guides your thinking — never gives you the answer.
CodeWhisper is a native desktop overlay application for developers who want to get genuinely better at coding interviews — not just memorize solutions. It sits on top of your screen while you tackle LeetCode, HackerRank, or any interview problem, reads the problem via OCR, and coaches you using the Socratic method: asking targeted questions that push you toward the solution yourself rather than handing it to you.
Instead of copy-pasting hints from a blog post or watching someone walk through the solution, CodeWhisper acts as a mentor sitting next to you — probing your thinking, surfacing what you already know, and escalating guidance only when you're truly stuck. The result is real understanding, not pattern-matching.
Built with Tauri 2.0, CodeWhisper runs locally and privately. Your code sessions and conversation history stay on your machine. Only your API calls to Claude leave the device.
| Layer | Technology |
|---|---|
| Desktop framework | Tauri 2.0 |
| Backend | Rust |
| Frontend | React 18 + TypeScript |
| Build tool | Vite 5 |
| Styling | Tailwind CSS 3 |
| State management | Zustand 5 |
| AI coaching | Claude API (Anthropic) |
| OCR | Tesseract via rusty-tesseract |
| Local database | SQLite via SQLx |
| Auth | Supabase |
| Payments | Stripe (via Supabase Edge Functions) |
devDependencies, installed via npm installbrew install tesseract
# Clone the repo
git clone https://github.com/your-username/codewhisper.git
cd CodeWhisper
# Install JS dependencies
npm install
# Copy and fill in environment variables
cp .env.example .env
# Edit .env with your Supabase credentials
# Run in development mode (opens the desktop overlay)
npm run tauri:dev
# Build for production
npm run tauri:build
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
Your Anthropic API key is entered directly in the app's Settings panel and stored locally — it is never sent to any backend other than the Claude API itself.
The hint system is designed to give you the minimum help you actually need.
| Level | Name | What it gives you |
|---|---|---|
| 1 | Nudge | A Socratic question about constraints or edge cases |
| 2 | Pattern Hint | Hints at the algorithm category without naming it |
| 3 | Approach Hint | Names the pattern and asks how you'd apply it |
| 4 | Pseudocode | Gives structural scaffolding — never actual code |
┌─────────────────────────────────────────────────────────────┐
│ Your Screen │
│ ┌──────────────────────┐ ┌──────────────────────────┐ │
│ │ LeetCode / Browser │ │ CodeWhisper Overlay │ │
│ │ │ │ ┌────────────────────┐ │ │
│ │ Two Sum │───▶│ │ Problem (OCR'd) │ │ │
│ │ Given an array... │ │ │ Coach / Hints │ │ │
│ │ │ │ │ Pattern Library │ │ │
│ └──────────────────────┘ │ └────────────────────┘ │ │
│ └──────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Screenshot ──▶ Tesseract OCR ──▶ Claude API
CodeWhisper/
├── src/ # React + TypeScript frontend
│ ├── components/
│ │ ├── Overlay/ # Window shell (TitleBar, TabBar, CollapsedBubble)
│ │ ├── ChatPanel/ # AI coach conversation UI
│ │ ├── ProblemPanel/ # Problem input + OCR trigger + AI analysis
│ │ ├── HintPanel/ # 4-level hint ladder
│ │ ├── PatternLibrary/ # 10 built-in algorithm patterns
│ │ ├── Session/ # Session history viewer
│ │ ├── Auth/ # Settings modal (API key, license key)
│ │ └── Subscription/ # Upgrade prompt / paywall UI
│ └── stores/ # Zustand state (appStore, sessionStore)
├── src-tauri/ # Rust backend (Tauri 2.0)
│ └── src/commands/
│ ├── screen.rs # Screenshot capture + OCR via Tesseract
│ ├── claude.rs # Claude API streaming integration
│ └── database.rs # SQLite session/message CRUD via SQLx
└── supabase/
└── functions/ # Supabase Edge Functions
├── create-checkout/ # Stripe checkout session creation
├── stripe-webhook/ # Stripe webhook handler + license activation
└── get-license/ # License key validation
| Plan | Price | Sessions |
|---|---|---|
| Free | $0 | 3 sessions |
| Pro | $9 / month | Unlimited |
| Lifetime | $79 one-time | Unlimited, forever |
After purchase, enter your license key in Settings → License to unlock unlimited sessions.
cpal)whisper-rsPull requests are welcome. For major changes, open an issue first to discuss what you'd like to change.
# Run frontend only (no Rust build needed)
npm run dev
# Run full app with Rust backend
npm run tauri:dev
# Type-check frontend
npx tsc --noEmit
MIT — see LICENSE for details.