Crossbill Koreader plugin to upload highlights to Crossbill
Lua
4
190 commits
updated Sep 26, 2026
Syncs your KOReader highlights to your Crossbill server.
Copy the crossbill.koplugin directory to your KOReader plugins folder:
koreader/plugins/.config/koreader/plugins/ (Linux/Mac) or %APPDATA%\koreader\plugins\ (Windows)Restart KOReader
Open any EPUB and go to: Menu → Tools → Crossbill → Settings → Configure Server
Enter your Crossbill server host URL (e.g., http://192.168.1.100:8000)
While the plugin should work on any device running KOReader, it has been specifically tested on:
The default server URL is http://localhost:8000. You'll need to change this to your actual Crossbill server host address.
Copy .env.example to .env and set KOREADER_PLUGINS_PATH to your device's KOReader plugins folder, then use the Makefile:
make install # copy the production plugin to the device
make install-test # copy the test plugin to the device
make install-all # copy both
make lint # luacheck
make format # stylua
make test # busted unit tests
make check # lint + formatting check + tests
make help # list all targets
The test plugin is a renamed copy of the production one with its own settings key and databases, so both can run side by side
with different server configurations. make install/install-test/install-all wrap scripts/copy_to_pocketbook.sh, which
can also be called directly with production, test or all.
Linting, formatting and testing need luacheck,
StyLua and busted;
run make tools for install commands.
Unit tests live in spec/ and run under busted, the same framework KOReader itself uses:
make test # the whole suite
busted spec/settings_spec.lua # one file
busted --filter "client_book_id" # tests whose name matches
The plugin's modules require things that only exist inside KOReader (logger, docsettings,
ffi/sha2). spec/support/koreader/ holds thin stand-ins for those, and .busted puts that
directory on package.path, so the plugin sources need no test-only branches. See
spec/support/koreader/README.md before adding a stub.
Tests target Lua 5.1, matching the LuaJIT that KOReader runs plugins on.
Lua
95.8%
Shell
3.9%
Crossbill Koreader plugin to upload highlights to Crossbill
Lua
4
190 commits
updated Sep 26, 2026
Syncs your KOReader highlights to your Crossbill server.
Copy the crossbill.koplugin directory to your KOReader plugins folder:
koreader/plugins/.config/koreader/plugins/ (Linux/Mac) or %APPDATA%\koreader\plugins\ (Windows)Restart KOReader
Open any EPUB and go to: Menu → Tools → Crossbill → Settings → Configure Server
Enter your Crossbill server host URL (e.g., http://192.168.1.100:8000)
While the plugin should work on any device running KOReader, it has been specifically tested on:
The default server URL is http://localhost:8000. You'll need to change this to your actual Crossbill server host address.
Copy .env.example to .env and set KOREADER_PLUGINS_PATH to your device's KOReader plugins folder, then use the Makefile:
make install # copy the production plugin to the device
make install-test # copy the test plugin to the device
make install-all # copy both
make lint # luacheck
make format # stylua
make test # busted unit tests
make check # lint + formatting check + tests
make help # list all targets
The test plugin is a renamed copy of the production one with its own settings key and databases, so both can run side by side
with different server configurations. make install/install-test/install-all wrap scripts/copy_to_pocketbook.sh, which
can also be called directly with production, test or all.
Linting, formatting and testing need luacheck,
StyLua and busted;
run make tools for install commands.
Unit tests live in spec/ and run under busted, the same framework KOReader itself uses:
make test # the whole suite
busted spec/settings_spec.lua # one file
busted --filter "client_book_id" # tests whose name matches
The plugin's modules require things that only exist inside KOReader (logger, docsettings,
ffi/sha2). spec/support/koreader/ holds thin stand-ins for those, and .busted puts that
directory on package.path, so the plugin sources need no test-only branches. See
spec/support/koreader/README.md before adding a stub.
Tests target Lua 5.1, matching the LuaJIT that KOReader runs plugins on.
Lua
95.8%
Shell
3.9%