Developer Quickstart¶
Fast onboarding path for contributors and junior devs.
1) Local setup¶
Optional for full runtime validation:
- install/auth at least one provider CLI (
claude,codex,gemini) - set up a messaging transport:
- Telegram: bot token from @BotFather + user ID (
allowed_user_ids) - Matrix: account on any homeserver (homeserver URL, user ID, password,
allowed_users) - for Telegram group support, also set
allowed_group_ids
2) Run the bot¶
First run starts onboarding and writes config to ~/.sygen/config/config.json.
Primary runtime files/directories:
~/.sygen/sessions.json~/.sygen/named_sessions.json~/.sygen/tasks.json~/.sygen/chat_activity.json~/.sygen/cron_jobs.json~/.sygen/webhooks.json~/.sygen/startup_state.json~/.sygen/inflight_turns.json~/.sygen/SHAREDMEMORY.md~/.sygen/agents.json~/.sygen/agents/~/.sygen/workspace/~/.sygen/logs/agent.log
3) Quality gates¶
Expected: zero warnings, zero errors.
4) Core mental model¶
Telegram / Matrix / API input
-> ingress layer (TelegramBot / MatrixBot / ApiServer)
-> orchestrator flow
-> provider CLI subprocess
-> response delivery (transport-specific)
background/async results
-> Envelope adapters
-> MessageBus
-> optional session injection
-> transport delivery (Telegram or Matrix)
5) Read order in code¶
Entry + command layer:
sygen_bot/__main__.pysygen_bot/cli_commands/
Runtime hot path:
sygen_bot/multiagent/supervisor.pysygen_bot/messenger/telegram/app.pysygen_bot/messenger/telegram/startup.pysygen_bot/orchestrator/core.pysygen_bot/orchestrator/lifecycle.pysygen_bot/orchestrator/flows.py
Delivery/task/session core:
sygen_bot/bus/sygen_bot/session/manager.pysygen_bot/tasks/hub.pysygen_bot/tasks/registry.py
Provider/API/workspace core:
sygen_bot/cli/service.py+ provider wrapperssygen_bot/api/server.pysygen_bot/workspace/init.pysygen_bot/workspace/rules_selector.pysygen_bot/workspace/skill_sync.py
6) Common debug paths¶
If command behavior is wrong:
sygen_bot/__main__.pysygen_bot/cli_commands/*
If Telegram routing is wrong:
sygen_bot/messenger/telegram/middleware.pysygen_bot/messenger/telegram/app.pysygen_bot/orchestrator/commands.pysygen_bot/orchestrator/flows.py
If Matrix routing is wrong:
sygen_bot/messenger/matrix/bot.pysygen_bot/messenger/matrix/transport.pysygen_bot/orchestrator/flows.py
If background results look wrong:
sygen_bot/bus/adapters.pysygen_bot/bus/bus.pysygen_bot/messenger/telegram/transport.py(orsygen_bot/messenger/matrix/transport.py)
If tasks are wrong:
sygen_bot/tasks/hub.pysygen_bot/tasks/registry.pysygen_bot/multiagent/internal_api.pysygen_bot/_home_defaults/workspace/tools/task_tools/*.py
If API is wrong:
sygen_bot/api/server.pysygen_bot/orchestrator/lifecycle.py(API startup wiring)sygen_bot/files/*(allowed roots, MIME, prompt building)
7) Behavior details to remember¶
/stopand/stop_allare pre-routing abort paths in middleware/bot./newresets only active provider bucket for the activeSessionKey.- session identity is transport-aware:
SessionKey(transport, chat_id, topic_id). /modelinside a topic updates only that topic session (not global config).- task tools now support permanent single-task removal via
delete_task.py(/tasks/delete). - task routing is topic-aware via
thread_idandSYGEN_TOPIC_ID. - API auth accepts optional
channel_idfor per-channel session isolation. - startup recovery uses
inflight_turns.json+ recovered named sessions. - auth allowlists (
allowed_user_ids,allowed_group_ids) are hot-reloadable. sygen agents addis a Telegram-focused scaffold; Matrix sub-agents are supported throughagents.jsonor the bundled agent tool scripts.
Continue with docs/system_overview.md and docs/architecture.md for complete runtime detail.