Skip to content

CLI ​

text
rooftop [serve] [OPTIONS]        run the web server (the default)
rooftop parse <DIR>              print the normalized export as JSON
rooftop convert [OPTIONS] <DIR>  print the {model, messages, tools} for an export

serve ​

FlagVariableDefault
--addrROOFTOP_ADDR127.0.0.1:8080
--dataROOFTOP_DATA./data
--importROOFTOP_IMPORT–
--passwordROOFTOP_PASSWORD–
--max-upload-mbROOFTOP_MAX_UPLOAD_MB0 (unlimited)
--trust-proxyROOFTOP_TRUST_PROXYfalse
--telegram-tokenTELEGRAM_BOT_TOKEN–
--telegram-chatTELEGRAM_CHAT_IDevery group the bot joins
--telegram-apiTELEGRAM_API_URLhttps://api.telegram.org
--offlineROOFTOP_OFFLINEoff
--relay-domainROOFTOP_RELAY_DOMAIN–
--relay-bot-tokenROOFTOP_RELAY_BOT_TOKEN–
--relay-max-accountsROOFTOP_RELAY_MAX_ACCOUNTS5000

--offline refuses non-local model and MCP endpoints and turns off internet sharing and the Telegram bot (Offline & privacy). It can't be combined with --relay-domain. What each one does: Configuration.

parse and convert ​

sh
rooftop parse   ./examples/telegram                          # normalized JSON
rooftop convert ./examples/telegram --persona "Jonas Weber"  # what the model receives
convert flagDefault
--personathe chat title / other personwho the LLM speaks as
--userthe other participantwho the human plays
--budget120000history budget in characters

In the app, the { } button shows the same JSON for the current chat.

Released under the MIT License.