> For the complete documentation index, see [llms.txt](https://docs.getkita.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.getkita.org/guides/supported-languages-and-libraries.md).

# Supported languages and libraries

Python version and libraries in Kita and how to request something new.

Kita runs Python 3 through Skulpt, a Python interpreter written in JavaScript rather than CPython, at roughly the Python 3.7 feature level. JavaScript is also supported.&#x20;

Students import from a fixed set of libraries and cannot install their own. This page lists exactly what is available.

### Runtime

Student code runs in the browser through **Skulpt**, not CPython. `sys.version` reports Python 3, at roughly the 3.7 feature level.

{% hint style="warning" %}
**Newer Python syntax may not run.** Because the feature level is around 3.7, code written against a later version can fail even though it is valid Python. If you are moving a lesson from a platform that runs full CPython, test it in Kita before you rely on it. See Migrating from Trinket.
{% endhint %}

### Available libraries

These import and run today.&#x20;

| Library             | What you would use it for                                           |
| ------------------- | ------------------------------------------------------------------- |
| `base64`            | Encoding and decoding                                               |
| `csv`               | Reading and writing CSV files                                       |
| `datetime`          | Supports basic date and time types                                  |
| `hashlib`           | Hashing                                                             |
| `json`              | JSON encoder and decoder                                            |
| `math`              | Provides mathematical functions and constants                       |
| `matplotlib`        | Create static, animated, and interactive visualisations in Python   |
| `numpy`             | Scientific computing with Python                                    |
| `pandas`            | Data analysis and manipulation with Python                          |
| `pgzero` (`pgzrun`) | Pygame Zero, a simplified games framework                           |
| `pygame`            | Games and interactive graphics                                      |
| `random`            | Implements pseudo-random number generators                          |
| `re`                | Regular expression operations                                       |
| `tkinter`           | Used for interface design using Python (request from Kita support). |
| `turtle`            | Turtle graphics                                                     |

This list is not exhaustive. Kita runs on Skulpt rather than CPython, so some modules that are part of Python elsewhere are not available here, and the reverse is not something we can predict from the module name alone. If a lesson depends on a module not listed on this page, test the import directly, or email <support@getkita.com> to check before you build a lesson around it.

### Installing your own packages

Students cannot install packages. There is no `pip` or `micropip` step in a lesson. They import from the set above, and nothing outside it is available.

This is deliberate. A lesson behaves the same for every student in the class, and nothing a student installs can break their workspace mid-lesson.

### Working with files

Students can read, write and upload files in their workspace. This is separate from the library list above. A lesson using `csv` to parse a file requires that the file has been created and is made visible or editable to students - using the student template option.&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fs3WJkejrVIfT6aB5cwIZ%2Fimage.png?alt=media&amp;token=221a63da-ff44-44f3-83f3-f55e6797b679" alt="Screenshot shows the IDE - teacher has selected the actions on the right of a csv file and has selected &#x27;Create student template&#x27; to allow students to edit their own copy of the file.  " width="375"><figcaption></figcaption></figure></div>

### Network access

Student code cannot currently make network requests, such as calling an API. If your lesson depends on this, email <support@getkita.com> before you build it, and we will confirm directly.

### Limits

We have not yet published execution time, memory or file size limits. If your lesson is doing something intensive, such as a long-running loop or a large data file, email <support@getkita.com> and we can tell you whether it will run within Kita's limits.

### Requesting a language or library

If your lesson needs a library or programming language that isn’t currently available, email <support@getkita.com> or fill out the form below:

[New Library / Programming Language Request Form](https://forms.gle/PcAjn4P1gUWzdX3aA?utm_source=chatgpt.com)

{% hint style="info" %}
**Ask early if it matters.** Adding a library is not instant, so get in touch while you are planning a unit rather than the week you teach it.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.getkita.org/guides/supported-languages-and-libraries.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
