# Welcome to the Kita support site

Kita is a browser-based coding platform for Computing education. Set up your class, run lessons, have students complete programming challenges, and return feedback, without leaving one tab.

&#x20;

{% columns %}
{% column width="50%" %}

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FbJ5y0QnOZlJ3Bd4pOJgV%2Fmigrating_from_trinket.png?alt=media&amp;token=5e398df2-935d-4d98-b296-a08a6a73d470" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column width="50%" valign="middle" %}

### Migrating from Trinket

Bring your existing lessons and student work across into Kita.

<a href="/getting-started/migrating-from-trinket" class="button primary medium" data-icon="book-open">Learn More</a>&#x20;
{% endcolumn %}
{% endcolumns %}

&#x20;

## Get help

How to reach the team.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-type="content-ref"></th></tr></thead><tbody><tr><td><h3>Email us</h3></td><td>For questions and problems.</td><td><strong>support@getkita.org</strong></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FL7sDlWQwDVL5jnAvvsUr%2Fcard-cover-email%20(1).png?alt=media&amp;token=b754b143-b78a-4cc9-b24e-850bc4b7276c">card-cover-email (1).png</a></td><td><a href="mailto:support@getkita.org">mailto:support@getkita.org</a></td></tr><tr><td><h3>Call us</h3></td><td><strong>Call:</strong> +44 (0)2046 529991</td><td><strong>Hours</strong>: 9am to 5pm GMT, Monday to Friday</td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FzQXETC5PY98xaHSl6lEB%2Fcard-cover-call%20(2).png?alt=media&amp;token=90a0ed50-93fb-4095-ba75-c822870c0957">card-cover-call (2).png</a></td><td><a href="tel:+442012345678">tel:+442012345678</a></td></tr><tr><td><h3>Book a session</h3></td><td>Webinars and support calls for your school.</td><td><strong>support@getkita.org</strong></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fv4KDhSQIxQWsp10w6rXN%2Fcard-cover-session%20(1).png?alt=media&amp;token=c7271229-bdb6-4277-a529-3bc557a5ffaa">card-cover-session (1).png</a></td><td><a href="mailto:support@getkita.org?subject=Support%20call%20request">mailto:support@getkita.org?subject=Support%20call%20request</a></td></tr></tbody></table>

To get a faster answer, include:

* Your school's Kita instance web address/URL
* What you were trying to do, and what happened
* The course, group, and any relevant information
* A screenshot or video of the error

## Knowledge base

Guides teachers open most often.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4><strong>T</strong>he Kita interface</h4></td><td>Learn your way around the IDE and discover the key tools you’ll use to create and edit your projects.</td><td><a href="/getting-started/the-kita-interface">The Kita interface</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FJ2OsPIKFzyp5bpg0d5cB%2Fassessed_activity.png?alt=media&amp;token=d2c83c4e-5370-4e81-8d7f-5d933f7d2231">assessed_activity.png</a></td></tr><tr><td><h4>Add your students</h4></td><td>Add your students to Kita and enrol them in courses. </td><td><a href="/getting-started/add-your-students-to-kita">Add your students to Kita</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FD7AgQnVxRLX6PTRBlWQA%2Fcreate_class_group.png?alt=media&amp;token=c5ebc005-f499-401e-872e-24803eb3dfeb">create_class_group.png</a></td></tr><tr><td><h4>Create and edit a lesson</h4></td><td>Create a lesson, add content, and make changes before sharing it with your students.</td><td><a href="/set-up-your-lesson/create-and-edit-a-course">Create and edit a course</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FinxiXrWJvznJmoo3LOFH%2Fenrol_students.png?alt=media&amp;token=ec364c20-e612-4c88-8ad0-e5eb991bc1c8">enrol_students.png</a></td></tr></tbody></table>

{% hint style="info" %}
Not found what you need? Email <support@getkita.org> or call +44 (0)2046 529991, Monday to Friday, 9am to 5pm GMT.
{% endhint %}


# Copy of Welcome to the Kita support site

Kita is a browser-based coding platform for Computing education. Set up your class, run lessons, have students complete programming challenges, and return feedback, without leaving one tab.

{% hint style="info" %}
This documentation is a work in progress. We’re actively adding and improving content, so you may see some rough edges along the way. Please email <support@getkita.com> if you have any questions.
{% endhint %}

## Where to start

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4>What is Kita?</h4></td><td>A multiplayer IDE with teaching, marking and AI feedback built in. Python and JS supported and more to come!</td><td><a href="/getting-started/what-is-kita">Getting Started</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F1Ga1pnNVRYC62P2fLO8t%2Fwhat_is_kita.png?alt=media&amp;token=92dcb201-a057-43f7-89c4-93cf1caa9547">what_is_kita.png</a></td></tr><tr><td><h4>Migrating from Trinket</h4></td><td>Bring your existing lessons and student work across into Kita.</td><td><a href="/getting-started/migrating-from-trinket">Migrating from Trinket</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FbJ5y0QnOZlJ3Bd4pOJgV%2Fmigrating_from_trinket.png?alt=media&amp;token=5e398df2-935d-4d98-b296-a08a6a73d470">migrating_from_trinket.png</a></td></tr></tbody></table>

## Before Your Lesson

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4>Set up your class</h4></td><td>Create a course, add your students, and enrol them in your class.</td><td><a href="/set-up-your-class/create-your-class-group">Set up your class</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FD7AgQnVxRLX6PTRBlWQA%2Fcreate_class_group.png?alt=media&amp;token=c5ebc005-f499-401e-872e-24803eb3dfeb">create_class_group.png</a></td></tr><tr><td><h4>Create and edit a lesson</h4></td><td>Create a lesson, add content, and make changes before sharing it with your students.</td><td><a href="/set-up-your-lesson/create-and-edit-a-course">Create and edit a course</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FinxiXrWJvznJmoo3LOFH%2Fenrol_students.png?alt=media&amp;token=ec364c20-e612-4c88-8ad0-e5eb991bc1c8">enrol_students.png</a></td></tr><tr><td><h4><strong>T</strong>he Kita interface</h4></td><td>Learn your way around the IDE and discover the key tools you’ll use to create and edit your projects.</td><td><a href="/getting-started/the-kita-interface">The Kita interface</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FJ2OsPIKFzyp5bpg0d5cB%2Fassessed_activity.png?alt=media&amp;token=d2c83c4e-5370-4e81-8d7f-5d933f7d2231">assessed_activity.png</a></td></tr><tr><td><h4><strong>Build a rubric</strong></h4></td><td>Criteria down the side, points along the top.</td><td><a href="/set-up-your-lesson/how-rubrics-work">How rubrics work</a></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FKNN84dRHmOvRgSoMVygH%2Fbuild_rubric.png?alt=media&amp;token=c81cf553-cf9d-451c-a05d-d4d92901fadd">build_rubric.png</a></td></tr><tr><td><h4><strong>Set your AI Help level</strong></h4></td><td>Choose the modes and cap hints at L1–L4.</td><td></td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FCbqhkpvbb06XWG23RvbH%2Fset_ai_help_level.png?alt=media&amp;token=6b07dc20-35c1-4f93-b760-fb3b81e92a41">set_ai_help_level.png</a></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody></table>

## After Your Lesson

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h4><strong>Mark and give feedback</strong></h4></td><td>Mark against the rubric, adjust the AI feedback, return it to students.</td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FTNnYlFklU0VRlE2Wn5mM%2Fmark_and_give_feedback.png?alt=media&amp;token=f6ec0924-7e0b-49b3-982b-aefc66850e0a">mark_and_give_feedback.png</a></td></tr><tr><td><h4><strong>Unsubmit student work</strong></h4></td><td>Return wrongly submitted work so a student can try again.</td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fk4FdFNhoH2AY8lPJD26R%2Funsubmit_student_work.png?alt=media&amp;token=2cc8a72c-01ea-49f1-827d-2ff7dd3b8d5e">unsubmit_student_work.png</a></td></tr></tbody></table>

## Help and Updates

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h3>Help and support</h3></td><td>Stuck? Contact the team or search the documentation.</td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FmyNIKWsIb8Y2MruSkaQS%2Fcontact_support.png?alt=media&amp;token=7befce23-1dab-4501-a0d6-275dfa465f42">contact_support.png</a></td><td><a href="/legal-and-support/help-and-support">Help and support</a></td></tr><tr><td><h4><strong>Troubleshooting</strong></h4></td><td>Missing submissions, failing I/O tests, students in the wrong group.</td><td><a href="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FvVlFZSppQSsxteOopq6Y%2Ftroubleshooting.png?alt=media&amp;token=dc51a50d-58be-4563-a766-3b660a8f6431">troubleshooting.png</a></td><td></td></tr></tbody></table>


# What is Kita?

Kita is a platform for teaching Computing that lets teachers set programming work, assess it, and return feedback without moving between systems.

It starts by keeping the lesson whole. A lesson in Kita holds the instructions students read, the workspace where they write Python, the tests their programs must pass, the activity they submit to, the rubric it is marked against, and the feedback that comes back. Because all of that is attached to one lesson, the assessment cycle never leaves the platform — which is what makes fast, specific feedback practical for a full class.

### Why this matters

Code editors work well because code is self-contained. Teaching is not.

Teaching is fragmented across systems. The editor holds the code, the VLE holds the task, a shared drive or inbox holds the submissions, and a spreadsheet holds the marks. Each system operates independently, with no shared understanding of how they connect.

Without that connection:

* A tool that only sees the code cannot tell whether the work was submitted, or submitted on time
* A tool that only holds the assignment cannot tell whether the program actually runs
* Feedback ends up separated from the code it refers to, so students read it without the work in front of them
* Every handoff between systems is manual, and the cost is paid per student, per lesson

Giving students a code editor is not enough. Assessment needs the task, the code, the tests and the mark scheme in the same place, tied to the same piece of work. That is what a Kita lesson is.

### The lesson as the unit

When you build a lesson in Kita, everything the assessment cycle needs is attached to it:

* **Instructions** students read as they work, written and edited in the lesson editor
* **A Python workspace** in the browser, with no installation on school machines
* **I/O tests** — inputs and their expected outputs, which run when a student triggers a test run
* **An assessed activity**, if the lesson is one students submit to
* **A rubric**, with criteria, levels and points
* **AI Help settings** that apply to this lesson and no other
* **Every submission**, and the feedback returned against it

Because the lesson holds all of this, the work never has to be exported, renamed or re-uploaded. A student's submission arrives already attached to the task that set it, the tests that check it, and the rubric that scores it.

When a student's program produces an error, Kita shows the standard Python error output rather than a simplified substitute, so students practise reading the errors they will meet outside the classroom.

### How AI supports students safely

Kita's AI support is called **AI Help**. It is off until a teacher turns it on, and it is configured for each lesson rather than for the platform.

This is the design decision that separates Kita from a general-purpose assistant. The teacher decides, lesson by lesson, how much help is available:

* **Off by default.** AI Help does nothing until a teacher enables it on a specific lesson.
* **Each mode is independent.** Explain, Debug, Tutor and Hints can be switched on or off separately, so a lesson can offer error explanations without offering hints.
* **Hints escalate through capped levels.** Support starts at the gentlest nudge and only increases if the student is still stuck. The teacher sets the maximum level the AI may reach.
* **Tutor mode asks rather than answers.** When a student expresses confusion, the Tutor agent responds with structured questions that prompt independent reasoning instead of supplying the solution.
* **Feedback generation is teacher-triggered.** The teacher chooses the style, length and format, and starts the generation. Students do not generate their own feedback.

The four hint levels are what make the cap meaningful:

**Level 1 — Gentle Nudge.** A broad reminder of relevant programming ideas, with no reference to the student's own code. **Level 2 — Conceptual Hint.** A pointer toward a specific concept, or a possible problem in their approach. **Level 3 — Contextual Hint.** A response that refers directly to the student's code and the logic they are implementing. **Level 4 — Guided Next Step.** An explicit instruction about the next change to make.

A lesson capped at L1 or L2 keeps the reasoning with the student. A lesson capped at L4 is closer to guided practice. The choice belongs to the teacher who knows the class.

This is not a chatbot with a content filter attached. The lesson settings and the AI's behaviour are the same system, so the limits are structural rather than advisory.

For the settings themselves, see Update the AI settings for a lesson.

### Teaching and assessment

Alongside the workspace, Kita provides the structure teachers need to run a class and mark its work. Three concepts carry most of it: **courses define what you teach, class groups define who you teach it to, and assessed activities define what gets marked.**

#### Courses and lessons

A course is a container for related lessons. A lesson is a single unit of teaching — instructions, a workspace, and optionally an activity students submit to.

Lessons in the Time2Code format include an **Evaluate** section. An assessed activity usually sits there, after students have seen the expected outputs for the task.

#### Class groups

A class group is how students get into Kita. You create the group, enrol it onto the courses the class should see, and share a join link. Students use the link to add themselves, and the courses you enrolled the group onto appear for them.

Enrolment is managed at the group level, so adding a course for a class is one action rather than one per student.

See Create your class group and enrol students.

#### Assessed activities

An assessed activity is what makes work submittable and markable. Creating one lets you set a due date shown to students, the filenames you expect, how many I/O tests must be run or passed before submission, and the rubric the work is scored against. You can save it as a draft or publish it to students.

Expected filenames are a guide rather than a restriction: work submitted under a different name is still accepted, and a student who submits the wrong file can submit a replacement without waiting for the teacher.

See Create an assessed activity.

### Marking and feedback

Submitted work arrives in **Marking**, already attached to the activity that set it. You open a student's submission, score it against your rubric, and return feedback.

There are three routes into a student's work, and which one you use depends on what you are doing:

* **People** — live teaching, watching the class code during the lesson
* **Student progress** — asynchronous checks between lessons
* **Marking** — working through submissions for an assessed activity

When AI generates feedback, three settings shape it, chosen independently of one another. **Style** is Concise, Supportive or Structured. **Length** is Shorter, Medium or Longer. **Format** is Standard prose or 2 Stars and a Wish. The defaults are Supportive, Medium and Standard.

If a student submits the wrong file, **Unsubmit** returns the work to them. Kita also accepts multiple submissions, so in most cases a student can correct the mistake without teacher intervention.

### Kita for Schools and Open Kita

**Kita for Schools** is the licensed edition. Your school gets its own instance, with class groups, assessed activities, marking and administrative controls, governed by the Kita for Schools terms and privacy policy.

