Kokkoja: first public assembly

Assembled from the development repository by tools/make_release.sh.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ackandClaude Fable 5.1 committed 2026-10-06 15:58:02 +02:00
commit 95c80d04c9
39 files changed
+9905

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
# Kokkoja
Kokkoja lets people at different computers write together on a shared
page, by hand or by typing, with every page saved automatically to each
person's own notebook. It runs in a web browser beside a video call and
replaces the call's screen sharing and annotation. It was made first for
teaching a foreign language over a video call, and it serves any work
that two or more people would otherwise do over one sheet of paper.
Kokkoja is free and open-source software.
## Documentation
* [An introduction](docs/introduction.md): what Kokkoja does and whom it
is for.
* [A guest's Kokkoja](docs/guest.md): joining a session from an
invitation, and the screen.
* [A host's Kokkoja](docs/host.md): installing the Kokkoja program,
starting a session, inviting guests, driving the session.
* [How Kokkoja works](docs/implementation.md): the parts, the encryption,
the page file, running a server.
## In short
A guest needs nothing but a web browser: open the invitation link, enter
a name, join.
A host needs Python 3 and this directory:
python3 kokkoja.py --relay wss://kokkoja.andykopra.com/relay
opens Kokkoja in the browser; *Start a session* gives an invitation to
send to the guests. Notebooks are directories in `Kokkoja` in the
Documents directory.
## What is here
* `kokkoja.py`: the local program, which serves the client to your
browser and keeps your notebooks as files. Python standard library
only.
* `client/`: the client, plain JavaScript modules run by the browser as
written.
* `relay/`: the relay server, Python with the `websockets` library.
* `deploy/`: how a Kokkoja server is set up (relay plus web site).
* `docs/`: the documentation above.
* `tests/`: the tests (`python3 -m unittest discover tests`; the
end-to-end test needs Firefox and geckodriver).