# leetcode-py > Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing > ## Agent Instructions > leetcode-py is a Python LeetCode practice environment generator with one CLI: lcpy. It is not a service or platform. > Each problem is a directory under leetcode/ with README.md, solution.py, test_solution.py, helpers.py, and playground.ipynb. lcpy gen creates them from JSON templates bundled with the package. > Examples are backed by tests; copy them verbatim. ## Docs - [leetcode-py](https://leetcode-py.wisl.dev/index.md): Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing. - [Installation](https://leetcode-py.wisl.dev/getting-started/installation.md): Install leetcode-py as a CLI tool, or set up the repository for development. - [Quickstart](https://leetcode-py.wisl.dev/getting-started/quickstart.md): Generate your first problem, run its tests, and solve it. - [Why leetcode-py](https://leetcode-py.wisl.dev/getting-started/why-leetcode-py.md): What a generated practice environment gives you that a bare editor does not. - [Anatomy of a problem](https://leetcode-py.wisl.dev/practice/problem-anatomy.md): What lcpy gen creates, what each file is for, and which one you own. - [Testing](https://leetcode-py.wisl.dev/practice/testing.md): Parametrized suites, logged test output, and covering multiple solutions with one suite. - [Visualizations](https://leetcode-py.wisl.dev/practice/visualizations.md): TreeNode, ListNode, and GraphNode render as diagrams in Jupyter and clean ASCII in the terminal. - [Notebooks](https://leetcode-py.wisl.dev/practice/notebooks.md): Every problem ships a playground in jupytext percent format, plain Python in git and a notebook when you want one. - [lcpy](https://leetcode-py.wisl.dev/cli/lcpy.md): Generate, list, and scrape LeetCode problems from any directory. - [Collections](https://leetcode-py.wisl.dev/cli/collections.md): Curated problem sets as tags, and how they drive bulk generation. - [Catalog](https://leetcode-py.wisl.dev/catalog/index.md): Every problem in every collection, generated from the JSON templates. - [All Problems](https://leetcode-py.wisl.dev/catalog/all.md): All 307 problems with difficulty, collections, and links. - [Grind 75](https://leetcode-py.wisl.dev/catalog/grind-75.md): All 75 Grind 75 problems with links to each problem and solution. - [Grind](https://leetcode-py.wisl.dev/catalog/grind.md): All 169 Grind problems with links to each problem and solution. - [Blind 75](https://leetcode-py.wisl.dev/catalog/blind-75.md): All 75 Blind 75 problems with links to each problem and solution. - [NeetCode 150](https://leetcode-py.wisl.dev/catalog/neetcode-150.md): All 154 NeetCode 150 problems with links to each problem and solution. - [NeetCode 250](https://leetcode-py.wisl.dev/catalog/neetcode-250.md): All 253 NeetCode 250 problems with links to each problem and solution. - [AlgoMaster 75](https://leetcode-py.wisl.dev/catalog/algo-master-75.md): All 75 AlgoMaster 75 problems with links to each problem and solution. - [Problem creation](https://leetcode-py.wisl.dev/contributing/problem-creation.md): Add problems end to end with an AI assistant, from a one-sentence prompt to generated, tested content. - [bakefile](https://leetcode-py.wisl.dev/contributing/bakefile.md): Contributor reference for repo tooling, bake tasks for problem workflow, checks, and docs. - [Troubleshooting](https://leetcode-py.wisl.dev/troubleshooting/index.md): Fixes for the errors you are most likely to hit.