The format sets the starting rules
“Standard”, “Lecture” and “Council” are sets of starting values. You set the rules in the new class form and change them later: in the panel, from “Settings” in the class menu, or in the room itself with the lock button, “What you can do in this room”. Changes apply at once and participants don't need to rejoin; the server checks the rules on every action. The teacher can open a single cell to the group and keep the rest of the notebook locked.
What you can set
| Setting | What it means |
|---|---|
| When I open a cell to students | “They write together”: one shared cell for everyone. “Each answers alone”: every student gets an answer of their own, and the teacher sees them all in the console (Council). |
| Type in cells | Everyone or only the teacher. |
| Run code | Everyone, “One at a time” or the teacher. “One at a time” allows each student at most one cell per notebook, queued or running; “Run all” and running all cells above stay with the teacher. The rule also covers running files and the terminal. |
| A cell stops itself | After how many seconds the server interrupts a running cell; empty means never, which is the default. A notebook has one kernel and one shared queue to it: an endless loop in one cell holds up the other cells and the council attempts that run in that kernel — in a class whose council computes on machines, attempts run on a pool of workers, and such a loop does not hold them up. The limit applies to the teacher’s cells too. |
| Dangerous commands | Whether cells may run commands that shut the kernel down or wipe the whole room’s state: exit(), quit(), os._exit(), os.abort(), a fatal signal aimed at the kernel itself (os.kill, signal.raise_signal), %reset, %xdel, and among shell commands — kill, pkill and killall aimed at the kernel or at “everything”, shutdown, reboot, halt, init 0 and rm -rf of the class folder. Blocked by default: one such line in a shared notebook costs the whole class its variables. The rule applies to the teacher’s cells too — the kernel is shared, and there is a Restart button for that. sys.exit() is left alone: the kernel survives it. Inside a council attempt these commands never run, whatever this rule says. |
| Line numbers in code | “Hidden” or “Shown”. The numbers sit to the left of each line in code cells, and everyone in the room sees them at once — the teacher and the students alike, personal notebooks included. A line is easy to name aloud, and a Python error names its number (“line 7”). Hidden by default. This is not a permission, only how the notebook looks: the rule forbids nothing, and “End class” leaves it as it is. |
| Add and remove cells | Everyone, “Add only” or the teacher. With “Add only”, a student cannot delete even their own cell. |
| Put a document on the shared screen | Who controls the shared screen; everyone can still browse documents on their own. |
| Upload and edit files | Everyone or the teacher. Downloads are not affected by this rule; deleting, renaming and replacing an existing file by upload stay with the teacher. |
| Students’ personal notebooks | Whether a student may start their own notebook in the room — empty, or by bringing in an .ipynb from the class folder. An own notebook is always personal: its author and the teacher edit and run it, everyone else watches. Off by default. This is not the same as the row above, which is about the class’s shared folder. At most three own notebooks per person; the author may also remove their own. |
| Oracle in Act mode | For whom the oracle reads and changes files and runs code by itself: everyone, the teacher, or nobody. |
| Actions per request | The limit on oracle actions per request in “Act” mode: each read, edit and run counts separately. 0 means no limit, an empty field means the server setting; if the server sets a limit, a class can only lower it. |
| Oracle questions per hour | Limit per participant, no higher than the server's. Does not apply to the teacher. |
| Time between questions | No shorter than the server's interval. Does not apply to the teacher. |
| View version history | Who sees earlier versions of the notebook and who made each change. |
| Restart the kernel | Clears the notebook’s variables for everyone working in it; cell text and files are kept. In a personal notebook its author restarts the kernel. |
| Clear all output | The output of every cell in the notebook, the terminal history and the oracle feed. Clearing a single cell depends on permission to edit it. |
The cell lock
The teacher picks one of three states: Closed — the teacher edits and runs the cell; Open to all — the group types in this cell and runs it, even if the room rules keep that for the teacher, but can't delete or move it; Council — separate answers from each student. The “When I open a cell to students” setting decides what a click on the lock does; all three states are in the menu that opens when you press and hold the lock button or right-click it.
Access to a single notebook
The room rules apply to every notebook at once, but each notebook also has an access of its own. You change it from the “Access” menu on the notebook's tab; the menu is the teacher's.
| Access | What it means |
|---|---|
| As in the room | The class rules, unchanged. The default for every notebook, including the room's own. |
| Personal — author | The author and the teacher type, rearrange and run; everyone else watches. The author is whoever started the notebook during the class; a notebook created by the teacher has no author, and this option is unavailable for it. |
| Open to everyone | Any participant may type, rearrange and run, even if the room rules keep that for the teacher. |
| Teacher only | Only the teacher types and runs, even if the room is open. |
Access overrides exactly three rules — “Type in cells”, “Run code” and “Add and remove cells” — and what follows from them: formatting, “Apply” on an oracle proposal, clearing your own cell's output, moving cells, “Run all” and running cells above in that notebook. Everything else stays shared by the room: files, the terminal, the shared screen, restarting the kernel, history and the oracle.
Access belongs to the notebook, not to the file: renaming the file keeps it, removing the notebook from the room clears it. When access is not “as in the room”, the tab carries a short label: “personal · name”, “mine”, “open to everyone”, “teacher only”.
“End class” is stronger than notebook access: after the bell, personal and open notebooks are locked like everything else. “Resume class” brings them back.
Action rules and Python execution
The “Dangerous commands” rule is a speed bump, not a sandbox. It stops the lines a student types out of curiosity; it does not stop intent — ctypes, reloading the os module through importlib, a fork bomb, a segfault in a native library and globals().clear() all walk past it. The room’s terminal is a real shell and the guard does not reach it at all: whoever the “Run code” rule lets into the terminal (by default the whole room in a standard class, the teacher alone in a lecture or a council) can drop the kernel from there with one command.
Running Python has access to the room's files. Blocking uploads or edits in the interface does not stop code that is allowed to run from writing a file with open(...). Interface rules do not give each participant a separate file system.
Ending a class and moderation
“End class” leaves all actions to the teacher for now and keeps the settings and materials. “Resume class” brings back the previous rules. An empty room only means nobody is connected; it does not mean the class has ended.
To remove a participant, use “Remove from class…” in the “People” panel. Their access is blocked for 24 hours, tied to a marker in the browser; another browser or a private window can get around it. The participant's oracle questions and the answers to them are deleted, and version history won't bring them back; their Council attempts and run requests are deleted too. To lift the block early, click “Restore” in the “Removed from the class” list; deleted content is not restored.
This is a tool against disruption, not identity verification or exam proctoring.