**Open Kita** is a free version for evaluating the platform without a school instance. Try it as a [teacher](https://getkita.io/try-teacher/dashboard) or a [student](https://getkita.io/try/dashboard).

### What Kita is not

* **Not a general-purpose AI chatbot.** AI Help is scoped to a lesson, and the teacher decides which modes are available and how far hints may go.
* **Not a plagiarism detector.** Kita does not judge whether submitted work is a student's own.
* **Not a virtual learning environment.** Kita covers Computing lessons, assessment and feedback. It does not replace your school's VLE or MIS.
* **Not an installation.** There is nothing for students to install. Kita runs in a browser.


# Migrating from Trinket

If your lessons currently run on Trinket, you can bring them into Kita without rebuilding anything.

***

Bringing your Trinket work into Kita takes a few minutes. Once it is there, everything runs in the browser: your code, your lesson link, and what your students see.

{% hint style="success" %}
**Estimated time:** 5 minutes. You only need your existing Trinket project and your lesson files.
{% endhint %}

### Before you begin

You will need:

* Your Trinket project, open so you can copy the code.
* Any other files your program uses.

{% hint style="warning" %}
You can migrate and share a project without a Kita account, but it will only exist in the browser tab you are working in. Do not close the tab until you have created a free teacher account, or your work will be lost.
{% endhint %}

### Step 1: Open a new project

1. Go to <https://getkita.io/try/dashboard>
2. Select **I'm a teacher**.

   <figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fs3UhbQM09C6JfMCk5ctG%2FScreenshot%202026-08-29%20at%2012.04.46%E2%80%AFAM.png?alt=media&amp;token=64e5be06-86cf-4576-9529-7cea93112b66" alt=""><figcaption></figcaption></figure>
3. Choose **Create a project to share**.

The project opens straight away, with the editor on the left and the console on the right.

### **Step 2: Bring your code across**

1. Open your Trinket project in another tab and copy your code.
2. Paste it into the editor on the left. Your changes are saved as you type.

   <figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FTC1rdVB9Q45Oxgbssjn8%2FScreenshot%202026-08-29%20at%2012.16.46%E2%80%AFAM.png?alt=media&amp;token=62656633-d107-4510-b722-f943ca95a62f" alt=""><figcaption></figcaption></figure>
3. If your lesson uses other files, such as a data file the program reads, select the folder icon on the left and upload them to your workspace.
4. &#x20;Run the program and check it works the same way it did in Trinket.

Your work is saved automatically in your browser.

### **Step 3: Share it with your class**

Once your project is ready:​

1. Select **Share** in the project.
2. Copy the link.

   <figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FV56nkljlWzrDDlbihvps%2FScreenshot%202026-08-29%20at%2012.25.18%E2%80%AFAM.png?alt=media&amp;token=77fa1530-3956-41e6-b4dc-cf07c1cbacdf" alt=""><figcaption></figcaption></figure>
3. Send it to your class however you normally would, or post it where they will see it.

Anyone with the link can open your project in their own browser. There is nothing for students to install and no account to create.

### **Step 4: Create a free teacher account**

To save and manage your projects:

1. Sign up with **Join Kita**
2. Move your project into your workspace
3. Reuse it with your other classes next term

Your work will remain accessible throughout the school year.&#x20;

Your lesson now runs in Kita. Students open it from a link in their own browser, with nothing to install and no account to create.

### **Need help?**

If your code still will not run after checking your imports, email <hello@getkita.com> with the code you are moving and the error you are seeing.


# Set up a quick course

A quick course is a lesson you can run straight away. Students join with a code, without accounts and without being added to a class.

Use a quick course for a one-off lesson, a cover lesson, a club, or to try Kita out. Up to 10 students join with a code, no accounts needed, and the join code refreshes every 30 minutes.

#### Step 1: Open the dashboard

1. Go to [getkita.io/try/dashboard](https://getkita.io/try/dashboard).
2. Select **I'm a teacher**.

   <figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fs3UhbQM09C6JfMCk5ctG%2FScreenshot%202026-08-29%20at%2012.04.46%E2%80%AFAM.png?alt=media&amp;token=64e5be06-86cf-4576-9529-7cea93112b66" alt=""><figcaption></figcaption></figure>
3. Choose **Start a quick course**.

#### Step 2: Name your course

Enter a name your students will recognise, such as `Year 8 Python Basics`, then continue.

#### Step 3: Add your lesson

1. Add your lesson code in the editor in the middle. For example:

```python
# Your lesson code goes here
name = input("What is your name? ")
print("Hello, " + name + "!")
```

2. Write the instructions your students will follow in the course content panel on the right, for example: "Change the greeting so it prints your own name."
3. Upload any files your lesson needs from the folder panel on the left.
4. Run the program and check the output in the console.

#### Step 4: Share the join code

1. Open **Your join code**.

   <figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FVV19XZEdFHZAO3ARzQO8%2FScreenshot%202026-08-31%20at%2010.57.05%E2%80%AFAM.png?alt=media&amp;token=1559266a-39e3-4c07-8b9f-d7f84ba24a4e" alt=""><figcaption></figcaption></figure>
2. Share the code with your class.

Codes are not case-sensitive, so students can type them in any capitalisation. Each code refreshes every 30 minutes, so share it at the start of the lesson rather than in advance.

#### Step 5: Keep your course

To save your course and reuse it with other classes:

1. Select **Join Kita** and create your free teacher account.
2. Your course moves into your workspace, along with any files you uploaded.
3. Rename and organise it so you can use it again next term.

A quick course is capped at 10 students who join anonymously. To add students properly, keep their work, and mark it, set up a [full course instead.](/getting-started/add-your-students-to-kita)

#### Need help?

If your students cannot join, or the course is not working as you expect, email <hello@getkita.com> with the name of your quick course and what they are seeing.


# Add your students to Kita

Get your students onto Kita and ready to start coding.

***

Kita is designed to get your students coding as quickly as possible. We have based this guide on typical teaching scenarios.&#x20;

#### Before you begin

* Sign into Kita using your email and password or magic link.&#x20;
* Your account has teacher permissions (**Tiers:** Teacher or Multiple Teachers).

#### Add your students: scenarios

Use the tabs below, based on your scenario.&#x20;

* "I am live teaching and I want students to **join my course now.**"&#x20;
* "I want to add students **to the school (individually & spreadsheet).**"&#x20;
* "I want to to join Kita and enrol on courses **before a class session."**&#x20;

{% tabs %}
{% tab title="Join my course now" %}

> "I am live teaching and I want students to **join my course now.**"&#x20;

All courses have a **join code** which refreshes every 30 minutes.&#x20;

This can be used to:&#x20;

* Enable students to join Kita and go straight into the course&#x20;
* Get students who have accounts logged in and into the course&#x20;

### Use the Join Code&#x20;

{% stepper %}
{% step %}
Go to **Courses** and click on the **Join Code** for the course card \
\
![Shows the course card and a cursor pointing to the Join Code.](https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FKEqdhBuAqpZ10ga3ymjD%2Fimage.png?alt=media\&token=c08100ca-5fae-4585-b7c8-f36adbad8a52)
{% endstep %}

{% step %}
Share the join code onscreen in the room. Click on the code to copy it. \
\
![Shows the teacher copying the Join code from share view for displaying in the classroom.](https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FmTInnt7soNK2GFi2OaPC%2Fimage.png?alt=media\&token=293f8504-2f41-4a5e-9cbe-af1db504385e)
{% endstep %}

{% step %}
Ask your students to go: [https://getkita.io/*school*/join](https://getkita.io/login/join) \
Replace *school* with your school name–find this in your URL. <br>

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FNby5TC3QG86Www53P1KR%2Fimage.png?alt=media&amp;token=af2ba7bf-e897-4727-a60d-475cabcbfe6f" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Students enter the code or if using the link the link is automatically entered. \
\
![Shows the code which has been entered and I'm new being selected by the student.](https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FzUzw7kxGQ6MOInSGWZ0k%2Fimage.png?alt=media\&token=b4bd6551-4cde-44c1-a1d4-5f79a74bd687)
{% endstep %}

{% step %}

Select the option that applies:&#x20;

1. **I'm new:** new students are asked for their First name and Last name and then given a temporary password to save. They are asked to reset their password at the end of the classroom session.&#x20;
2. **I have a Kita login:** allows existing students to login and go directly into the course.&#x20;
   {% endstep %}
   {% endstepper %}
   {% endtab %}

{% tab title="Add students to the school" %}

> "I want to add students **to the school (individually & spreadsheet).**"&#x20;

### Add an individual student to the school

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FxXr0Pbxap2c4J1roCgx4%2Fimage.png?alt=media&amp;token=5c99cae3-dc8a-4b35-b6ba-b011087fb26f" alt="Screenshot shows the Students page with the option to Add Individual Student selected"><figcaption></figcaption></figure>

{% stepper %}
{% step %}
From the dashboard, click **Students** in the main navigation.
{% endstep %}

{% step %}
Select **Add Student.**&#x20;
{% endstep %}

{% step %}
Select **Add Individual Student.**
{% endstep %}

{% step %}
Complete the form for the student and set whether the student is over 13. If the student is under 13 confirm parental permission. &#x20;
{% endstep %}

{% step %}
Select **Save**.
{% endstep %}
{% endstepper %}

### Add multiple students using a spreadsheet&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FAyPgBk0PpjmVWtGWEF9Y%2Fimage.png?alt=media&amp;token=9a9c4dd3-deef-48ed-9d2e-90ff6fe8379e" alt="On the students page, add student then upload student list has been selected. " width="375"><figcaption></figcaption></figure></div>

{% stepper %}
{% step %}
From **Students**, select **Upload Student List**.&#x20;
{% endstep %}

{% step %}
Download the template csv file for use with Microsoft Excel or Google Sheets.&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FxIz7VpxkBiMIeKeYnI8E%2Fimage.png?alt=media&amp;token=41ded3cf-45d0-4705-a2c5-a7e783d177af" alt="In the upload area for adding a list, Download template CSV is being selected." width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Prepare and upload a CSV file with one row per student, using these column headings.

```csv
First name,Last name,Temporary password
Alex,Carter,
Jordan,Lee, 
```

{% hint style="info" %}
You can define a temporary password, or leave it blank for Kita to assign temporary passwords.&#x20;
{% endhint %}
{% endstep %}

{% step %}
Upload the completed CSV file.&#x20;

If you encounter errors check the row identified in the status (as indicated). Lookout for non-character spaces after a names or column titles.&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FxEKmhJsJMZcz55kUsnSl%2Fimage.png?alt=media&amp;token=6ac00ae7-ab64-48b0-8444-b11fecd89905" alt="In the upload area for the list an arrow points to the status showing valid rows in the sheet." width="188"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Select **Finish.**&#x20;
{% endstep %}

{% step %}

### Download student credentials

Select the students using the checkboxes.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FeEiV1L4k3gnqXFPfJ4Ix%2Fimage.png?alt=media&amp;token=5dec0d2d-6df4-49fe-ad26-4126d3f71c04" alt="The Students page is shown and the students have been selected. The option to Download Credentials is shown at the bottom of the screen."><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select **Download Credentials**.&#x20;
{% endstep %}

{% step %}
Select the option to **Include passwords.** If you did not define your own passwords.&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F3YBuTIoDm31xD2k3V8RG%2Fimage.png?alt=media&amp;token=643e7645-5e3c-4b47-b640-8da92fd60f73" alt="The option to include passwords is selected and download is shown as step 9" width="375"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
Select **Download.**&#x20;
{% endstep %}

{% step %}
Use the downloaded spreadsheet to tell your students their usernames and temporary passwords in class. \
\
Students will be asked to reset their passwords when they login for the first time.&#x20;

{% hint style="info" %}
If students forget their password, Teachers can reset at any time from the **Students** page.
{% endhint %}
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Setup before a class session" %}

> "I want to to join Kita and enrol on courses **before a class session.**"&#x20;

Use this method if you would like to set up your class in advance.&#x20;

This is especially helpful when you want students to **join Kita and enrol on multiple courses** in one step.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FTKr2kCbepkgmSQQM40pA%2Fimage.png?alt=media&amp;token=5c2db09c-c733-44a6-a327-f3a6afcc0104" alt="Shows annotated screenshot of the Students area with Manage Groups &#x26; Sub Groups tab selected. "><figcaption></figcaption></figure>

{% stepper %}
{% step %}
From the dashboard, click **Students** in the main navigation.&#x20;
{% endstep %}

{% step %}
On **Students**, open the **Groups & Sub Groups** tab.&#x20;
{% endstep %}

{% step %}
Click **Create**, then select **Create Group**.&#x20;
{% endstep %}

{% step %}
Name the group and save. Students see this name when they join, so include the year and the subject.&#x20;

{% hint style="info" %}
You can also add fellow co-teachers in this step.&#x20;
{% endhint %}

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FPSccy98obw7P9hwbuwRP%2Fimage.png?alt=media&amp;token=4af59dcb-23f9-4127-bcb0-c1191268f4c6" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
To setup group course enrolments before a class session.&#x20;

a. Select actions&#x20;

b. Manage enrolments&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fp8Yxgcnh0L6uBgiwGz88%2Fimage.png?alt=media&amp;token=fb35537f-e205-4ec6-834d-5f4129fc829e" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Share your group **Join Code**&#x20;

Send your group **join code** via email or school messaging services (e.g., Teams, VLE/LMS). Students can also use the code at: <https://getkita.io/login/join>&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FBLZTZl5ek0S1dFPaaOe7%2Fimage.png?alt=media&amp;token=a703bcd2-3663-4526-b7d6-87fdf5e7981b" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Group join codes expire after 1 week. You can turn off link expiry temporarily if needed. In the **Actions** menu for the group&#x20;
{% endhint %}

![](https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FYo3exL1lt4e9Se3hkZkz%2Fimage.png?alt=media\&token=9f5d06a7-a271-478f-b126-a2ddfbe064d2)

The expiry date and time are shown underneath the code.

![](https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FxoKYlA4vYSiiWbGJcLAI%2Fimage.png?alt=media\&token=60772efd-60b0-4bee-be43-4788269e324d)
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

#### Need help?

Email <hello@getkita.com> with your group name or book a support call for help with setup.&#x20;


# The Kita interface

This page describes what each area is for. For the tasks you carry out in them, follow the links in See Also.

Kita has three main surfaces. The dashboard is where you land after signing in. A course page holds the lessons you teach and the students enrolled on them. The lesson view is the coding workspace, with the instructions, the code and the output side by side.

#### The main navigation

The sidebar runs down the left of every page. Your instance name sits at the top, your profile at the bottom, and the panel collapses from the control at its top right to widen the working area.

| Item          | What it holds                                          |
| ------------- | ------------------------------------------------------ |
| **Dashboard** | Where you land after signing in                        |
| **Courses**   | Every course on your instance, including quick courses |
| **Projects**  | Standalone code files you share with a link            |
| **Students**  | Student records, groups and enrolments                 |
| **Marking**   | Submitted work waiting to be marked                    |

A dot next to **Marking** means there is work waiting for you.

The badge beside the Kita logo shows your role, so a teacher account shows **TEACHER**. This is separate from Teacher Mode, described below.

#### The Courses page

**Courses** lists everything on your instance, split into **Quick Courses** and **Courses**. **All courses** shows everything, and **Available** narrows it to what you can open. The tags across the top filter by type: **STANDARD**, **QUICK** and **CYBER**.

**Create** makes a new course. **Kita Library** opens the shared catalogue, and **Search courses** finds one by name.

Each card shows the course type, its level, and how many lessons it holds. The lock icon shows whether the course is open or closed to students, and the kebab menu holds the actions for that course.

#### A course page

A course page opens on two tabs, **Sections** and **People**.

**Sections** holds the course content: your lessons, in the order students move through them. Drag the handle at the left of a row to reorder them, and use the **All**, **Easy**, **Intermediate** and **Hard** filters to narrow the list. Each row shows the lesson name, its description, and its points value.

**People** is where collaboration groups are prepared before a lesson.

Across the top of the page:

* **Enrol Student** adds a student to this course directly.
* **Course settings** opens the course's own options.
* **Student Progress** shows how the class is moving through the lessons.

The pencil beside the course name renames it.

#### The lesson view

The lesson view is where code is written and run. It has three columns, with a narrow icon rail on the far left.

**The left panel**

**Current Lesson** is a dropdown naming the lesson you are in, so you can move between lessons without leaving the view.

**Files** lists everything in the workspace. Each file has an eye icon to show or hide it from students, and a kebab menu for its actions. Files can be dragged to reorder.

**Add new** creates a file, **Manage Files** opens the file options, and the download icon beside the heading downloads the workspace.

**The code editor**

Open files appear as tabs across the top of the centre column, with line numbers down the left.

A toolbar sits above the code, holding **Run** at its right-hand end. Run executes the current program and sends its output to **Console**.

**Ask AI for help** sits below the editor, with **Open AI Help** to open it. What the AI is allowed to give a student is set per lesson.

**The right panel**

Four tabs sit across the top:

* **Instructions**, what the student is asked to do
* **Glossary**, the terms used in the lesson
* **Tests**, the checks a submission is run against
* **Console**, the program output

The pencil at the top right edits the panel's content.

#### Marking

**Marking** opens with a count of how much work is waiting and across how many courses, then a **Weekly overview** showing what has been submitted and how much of it arrived on time.

Below that, each course with work waiting appears as a card with the number to mark and a **Start Marking** button. Filters narrow the list by course or lesson, by status, and by the dates work was created.

Opening a lesson shows **Submitted / Enrolled**, **Needs Marking** and **Average Score**, then the submission list: each student, the lesson they are on, their score, whether they submitted on time, and their test results. **Release all marks** returns marks to the whole class at once.

#### Students

**Students** has three tabs.

* **Manage Students** is the central directory of everyone on your instance, with their username, groups, last login and temporary password. **Add Student** adds people, and **Student Credentials** downloads sign-in details.
* **Groups & Sub Groups** is where your teaching classes live.
* **Enrolments** shows which groups are on which courses.

#### Teacher Mode

**Teacher Mode** appears at the top right of course and lesson pages, not on the dashboard.


# Create your class group

Create a class group in Kita to organise a set of students, so you can give them access to courses and keep their work together.

A class group represents one of your teaching classes inside Kita — Year 10 Computing, for example. Creating the group is the first thing you do in a new instance, because everything else attaches to it: the courses your students can open, the work they submit, and the marks you return.

This guide covers creating the group and adding people to it, which takes a few minutes. Giving the group access to courses comes next, in Enrol your class and share the join link.

{% hint style="info" %}
**One group, one class.** Create a separate group for each class you teach. Groups are how Kita keeps one class's courses and submitted work apart from another's.
{% endhint %}

### Prerequisites

Before you create a group, make sure:

* You can sign in to your school's Kita instance. Each school has its own sign-in link — ask your Kita lead if you do not have it.
* Your account has **teacher permissions**.&#x20;
* If you are importing a class, you have a CSV file of your students ready, in the [format shown below](#add-students-and-co-teachers).

{% hint style="info" %}
**There are two ways to get students in.** Add them yourself using **Manage Group Members**, or share a join link and let them add themselves. Adding them yourself gives you a full class list before the first lesson. The join link saves you preparing one. You can use both.
{% endhint %}

### Watch the walkthrough

Follow along in the interactive demo, or read the written steps below.

{% @arcade/embed flowId="QXy7bXxjQ5favuOzW40R" url="<https://app.arcade.software/share/QXy7bXxjQ5favuOzW40R>" %}

### Create the group

{% stepper %}
{% step %}
After signing in to Kita, click **Students** in the main navigation. This is where your groups and the students inside them live.
{% endstep %}

{% step %}
Click **Groups & Sub Groups** in the top tabs. You see a list of every group on your instance — on a new instance this list is empty, which is expected.
{% endstep %}

{% step %}
Click **Create**, then select **Create Group**. Choose **Create Sub Group** instead if you are dividing an existing class into smaller sets rather than setting up a new class.
{% endstep %}

{% step %}
Enter a name for the group, then save. Choose a name your students will recognise, because they see it when they join — including the year and the subject usually works.

{% tabs %}
{% tab title="Good names" %}

```
Year 10 Computing
10B Computer Science
Y12 A-Level CS — Set 1
```

Each of these tells a student immediately whether it is their class.
{% endtab %}

{% tab title="Names to avoid" %}

```
Class 1
Test
Computing
```

Generic names become a problem as soon as you teach a second class, and students cannot tell which group is theirs.
{% endtab %}
{% endtabs %}
{% endstep %}
{% endstepper %}

### Add students and co-teachers

{% stepper %}
{% step %}
Once you have created your group, click the edit icon on it and select Manage Members.
{% endstep %}

{% step %}
On the Add Students tab, search by name or ID to add students one at a time, or choose Or import via CSV to add a whole class at once.

*Example Format:*

<pre class="language-csv"><code class="lang-csv"><a data-footnote-ref href="#user-content-fn-1">First</a> name,Last name,Temporary password
Alex,Carter,Kita2026.start
Jordan,Lee,Kita2026.start
</code></pre>

{% hint style="info" %}
Temporary passwords must be at least 10 characters. Letters, numbers, full stops,\
underscores, hyphens and spaces are allowed
{% endhint %}
{% endstep %}

{% step %}
Switch to the Teachers tab to add colleagues who teach this class alongside you. Current Members shows everyone in the group.
{% endstep %}
{% endstepper %}

### Check that it worked

Your new group appears in the list under **Students > Groups & Sub Groups**, and anyone you added shows on the **Current Members** tab.

The group has no courses attached yet, so there is nothing for students to open even once they are members. That is enrolment, and it is handled in the next guide. An empty course list at this stage is not a sign that something has gone wrong.

### Troubleshooting

{% tabs %}
{% tab title="I cannot see Students" %}
The **Students** area only appears for accounts with teacher permissions. If you are signed in but cannot see it, your account may have been set up as a student, or on the wrong instance.

Check that the address you signed in at matches your school's Kita instance, then contact your Kita lead.
{% endtab %}

{% tab title="Create is unavailable" %}
If the **Create** button does not respond, you are most likely signed in with an account that can view groups but not manage them. Ask your Kita lead to confirm your permissions.
{% endtab %}

{% tab title="I cannot find a student by name" %}
Search matches students who already exist on your school's instance. A student who has never signed in may not be there yet.

Either import them via CSV, or share the join link and let them add themselves at the start of the lesson.
{% endtab %}

{% tab title="The CSV import fails" %}
Check that your file matches the column headings Kita expects and that it is saved as `.csv` rather than a spreadsheet format such as `.xlsx`.

If it still fails, add a couple of students by search to confirm the group itself is working, then contact your Kita lead about the file.
{% endtab %}

{% tab title="The name is already taken" %}
Group names need to be distinguishable to you and your students, so add something that separates them — a set number, a teacher initial, or the academic year, such as `Y10 Computing — 2026`.
{% endtab %}
{% endtabs %}

### Need help?

If none of the above resolves it, email <hello@getkita.com> with the name of your school and the address of your Kita instance.

[^1]:


# Enrol students on courses

Enrolment decides what students can see.

### Enrol students on courses (individual & spreadsheet)&#x20;

{% stepper %}
{% step %}

### Individual students

In **Students**, on the right of a student's row select **Manage enrolments**.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FAIl5txFVX6gdRAofJmNO%2Fimage.png?alt=media&amp;token=7809146a-335d-4542-8e32-b323a1f9926e" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Search for a course or add a course from the list with **+**&#x20;
{% endstep %}

{% step %}
Select **Save.**&#x20;

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FxgAyozHVZyS6ci7A5kRF%2Fimage.png?alt=media&amp;token=87e8d04a-152f-4aaf-bcf7-b188fbbf123b" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

{% stepper %}
{% step %}

### Multiple students

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F2iIF6qHIPhLDoqH6lx7f%2Fimage.png?alt=media&amp;token=b7c940a0-aa9e-44a8-ba5a-60e08588f05d" alt=""><figcaption></figcaption></figure>

From the dashboard, click **Students** in the main navigation.
{% endstep %}

{% step %}
Select the **Enrolments** tab and go to the row for the course, in my example **Time2Code: Python Level 2**.&#x20;
{% endstep %}

{% step %}
Select **Manage** - this allow you to see students area are enrolled already.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FZ2CFITYqi4dfw8Z4eJUj%2Fimage.png?alt=media&amp;token=4a6c6582-e9f9-4abb-92a3-6a86ddcf5c75" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select **Enrol.**&#x20;
{% endstep %}

{% step %}
Select multiple students from the list.
{% endstep %}

{% step %}
Select **Save.**

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FDZEC6nq6r56llddgWhbZ%2Fimage.png?alt=media&amp;token=5059bb27-5c5c-4f94-b960-e42e6ce680c4" alt="" width="375"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

### Enrol a 'Group' of students on courses&#x20;

{% stepper %}
{% step %}
In **Students**, click **Groups & Sub Groups** and select the group you want to enrol.
{% endstep %}

{% step %}
Click the edit icon and select **Manage enrolments**. The **Enrol on courses** panel opens, headed with the group you are editing, for example, *Edit enrolment for "10B Computer Science"*.
{% endstep %}

{% step %}
Find the courses you need. Type into **Search courses** if you know the name, or browse **Course folders** to see what is available, each folder shows how many courses it holds, such as *Time2Code Bundle · 10 courses*.
{% endstep %}

{% step %}
Select every course this class should be able to open. You can select more than one, so a class working through several units is set up in a single pass.
{% endstep %}

{% step %}
Click **Confirm Enrolment**. The courses are attached to the group and appear for every student in it.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
You can also enrol a group on courses and then students can join the group and enrol at the same time. The steps are outlined in the [Add your students to Kita](/getting-started/add-your-students-to-kita#setup-before-a-class-session) guide.
{% endhint %}

#### Use the walkthrough

Follow along in the interactive demo, or read the written steps below.

{% @arcade/embed flowId="QXy7bXxjQ5favuOzW40R" url="<https://app.arcade.software/share/QXy7bXxjQ5favuOzW40R>" %}

### Check that it worked&#x20;

Go to the course and and select **Student progress** from the overview page.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Faoml7JqM1M1LtSvyJYQP%2Fimage.png?alt=media&amp;token=c1be8ea6-6378-40bc-a93c-96203cf092b7" alt=""><figcaption></figcaption></figure>

This will always show the students currently enrolled in the course as a table. You export this table to spreadsheet as needed.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2Fu1E3isvvvJGYGfWlDsYC%2Fimage.png?alt=media&amp;token=8bab76f4-c405-4c24-8b9d-ff2ea20abee3" alt=""><figcaption></figcaption></figure>

### Need help?

If students still cannot access a course after both checks above, email <hello@getkita.com> with your group name and the course you expected them to see.


# Create and edit a course

This guide covers editing an existing course and its lessons.

This guide builds one short course with one lesson, end-to-end. Students run a program, then change it so it prints a second line.

#### Step 1: Create the course

1. From the dashboard, select **Create Course**.
2. Enter a **Course name** and a **Description**. Students see both, for example `Year 8 Python Basics`.
3. Set the **Year**. This sets the reading level of AI marking feedback.
4. Save, then open your new course from the dashboard.

#### Step 2: Create the lesson

1. In **Course content**, add a lesson and name it, for example `Your first program`.
2. Open it.

The lesson opens the way your students see it: files on the left, the code editor in the middle, and the instructions on the right.

#### Step 3: Write the starting code

In the code editor in the middle, open `main.py` and give your students something to run:

```python
print("Hello World")
```

Select **Run**. The output appears in the **Console** tab on the right.

#### Step 4: Write the instructions

Select the edit icon at the top right of the instructions panel. Edit Mode shows the whole lesson in one scroll, and your students move through it one chapter at a time with **Next**.

Write the explanation and the task:

> In Python, `print()` puts text on the screen. Open `main.py` and select **Run**.
>
> Now change `main.py` so it also outputs `This is my first program.` on the line below.

Select **Save**.

You can also add blocks that change how students work through the lesson:

* **Accordion** for command summaries a student dips into, such as what `print()` does.
* **Reveal answer** for questions students should attempt before seeing the answer.
* **Image** and **Video** for flowcharts and short explanations.

#### Step 5: Choose what your class sees, then check it

1. In the file list, select the **eye button** next to `main.py` to show it. New files start hidden, so nothing reaches your students until you show it.
2. Open the file's actions menu and select **Create student template**, so each student gets their own copy to work in.
3. Switch to **Student Mode** at the top right and run the lesson the way a student would.

You should see `main.py` and no sign of any answer file you kept alongside it.

That is the whole loop. Write the lesson, choose what your class can see, then check it as a student.

#### Need help?

If a file is showing to students when it should not be, email <hello@getkita.com> with the course and lesson name.


# Update the AI settings

AI Help is Kita's support for students while they are coding. It is off until a teacher turns it on at the course level, and can be configured by lesson, by group and even by student.

### Decide what to allow

Five kinds of support can be switched on or off independently.

| Setting        | What students get                                                                                                                                       |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Explain**    | A direct, accessible explanation of what a line or section of code does, without having to phrase a question in the AI chat.                            |
| **Debug**      | When a program produces a runtime error, Kita shows the standard Python error output and offers an optional AI debugging button.                        |
| **I/O Tests**  | Tests you define in the lesson editor, matching inputs to expected outputs, which run when a student triggers a test run.                               |
| **Tutor Mode** | Socratic questioning. When a student asks an open-ended question or expresses confusion, the AI responds with structured questions rather than answers. |
| **Hints**      | Graduated help when a student asks for a hint or is identified as stuck, starting with the gentlest nudge and escalating only if they remain stuck.     |

If Hints are on, you also set how far they may escalate.

| Level | Name             | What the student receives                                                                    |
| ----- | ---------------- | -------------------------------------------------------------------------------------------- |
| L1    | Gentle Nudge     | A broad reminder of relevant programming ideas, with no reference to the student's own code. |
| L2    | Conceptual Hint  | A pointer toward a specific concept, or a potential issue in their overall approach.         |
| L3    | Contextual Hint  | A response that refers directly to the student's code and the logic they are implementing.   |
| L4    | Guided Next Step | An explicit instruction about what the next action or change should be.                      |

Capping at **L1 or L2** keeps the reasoning with the student, which suits assessed work. **L3 or L4** is closer to guided practice, which suits a first lesson on a new concept.

### Update the settings

{% stepper %}
{% step %}
Click **Courses** in the main navigation, then open the course containing the lesson.
{% endstep %}

{% step %}
Click the click the settings **cog** top right of the course.
{% endstep %}

{% step %}
Turn on the **AI Help** toggle. Nothing below it takes effect until this is on.
{% endstep %}

{% step %}
Turn off any of the five settings you do not want for this lesson. Each works independently, so a lesson can offer error explanations without offering hints.
{% endstep %}

{% step %}
If Hints are on, use the dropdown to set the maximum hint level.
{% endstep %}

{% step %}
Click **Save**.
{% endstep %}
{% endstepper %}

### Check that it worked

Go into the course and give it try. You will see the chatbot along the bottom of the insructions area. You can try **Explain** by highlighting code in the code editor.&#x20;

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FNNx3llm9BhMRlts3ju9n%2Fimage.png?alt=media&amp;token=39e724cc-356d-4cf7-981d-fe2cb0985009" alt=""><figcaption></figcaption></figure>

### Need help?

If AI Help is on but students still cannot use it, email <hello@getkita.com> with the course, the lesson, and the class group.


# Create a code submission

An assessed activity turns part of a lesson into something students formally submit. Until a lesson has one, students can write and run code but there is nothing to hand in and nothing to mark.

Creating one sets the due date, the files you expect, and whether tests must run before students can submit. It takes about five minutes.

### Prerequisites

Before you start, make sure:

* You have a course with at least one lesson in it.
* Your class group is enrolled on that course. See Enrol your class and share the group code.
* You know your success criteria or learning objectives for the task.
* If you are scoring the work, your criteria, levels and total mark are decided. See Build a rubric.

### Add the activity to a lesson

{% stepper %}
{% step %}
Open the course you want, then open the lesson the activity belongs to.
{% endstep %}

{% step %}
Click **Edit instructions** to open the lesson editor.
{% endstep %}

{% step %}
Scroll to where the activity should appear and place your cursor there. In a Time2Code lesson the **Evaluate** section works well, just after the expected outputs, because students have already seen what their program should do.
{% endstep %}

{% step %}
Click **+ Add assessment** in the tool palette, then select **Assessed Activity**.
{% endstep %}

{% step %}
Check the title and description. Both are taken from the lesson and often need no change. Add your success criteria or learning objectives here, and use the text editing tools to format them.
{% endstep %}
{% endstepper %}

### Set a due date

{% stepper %}
{% step %}
Turn on **Show Due Date to Students**, then click the date field and choose a date from the calendar.
{% endstep %}

{% step %}
Set the time, and check whether it reads AM or PM before moving on. Students see the due date written out in full — *Friday, 19 June 2026, 2:00 pm* — so a time set to AM instead of PM is visible to the whole class.
{% endstep %}
{% endstepper %}

### Set submission requirements

{% stepper %}
{% step %}
Under **Expected filenames**, enter the files you expect students to submit. `main.py` is typical for Time2Code, and you can list more than one.
{% endstep %}

{% step %}
Set your input/output test requirements: how many tests there are, and whether students must **run** them or **pass** them before they can submit. Requiring tests to run, rather than pass, lets students submit work in progress while still checking it against your expected output.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Filenames are a guide, not a gate.** Work submitted under a different filename is still accepted. If a student submits the wrong file they can submit a replacement themselves, and you can unsubmit to return one to them.
{% endhint %}

### Add a rubric

Rubrics are optional, and can be added later. An activity without one still accepts submissions and takes written feedback.

If you are putting a score on this activity, set it up now:

### Publish and check

{% stepper %}
{% step %}
Select **Publish** to make the activity available to students now, or **Save as draft** to finish it later.
{% endstep %}

{% step %}
Click **Save** to save your changes in the lesson editor. This is separate from publishing the activity — the activity is not live until both are done.
{% endstep %}

{% step %}
Go to the **Evaluate** section of the lesson to see the activity as your students will see it. Click **Edit assessment** at any time to return to the settings.
{% endstep %}
{% endstepper %}

### Check that it worked

Open the lesson and look at the **Instructions** pane, which is where students meet the activity. A published activity shows:

* Its title, marked **Published** with a **Teacher assessed** badge
* Your description and success criteria
* **Activity due date** in full — for example, *Friday, 19 June 2026, 2:00 pm*
* **Maximum points**, if you set a score

If it shows **Draft** instead of **Published**, students cannot see it yet.

Once students submit, their work arrives in **Marking**, already attached to this activity and ready to score.

### Troubleshooting

{% tabs %}
{% tab title="I cannot find + Add assessment" %}
The tool palette only appears in the lesson editor. Open the lesson and click **Edit instructions** first.
{% endtab %}

{% tab title="My students cannot see the activity" %}
Open the lesson and check the badge on the activity. If it reads **Draft** rather than **Published**, students cannot see it.

If it reads **Published** and they still cannot, check that you clicked **Save** in the lesson editor after publishing. Both are needed.
{% endtab %}

{% tab title="The due date is twelve hours out" %}
Check AM against PM on the due time. A date set correctly with the wrong half of the day is the most common cause.
{% endtab %}

{% tab title="A student submitted the wrong file" %}
The submission is still accepted — expected filenames do not block it. Students can submit a replacement themselves, or you can return the work. See Unsubmit a student's work.
{% endtab %}
{% endtabs %}

### Need help?

If the activity is published and saved but still does not appear for students, email <hello@getkita.com> with the course, the lesson, and the class group you expected to see it.


# How rubrics work

A rubric is the marking grid Kita shows you while you mark an assessed activity. It starts by splitting what you are judging into two axes: your criteria run down the side, and your levels run across

### Why this matters

Without a rubric, a mark comes from memory: what "good" meant for this criterion, this week, for this student, held in a way that is meant to also match what "good" meant for every other student in the class. That is hard to keep consistent and harder to defend later.

A rubric fixes the wording once, before marking starts, so:

* You are choosing from language you already wrote, not inventing a judgement on the spot.
* Two students land on the same level if their work matches the same descriptor, whoever marks them.
* A mark can be justified afterwards by pointing at the box, not by recalling the reasoning.

### Criteria, levels and cells

A rubric has up to 5 criteria and up to 10 levels. Each criterion has a title and a longer description of what it covers, and each level has a name, such as Incomplete through Mastery. Every cell where a criterion meets a level holds the wording for that combination, written by the teacher, generated by Kita, or a mix of both.

Points are set per cell, not per level, so criteria do not have to carry equal weight. A criterion you care about more can be worth 10 points at its top level while another is worth 5, and the scale can display weakest-first or strongest-first without changing what any mark means.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F1ORbKfwuqCEiM7Lo2UxW%2Fkita-rubric-anatomy.png?alt=media&amp;token=652c5d4d-6134-4ccb-836a-88bb477f6564" alt=""><figcaption></figcaption></figure>

### Qualitative and quantitative rubrics

A rubric is either qualitative or quantitative, and the choice only affects whether marks are involved, never the wording you write.

**Qualitative rubrics** carry no points. A student sees which level they reached on each criterion, and no score is calculated.

**Quantitative rubrics** carry points in every cell. The levels you pick add up to the student's score, and that score is what gets written to the gradebook.

For a quantitative rubric, the points in the best cell of each row must add up to exactly the activity's maximum points. Kita checks the total and blocks saving until it matches, so a class can never be marked against a grid whose maximum does not exist.

### How reuse works safely

Saved rubrics sit in your own searchable list and can be attached to any assessed activity. Attaching one does not link to it: Kita copies it onto the activity. Editing the criteria, levels or wording on one activity never silently changes any other activity using the same rubric.

Kita still remembers where each copy came from. If the activity's copy has been edited since it was attached, Kita flags that it has drifted from the saved original under that name, so you know before you rely on it. Any rubric, saved or attached, can be exported as a spreadsheet to share, print or edit in bulk.

You can also build a rubric outside Kita: download the blank CSV template, fill it in, and upload it back rather than typing directly into the grid.

### How AI-assisted marking works safely

On the marking page, you open a student's submission with the rubric beside it and click one box per row. The running total and percentage update as you go, and saving writes that percentage to the student's grade.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FVTeP3DQA2I9KPN8ACN9d%2Fkita-rubric-marking.png?alt=media&amp;token=bd9475ec-a3e9-4234-a6c3-7a5344810e3f" alt=""><figcaption></figcaption></figure>

**Mark with AI** suggests a level for each criterion. It reads the activity's description and objectives, the rubric's wording and points, the student's submitted work, and the results of any automatic tests, then proposes a box per row. A suggestion is marked with a sparkle and is only ever a suggestion: nothing is saved until you confirm it. Your own selections are marked with a tick and always take precedence over an AI suggestion. You can run it across a whole class at once, and if a student's submission has not changed since the last run, Kita reuses the earlier suggestion rather than generating a new one.

Marks are only ever released to a student once you have confirmed them, so the version a student sees is the one you decided on, not a live feed from the AI.

### What a student sees

Once marks are released, a student sees the same grid, read-only, with their level highlighted on each criterion and their score if the rubric carries points. They see your decisions and the wording behind them, never the AI's suggestions, and there is nothing on the page they can change.

### Quietly happening in the background

An activity keeps its own frozen copy of the attached rubric, so a student is always marked against the version that was in place when marking happened, even if the saved original is edited afterwards.

Nothing you explore in the rubric builder is lost by accident. Previewing a saved rubric sets your own unsaved work aside rather than overwriting it, and closing the builder with unsaved changes always asks first.

### What a rubric is not

* **Not required.** An assessed activity works without one. You can accept submissions and return written feedback with no score at all.
* **Not a live document.** Editing a saved rubric never retroactively changes marks already given on an activity using an older copy of it.
* **Not an automatic grade.** Mark with AI proposes levels. It does not save a mark, and it never releases one to a student without you confirming it first.

### Frequently asked questions

<details>

<summary><strong>Can I use a rubric without giving marks?</strong></summary>

Yes. Choose a qualitative rubric. Students see the level they reached on each criterion, but no score is calculated or added to the gradebook.

</details>

<details>

<summary><strong>Does editing a saved rubric change activities that already use it?</strong></summary>

No. Attaching a rubric copies it onto the activity. Editing the saved original afterwards does not change any copy already attached elsewhere, though Kita flags that the two have drifted apart.

</details>

<details>

<summary><strong>Does the AI ever mark a student without a teacher?</strong></summary>

No. Mark with AI only ever suggests a level, shown with a sparkle marker. Nothing is saved, and nothing reaches a student, until you confirm it yourself.

</details>


# Unsubmit a student's work

Unsubmit returns a submission to the student who made it. Use it when a student has handed in the wrong file and needs the work back.

{% hint style="info" %}
**You usually do not need to do this.** Kita accepts multiple submissions, so a student who submits the wrong file can simply submit the right one, the later submission is the one you mark. Unsubmit is for when you want the work returned rather than replaced.
{% endhint %}

### Prerequisites

Before you start, make sure:

* The student has actually submitted. There is nothing to return otherwise.
* You know which activity the submission belongs to. Submissions attach to the activity they were made from, not to the student generally.
* Your account has teacher permissions on that course.

### Three ways to reach a student's work

Unsubmit lives in the teacher view of a student's workspace, and there are three routes to it:

| Route                | Use it when                                                   |
| -------------------- | ------------------------------------------------------------- |
| **Marking**          | You are working through submissions for an assessed activity. |
| **People**           | You are teaching live and watching the class code.            |
| **Student progress** | You are checking work between lessons.                        |

All three open the same view. The steps below take the **Marking** route, which is the one you will normally be on when you notice a wrong submission.

### Return the work

{% stepper %}
{% step %}
Click **Marking** in the main navigation.
{% endstep %}

{% step %}
Click **Continue Marking** on the activity you are working through.
{% endstep %}

{% step %}
Click the row for the student who submitted the wrong work.
{% endstep %}

{% step %}
Click **Go to IDE** to open their workspace as they see it. **Unsubmit** is only available from this view, not from the marking list.
{% endstep %}

{% step %}
Click **Unsubmit**.
{% endstep %}

{% step %}
Click **Exit** to leave the student's code.
{% endstep %}
{% endstepper %}

### Check that it worked

The activity shows as outstanding again for that student in your marking list, and the student can submit a replacement file.

Tell the student you have returned it. Nothing prompts them, so a submission that quietly reappears as outstanding is easy for them to miss — particularly if the due date has passed.

### Troubleshooting

{% tabs %}
{% tab title="The student could just resubmit" %}
They can, and often that is quicker. Kita accepts multiple submissions, and the most recent one is what you mark.

Unsubmit is worth using when you want the wrong work off your marking list, or when you would rather the student started again than added another file.
{% endtab %}

{% tab title="I cannot see Unsubmit" %}
**Unsubmit** appears in the student's IDE view, not in the marking list. Open the student's row, then click **Go to IDE**.

If you are looking at your own copy of the lesson rather than the student's work, you will not see it.
{% endtab %}

{% tab title="I cannot find the student's submission" %}
Check you are in the right activity. Submissions attach to the activity they were made from, so work submitted to a different lesson appears under that lesson instead.

Then check the student is in the group enrolled on this course. See Enrol your class and share the group code.
{% endtab %}

{% tab title="A whole class submitted the wrong file" %}
If everyone has submitted something unexpected, the cause is usually the activity rather than the students — check the **Expected filenames** on the assessed activity and what the lesson instructions asked for.

Filenames do not block a submission, so a mismatch there does not stop work being accepted. See Create an assessed activity.
{% endtab %}
{% endtabs %}

### Need help?

If a submission will not return, or the student cannot submit again after you have unsubmitted, email <hello@getkita.com> with the course, the lesson, the activity, and the student's name.


# Workspaces and projects

How workspaces and projects fit together, and when to create which.

Workspaces and projects are the two containers that organise everything on the platform. Understanding the relationship between them makes the rest of the product much easier to navigate.

## The hierarchy

A workspace contains projects. Projects contain deploys, environment variables, and members.

```mermaid
graph TD
  A[Account] --> W1[Workspace: Acme]
  A --> W2[Workspace: Personal]
  W1 --> P1[Project: Marketing site]
  W1 --> P2[Project: Customer portal]
  W1 --> P3[Project: Internal API]
  P1 --> D1[Production deploy]
  P1 --> D2[Preview deploys]
```

## Workspaces

A workspace is the top-level container for a team's work. It owns:

* The list of members and their roles
* The billing relationship and plan
* Workspace-level settings like SSO and audit logs
* All projects created within it

{% tabs %}
{% tab title="Personal" %}
Free, single-member workspaces. Good for evaluating the platform, side projects, or solo work. Limited to 3 active projects.
{% endtab %}

{% tab title="Team" %}
Multi-member workspaces with shared billing and a common plan. Most teams should use this. Includes audit logs and member roles.
{% endtab %}

{% tab title="Enterprise" %}
Team workspaces with extras — SSO, SCIM provisioning, custom data residency, and a dedicated support contact.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
You can belong to multiple workspaces at once. Switch between them using the workspace picker in the top-left of the dashboard.
{% endhint %}

## Projects

A project is a deployable unit. Each project has:

| Component       | What it does                                     |
| --------------- | ------------------------------------------------ |
| **Source**      | The repository or upload that produces the build |
| **Builds**      | The history of build attempts and their outputs  |
| **Deploys**     | Live versions of the project at a URL            |
| **Environment** | Variables and secrets specific to this project   |
| **Domains**     | The custom domains pointing at this project      |

Projects are isolated from each other. Environment variables, secrets, and configurations don't leak across projects in the same workspace.

## When to split into multiple projects

A common question: "should this be one project or two?"

Use **separate projects** when:

* The codebases are different
* They deploy independently
* They have different sets of secrets
* They need different access controls

Use **one project with multiple environments** when:

* It's the same codebase deploying to different URLs
* You want preview deploys per branch
* The differences are configuration, not code

## Related

{% content-ref url="/pages/fb922e107b31a3e9e9fcf81410029e993b0a9afc" %}
[Permissions](/mark-and-give-feedback/permissions)
{% endcontent-ref %}

{% content-ref url="/pages/65332f63d0b6cedd6ac718136ba8d89ec6cc1a4d" %}
[Broken mention](broken://pages/65332f63d0b6cedd6ac718136ba8d89ec6cc1a4d)
{% endcontent-ref %}


# Permissions

Roles, permissions, and how access flows from workspace to project.

Every member of a workspace has a role. The role determines what actions they can perform across the workspace and its projects.

## Roles overview

There are five roles, ordered from least to most privileged:

| Role         | Best for                                                        |
| ------------ | --------------------------------------------------------------- |
| **Guest**    | External stakeholders who only need to see published deploys    |
| **Viewer**   | Internal users who need read-only access to drafts and settings |
| **Editor**   | Builders who actively work on projects                          |
| **Reviewer** | People who comment and approve, but don't push changes          |
| **Admin**    | Workspace owners and team leads                                 |

{% hint style="info" %}
Guests don't count towards your member limit, making them ideal for read-only stakeholders.
{% endhint %}

## Permission matrix

The full breakdown of what each role can do:

| Action                       | Guest | Viewer | Reviewer | Editor | Admin |
| ---------------------------- | :---: | :----: | :------: | :----: | :---: |
| View published deploys       |   ✓   |    ✓   |     ✓    |    ✓   |   ✓   |
| View drafts                  |   —   |    ✓   |     ✓    |    ✓   |   ✓   |
| Comment on deploys           |   —   |    —   |     ✓    |    ✓   |   ✓   |
| Trigger builds               |   —   |    —   |     —    |    ✓   |   ✓   |
| Edit project settings        |   —   |    —   |     —    |    ✓   |   ✓   |
| Manage environment variables |   —   |    —   |     —    |    ✓   |   ✓   |
| Invite members               |   —   |    —   |     —    |    —   |   ✓   |
| Change roles                 |   —   |    —   |     —    |    —   |   ✓   |
| Manage billing               |   —   |    —   |     —    |    —   |   ✓   |
| Delete projects              |   —   |    —   |     —    |    —   |   ✓   |

## How permissions flow

Roles are assigned at the **workspace level** and apply to every project in that workspace. There's no per-project override.

If you need finer-grained access — for example, contractors who should only see one project — create a separate workspace for that work and invite them there.

{% hint style="warning" %}
Per-project roles are a frequently requested feature and are on our [roadmap](https://example.com/roadmap). For now, the workspace boundary is the boundary of access.
{% endhint %}

## Changing someone's role

Workspace admins can change any member's role at any time:

1. Go to **Workspace settings → Members**
2. Find the member and click the role dropdown next to their name
3. Select the new role and confirm

The change takes effect immediately — the member doesn't need to re-authenticate.

## Removing a member

Removing a member revokes their access immediately. Any content they created stays in the workspace.

{% hint style="danger" %}
If you're using SSO, removing a member from your identity provider does **not** automatically remove them from the workspace unless SCIM provisioning is enabled.
{% endhint %}


# AI Feedback Examples

AI feedback examples based on configuration options in Kita.

&#x20;**Context for all examples:**

{% hint style="info" %}
*A student has submitted program\_1.py. The volume() function is correct, but the litres\_to\_gallons() conversion uses the wrong divisor. The correct value is 4.546 litres per UK gallon.*
{% endhint %}

<div align="left"><figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F3yr449sw58OUzqVDD5Ae%2Fimage.png?alt=media&amp;token=c49b4498-24c5-419e-89e4-316ffb4595ad" alt="Screenshot of the AI Feedback Settings - a row for feedback style features: concise, supportive, structured, the next row for feedback length features: shorter, medium, longer, the final row for feedback format: standard, 2 stars &#x26; a wish, and 3 x 3." width="375"><figcaption></figcaption></figure></div>

### Feedback styles

Three feedback styles control the tone and framing of the AI response. The teacher selects a style before triggering feedback generation.

<details>

<summary>Concise — direct and brief, minimal explanation:</summary>

*Your volume() function is correct. The issue is in litres\_to\_gallons() — check the conversion factor you are dividing by (should be 4.546).*

</details>

<details>

<summary>Supportive — encouraging, acknowledges effort:</summary>

*Well done for getting the volume calculation right — that's the trickiest part! Your litres\_to\_gallons() function is very close. Have a look at the number you're dividing by. One UK gallon is 4.546 litres, so that's the value you need. You're nearly there!*

</details>

<details>

<summary>Structured — organised with clearly labelled sections:</summary>

***What worked:** Your volume() function correctly multiplies the three dimensions and divides by 1000 to convert cm³ to litres.*

***To improve:** Your litres\_to\_gallons() function uses the wrong conversion factor. One UK gallon = 4.546 litres, so divide by 4.546.*

***Next step:** Update the divisor on line 5 and re-run — the test panel will confirm whether the output is now correct.*

</details>

### Feedback length

Three length settings control how much detail the AI includes. Length is selected alongside style and is independent of it.

<details>

<summary><strong>Shorter — one to two sentences:</strong></summary>

*Good volume calculation. The gallons conversion has an error — check the divisor in litres\_to\_gallons().*

</details>

<details>

<summary><strong>Medium — a short paragraph:</strong></summary>

*Your volume() function is correct — multiplying the three dimensions and dividing by 1000 gives the right value in litres. The issue is in litres\_to\_gallons(): the conversion factor you are dividing by needs to match the exact value of one UK gallon in litres. Look up the standard conversion (4.546 litres per gallon) and update that line.*

</details>

<details>

<summary><strong>Longer — multiple paragraphs with full explanation:</strong></summary>

*Your approach to this task is well-structured. You've broken the problem into two clear functions, which makes the code much easier to read and test independently. The volume() function is working correctly — multiplying length × width × height and dividing by 1000 converts cubic centimetres to litres accurately.*

*The issue is in litres\_to\_gallons(). The conversion factor you've used isn't right. One UK gallon is equal to approximately 4.546 litres, which means to convert litres to gallons you should divide by 4.546. Check the value on that line and update it.*

*Once you've made the correction, re-run the program. The test panel will show you whether the expected output now matches. This kind of lookup — finding the right conversion factor — is a normal part of real programming work.*

</details>

### Feedback Formats

Three formats define the structural shape of the feedback. Format is selected independently of style and length — any combination is valid.

<details>

<summary><strong>Standard — prose feedback:</strong></summary>

*Your volume() function is correct and your code structure is good. The litres\_to\_gallons() function contains an error — the divisor you are using is not the right value for a UK gallon. The correct figure is 4.546 litres per gallon. Update that value and re-run to check your output.*

</details>

<details>

<summary><strong>2 Stars and a Wish — two positives, one area for improvement:</strong></summary>

⭐ *Your volume() function is correctly structured — well done for separating the two calculations into distinct functions.*

⭐ *The litres output is accurate — length × width × height ÷ 1000 gives the right result.*

🌟 *One to improve: Your gallons conversion uses the wrong divisor. One UK gallon is 4.546 litres — update that value in litres\_to\_gallons().*

</details>

**Defaults:** Style = Supportive, Length = Medium, Format = Standard.


# 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 %}


# Guides

Practical walkthroughs for getting things done. Each guide is self-contained — pick the one that matches what you're trying to do.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4><i class="fa-globe" style="color:$primary;">:globe:</i></h4></td><td><strong>Custom domains</strong></td><td>Point your own domain at a project, with automatic SSL.</td><td><a href="broken://pages/9e6489391e0b8b3710eb3e8b11f3f2c0ab53ae7a">Broken link</a></td></tr><tr><td><h4><i class="fa-gear" style="color:$primary;">:gear:</i></h4></td><td><strong>Automations</strong></td><td>React to deploys, comments, or external events with workflows.</td><td><a href="broken://pages/1961a0c0dfd8029b5b32862472404bead171c798">Broken link</a></td></tr><tr><td><h4><i class="fa-arrow-turn-down-right" style="color:$primary;">:arrow-turn-down-right:</i></h4></td><td><strong>Migrating from Trinket</strong></td><td>Trinket is closing in August. This simple 4-step guide shows you how to move your existing work into Kita so you can continue teaching without interruption.</td><td></td></tr></tbody></table>

***

## More guides coming soon

We're adding new guides based on what people actually ask about. Some that are in the pipeline:

* Importing data from another platform
* Setting up SSO with your identity provider
* Building a custom CI/CD pipeline on top of the API
* Configuring per-environment secrets

{% hint style="info" %}
Have a guide you'd like to see? [Suggest one in the community](https://gitbook.com).
{% endhint %}


# Custom domains

Replace your auto-generated subdomain with your own domain, with automatic SSL.

By default, every project is published at a subdomain of the platform. You can replace this with your own domain on any paid plan.

{% hint style="success" %}
SSL certificates are issued automatically once your domain is verified — there's nothing to install or renew yourself.
{% endhint %}

## Before you start

You'll need:

* A paid plan (Pro or above)
* Access to your domain registrar's DNS settings
* A successful deploy of the project you want to attach

## Steps

{% stepper %}
{% step %}

#### Add your domain in the dashboard

Go to **Project settings → Domains** and click **Add domain**. Enter the domain or subdomain you want to use:

```
docs.yourcompany.com
```

The dashboard will show you the DNS record values you need.
{% endstep %}

{% step %}

#### Configure your DNS

Add a CNAME record pointing your subdomain at the platform:

```
Type:  CNAME
Name:  docs
Value: sites.example-platform.com
TTL:   3600
```

For an apex domain (e.g. `yourcompany.com` without a subdomain), you'll need an ALIAS or ANAME record instead — not all DNS providers support these. Check your provider's docs.

{% hint style="info" %}
DNS changes can take up to 48 hours to propagate, but in practice most see them resolve within a few minutes.
{% endhint %}
{% endstep %}

{% step %}

#### Verify and activate

Return to **Project settings → Domains** and click **Verify**. Once verified, the platform will issue an SSL certificate automatically — usually within a couple of minutes.

When verification completes, your domain is live.
{% endstep %}
{% endstepper %}

## Multiple domains per project

You can attach multiple domains to a single project — useful for redirecting old URLs or supporting multiple regions:

```yaml
domains:
  primary: docs.yourcompany.com
  redirects:
    - from: help.yourcompany.com
      to: docs.yourcompany.com
      status: 301
```

## Troubleshooting

<details>

<summary>Verification keeps failing</summary>

Make sure there are no conflicting DNS records for the same subdomain. An existing A record will block the CNAME.

Also check that the value of your CNAME exactly matches the one shown in the dashboard — typos in domain names are very common.

</details>

<details>

<summary>SSL certificate not provisioning</summary>

SSL is issued after DNS verification succeeds. If it hasn't appeared after 30 minutes:

1. Confirm your domain still verifies in the dashboard
2. Check that your DNS provider isn't using CAA records that block our certificate authority
3. Click **Re-verify** to trigger a fresh attempt

</details>

<details>

<summary>Browser shows "Your connection is not private"</summary>

This usually means the certificate hasn't been provisioned yet, or your browser cached an old certificate. Wait a few minutes, then try in an incognito window.

</details>

<details>

<summary>The domain works but redirects break</summary>

Redirect chains often get cached aggressively. Test in an incognito window or with `curl -I` to see what's actually being served, ignoring local cache.

```bash
curl -I https://docs.yourcompany.com
```

</details>

## Removing a domain

To remove a domain, go to **Project settings → Domains**, click the menu next to the domain, and select **Remove**.

{% hint style="warning" %}
Removing a domain stops serving traffic immediately. If you've shared this URL externally, set up a redirect first to avoid breaking inbound links.
{% endhint %}


# Automations

React to deploys, comments, and external events with workflows that run on the platform.

Automations let you run code in response to things that happen on the platform — a deploy completing, a comment being posted, or an external webhook firing. They're a flexible way to wire the platform into the rest of your toolchain.

{% hint style="info" %}
Automations run in a managed environment with a 30-second timeout. For long-running work, have your automation enqueue a job in your own infrastructure.
{% endhint %}

## Triggers

Automations start in response to a **trigger**. The platform supports the following:

| Trigger            | Fires when…                                   |
| ------------------ | --------------------------------------------- |
| `deploy.succeeded` | A build completes and goes live               |
| `deploy.failed`    | A build fails                                 |
| `comment.created`  | Someone comments on a deploy preview          |
| `member.invited`   | A new member is invited to the workspace      |
| `domain.verified`  | A custom domain finishes verification         |
| `webhook.received` | An external service POSTs to your inbound URL |
| `schedule`         | On a cron schedule                            |

Each automation has exactly one trigger and one or more actions.

## Writing your first automation

Create a new file under `.platform/automations/` in your project:

{% tabs %}
{% tab title="JavaScript" %}

```javascript
export default {
  trigger: 'deploy.succeeded',
  async run(event, ctx) {
    await ctx.notify('slack', {
      channel: '#deploys',
      message: `${event.project} is live at ${event.url}`
    });
  }
};
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
import type { Automation, DeployEvent } from '@platform/automations';

export default {
  trigger: 'deploy.succeeded',
  async run(event: DeployEvent, ctx) {
    await ctx.notify('slack', {
      channel: '#deploys',
      message: `${event.project} is live at ${event.url}`
    });
  }
} satisfies Automation;
```

{% endtab %}

{% tab title="Python" %}

```python
from platform_automations import automation, slack

@automation(trigger='deploy.succeeded')
async def notify_deploy(event, ctx):
    await slack.post(
        channel='#deploys',
        message=f"{event.project} is live at {event.url}"
    )
```

{% endtab %}
{% endtabs %}

The file is detected on your next deploy and registered automatically.

## A more useful example

Here's an automation that posts a summary to a chat channel whenever a pull request preview is ready:

```javascript
export default {
  trigger: 'deploy.succeeded',
  filter: (event) => event.environment === 'preview',
  async run(event, ctx) {
    const summary = await ctx.ai.summarise({
      diff: event.diff,
      maxLength: 200
    });

    await ctx.notify('slack', {
      channel: '#previews',
      message: `Preview ready: ${event.url}\n\n${summary}`
    });
  }
};
```

This shows three patterns worth knowing:

* **`filter`** — narrow the events your automation responds to
* **`ctx.ai`** — a built-in helper for AI summarisation
* **`ctx.notify`** — send to any configured notification channel

## Local testing

Test your automations locally before deploying:

{% tabs %}
{% tab title="CLI" %}

```bash
platform automations test deploy.succeeded \
  --fixture fixtures/deploy.json
```

{% endtab %}

{% tab title="Dashboard" %}
Open your automation in the dashboard and click **Test run**. You can paste in any payload or pick a saved fixture.
{% endtab %}
{% endtabs %}

## Scheduling

Use the `schedule` trigger with a cron expression for time-based automations:

```javascript
export default {
  trigger: 'schedule',
  schedule: '0 9 * * 1', // every Monday at 09:00 UTC
  async run(event, ctx) {
    const stats = await ctx.api.deploys.weekly();
    await ctx.notify('email', {
      to: 'team@example.com',
      subject: 'Weekly deploy report',
      body: stats.summary
    });
  }
};
```

{% hint style="warning" %}
Schedule times are always in UTC. Adjust your cron expression accordingly if your team works in a different timezone.
{% endhint %}

## What's next?

{% columns %}
{% column %}
**Common patterns**

* Slack notifications on deploy
* Posting summaries to issue trackers
* Daily/weekly digests
  {% endcolumn %}

{% column %}
**Advanced**

* Chaining automations
* Calling external APIs
* Storing state across runs
  {% endcolumn %}
  {% endcolumns %}


# Help and support

Kita is used in classrooms, where a problem in the middle of a lesson cannot wait. This page covers the quickest way to get an answer, whatever the question.

Most questions are answered somewhere in this documentation. If yours is not, or a lesson is affected and you need an answer now, contact the support team

### Contact us

|       |                                  |
| ----- | -------------------------------- |
| Phone | +44 (0)2046 529991               |
| Email | <support@getkita.org>            |
| Hours | 9am to 5pm GMT, Monday to Friday |

Calls outside these hours reach voicemail. Leave your name, your school and a number, and the team will call you back.

Emails are answered within one working day. If a lesson is affected, say so in the subject line and it will be picked up sooner.

#### What to include

The more of this you can give, the faster the answer:

* The address of your school's Kita instance.
* What you were trying to do, and what happened instead.
* The name of the course, group or student involved, if it applies to one.
* A screenshot of what you are seeing, including any error message.

If it is easier to show than describe, a short screen recording is welcome.

#### Who to ask first

Some things are set by your school rather than by Kita. Your Kita lead can help with sign-in links, teacher permissions, and which courses are available on your instance.

For anything else, contact the support team directly.

### Knowledge base

Search the documentation using the bar at the top of any page.

These are the guides teachers open most often. Top guides:

* [Setting up a class in Kita](/getting-started/add-your-students-to-kita)
* [Migrating from Trinket](/getting-started/migrating-from-trinket)
* [Create an assessed activity](/set-up-your-lesson/create-a-code-submission)
* [Unsubmit a student's work](/mark-and-give-feedback/unsubmit-a-students-work)
* [Supported languages and libraries](/guides/supported-languages-and-libraries)

### Webinars and support calls

Webinars run through setting up a class, building a lesson, and marking, with time for questions at the end.

Support calls are for questions specific to your school, such as planning a rollout or moving existing material across.

{% hint style="info" %}
Sessions are being scheduled. Email <support@getkita.org> and the team will arrange a time with you.
{% endhint %}

### Reporting a problem

If Kita is not behaving as the guides describe, email <support@getkita.org> with what you saw and a screenshot.

Security issues should go to the same address, marked as security in the subject line. Please report these privately rather than posting publicly.


# Terms of use

Last Updated: 18 August 2026 (v2.0)

These are the rules for using Kita. The first part explains them in plain English, for students and for the parents and carers who agree to them on their behalf. The full legal terms follow underneath.

{% hint style="info" %}
**Two versions, one page.** The plain-English summary helps you understand the terms — it does not replace them. Where the two differ, the full terms apply.
{% endhint %}

This document constitutes Version 2.0 of the Terms of Use. To view the previous version, please refer to [Version 1.0 here](/legal-and-support/archived-terms-of-use).

***

### The rules in plain English

Six rules cover almost everything. Open one to read more, then follow the link to the exact wording further down the page.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F1s11nD8ZWF1RHixqOYcl%2Fkita-six-rules.png?alt=media&amp;token=d4b26e70-9f84-4c4b-9127-50e161852f31" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Not sure about something? Ask a grown-up.** A parent, a carer, or your teacher can read this page with you. You can ask them at any time.
{% endhint %}

<details>

<summary>1. Kita is for learning to code</summary>

Kita is a place to write code, work on projects with your class, and get feedback on what you have made. You can use the AI helper to get unstuck, and open the lessons your teacher has set.

That is what Kita is for. It is not for running a business, and not for things that have nothing to do with learning.

**In the full terms:** 5.1 Permitted use

</details>

<details>

<summary>2. Your account is yours, keep it that way</summary>

Do not share your password, and do not let anyone else log in as you. Anything done from your account counts as done by you.

If you think someone has learned your password, tell your teacher straight away.

**In the full terms:** 4.1 Account creation

</details>

<details>

<summary>3. Be kind to other people</summary>

No bullying, no threats, no rude or offensive language, and nothing that picks on someone for who they are.

That applies to your code and your comments as well as to chat. A joke in a variable name is still a joke everyone can read.

**In the full terms:** 5.2 Prohibited conduct

</details>

<details>

<summary>4. Do not share anything personal about yourself</summary>

Keep your full name, your address, your phone number and your email out of your code, your answers and your comments. Anything that would let a stranger work out who you are or where you live should stay out.

The same goes for other people. Do not put your friends' details in either.

This is the rule people break by accident most often, usually by testing a program with their real address. Make up a name and an address instead.

**In the full terms:** 5.2 Prohibited conduct

</details>

<details>

<summary>5. Do not break things, and do not snoop</summary>

Do not try to get into anyone else's account, and do not look at their work without asking. Do not upload viruses, and do not try to hack or crash Kita.

Trying counts, even if it does not work.

**In the full terms:** 5.2 Prohibited conduct

</details>

<details>

<summary>6. The AI gives you hints, not answers</summary>

The AI helper nudges you towards the answer, and your teacher decides how much help it is allowed to give.

Two things worth knowing. It is sometimes wrong, if a suggestion looks odd, it might be. And your teacher has the final say on your work, not the AI.

Nothing you type into Kita is used to train AI models.

**In the full terms:** 7. AI features

</details>

#### What changes as you get older

Some things depend on how old you are. They also depend on whether you use Kita through school or on your own. Pick your age below.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F34NtNqVm17FEM038XIkr%2Fkita-growing-up.png?alt=media&amp;token=02e65f33-592c-4b51-beab-b9f58c6d81d0" alt="What changes as you get older | Kita"><figcaption></figcaption></figure>

{% tabs %}
{% tab title="10 to 12" %}
**A grown-up agrees to the rules for you.**

**At school.** Your school sets Kita up. You join your class with a code or a link from your teacher. Your school agrees to these terms for you. Your teacher decides whether the **AI helper** is on, and how much it helps.

**On your own.** You can make an Open Kita account, but it will not work yet. A parent or carer has to say yes by email first. Until they do, you cannot use the **AI helper** or **share your work**.

Read this page with a parent, a carer, or your teacher. Ask them about anything you are not sure about.

**In the full terms:** 4.1 Account creation · 4.2 Eligibility, age and parental consent
{% endtab %}

{% tab title="13 to 15" %}
**You can sign up on your own.**

13 is the age you can agree to sign up yourself. So you can make an Open Kita account and start using it right away.

Two things still need a grown-up to say yes: the **AI helper** and **sharing your work**. Kita emails the parent or carer address you give. Those two stay off until they reply.

Your parent, carer or school still agrees to these terms on your behalf.

You are starting to make your own choices here. Ask a grown-up when you are unsure, that is not a step backwards.

**In the full terms:** 4.2 Eligibility, age and parental consent
{% endtab %}

{% tab title="16 to 17" %}
**More of the choices are yours.**

You can sign up on your own. You can also use the AI helper without an account.

While you are under 18, a parent or carer still says yes to the **AI helper** and to **sharing your work**, and still agrees to these terms on your behalf.

Here is what to weigh up. Work you share can be seen by other people, and sharing is always your own choice, Kita never shares it for you. The AI helper stores what you type for 90 days. Nothing you write is used to train AI models, and your work is never sold. You own the code you write.

If any of that gives you pause, check with a parent, a carer, or your teacher before you decide.

**In the full terms:** 4.2 Eligibility, age and parental consent · 6.2 User-generated content
{% endtab %}

{% tab title="Not signed in" %}
**You can use Kita without an account.**

You can try courses. You can make projects. You can join a temporary **Quick Course** and code on a file with other people.

Two things to know:

* Anything you make in a Quick Course is **deleted after 24 hours**. Want to keep it? Make an account.
* You can use the **AI helper** without an account only if you are **13 or over**. You will be asked to confirm that first.

**In the full terms:** 8. Privacy and data protection
{% endtab %}

{% tab title="Parents and carers" %}
This tab carries the detail behind the simpler explanations above. The two sit side by side deliberately, the student version is shorter, not less honest.

**Your consent is needed twice over.** For any user under 18, sharing work and AI features stay off until you confirm by email. Under 13, the account itself does not function until you confirm.

**What Kita knows about your child.** Through a school: a name, which can be a nickname the teacher assigns. Through an Open Kita account: a display name they choose, an email address, the month and year of birth, never the full date, the country, and your email address.

**The AI.** All AI processing happens in the UK. Nothing your child writes is used to train AI models. The AI never makes a decision about your child on its own, feedback is advisory and a teacher holds final judgement. In Open Kita you control whether AI features are on; at school, the teacher does.

**Marketing.** Kita never sells personal data, and never uses the data of anyone under 18 for marketing.

**Your child owns their code.** Kita may store it, run it through the AI to give feedback, and use an anonymised copy to improve the platform and for research. It is not sold, and not made public without explicit consent.

**If a rule is broken**, the usual first step is a word from a teacher. Kita can also remove content and suspend an account, and will tell the school or tell you.

Questions: <hello@getkita.com>
{% endtab %}
{% endtabs %}

#### When to ask a grown-up

There are four points where a grown-up can help you:

1. **When you join.** A parent, carer or teacher can read this page with you and help you set up your account.
2. **When the AI helper is turned on.** If you are under 18, this requires consent from your parent or carer.
3. **When you share your work.** If you are under 18, this also requires consent from your parent or carer.
4. **When you want to see, change or delete your information.** At school, ask your teacher. On Open Kita, the account is yours, so you can ask Kita yourself.

You can ask for help at any other time too. You do not have to wait for one of these.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FQnuIS8zlYWRMgtYGSjop%2Fkita-when-to-ask.png?alt=media&amp;token=51f6f23f-40d1-4c2a-98e6-078590bf7dfd" alt=""><figcaption></figcaption></figure>

#### If someone breaks the rules

What happens depends on how serious it is:

1. A word from your teacher or from the Kita team.
2. The content is removed.
3. The account is paused, for a while or for good.
4. Your school is told, or your parent or carer is told.

Serious cases can go further, including legal action.

**In the full terms:** 5.3 Consequences of violations

#### Other things worth knowing

<details>

<summary>Is Kita free?</summary>

Open Kita is free. School Kita is free for schools during the pilot. Some features are paid, such as AI-enhanced bulk marking for more than 30 students. Kita can add, change or withdraw paid features, with reasonable notice.

**In the full terms:** 4.3 Service availability

</details>

<details>

<summary>Who owns the code I write?</summary>

You do.

Kita has permission to store it and show it in the platform. It can run it through the AI to give you feedback. It can use an anonymised copy for research and to improve Kita.

Your work is never sold. It is not made public unless someone explicitly says yes.

**In the full terms:** 6.2 User-generated content

</details>

<details>

<summary>What if I lose my work?</summary>

Kita does its best to stay up and working. But it cannot promise it will never go down, and it cannot promise it will never have a bug.

Keep your own copy of anything that really matters to you.

**In the full terms:** 9. Limitation of liability

</details>

<details>

<summary>Can I stop using Kita?</summary>

Yes, whenever you like. How you do it depends on which Kita you use.

**On Open Kita** ([getkita.io/try/dashboard](https://getkita.io/try/dashboard)), the account is your own. You can close it whenever you want, and you can ask Kita to delete your information yourself by emailing <hello@getkita.com>.

**At school** ([getkita.io/login](https://getkita.io/login)), your school looks after your information, so start by asking your teacher. What happens to your work is arranged between your school and Kita.

**In the full terms:** 11. Termination

</details>

<details>

<summary>What if these rules change?</summary>

Kita can update these terms. Changes are posted on the website. Schools and Open Kita account holders are told about anything significant.

Carrying on using Kita after a change counts as agreeing to it.

**In the full terms:** 10. Changes to these Terms

</details>

***

### The full terms

Please read these Terms of Use carefully before using the Kita platform. By accessing or using Kita, you agree to be bound by these Terms of Use ("Terms"). If you do not agree, you must not use the Platform.

#### 1. Definitions

* **"Kita", "we", "us", "our":** Kita Education Ltd, company number 13264075
* **"Platform" or "Service":** the Kita coding education platform, in each of the forms defined below as School Kita, Open Kita and the Open Kita AI assistant
* **"School":** educational institutions, multi-academy trusts, or local authorities using Kita
* **"Teacher":** School staff members with accounts to manage Student access, and, in Open Kita, any individual educator holding an account
* **"Student" or "User":** any individual accessing Kita, whether through a School, through an Open Kita account, or anonymously
* **"School Kita":** the Platform as provided to a School, normally under a separate service agreement
* **"Open Kita":** the version of the Platform made freely available on the web to individual Teachers and Users without a School
* **"Anonymous User":** a person using Open Kita without an account
* **"Privacy Policy":** the Kita Education Ltd Privacy Policy, available from our documentation site and within the Platform

#### 2. About us

Kita Education Ltd is registered in England and Wales under company number 13264075.

Registered office: 43 Great Western Studios, Alfred Road, London W2 5EU, United Kingdom

Main trading address: 65 Alfred Road, London W2 5EU, United Kingdom

Contact: <hello@getkita.com>

#### 3. Acceptance of terms

These Terms apply to all Users of the Platform and incorporate our Privacy Policy.

**3.1 Products covered**

These Terms apply to School Kita, to Open Kita accounts, and to anonymous use of Open Kita, including the Open Kita AI assistant. Where a clause applies to only one of these, this is stated. In the event of any conflict between these Terms and the Privacy Policy on a matter of data protection, the Privacy Policy takes precedence.

Schools using Kita will typically have a separate service agreement. In the event of conflict, the service agreement takes precedence.

#### 4. Access to Kita

**4.1 Account creation**

* Teachers create accounts using a School email address where one is available, or a personal email address in Open Kita
* Students access Kita through Teacher-created accounts in School Kita, or by self-registration in Open Kita, subject to clause 4.2
* You must provide accurate information and keep your credentials secure
* You are responsible for all activity under your account

**4.2 Eligibility, age and parental consent**

Users under 18 require the consent of a parent or guardian to use sharing and AI features. Users under 13 may not use Open Kita until parental confirmation has been received. Anonymous use of the Open Kita AI assistant is restricted to those aged 13 and over.

Age is self-declared and Kita does not verify age using technology. The full eligibility and consent requirements are set out in the Privacy Policy, which prevails over this clause in the event of any inconsistency.

Where a User is under 18, these Terms are accepted on their behalf by their parent, guardian or School.

**4.3 Service availability**

Open Kita is provided free of charge. School Kita is provided free of charge during the pilot phase, with the exception of certain paid features (such as AI-enhanced bulk marking for more than 30 Students). We may introduce, change or withdraw paid features with reasonable notice.

We do not guarantee uninterrupted access. The Platform may be unavailable due to scheduled maintenance, technical issues, or circumstances beyond our control. We may suspend, modify or discontinue any part of Kita at any time, with reasonable notice to Schools and, in Open Kita, to account holders.

**4.4 Payments**

Where paid features or subscriptions apply, fees are stated at the point of purchase or in the applicable service agreement. Payments are handled by our payment provider (such as Stripe) or by bank transfer. Payment card details are collected and processed by the payment provider under its own terms, Kita never stores full card numbers. Fees are exclusive of VAT unless stated otherwise. Billing information is handled as described in the Privacy Policy.

**4.5 Technical requirements**

Users are responsible for having internet access and compatible devices, using supported web browsers, and complying with their School's IT policies, where applicable.

#### 5. Acceptable use

**5.1 Permitted use**

Kita is designed for educational purposes in computing and coding education. Users may:

* Create and edit code within the Platform
* Collaborate with classmates in real time
* Receive AI-generated feedback on their work
* Access lessons and materials provided by their Teacher
* Use the Open Kita AI assistant, with or without an account, subject to clause 4.2

**5.2 Prohibited conduct**

Users must not:

* Use offensive, discriminatory or inappropriate language
* Engage in bullying, harassment or threatening behaviour
* Upload inappropriate or harmful content or imagery
* Share personal information, such as names, addresses or contact details, in code or responses
* Attempt to access other Users' accounts or work without permission
* Introduce viruses, malware or malicious code
* Attempt to hack, disrupt or damage the Platform
* Use the Platform for commercial purposes without authorisation
* Violate any applicable laws or regulations
* Share account credentials with unauthorised users

**5.3 Consequences of violations**

Violations of these Terms may result in a warning from a Teacher or the Kita team; temporary or permanent suspension of the account; removal of content; notification to School authorities in the case of School Kita, or to a parent or guardian in Open Kita; and legal action, if appropriate.

#### 6. Intellectual property

**6.1 Kita intellectual property**

Kita owns all intellectual property rights in the Platform and its features; Platform design, graphics and user interface; Kita branding and logos; and documentation and materials created by Kita. These rights are protected by copyright, trade mark and other intellectual property laws.

**6.2 User-generated content**

Users own the code and work they create in Kita.

By using Kita, Users grant us a limited, non-exclusive licence to:

* Store and display User work within the Platform
* Process work to provide AI feedback and personalised learning support
* Use anonymised work for research and Platform improvement. Work is anonymised before it is used for this purpose. Where any personal data is processed for research or Platform improvement, Kita relies on its legitimate interests, as described in the Privacy Policy
* Monitor content entered into the AI assistant for safety and security. Anonymised content is used for service evaluation, research and Platform improvement

We do not sell Student work, and we will not share it publicly without explicit consent. Where Open Kita offers a sharing feature, work is shared only at the User's own initiative and, for Users under 18, only where parental or guardian consent has been given in accordance with clause 4.2.

**6.3 Third-party content**

Teachers may upload or link to third-party materials. Teachers are responsible for ensuring they have appropriate rights to use such materials.

#### 7. AI features

Kita uses AI to provide feedback on Student code and to support learning. Users should understand that:

* AI feedback is advisory only; Teachers retain final authority
* AI may occasionally provide incorrect or incomplete suggestions
* Teachers can disable AI features at course or School level. In Open Kita, AI features are controlled by the User or, for Users under 18, by the consenting parent or guardian
* No User data, including code, work, responses and AI prompts, is used to train AI models
* All AI processing takes place within the United Kingdom. AI prompts and outputs are not transferred outside the UK
* AI systems are restricted to Platform use only
* To personalise feedback and support Teachers, Kita may build learning records derived from platform activity, as described in the Privacy Policy
* Kita does not use AI to make automated decisions about Students that have legal or similarly significant effects. All feedback is advisory and subject to Teacher oversight

#### 8. Privacy and data protection

Our Privacy Policy explains how we handle personal data. Key points:

* In School Kita, the School is Data Controller for Student personal data and Kita is Data Processor acting on the School's documented instructions.
* In Open Kita, Kita is Data Controller for the personal data of self-registered Users. Where an Open Kita Teacher enters Student personal data, that Teacher (and their school or organisation) is Data Controller and Kita acts as Data Processor.
* For anonymous use of the Open Kita AI assistant, Kita is Data Controller.
* We collect minimal Student data. In School Kita this is a personal identifier (a real name or a pseudonym) and an age declaration. In Open Kita accounts, we collect the information set out in the Privacy Policy, including a self-selected display name, email address, month and year of birth, country, and, for Users under 18, a parent or guardian's email address.
* Anonymous Users may use Open Kita without an account to try courses, create projects, and set up a temporary Quick Course to collaborate with other Anonymous Users. Content added to these temporary spaces is deleted after 24 hours. Anonymous Users aged 13 and over may also use the Open Kita AI assistant; assistant messages are retained as set out in the Privacy Policy.
* Personal data is never sold. Personal data of Users under 18, and Student data provided through a School, is not used for marketing. Open Kita Users aged 18 or over are asked for opt-in consent for marketing communications, which may be withdrawn at any time.
* Where Kita acts as Data Controller, it relies on contract, legal obligation, legitimate interests and, where required, consent. Full detail is set out in the Privacy Policy.
* Personal data is hosted in the UK and the European Economic Area. Where personal data is transferred outside the UK, appropriate safeguards are applied, including the UK International Data Transfer Agreement or Standard Contractual Clauses. AI processing remains within the UK, as set out in clause 7.
* Use of Kita is not conditional on consent to general data processing. Where consent is the lawful basis for a specific processing activity, it is requested separately and may be withdrawn at any time.

#### 9. Limitation of liability

**9.1 Service provision**

Kita is provided "as is" without warranties of any kind. We do not guarantee uninterrupted or error-free service; accuracy of AI-generated feedback; compatibility with all devices or browsers; or freedom from bugs or technical issues.

**9.2 Exclusions and limitations**

Nothing in these Terms excludes or limits our liability for death or personal injury caused by our negligence; fraud or fraudulent misrepresentation; or any liability that cannot be excluded or limited under English law.

Subject to the above, we are not liable for loss of data or work due to technical issues; indirect or consequential losses; loss of profits, business or revenue; damage caused by viruses or malicious code; or the actions of other Users.

**9.3 User responsibility**

Users are responsible for backing up important work; using appropriate virus protection; complying with School policies; and their own conduct on the Platform.

#### 10. Changes to these Terms

We may update these Terms from time to time. Changes will be posted on our website, and Schools will be notified of significant changes. Open Kita account holders will be notified of significant changes by email. Continued use of Kita after changes take effect constitutes acceptance of the updated Terms.

#### 11. Termination

Schools and Open Kita account holders may terminate their use of Kita at any time by notifying us, or by closing their account. We may suspend or terminate access if these Terms are violated, account activity appears suspicious or fraudulent, or we discontinue the Service.

On termination, access to User work will be provided as agreed with the School or User. Following termination, Student personal data will be deleted or returned in accordance with the instructions of the School or Teacher acting as Data Controller. Account data for which Kita acts as Data Controller is retained in line with the retention schedule in the Privacy Policy, and is then deleted. Longer retention applies only where required by law or for safeguarding purposes, as set out in the Privacy Policy.

#### 12. Third-party links and services

Kita may contain links to third-party websites or integrate with third-party services, such as single sign-on providers. We are not responsible for the content or practices of third parties.

#### 13. Governing law and jurisdiction

These Terms are governed by English law. For consumers: the courts of England and Wales have non-exclusive jurisdiction. Residents of Northern Ireland may bring proceedings in Northern Ireland, and residents of Scotland may bring proceedings in Scotland. For businesses: the courts of England and Wales have exclusive jurisdiction.

#### 14. Contact information

For questions about these Terms, contact:

Kita Education Ltd\
Email: <hello@getkita.com>\
Address: 65 Alfred Road, London W2 5EU, United Kingdom


# Privacy Policy

Effective date: 17th August 2026

This page explains how Kita Education Ltd looks after personal data. The first part is written for students and for the parents and carers who read it with them. The full policy follows underneath, including the summary school IT and data protection teams need.

{% hint style="info" %}
**Two versions, one page.** The plain-English guide helps you understand the policy. It does not replace it. Where the two differ, the full policy applies.
{% endhint %}

**Version 2.0** · Effective 17 August 2026 · Supersedes the Customer Privacy Notice (23 February 2026), Open Kita Privacy Policy v1.0 (12 May 2026) and Privacy Policy v3 (22 February 2020).

***

### Your information and Kita: a guide for students

Kita is a website that helps you learn to code. A company called Kita Education Ltd runs it. They are based in London.

This guide tells you what happens to your information. Open any box to read more. Each box has a link to the full wording further down the page.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FPEd0xQVP6cd4mezZ6kz4%2Fkid-data-locker.png?alt=media&amp;token=c59494e8-58f4-4689-987c-ad323f193d83" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Not sure about something? Ask a grown-up.** A parent, a carer, or your teacher can read this page with you. You can ask them at any time.
{% endhint %}

<details>

<summary>What Kita knows about you</summary>

Kita keeps this as small as it can.

**If you use Kita at school**, your school is in charge of your information. Your school decides what goes into Kita. Kita holds your name. Or it holds a nickname your teacher picks for you instead.

**If you signed up to Open Kita yourself**, Kita holds:

* a nickname you choose
* your email address
* the month and year you were born (never your full birthday)
* your country
* a grown-up's email address, if you are under 18

Kita never asks for your address. It never asks for your phone number. It never asks for a photo of you.

**In the full policy:** Part A: School Kita · Part B: Open Kita

</details>

<details>

<summary>Why you use a nickname</summary>

You can use a nickname instead of your real name.

**At school**, you pick one, or your teacher picks one for you. Your teacher still knows which work is yours.

**On Open Kita**, you pick your own. Kita only ever sees the nickname.

Either way, a nickname means a stranger cannot work out who you are.

**In the full policy:** Part A: School Kita · Part B: Open Kita

</details>

<details>

<summary>Who can see your work</summary>

**At school**, you and your teacher. That is all. Kita saves your code and your answers so you can both see how you are getting on.

**On Open Kita**, just you, unless you choose to share something.

Your work is never sold. It is never made public unless someone says yes first.

Advertisers never get it. Kita does not build an advert profile of you. It does not follow you around the internet.

**In the full policy:** User generated content · Who we share information with

</details>

<details>

<summary>Do not share anything personal about yourself</summary>

Kita saves what you type. So keep private things out of it.

That means your full name. Your address. Your phone number. Anything private about you or your friends.

Do you need a name or an address to test your program? Make one up.

The same goes for the AI helper. Do not tell it private things.

**In the full policy:** User generated content

</details>

<details>

<summary>The AI helper</summary>

Kita has an AI helper. It gives you feedback on your code.

Here is how it works:

* What you type is **never** used to teach the AI
* Your messages are kept for 90 days. Then they are deleted
* It runs on computers in the UK. Your words do not leave the country
* It never makes a big decision about you. It suggests, and a person decides
* It is sometimes wrong. If a hint looks odd, it might be

**Who turns it on.** At school, your teacher does, and your teacher also picks how much it helps. On Open Kita, you do, and if you are under 18 your parent or carer says yes first.

Kita also keeps track of how your learning is going. It notes which skills you have practised, and where you get stuck. This is so the feedback fits you. At school your teacher can see it. It is never used for anything else.

**In the full policy:** Using generative AI for student feedback · Personalised learning and progress records

</details>

<details>

<summary>How long Kita keeps things</summary>

Not forever.

Different things are kept for different lengths of time. Then they are deleted safely.

Your AI messages go after 90 days. The detailed record of your learning goes after 12 months. When you stop using Kita, your information is deleted.

**In the full policy:** How long we keep information

</details>

<details>

<summary>Cookies</summary>

A cookie is a small file a website keeps on your device.

Kita uses the cookies it needs to work. One of them keeps you logged in. A few others show how Kita is being used, so it can be made better.

Kita never uses cookies to show you adverts. It never uses them to follow you around the internet.

**In the full policy:** Cookies and automatic technical information

</details>

<details>

<summary>What you can ask for</summary>

You can ask Kita to do three things. So can your parent or carer.

* **Show you** the information it has about you
* **Fix** something that is wrong
* **Delete** your information

Who you ask depends on which Kita you use.

**On Open Kita** ([getkita.io/try/dashboard](https://getkita.io/try/dashboard)), the account is your own, so you can ask Kita directly. Email <hello@getkita.com>.

**At school** ([getkita.io/login](https://getkita.io/login)), your school looks after your information, so ask your teacher first. They will pass the request on.

**In the full policy:** Your rights

</details>

<details>

<summary>If you are not happy</summary>

Tell Kita. Email <hello@getkita.com>. They will try to sort it out.

Still not happy? There is a group called the **ICO**. That is short for the Information Commissioner's Office. Their job is to help people with problems about their information. You can complain to them at [ico.org.uk/make-a-complaint](https://www.ico.org.uk/make-a-complaint).

Is something on Kita worrying you? Is someone being unkind? Tell your teacher or a grown-up you trust. Do it straight away.

**In the full policy:** How to complain

</details>

#### What changes as you get older

Some things depend on how old you are. Pick your age below.

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2F34NtNqVm17FEM038XIkr%2Fkita-growing-up.png?alt=media&amp;token=02e65f33-592c-4b51-beab-b9f58c6d81d0" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="10 to 12" %}
**A grown-up decides for you.**

You can use Kita at school. Your school sets it up. Your teacher gives you a code or a link to join.

You cannot sign up to Open Kita on your own yet. A parent or carer has to say yes by email first. Until they do, your account will not work.

The **AI helper** and **sharing your work** stay off until a grown-up says yes.

Read this page with a parent, a carer, or your teacher. Ask them anything you are not sure about.

**In the full policy:** Part B: Open Kita
{% endtab %}

{% tab title="13 to 15" %}
**You can sign up on your own.**

13 is the age you can agree to sign up yourself. So you can make an Open Kita account and start using it.

Two things still need a grown-up to say yes: the **AI helper** and **sharing your work**. Kita emails the address you give for your parent or carer. Those two stay off until they reply.

You are starting to make your own choices here. That is fine. But you do not have to work it out alone. Ask a grown-up if you are unsure.

**In the full policy:** Part B: Open Kita
{% endtab %}

{% tab title="16 to 17" %}
**More of the choices are yours.**

You can sign up on your own. You can use the AI helper without an account too.

A parent or carer still says yes to the **AI helper** and to **sharing your work** while you are under 18. They also agree to the terms on your behalf.

Here is what to weigh up before you share work. Anything you share can be seen by other people. Anything you type into the AI helper is stored for 90 days. Neither is used to train AI models, and neither is sold. Sharing is always your own choice. Kita never shares your work for you.

If any of that worries you, check with a parent, a carer, or your teacher first.

**In the full policy:** Part B: Open Kita · Part C: Anonymous AI use
{% endtab %}

{% tab title="Not signed in" %}
**You can try Kita without an account.**

You can try courses. You can make projects. You can join a temporary **Quick Course** and code on a file with other people.

Two things to know:

* Anything you make in a Quick Course is **deleted after 24 hours**. Want to keep it? Make an account.
* You can use the **AI helper** without an account only if you are **13 or over**. You will be asked to confirm that first.

**In the full policy:** Part C: Anonymous AI use
{% endtab %}
{% endtabs %}

#### When to ask a grown-up

There are four points where a grown-up can help you:

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FQnuIS8zlYWRMgtYGSjop%2Fkita-when-to-ask.png?alt=media&amp;token=51f6f23f-40d1-4c2a-98e6-078590bf7dfd" alt=""><figcaption></figcaption></figure>

1. **When you join.** A parent, carer or teacher can read this page with you and help you set up your account.
2. **When the AI helper is turned on.** If you are under 18, your parent or carer says yes to this.
3. **When you share your work.** If you are under 18, your parent or carer says yes to this too.
4. **When you want to see, change or delete your information.** At school, ask your teacher. On Open Kita, the account is yours, so you can ask Kita yourself.

You can ask for help at any other time too. You do not have to wait for one of these.

#### For parents and carers

This section carries the detail behind the simpler explanations above. The two sit side by side deliberately: the student guide is shorter, not less honest.

{% tabs %}
{% tab title="Consent" %}
**Under 13.** An Open Kita account does not function until you confirm by email. Sharing and AI features stay off until then.

**13 to 17.** Your child can use Open Kita straight away, but sharing and AI features stay off until you confirm by email.

**At school.** The school is the data controller and handles consent and safeguarding through its own policies. Raise any question about your child's data with the school first.

Consent can be withdrawn at any time. Using Kita is not conditional on agreeing to general data processing. Where consent is the lawful basis for something specific, it is requested separately.

**In the full policy:** Part B: Open Kita · Lawful bases and data protection rights
{% endtab %}

{% tab title="The AI" %}
Kita's AI provider is Microsoft Azure OpenAI Service, hosted in the **UK South region**. Prompts and outputs do not leave the UK.

Your child's inputs are **never** used to train, retrain or improve AI models, and are not shared with OpenAI.

AI output is advisory. Kita does not make automated decisions about students that have legal or similarly significant effects. Teachers review everything and hold final judgement.

Kita aligns with the UK Government's Generative AI Product Safety Standards for education. Content moderation and safety controls are built in.

AI messages are kept for 90 days, then deleted.

**In the full policy:** Using generative AI for student feedback · Part C: Anonymous AI use
{% endtab %}

{% tab title="Where data lives" %}
Hosting is in the **UK and the EEA** (Ireland and Germany). AI processing is in the **UK** only.

Some processors sit outside the UK: a payment provider and documentation and analytics providers in the US, and a provider in Singapore. Each transfer is covered by the UK International Data Transfer Agreement or EU Standard Contractual Clauses. Every processor is bound by a data processing agreement.

You can request a copy of the safeguards for any transfer by emailing <hello@getkita.com>.

**In the full policy:** Who we share information with · International data transfers
{% endtab %}

{% tab title="Marketing" %}
Personal data is never sold.

Personal data of anyone **under 18** is never used for marketing. Neither is student data provided through a school.

Only Open Kita users aged 18 or over are asked to opt in to product updates and marketing, and they can unsubscribe at any time.

Kita does not use behavioural advertising cookies or student profiling cookies.

**In the full policy:** Teacher and administrator data · Cookies and automatic technical information
{% endtab %}

{% tab title="Exercising rights" %}
Access, rectification, erasure, restriction, portability, objection, and withdrawal of consent all apply. Kita responds within one month.

**Route your request correctly.** If your child uses Kita through a school, the school or teacher is the data controller, so make the request to them. For everything else, email <hello@getkita.com>.

Safeguarding records are the one exception to erasure: schools and Kita may be legally required to retain them.

**In the full policy:** Your rights
{% endtab %}

{% tab title="Talking about it together" %}
Four questions that work well with a child of any age using Kita:

1. **"Show me your nickname on Kita."** Opens up why they are not using their real name, and who can see it.
2. **"What would you type in if a program asked for your address?"** The most-broken rule, caught before it happens.
3. **"Show me what the AI helper said to you."** Makes AI feedback something you look at together, not something that happens privately.
4. **"Who do you think can see this project?"** Checks their mental model against reality before they share anything.

Ask them while they are actually on Kita. The answers mean more with the screen in front of you.

Revisit the conversation when something changes: a new school, a first personal device, or a birthday that unlocks a feature.
{% endtab %}
{% endtabs %}

#### The rules, in short

Kita is for learning to code. So keep it friendly:

* **Be kind.** No mean, rude or hurtful messages or code
* **Do not share anything personal.** Not about yourself, and not about anyone else
* **Do not snoop or break things.** No getting into other people's accounts
* **Do not share your password.** Not with anyone except your parent or carer

Break the rules and your teacher or Kita might give you a warning. Your account could be paused.

***

### The full policy

{% hint style="info" %}
The student guide that closes this policy is reproduced at the top of this page, where students will actually find it.
{% endhint %}

This Privacy Policy explains how Kita Education Ltd ("Kita", "we", "us") processes personal data across our products:

* **Part A, School Kita:** Kita used by schools, multi-academy trusts, local authorities, and other education providers.
* **Part B, Open Kita:** the version of Kita freely available on the web to individual teachers and students.
* **Part C, Anonymous AI use:** the Open Kita AI assistant used without an account.

Sections after Parts A–C apply to all products unless stated otherwise.

#### Summary for school IT and data protection teams

|                            |                                                                                                           |
| -------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Hosting location**       | UK / EEA (Ireland, Germany)                                                                               |
| **Student data collected** | Minimal, no full dates of birth                                                                           |
| **AI use**                 | Teacher-controlled; student inputs never used for model training                                          |
| **Cookies**                | Essential, plus analytics to understand how the service is used, with no advertising or student profiling |
| **Contact**                | <hello@getkita.com>                                                                                       |

#### Who we are

**Organisation:** Kita Education Ltd, 65 Alfred Road, London, W2 5EU\
**Email:** <hello@getkita.com>

Kita is designed as an educational tool, built on data minimisation and safeguarding principles.

We design our services in line with the ICO's Age Appropriate Design Code (Children's Code), taking into account children's needs, ages, and stages of development.

#### Our roles under UK GDPR at a glance

| Data                                                | Data Controller                            | Kita's role    |
| --------------------------------------------------- | ------------------------------------------ | -------------- |
| Student data entered by a school (School Kita)      | The school                                 | Data Processor |
| Teacher, administrator, and business contact data   | Kita                                       | n/a            |
| Open Kita self-signup users (teachers and students) | Kita                                       | n/a            |
| Student data entered by an Open Kita teacher        | The teacher / their school or organisation | Data Processor |
| Anonymous AI assistant use                          | Kita                                       | n/a            |

### Part A: School Kita

#### How data protection works

**Schools as Data Controllers.** Where Kita is used by a school, multi-academy trust, local authority, or other education provider, that organisation is the Data Controller for student personal data. The school determines which students are given access to Kita, what student personal data is entered, and how the platform is used for teaching, learning, and assessment.

**Kita as Data Processor.** Kita processes student personal data only on the documented instructions of the school and in accordance with UK GDPR. We do not determine the purposes or means of processing student personal data.

#### What student information we process

When used by schools, the only student personal data processed is:

* A personal identifier (student's name, or a teacher-assigned identifier/pseudonym)
* An age declaration (over or under 13 years)

The over/under-13 age declaration is self-reported, not independently verified, and is used solely to support compliance and safeguarding controls, not profiling or automated decision-making. Kita does not collect or store a student's full date of birth.

Kita does not verify student age; responsibility for age assurance, parental consent, and safeguarding remains with the school as Data Controller.

#### Single sign-on

Where a school signs in via a supported identity provider (for example a Google or Microsoft school account), the identity provider shares the data needed to authenticate the user, typically name, school email address, and a unique identifier. Kita processes this solely on school instructions and only to provide the service.

### Part B: Open Kita

#### How data protection works

Open Kita is freely available on the web to individual teachers and students. For self-signup users, Kita is the Data Controller and processes personal data on the basis of consent and, where applicable, contract.

Where Open Kita is used by a teacher with their students, the teacher (and their school or organisation) is the Data Controller for student personal data they enter, and Kita acts as Data Processor on their instructions. Reasonable measures are taken to ensure teachers are aligned with a school or organisation and are able to assume this responsibility.

#### What information we collect, use and why

We collect some information about you to help us provide our services. We only collect what we need to make sure everything runs smoothly and safely:

* A personal identifier (self-selected pseudonym or display name)
* An email address
* Month and year of birth (never the full date of birth)
* Country
* For users under 18: a parent/guardian's email address

Month and year of birth are collected to apply age-appropriate safeguards. The age declaration is self-reported and is used solely to support compliance and safeguarding controls, not profiling or automated decision-making.

**Parental consent.** Users under 18 must provide a parent/guardian's email address. We email the parent/guardian to give or decline consent. Before consent is given, under-18 users have restricted access: they may not use the sharing or AI features. Users under 13 may not use the platform until parental confirmation is received.

Open Kita does not verify user age using technology; responsibility for age assurance sits with parents/guardians (and teachers, where they have obtained consent), and safeguarding remains with the teacher and school as Data Controller where applicable.

### Part C: Anonymous AI use on Open Kita

This part applies when the Open Kita AI assistant is used without an account. Where Open Kita is used with an account, Part B applies.

#### Summary

* AI processing location: UK (Azure OpenAI, UK South region)
* Anonymous AI use is for ages 13 and over only. Age is self-declared
* We collect only what you type into the assistant, plus limited technical data for security
* We don't ask for personal data, and you shouldn't enter it
* Your prompts are not used to train AI models
* Prompts are stored for 90 days, then deleted

#### Who can use the assistant anonymously

You can use the Open Kita AI assistant without signing in. Before you start using the assistant, you'll be asked to confirm you are aged 13 or over and to agree to this policy. If you are under 13, you cannot use the AI assistant anonymously. Younger users can access AI features through an account with the appropriate parental consent (see Part B).

#### What we collect and why

* **What you type into the assistant.** To generate a response
* **Limited technical information** (IP address, browser type, and access logs). To provide the service, keep it secure, and prevent misuse

We do not ask for your name, email, or date of birth for anonymous use, and we don't link your prompts to an identity. You are strongly discouraged from typing personal information (your own or anyone else's) into the assistant. Kita does not request this information, does not filter it out for you, and is not responsible for personal data you choose to enter.

**Lawful basis:** consent (you actively agree before use). The age confirmation supports safeguarding and compliance controls and is not used for profiling or automated decision-making.

#### How the assistant handles your data

* Messages are processed by Azure OpenAI Service in the United Kingdom (UK South region). Your data stays in the UK.
* Your prompts are not used to train AI models. Azure OpenAI does not use prompts or completions to train, retrain, or improve its models, and does not share them with OpenAI.
* AI responses are advisory only; we do not use AI to make automated decisions about you.
* What you type into the assistant is stored for 90 days on our servers, then deleted. Technical/security logs are kept only as long as needed for security and legal compliance.

Because anonymous use isn't linked to an identity, we usually can't connect a specific prompt back to you to action an individual-rights request. If you have questions or concerns, contact <hello@getkita.com>.

### All products

#### Using generative AI for student feedback

We use closed generative AI tools to help provide feedback on student work. Teachers can disable these features on a course-wide basis.

Kita aligns with the UK Government's Generative AI Product Safety Standards for use in educational settings. Our AI provider is Microsoft Azure OpenAI Service, hosted in the UK (UK South region).

AI features may:

* Generate itemised, formative feedback on code
* Highlight common errors
* Suggest next steps for learning

Safeguards:

* AI systems are restricted to providing feedback within the platform
* Student inputs are never used to train AI models
* Content moderation and safety controls are built in to reduce the risk of harmful or inappropriate outputs
* Use of AI is controllable by the teacher, and student interactions with AI can be supervised by the school
* Access to data is role-based and logged
* Teachers remain responsible for oversight and final judgement
* Kita does not make automated decisions about students that have legal or similarly significant effects under UK GDPR

#### Personalised learning and progress records

To personalise feedback and help teachers support their students, Kita builds and stores learning records derived from platform activity. These may include skill and progress estimates, common errors and misconceptions, engagement patterns, and teacher notes, and may be produced with the help of automated analysis. They are used solely for teaching, learning, and teacher oversight. It is never used for advertising, and never sold or shared for other purposes.

Automated analysis may highlight where a student might need teacher attention; teachers always review this and make any decisions. Kita does not make automated decisions about students that have legal or similarly significant effects under UK GDPR.

Detailed learning records are retained for up to 12 months; aggregated or summarised records may be kept for the duration of the service. Records are deleted on erasure requests, except safeguarding records, which schools and Kita may be legally required to retain.

We may also use anonymised and aggregated data, which can no longer identify any individual, to understand how Kita is used and to improve the platform.

#### Payments

Where a school or user pays for Kita, payments are handled by our payment provider (such as Stripe) or by bank transfer. Payment card details are collected and processed by the payment provider under its own terms and safeguards. Kita never stores full card numbers. We keep billing records (billing contact details, transaction and invoice records) for accounting and legal purposes.

#### User generated content

Kita stores code submissions and text responses so teachers and students can view progress and receive feedback. Users are strongly discouraged from including personal data (names, contact details, sensitive information) in code, responses, or comments. Kita does not request this information and is not responsible for personal data voluntarily included by users.

#### Teacher and administrator data

Kita acts as Data Controller for personal data relating to teachers, administrators, and school staff. This may include:

* Name and work email address
* Role and organisation
* Account credentials
* Support communications

This data is processed to provide the service, manage accounts, ensure security, and communicate essential service information. Where you opt in (over-18s only), we also use your email address to send product updates and marketing communications, and you can unsubscribe at any time. If you contact us or submit a form on our website (for example an enquiry or sign-up form), we use the details you provide to respond and to send any communications you have requested.

#### Cookies and automatic technical information

Kita uses essential cookies required for authentication and platform functionality, together with analytics and monitoring tools that help us understand how the service is used and operate and improve it, for example pages visited, features used, and performance and error data. We do not use behavioural advertising or student profiling cookies.

Like most online services, Kita automatically processes limited technical information (such as IP address, browser type, and access logs) where necessary to provide the service, maintain security, prevent misuse, and comply with legal obligations. This information is not used for advertising, profiling, or tracking students across services.

#### Lawful bases and data protection rights

Under UK GDPR, we must have a lawful basis for processing personal data. We rely on the following, depending on the context:

* **Contract.** Processing necessary to provide the Kita platform and related services
* **Legal obligation.** Processing required to comply with legal and regulatory requirements
* **Legitimate interests.** Limited processing to operate, secure, and improve the service, where this does not override individual rights
* **Consent.** Where explicitly required (for example: Open Kita account signup, use of the platform by under-18s, optional communications, or research participation)

#### Your rights

Under UK GDPR, individuals have the right to:

* **Access.** Request a copy of their personal data
* **Rectification.** Request correction of inaccurate or incomplete data
* **Erasure.** Request deletion of personal data, where applicable
* **Restriction.** Request limits on how data is processed
* **Portability.** Request transfer of personal data
* **Object.** Object to processing based on legitimate interests
* **Withdraw consent.** Where processing is based on consent

We will respond to rights requests without undue delay and within one month.

* Where a school or teacher is the Data Controller, student data rights should be exercised via them
* All other rights requests can be made by contacting <hello@getkita.com>

#### How long we keep information

<figure><img src="https://1176288822-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjzm9nyD2lhxeWS1B64j9%2Fuploads%2FTYo9wtpJs0pfkSeiCTM7%2Fkita-how-long.png?alt=media&amp;token=4f3808f5-f297-4290-9774-1da0eee3448b" alt=""><figcaption></figcaption></figure>

We do not keep your information forever, only as long as we need it, and then we get rid of it safely.

The retention periods below apply to personal data for which Kita acts as Data Controller. Student personal data processed on school or teacher instructions is retained only as long as required by the controller, or deleted on request. Upon termination of a school's use of Kita, student personal data is deleted or returned to the school within an agreed timeframe, unless retention is required by law. Upon termination of an Open Kita user account, data is deleted unless retention is required by law.

| Data                                      | What it covers                                                                                              | Retention                                                                                                        |
| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Names and contact details**             | Personal details used for service delivery, account management, and marketing (over-18s only for marketing) | 2 years after the last interaction or service provision, unless longer retention is justified                    |
| **Account information**                   | Registration details, login credentials, and account-related data                                           | 2 years after account closure or last activity, unless longer retention is required for legal reasons            |
| **AI conversation data**                  | Messages exchanged with AI features, including the anonymous assistant                                      | 90 days from creation                                                                                            |
| **Learning progress records**             | Derived records supporting personalised feedback and teacher insight                                        | Detailed records up to 12 months; aggregated summaries for the duration of the service                           |
| **Billing and payment records**           | Billing contacts, transactions, and invoices (never full card numbers)                                      | 6 years, in line with UK accounting and tax requirements                                                         |
| **Website user information**              | User journeys, cookies, and analytics data                                                                  | 1 year from collection, unless longer retention is justified for analytics or legal compliance                   |
| **Marketing preferences** (over-18s only) | Consent records and communication preferences                                                               | Until consent is withdrawn or 2 years from last engagement, whichever is sooner                                  |
| **Research data**                         | Data collected for research or archiving purposes                                                           | 6 months from the end of the research project, unless longer retention is required for legal or archival reasons |
| **Safeguarding information**              | Data related to safeguarding and legal compliance                                                           | As required by law, or 6 years, given the sensitive and compliance-driven nature                                 |
| **Queries, complaints, or claims**        | Records of interactions related to disputes or claims                                                       | 3 years from resolution, in line with UK legal and contractual record-keeping practice                           |

#### Who we share information with

We share personal information only when necessary to provide our services.

**Data Processors**

| Processor                               | Location      | Purpose                         |
| --------------------------------------- | ------------- | ------------------------------- |
| Authentication provider                 | EEA (Ireland) | User login and authentication   |
| Hosting/storage provider                | EEA (Ireland) | Secure data hosting and storage |
| Asset hosting                           | UK            | Hosting content and assets      |
| AI/LLM provider, Microsoft Azure OpenAI | UK            | AI feature processing           |
| Database provider                       | EEA (Germany) | Database hosting                |
| Payment provider (such as Stripe)       | US, with SCCs | Payment processing              |
| Analytics providers (as appointed)      | n/a           | Usage and performance analytics |
| Documentation provider                  | US, with SCCs | Usage and performance analytics |

All processors are bound by data processing agreements and appropriate safeguards.

#### International data transfers

Where necessary, we transfer personal information outside the UK with appropriate safeguards in place (UK IDTA / EU Standard Contractual Clauses). Data may be processed in:

* United Kingdom
* European Economic Area (Ireland, Germany)
* United States (with SCCs)
* Singapore (with SCCs)

For further information or to obtain a copy of the safeguards for any of these transfers, contact <hello@getkita.com>.

#### Keeping data safe

We use industry-standard security measures aligned with ISO 27001 principles, including:

* Encryption in transit and at rest
* Access controls and authentication
* Least-privilege, role-based access with logging
* Regular security monitoring and updates

#### How to complain

If you have any concerns about our use of your personal data, you can complain to us using the contact details at the top of this notice. If you remain unhappy after raising a complaint with us, you can complain to the ICO:

Information Commissioner's Office\
Wycliffe House, Water Lane, Wilmslow, Cheshire, SK9 5AF\
Helpline: 0303 123 1113\
Website: [ico.org.uk/make-a-complaint](https://www.ico.org.uk/make-a-complaint)


# Licensing and Attribution Policy

This page explains how getkita.org sources, licenses, and attributes third-party content used in our courses, lessons, and platform.

### Scope

This policy applies to any external material incorporated into our courses, lessons, or platform content, including:

* Text and written content
* Slide decks, worksheets, and quizzes
* Images, diagrams, and illustrations
* Video and audio content
* Datasets and structured data

### Licensing Statement

Except where otherwise stated, external content sourced from public sector or partner providers (for example, Teach Computing) is used under the Open Government Licence v3.0 (OGL v3).

OGL v3 is the standard open licence used across UK public sector and publicly funded education content, including material from the National Centre for Computing Education (NCCE) / Teach Computing, NCETM, and Oak National Academy. It is compatible with Creative Commons Attribution 4.0 (CC BY 4.0).

Under OGL v3, licensed content can be:

* Copied, published, distributed, and transmitted
* Adapted or modified
* Used commercially and non-commercially, including combined with other content or embedded into our own product

Full licence text: [Open Government Licence v3.0, The National Archives](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/)

### Our Obligations When Reusing Licensed Content

Whenever we use OGL-licensed content, or content from a provider such as Teach Computing, we must:

* **Keep it free.** Content reused under OGL terms must remain free to access. It must not be paywalled, sold, or otherwise restricted.
* **Acknowledge the source.** Credit the original publisher (for example, Teach Computing) using their specified attribution statement, where one is given.
* **Use the default OGL wording if no statement is specified:**

  > Contains public sector information licensed under the Open Government Licence v3.0.
* **Link to the licence** where possible, alongside the attribution.
* **Not imply endorsement.** Using a provider's content does not mean they endorse our product. Attribution must not suggest partnership or official backing unless one genuinely exists.

> Attribution is a condition of the licence, not a courtesy. Failing to acknowledge the source ends our right to use that content under OGL v3.

### Standard Attribution Format

Use the following format when crediting a source:

```
[Title] by [Publisher], licensed under Open Government Licence v3.0 (OGL)
```

**Example:**

```
"Introduction to Algorithms" lesson by Teach Computing, licensed under Open Government Licence v3.0 (OGL).
```

Where practical, link:

* The publisher name to their site or original resource page
* "Open Government Licence v3.0" to <https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/>

If content is used from multiple providers and listing each attribution individually isn't practical, we maintain a consolidated attribution page and link to it instead.

### Third-Party Copyright Within Sourced Content

Not everything within a provider's resources is necessarily covered by OGL v3. Before reusing content, we:

* Check whether the resource contains embedded third-party material (for example, licensed images, quoted text, external media) that may carry its own separate copyright or licence terms.
* Attribute third-party copyright according to its own licence, where present. OGL v3 attribution does not automatically cover it.
* Treat any element as not covered until confirmed, if unsure, and seek clarification from the source provider.

### What OGL v3 Does Not Cover

The following are excluded from OGL v3 and must not be reused as if freely licensed:

* Personal data contained within the content
* Organisation logos, crests, or brand marks, unless forming an integral, unaltered part of the licensed material
* Third-party rights the provider is not authorised to license
* Other IP rights, including patents, trademarks, and design rights

### References

* [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/) (The National Archives)
* UK Government Licensing Framework

***

*Questions about how a specific piece of content is licensed? Contact* [*support@getkita.org*](mailto:support@getkita.org)*.*


