Files
ackandClaude Fable 5.1 60ad747e32 Everyone has the same buttons; the view is personal
The host's rights and the co-host are gone: anyone in a session may
start a new page, put an image on the page, load a kept page, hide,
expand and shrink, and move or remove images and Hides; the page left
is kept in every notebook.  Fit and Normal scale act on your own screen
only.  A session goes on without whoever started it, and a newcomer to
an empty room starts page 1 with New.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-18 20:22:13 +02:00

49 lines
1.9 KiB
Markdown

# 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 software under the GNU General Public License, version
3 or later: see [LICENSE.md](LICENSE.md), which also says how the name
may be used.
## Documentation
The user documentation (an introduction, Kokkoja in five minutes,
using Kokkoja, and how Kokkoja works) is being moved
to a new format and is not in this repository at the moment. It will
return with a later release.
## In short
Joining needs nothing but a web browser: open the invitation link, enter
a name, join. Anyone can start a session from the same web site,
`https://app.kokkoja.com/`, with the notebooks kept in the
browser; everyone in a session has the same buttons.
Whoever wants notebooks as files needs Python 3 and this directory:
python3 kokkoja.py --relay wss://app.kokkoja.com/relay
opens Kokkoja in the browser; *Start a session* gives an invitation to
send to the others. 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).
* `tests/`: the tests (`python3 -m unittest discover tests`); the
end-to-end test needs Firefox and geckodriver, and the QR code's test
needs Node.js and `pip install -r tests/requirements.txt`.
* `LICENSE.md`: the license.