{"_id":"@ankurpm/evalschool","_rev":"8-f5458498a3d7e725b00d174c060affa1","name":"@ankurpm/evalschool","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@ankurpm/evalschool","version":"1.0.0","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.0","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/learn-evals#readme","bugs":{"url":"https://github.com/ankshvayt/learn-evals/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"e58a1c1e652864fa5814eca1259fd6453d2d2ac7","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.0.tgz","fileCount":143,"integrity":"sha512-K+EtMUW+NtHo3xDpF2VDZ0NypqZsyMhFa9bYBCiZMSNBNpQ8TbHwBioMEsdZiStioa/fhvfx+H7y87w3XNQcow==","signatures":[{"sig":"MEUCIQDXLovMbBPyk+tfb1vbyi1q8Bh7by+XvrifuM8KS8Yl1QIgYkL89B6sGIh49WAw15sVIZE5L9iQj3EjOAuqDqwgXmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423973},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"35c13f0aa7d98e9e411fa89441f0424fb52c22dc","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/learn-evals.git","type":"git"},"_npmVersion":"11.7.0","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.0_1769429171126_0.7206293231947662","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ankurpm/evalschool","version":"1.0.2","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.2","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"5a4636da507d2fbe43a886d6651200713c7b9abc","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.2.tgz","fileCount":143,"integrity":"sha512-HjkIwdaVLpniEP9iBOrbcdBd/KaqrQlFxnBW5jXlFi8y2jGPL0hbWYkxjBIIO9VuB37UtX1IWjf8ELqDPX+J+Q==","signatures":[{"sig":"MEYCIQC2DWRuIpBwQRQscKvMusMtkW/DTzGeyWm1YoLtUMGNiAIhAKCkpCyAwuf9YOMKoO3xMC5j3nZtee50jz0lD5VbYv3y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423952},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"35c13f0aa7d98e9e411fa89441f0424fb52c22dc","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"11.7.0","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.2_1769429783219_0.5090676905181066","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ankurpm/evalschool","version":"1.0.3","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.3","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"69174c576e7017bce83af9ff572290048c59b0c7","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.3.tgz","fileCount":143,"integrity":"sha512-DtrnxzBtDUMdHNTm75z07kLi7+SAX76iX9RHdTu1yciTraYYiUOBT+Cqb6IFzXhKaLPFskWQKG/Q9nWhcMMqrA==","signatures":[{"sig":"MEUCIQClWy7PHad3jWFqdjgKI25x80y6LTFNFP+DQrZTeNURjwIgZ5uqjWHcSoVf/k3AREJs/Yf75jWlnIFGPizl4WebLhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423950},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"35c13f0aa7d98e9e411fa89441f0424fb52c22dc","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"11.7.0","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.3_1769429836843_0.8436906942507985","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ankurpm/evalschool","version":"1.0.4","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.4","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"59d8340c2b6ce04782205e0ec489280cf97ddbc1","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.4.tgz","fileCount":143,"integrity":"sha512-5zxSw07sIRL+GQPI74a13AYOgbVp+AIMgIOf9s/rE3Q5nwrxAyxENhCSoWrQ45iWLurUEz7hv7UG1h8J+bD8ag==","signatures":[{"sig":"MEUCIQCpFehhJS+MTTx4Tvc1n2Vb4/GVQKfTorGH9VrKGVUD+wIgE1lx20a+7sh2P6wa/+y3f/hGRxujXjAcw7BSDP/5xWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":424160},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1e82d977e5c23b3f271056bc24044e04f945040e","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"11.7.0","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"25.4.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.4_1769430982891_0.5276734605023667","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@ankurpm/evalschool","version":"1.0.5","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.5","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"af033050409100dadc966e1ae7ff42d38f94f799","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.5.tgz","fileCount":79,"integrity":"sha512-nAi5gA6o1hbgC/M5QI8bKiqkB2hBlJjdp/4ZxA65x4K4Oyn9Az3kr/AF8XAKiOTQweWVg5IBUQbl9TC6317pOQ==","signatures":[{"sig":"MEUCIFd+LUwdyJYPzUCkidOwdW+ydRK3dGavJ8cyKsyvjAzLAiEAmtl9kMAipbB5+z6fCzmrDBV1dFnQXMLKhDxqMo6L0Mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226419},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ad877a0c13c58bf1bc6d0c71501ffdc00f85a3b1","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"10.8.2","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.5_1769431621013_0.4439583084143106","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@ankurpm/evalschool","version":"1.0.6","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.6","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"57a8139084ad9ab5aabdae8d3bf5fb083bccf036","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.6.tgz","fileCount":79,"integrity":"sha512-Jwz6bWu9+G1VNAbtNtnFItdJ2V0fcw2CczqMW04q3H2SOt1Fnd9vj+deWFap5Mw+b3eJYfCTe5P171s+LdVMgw==","signatures":[{"sig":"MEYCIQC8JSKgyjJZ0qVFok+6/zw0XFMc5ZUWzCm8AjeKcCIRywIhAObIPAMdj3K5O507oI3TNodq5Ws9RKvCAnie4yAOW8ji","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226419},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"26b37e70fc12d36c4c39089fd62aa4ad68332c50","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"10.8.2","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.6_1769431682208_0.37208098068598017","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@ankurpm/evalschool","version":"1.0.7","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","_id":"@ankurpm/evalschool@1.0.7","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"bin":{"evalschool":"dist/index.js"},"dist":{"shasum":"6a6287a10bb97479be506b84a6cab12f9e6fb6c9","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.7.tgz","fileCount":79,"integrity":"sha512-HOMcV2Bov0ZmsYm8cGleBooAdaIlKA+paNHHWUInw9QxBaeX3POlR3q8CcSNn3+uWvjqqW0+r3Z2yo9pjvAnPQ==","signatures":[{"sig":"MEUCIQClPKTM7KWAH6KOlLwHrzRS4Pga0nOEXNFxgjixFyRMHgIgP4kYvNXF8QGH/ahjz8QxjSCyCT5EhtuAr12gHwK27hU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226419},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"af7fba1319b2dda714d246634d5bccc69dc74871","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"repository":{"url":"git+https://github.com/ankshvayt/evalschool.git","type":"git"},"_npmVersion":"10.8.2","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ora":"^8.1.1","conf":"^13.0.1","boxen":"^8.0.1","chalk":"^5.3.0","figures":"^6.1.0","commander":"^12.1.0","@google/generative-ai":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/evalschool_1.0.7_1769431739878_0.2555225013860958","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@ankurpm/evalschool","version":"1.0.8","description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","type":"module","main":"dist/index.js","bin":{"evalschool":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc && node dist/index.js","start":"node dist/index.js","watch":"tsc -w","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/ankshvayt/evalschool.git"},"homepage":"https://github.com/ankshvayt/evalschool#readme","bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"author":{"name":"ankshvayt"},"license":"MIT","dependencies":{"@google/generative-ai":"^0.21.0","chalk":"^5.3.0","commander":"^12.1.0","conf":"^13.0.1","boxen":"^8.0.1","ora":"^8.1.1","figures":"^6.1.0"},"devDependencies":{"@types/node":"^22.10.5","typescript":"^5.7.3"},"engines":{"node":">=18"},"_id":"@ankurpm/evalschool@1.0.8","gitHead":"ff6cef7171897a8588a46807e6a2b53bea737845","types":"./dist/index.d.ts","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-FetPzeFJDCvDl3D3e0/pXcHo43MBkhUUEBETmbRzzZEIoBXYkoCypViRbeaz9t4H7f2OtH4twd6G1DN63O9lnw==","shasum":"4991b67e395a036013fe550b5cc8fa8d4632633e","tarball":"https://registry.npmjs.org/@ankurpm/evalschool/-/evalschool-1.0.8.tgz","fileCount":79,"unpackedSize":226716,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICDyVYK8Nwr4hlf9C57oF/mAxGioQfssT8AzAcYN+LMhAiBCJx/f0RouCtp30aChzdNgqHqxONiTHQzd5KW3YxN58g=="}]},"_npmUser":{"name":"ankurpm","email":"buildwithankur@gmail.com"},"directories":{},"maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/evalschool_1.0.8_1769432144772_0.26586495391840526"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-26T12:06:10.991Z","modified":"2026-01-26T12:55:45.102Z","1.0.0":"2026-01-26T12:06:11.297Z","1.0.2":"2026-01-26T12:16:23.395Z","1.0.3":"2026-01-26T12:17:16.984Z","1.0.4":"2026-01-26T12:36:23.039Z","1.0.5":"2026-01-26T12:47:01.172Z","1.0.6":"2026-01-26T12:48:02.369Z","1.0.7":"2026-01-26T12:49:00.045Z","1.0.8":"2026-01-26T12:55:44.939Z"},"bugs":{"url":"https://github.com/ankshvayt/evalschool/issues"},"author":{"name":"ankshvayt"},"license":"MIT","homepage":"https://github.com/ankshvayt/evalschool#readme","keywords":["llm","evaluation","cli","gemini","deepeval","ai","testing","machine-learning","terminal"],"repository":{"type":"git","url":"git+https://github.com/ankshvayt/evalschool.git"},"description":"Interactive CLI for learning LLM evaluations - like Gemini CLI but for evals","maintainers":[{"name":"ankurpm","email":"buildwithankur@gmail.com"}],"readme":"# EvalSchool CLI\n\n> Master LLM Evaluations in Your Terminal\n\nAn interactive CLI for learning LLM evaluations hands-on. Built like Gemini CLI and Claude CLI — beautiful terminal UI, step-by-step lessons, live exercises, and progress tracking.\n\n![Version](https://img.shields.io/badge/version-1.0.1-blue)\n![Node](https://img.shields.io/badge/node-%3E%3D18-green)\n![License](https://img.shields.io/badge/license-MIT-purple)\n\n```\n╔═════════════════════════════════════════════════════════════════╗\n║                                                                 ║\n║                           EVALSCHOOL                            ║\n║                   Master LLM Evaluations                        ║\n║                                                                 ║\n╚═════════════════════════════════════════════════════════════════╝\n```\n\n## Quick Start\n\n```bash\n# Install globally\nnpm install -g @ankurpm/evalschool\n\n# Start learning\nevalschool\n```\n\n## Features\n\n- **12 Interactive Lessons** — Comprehensive curriculum across 4 modules\n- **Live Exercises** — Run real Gemini API calls and see evaluation results\n- **Quizzes** — Test your understanding after each topic\n- **Progress Tracking** — Pick up where you left off\n- **Offline Mode** — Works without API key using pre-computed examples\n- **Beautiful TUI** — Polished terminal interface with colors, tables, and diagrams\n\n## Installation\n\n### Option 1: npm (Recommended)\n\n```bash\nnpm install -g @ankurpm/evalschool\nevalschool\n```\n\n### Option 2: Homebrew (macOS/Linux)\n\n```bash\n# Add the tap and install\nbrew tap ankshvayt/evalschool\nbrew install evalschool\n\n# Start learning\nevalschool\n```\n\n**Updating:**\n```bash\nbrew update && brew upgrade evalschool\n```\n\n**Uninstalling:**\n```bash\nbrew uninstall evalschool\nbrew untap ankshvayt/evalschool\n```\n\n### Option 3: From Source\n\n```bash\ngit clone https://github.com/ankshvayt/evalschool.git\ncd evalschool\nnpm install\nnpm run build\nnpm link\nevalschool\n```\n\n## Usage\n\n### Interactive Mode\n\n```bash\nevalschool\n```\n\nLaunches the full interactive experience with module selection, lessons, quizzes, and exercises.\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `evalschool` | Interactive menu |\n| `evalschool lesson <id>` | Jump to specific lesson (e.g., `1.1`, `2.3`) |\n| `evalschool setup` | Configure Gemini API key |\n| `evalschool progress` | View completion status |\n| `evalschool list` | List all available lessons |\n| `evalschool --help` | Show help |\n| `evalschool --version` | Show version |\n\n### Examples\n\n```bash\n# Start from the beginning\nevalschool lesson 1.1\n\n# Jump to RAG evaluation\nevalschool lesson 3.1\n\n# Check your progress\nevalschool progress\n\n# Configure API for live exercises\nevalschool setup\n```\n\n## Curriculum\n\n### Module 1: Foundations\n| Lesson | Topic |\n|--------|-------|\n| 1.1 | Introduction to LLM Evaluations |\n| 1.2 | Environment Setup & Configuration |\n| 1.3 | Basic Evaluation Metrics |\n\n### Module 2: Core Metrics\n| Lesson | Topic |\n|--------|-------|\n| 2.1 | Semantic Similarity & G-Eval |\n| 2.2 | Hallucination Detection |\n| 2.3 | Bias & Toxicity Detection |\n\n### Module 3: RAG Evaluation\n| Lesson | Topic |\n|--------|-------|\n| 3.1 | RAG-Specific Metrics |\n| 3.2 | End-to-End RAG Evaluation |\n\n### Module 4: Advanced Techniques\n| Lesson | Topic |\n|--------|-------|\n| 4.1 | Multi-Turn Conversation Evaluation |\n| 4.2 | Custom Metrics Development |\n| 4.3 | CI/CD Integration |\n| 4.4 | A/B Testing for LLMs |\n\n## API Key Setup\n\nMany exercises include live API calls to demonstrate real evaluations. Get your free Gemini API key:\n\n1. Visit [Google AI Studio](https://aistudio.google.com/)\n2. Click \"Get API Key\"\n3. Copy your key\n4. Run `evalschool setup` and paste it\n\nOr set via environment variable:\n\n```bash\nexport GEMINI_API_KEY=your_key_here\n```\n\n> **Note:** The CLI works without an API key using pre-computed examples, but live exercises provide the best learning experience.\n\n## What You'll Learn\n\nBy completing all lessons, you'll master:\n\n- ✅ LLM evaluation fundamentals and why they matter\n- ✅ Answer relevancy, coherence, and fluency metrics\n- ✅ Semantic similarity using embeddings\n- ✅ G-Eval methodology with LLM judges\n- ✅ Hallucination detection and mitigation\n- ✅ Bias and toxicity scanning\n- ✅ RAG-specific metrics (faithfulness, precision, recall)\n- ✅ Multi-turn conversation evaluation\n- ✅ Building custom evaluation metrics\n- ✅ CI/CD integration with GitHub Actions\n- ✅ A/B testing prompts with statistical rigor\n\n## Tech Stack\n\n- **TypeScript** — Type-safe codebase\n- **Commander** — CLI argument parsing\n- **Chalk** — Terminal colors\n- **Conf** — Local configuration storage\n- **@google/generative-ai** — Gemini API SDK\n\n## Project Structure\n\n```\nevalschool-cli/\n├── src/\n│   ├── index.ts              # Entry point\n│   ├── cli.ts                # Commander setup\n│   ├── core/\n│   │   ├── terminal.ts       # TUI utilities\n│   │   ├── config.ts         # Progress & settings\n│   │   └── gemini.ts         # API integration\n│   ├── ui/\n│   │   └── menu.ts           # Interactive menus\n│   └── lessons/\n│       ├── index.ts          # Lesson registry\n│       ├── m1_intro.ts       # Module 1 lessons\n│       ├── m2_semantic.ts    # Module 2 lessons\n│       ├── m3_rag_metrics.ts # Module 3 lessons\n│       └── m4_*.ts           # Module 4 lessons\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run in development\nnpm run dev\n\n# Watch mode\nnpm run watch\n\n# Link globally for testing\nnpm link\n```\n\n## Contributing\n\nContributions welcome! Please read our contributing guidelines before submitting PRs.\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run `npm run build` to verify\n5. Submit a pull request\n\n## Related Resources\n\n- [DeepEval Documentation](https://docs.confident-ai.com/)\n- [Google AI Studio](https://aistudio.google.com/)\n- [LLM Evaluation Best Practices](https://github.com/ankshvayt/evalschool)\n\n## License\n\nMIT © [ankshvayt](https://github.com/ankshvayt)\n\n---\n\n<p align=\"center\">\n  <b>Happy Evaluating! 🚀</b>\n</p>\n","readmeFilename":"README.md"}