
सुरक्षा पर ध्यान केंद्रित करने वाला एक AI व्यक्तिगत सहायक।

Stavrobot एक व्यक्तिगत AI सहायक है जो "एक AI सहायक को जितनी पहुँच चाहिए, उससे ज़्यादा नहीं" के सिद्धांत पर बनाया गया है।
इसमें एक AI सहायक की सभी अच्छी सुविधाएँ हैं, लेकिन यह sandboxing, isolation, और minimal permissions पर केंद्रित है। यह हल्का है और केवल docker compose up के साथ deploy किया जाता है।
uv के माध्यम से pip dependencies के साथ मनमाना Python, host environment से अलग।AI-assisted install: अपने coding AI (Claude Code, Cursor, Windsurf, आदि) को बताएं कि https://stavrobot.stavros.io/INSTALL.md fetch करके follow करे — यह आपको पूरे setup के माध्यम से interactively मार्गदर्शन करेगा।
Manual install:
Telegram पर @BotFather को message करके एक bot बनाएं और token copy करें। अपनी Telegram user ID प्राप्त करने के लिए @userinfobot को message करें (यह chat ID के रूप में उपयोग किया जाता है)।
env.example को .env में copy करें और POSTGRES_PASSWORD को किसी सुरक्षित चीज़ में बदलें और TZ को अपने timezone में बदलें।
config.example.toml को data/main/config.toml में copy करें और आवश्यक fields भरें: apiKey, password, publicHostname, [owner].name, [owner].telegram (आपकी chat ID), और [telegram].botToken। फ़ाइल में बाकी सब कुछ optional है।
docker compose up --build
बस इतना ही। Telegram पर अपने bot को message करें और यह जवाब देगा। Signal, WhatsApp, email, और अन्य विकल्पों के लिए नीचे दिए गए विस्तृत setup sections देखें।
config.example.toml को data/main/config.toml में copy करें।authFile (या apiKey) और publicHostname set करें। बाकी सब कुछ optional है।env.example को .env में copy करें और अपना timezone (TZ) set करें। Postgres credentials और अन्य environment settings भी वहाँ override किए जा सकते हैं। हमेशा POSTGRES_PASSWORD को किसी सुरक्षित चीज़ पर set करें — default एक कमज़ोर placeholder है और production में इसका उपयोग नहीं किया जाना चाहिए।App शुरू होने के बाद, browser में config.toml edit करने के लिए /settings/config खोलें। यह
page HTTP Basic Auth द्वारा सुरक्षित है और raw configuration प्रदर्शित करता है, जिसमें इसमें
मौजूद कोई भी secrets शामिल हैं। एक valid save एक single <CONFIG_PATH>.bak backup बनाता है, नई
content save करता है, और app को restart करता है; यह किसी भी in-progress agent turn को बाधित करता है।
plugin-runner, coder, signal-bridge, और python-runner config.toml को केवल
तब पढ़ते हैं जब वे शुरू होते हैं। उन्हें प्रभावित करने वाले परिवर्तन, जैसे password, के लिए उन
containers को manually restart करना आवश्यक है।
Stavrobot को config.toml में baseUrl set करके किसी भी OpenAI-compatible endpoint (Ollama, LiteLLM, vLLM, आदि) या किसी custom Anthropic-compatible proxy की ओर इंगित किया जा सकता है। आवश्यक fields और example configurations के लिए config.example.toml देखें। reasoning = true केवल उन models के लिए set करें जो thinking support करते हैं, क्योंकि यही वह चीज़ है जो custom endpoint पर thinkingLevel को लागू करती है।
App दो authentication modes support करता है: API key या OAuth।
config.toml में apiKey set करें। किसी login या logout की आवश्यकता नहीं।config.toml में authFile set करें (एक path जहाँ credentials संग्रहीत किए जाएंगे)। login page Pi द्वारा support किए जाने वाले किसी भी OAuth provider के साथ काम करता है।
<your-hostname>/login पर जाएं। page पर दिए गए prompts का पालन करें, और credentials auth file में save हो जाते हैं। Stavrobot provider की headless login method चुनता है, इसलिए आपको कभी किसी unreachable localhost callback पर redirect नहीं किया जाता। Anthropic के साथ, Authorize चुनने के बाद, Anthropic एक code दिखाता है, जिसे आप copy करके Stavrobot login page में paste करते हैं। device-code flow वाले providers इसके बजाय Stavrobot page पर code दिखाते हैं, और आप इसे provider की site पर type करते हैं। यदि bot चलते समय auth expire हो जाता है, तो यह आपके messaging platform के माध्यम से आपको login URL के साथ एक message भेजता है।authFile path पर मौजूद फ़ाइल delete करें। bot अगले message पर missing credentials detect करेगा और आपको फिर से log in करने के लिए prompt करेगा।coder container optional है (केवल self-programming feature के लिए आवश्यक)। default रूप से यह subscription auth (OAuth) के साथ Claude Code का उपयोग करता है, जो मुख्य app के API key से अलग है। इसके बजाय Anthropic-compatible API endpoint का उपयोग करने के लिए, config.toml में [coder].apiKey और [coder].baseUrl दोनों set करें; Claude Code तब इन्हें ANTHROPIC_API_KEY और ANTHROPIC_BASE_URL के रूप में उपयोग करता है। top-level apiKey/baseUrl केवल मुख्य app के model को configure करते हैं और coder को कभी प्रभावित नहीं करते। दोनों [coder] keys में से केवल एक set करना एक startup error है।
Docker Compose profiles comma-separated हैं, इसलिए आप उन्हें combine कर सकते हैं (जैसे COMPOSE_PROFILES=signal,coder)।
.env फ़ाइल में COMPOSE_PROFILES को coder शामिल करने के लिए set करें (जैसे COMPOSE_PROFILES=coder, या यदि आप Signal भी उपयोग कर रहे हैं तो COMPOSE_PROFILES=signal,coder)।docker compose --profile coder up --build[coder].apiKey/[coder].baseUrl set किया है तो इसे और अगले step को skip करें): docker compose exec -u coder coder claude (यदि आपने log in नहीं किया है तो यह आपको log in करने के लिए prompt करेगा)।[coder].model को एक Claude Code model alias (sonnet, opus, या haiku) पर set करें।Signal के लिए एक अलग phone number आवश्यक है — आपका व्यक्तिगत नहीं। एक prepaid SIM या VoIP number काम करता है।