# [ICortex](https://github.com/textcortex/icortex): Giving Programming Superpowers to Non-Programmers Introducing [ICortex](https://github.com/textcortex/icortex), our new [Jupyter](https://jupyter.org/) kernel that allows you to generate Python code from natural language prompts: {%youtube AtVCBNq48oc %} ICortex is a drop-in replacement for the IPython kernel that powers Jupyter Notebooks. It is open source, fully extensible, and can connect to multiple code generation services, including TextCortex API, OpenAI Codex API, locally-running HuggingFace models, and so on. Whether you are ... - a beginner who has just started their Python journey, - an advanced developer with years of experience, - or a non-programmer who would like to let AI do the programming for you, ICortex has something to offer to you. ## Installation Install it with ```bash pip install icortex ``` Configure it once for your current project directory: ```bash icortex init ``` Keep pressing enter to use TextCortex as the default code generation service with the default settings. Provide your API key when asked for it. You can fetch your API key at https://app.textcortex.com/user/dashboard/settings/api-key Then simply launch JupyterLab, ``` jupyter lab ``` and create a new notebook with ICortex. We are giving free credits to our first users—[join our Discord](https://discord.textcortex.com/) so that we can shape ICortex together 💪. ## Usage The main feature of ICortex is the ability to generate Python code from natural language. Try pasting the following into a new cell and then execute it: ``` /Integrate sin(x) from 0 to 10 and print the result ``` Ideally, TextCortex should return code that looks similar to the following: ```python from math import sin from scipy.integrate import quad def f(x): return sin(x) result, error = quad(f, 0, 10) print(result) ``` If the `scipy` package is not installed in your Python environment, it will ask for permission to install it. Then, it will ask for permission to execute it, and if you accept: ``` 1.839071529076452 ``` Visit our [GitHub repo](https://github.com/textcortex/icortex) fore more details on how to use ICortex. ## Learn more In 1984, computer scientist Donald Knuth introduced the [literate programming (LP) paradigm](https://en.wikipedia.org/wiki/Literate_programming). It is a fancy way of saying that code is embedded in a plain language document with explanations, which makes it easier to understand what the code does. 38 years after the conception of LP, the [Jupyter Notebook](https://en.wikipedia.org/wiki/Project_Jupyter) remains the most popular application of the paradigm. Since its introduction, Jupyter Notebook (initially called the IPython Notebook) revolutionized how people do research, collaborate and share their work. A data scientist can record their entire day's work in a Jupyter Notebook without ever having to use a word processor or a spreadsheet. [ICortex](https://github.com/textcortex/icortex) supercharges literate programming to the max: it allows you to program without ever writing any code! There is arguably nothing better for programmer productivity than not having to write any low-level code at all. Think of it as moving one step higher in the abstraction layer: ICortex is to Python as Python is to C—except that it's not yet another programming language, but plain English. With ICortex, having a high level understanding of what a program should do is enough to get the work done. This is called [Natural Language Programming](https://en.wikipedia.org/wiki/Natural-language_programming). It has been possible to write programs by describing them in natural language since a couple of decades. However, with the recent breakthroughs with large language models, users are able to get away with less specific descriptions, paving the way for productivity tools like ICortex. [Join our Discord](https://discord.textcortex.com/) to get help starting out with ICortex. **--- [TextCortex](https://textcortex.com) Team**