ఫోన్ నుంచి Hermes agent ను ఎలా చేరుకోవాలి
VPS పై నడుస్తున్న Hermes agent ను ఫోన్లో ఉపయోగించేందుకు private mesh, public HTTPS endpoint, లేదా SSH మార్గాలను పోల్చండి. ఫోన్ పోతే access ఎలా revoke చేయాలో తెలుసుకోండి.
మీ ఫోన్ నుంచి మీ Hermes agentను చేరుకునే మూడు మార్గాలు
మీ ఫోన్ నుంచి Hermes agentను చేరుకోవడానికి దాని web dashboardను ఉపయోగిస్తారు. ఆ dashboard ముందు ఏమి ఉంచాలన్నదే ప్రధాన నిర్ణయం. మొదటి మార్గం private mesh network. ఇందులో dashboard Tailscale addressపై మాత్రమే విని, internetకు ఏ port కూడా బహిర్గతం కాదు. రెండవ మార్గం TLS (transport layer security) మరియు login కలిగిన reverse proxy వెనుక public endpoint. ఇందులో మీ serverలోని terminalకు రక్షణగా ఉండేది ఆ login మాత్రమే. మూడవ మార్గం terminal app నుంచి SSH (secure shell). దీనికి అత్యల్ప setup అవసరం, కానీ అత్యధిక access అందిస్తుంది.
ఈ guide మీ స్వంత VPSలో Hermes agentను నడపడం ముగిసే చోట ప్రారంభమవుతుంది. Agent install అయింది, అది command lineలో సమాధానం ఇస్తోంది, ఇప్పుడు దాన్ని మీ phoneలో ఉపయోగించాలనుకుంటున్నారు.
క్రింది commands v2026.8.3 tag ఆధారంగా రాయబడ్డాయి. ఈ tag 3 August 2026న publish అయింది, release notesలో v0.20.0గా ఉంది. Hermes తరచుగా releases చేస్తుంది. అందువల్ల mainను అనుసరించకుండా machineను ఒక tagకు pin చేయండి. Installer ఒక commitను అంగీకరిస్తుంది:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --commit 3c27eb6234bf
hermes --versionhermes --version వాస్తవంగా install అయినదాన్ని చూపిస్తుంది. ఈ పేజీలోని ఏదైనా flagను నమ్మే ముందు, దాన్ని tagతో పోల్చండి.
రిపాజిటరీలో ఏమి అందుబాటులో ఉంది, ఏమి లేదు
Hermes రిపాజిటరీలో iOS లేదా Android యాప్ లేదు. Native client hermes desktop (alias hermes gui). ఇది macOS, Windows మరియు Linux కోసం రూపొందించిన Electron అప్లికేషన్. ఇది స్థానిక agent కు బదులుగా remote agent కు కనెక్ట్ కావచ్చు: Settings లోని Gateway విభాగంలో remote URL ను http://<server-address>:9119 గా సెట్ చేయండి, లేదా దీన్ని ప్రారంభించే ముందు HERMES_DESKTOP_REMOTE_URL=http://<server-address>:9119 ను export చేయండి. ఇది రెండో laptop సమస్యను పరిష్కరిస్తుంది. ఫోన్కు మాత్రం ఇది ఉపయోగపడదు.
ఫోన్లో మీరు ఉపయోగించేది hermes dashboard, అంటే browser interface. ఇది configuration, sessions, cron jobs, skills, logs మరియు messaging platforms ను నిర్వహిస్తుంది. ఇందులో terminal కూడా ఉంటుంది: server ఒక PTY (pseudo-terminal) వెనుక hermes --tui ను ప్రారంభించి, దాని output ను పేజీలోకి stream చేస్తుంది. చిన్న screen పై session switcher slide-over panel గా ముడుచుకుంటుంది. అందువల్ల layout ఫోన్లో కూడా సరిగ్గా పనిచేస్తుంది.
డిఫాల్ట్గా dashboard 127.0.0.1:9119 పై listen చేస్తుంది. ఇది server లోనే browser tab ను తెరుస్తుంది. headless VPS (virtual private server) లో ఇది ఉపయోగం ఉండదు. Browser లేకుండా దీన్ని ప్రారంభించి, socket ను పరిశీలించండి:
hermes dashboard --no-open
ss -lntp | grep 9119127.0.0.1:9119 పై ఉన్న listener ను server నుంచే చేరుకోవచ్చు. 0.0.0.0:9119 పై ఉన్న listener ను machine అనుసంధానమైన ప్రతి network నుంచి చేరుకోవచ్చు. ఇందులో public network కూడా ఉంటుంది. మీరు ఎంతవరకు exposed అయ్యారో ఆ ఒక్క line నిర్ణయిస్తుంది. అందువల్ల ఊహించకుండా దానిని పరిశీలించండి.
Tailscaleతో private mesh: ఎంపిక 1
దీనిని ఎంచుకోకుండా ఉండటానికి ప్రత్యేక కారణం లేకపోతే, ఇదే ఎంపికను ఉపయోగించండి. Tailscale అనేది WireGuardపై నిర్మించిన mesh VPN (virtual private network). మీరు నమోదు చేసే ప్రతి పరికరానికి స్థిరమైన address లభిస్తుంది, అలాగే అది ఇతర పరికరాలతో నేరుగా సంభాషిస్తుంది. మీ phone కూడా అదే meshలో చేరుతుంది. అందువల్ల dashboardకు public port అసలు అవసరం ఉండదు.
Serverపై:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale ip -4Phoneలో Tailscale appను install చేసి, అదే accountతో sign in చేయండి. తరువాత serverపై tailscale status అమలు చేస్తే phone పేరు కనిపిస్తుంది. ఇప్పుడు tailscale ip -4 చూపించిన addressకు dashboardను bind చేయండి:
hermes dashboard --host 100.101.102.103 --port 9119 --no-open0.0.0.0కు బదులుగా mesh addressకు bind చేయడం వల్ల listening socket Tailscale interfaceపైనే ఉంటుంది. మీ public IP addressను port scan చేసినా 9119పై ఏమీ కనిపించదు, ఎందుకంటే అక్కడ ఏదీ listening చేయడం లేదు. అందువల్ల మీ firewall ఒక్కటే రక్షణగా ఉండదు. దీన్ని మళ్లీ ss -lntp | grep 9119తో నిర్ధారించండి.
Bind address authenticationను కూడా నిర్ణయిస్తుంది. చాలామంది గమనించని అంశం ఇదే. 127.0.0.1పై public URL configure చేయకపోతే dashboardలో login ఉండదు. ఇతర ఏ addressపైనైనా auth gate తప్పనిసరి. Provider configure చేయకపోతే server ప్రారంభం కావడానికి నిరాకరిస్తుంది. Project దీన్ని failing closed అని పిలుస్తుంది. మొదటిసారి దీన్ని interactiveగా run చేస్తే, అక్కడికక్కడే username మరియు passwordను set up చేయమని అడుగుతుంది. అవి ~/.hermes/config.yamlలో dashboard.basic_authగా save అవుతాయి. బదులుగా ~/.hermes/.env ద్వారా అదే providerను configure చేయవచ్చు. Project యొక్క స్వంత worked exampleలో కూడా ఇదే విధానం ఉంది:
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=you
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD_HASH=scrypt$16384$8$1$...
HERMES_DASHBOARD_BASIC_AUTH_SECRET=a-long-random-stringఆ secretను openssl rand -hex 32తో generate చేసి, తరువాత దాన్ని మార్చవద్దు. ఇది session cookieపై sign చేస్తుంది. అందువల్ల దీన్ని మార్చితే ప్రతి device sign out అవుతుంది. అదే fileలో మీ model API keys కూడా ఉంటాయి. కాబట్టి chmod 600 ~/.hermes/.envతో దానికి private permissions ఉంచండి.
నమ్మకంగా ఉపయోగించే ముందు meshలోని మరో machine నుంచి gateను పరీక్షించండి:
curl -s http://100.101.102.103:9119/api/status | jq '.auth_required, .auth_providers'true తరువాత ["basic"] కనిపిస్తే gate enabledగా ఉంది, అలాగే సమాధానం ఇస్తున్నది password provider అని అర్థం. ఆ provider గురించి project documentation స్పష్టంగా చెబుతుంది: ఇది trusted network లేదా VPN కోసం ఉద్దేశించబడింది. Public internetకు ఎదురుగా ఉన్న dashboardకు ఇది సరిపోదు. Meshలో మీ పరిస్థితి ఖచ్చితంగా ఇదే.
Tailnetలో HTTPS కోసం portను Tailscaleకు అప్పగించండి:
sudo tailscale serve --bg localhost:9119
sudo tailscale serve statusMachine యొక్క MagicDNS name కోసం జారీ చేసిన certificateతో Tailscale TLS termination చేస్తుంది. అందువల్ల browser warning చూపించదు, అలాగే session cookieలో దాని Secure flag ఉంటుంది. ముందుగా Tailscale admin consoleలోని DNS pageలో MagicDNS మరియు HTTPS Certificatesను enable చేయండి. అక్కడ acknowledgementను కూడా చదవండి: మీ machine names మరియు tailnet DNS name public certificate transparency ledgerలో publish అవుతాయి. దాన్ని ఎవరైనా చదవగలరు.
ఇక్కడ నిజమైన వ్యయం coordination server. మీ phone మరియు VPS మధ్య traffic end-to-endగా encryptedగా ఉంటుంది. అది Tailscale ద్వారా వెళ్లదు. అయితే ఏ devices meshకు చెందినవో నిర్ణయించే account మీ hardwareలో ఉండదు. ఇది ముఖ్యమైతే, మీరు స్వయంగా నిర్వహించే Tailscale control server అయిన Headscaleతో control planeను మీరే run చేయండి. తరువాత tailscale up --login-server https://headscale.example.comను ఉపయోగించి clientsను దానికి point చేయండి. Meshను వదిలి peersను manualగా configure చేయాలనుకుంటే, plain WireGuard మరియు Tailscale మధ్య comparisonలో మీరు వదులుకునే అంశాలు వివరించబడ్డాయి.
ఎంపిక 2: public HTTPS endpoint మరియు దానిలోని ప్రమాదం
కొన్నిసార్లు mesh అందుబాటులో ఉండదు. పని ఫోన్లో VPN client ను install చేయడానికి అనుమతి ఉండకపోవచ్చు. అప్పుడు dashboard ను reverse proxy వెనుక ఉంచాలి. dashboard ను loopback పై ఉంచి, certificate ను Caddy నిర్వహించనివ్వండి:
hermes.example.com {
reverse_proxy 127.0.0.1:9119
}Caddy స్వయంగా certificate ను పొందుతుంది మరియు renew చేస్తుంది. దాని reverse_proxy అదనపు directives లేకుండానే WebSocket upgrades ను pass through చేస్తుంది. Embedded terminal కు ఇది అవసరం. nginx లో Upgrade మరియు Connection headers ను మీరే జోడించాలి. ఆ పని యొక్క TLS భాగాన్ని nginx పై Certbot తో Let's Encrypt certificate జారీ చేయడం వివరిస్తుంది. Login callbacks సరైన host కు వెళ్లేలా Hermes కు దాని public name ను తెలియజేయండి:
dashboard:
public_url: "https://hermes.example.com"ఇప్పుడు అసలు ప్రమాదం. Auth gate, request ఎక్కడి నుంచి వచ్చిందనే దానిపై కాకుండా bind address పై ఆధారపడుతుంది. dashboard.public_url లేదా HERMES_DASHBOARD_PUBLIC_URL లో non-loopback host ను పేర్కొంటే, ప్రస్తుత releases gate ను కూడా enable చేస్తాయి. Backend loopback పై ఉన్నప్పటికీ ఇది జరుగుతుంది. అందువల్ల పై setting gate ను ప్రారంభిస్తుంది, provider configure చేసే వరకు dashboard start అవ్వదు. public_url ను unset గా ఉంచండి. అప్పుడు proxy వెనుక 127.0.0.1 కు bind అయిన dashboard కు request loopback నుంచి వచ్చినట్లు కనిపిస్తుంది. Login అవసరం లేదని నిర్ణయించి, proxy అనుమతించిన ఎవరికైనా సేవ అందిస్తుంది. మీరు ఏది configure చేసినా, వాస్తవంగా ఏమి public చేశారో తనిఖీ చేయండి:
curl -s https://hermes.example.com/api/status | jq '.auth_required'అది false ను చూపిస్తే, మీ server లోని terminal కు internet నుంచి ఒక URL దూరంలో మాత్రమే ఉంది. ఇందులో exploit ఏదీ ఉండదు. Logs లో కూడా ఎలాంటి హెచ్చరిక కనిపించదు. దీనికి రెండు పరిష్కారాలు ఉన్నాయి. కనీసం ఒకదాన్ని ఉపయోగించాలి. ఒకటి, proxy లో authentication ను అమలు చేయడం. ఇందుకోసం forward auth ద్వారా self-hosted single sign-on provider గా Authentik ను దాని ముందు ఉంచవచ్చు. మరొకటి, dashboard సొంత OIDC (OpenID Connect) provider ను configure చేయడం:
HERMES_DASHBOARD_OIDC_ISSUER=https://auth.example.com/application/o/hermes/
HERMES_DASHBOARD_OIDC_CLIENT_ID=hermes-dashboard
HERMES_DASHBOARD_OIDC_SCOPES="openid profile email"సరిగ్గా configure చేసినా, ఈ ఎంపికకు తగ్గించలేని కనిష్ఠ ప్రమాద స్థాయి ఉంటుంది. Public login page ను ఎవరైనా చేరుకుని attack చేయగలరు. దాని వెనుక మీ VPS లోని shell ఉంటుంది. Username మరియు password మాత్రమే దీనికి బలహీనమైన రక్షణ. అందుకే public binds కోసం docs OAuth లేదా OIDC ను సిఫార్సు చేస్తాయి. Login కు rate limit అమలు చేయండి. proxy ports మరియు SSH మినహా మిగతా అన్నింటికీ ufw ను closed గా ఉంచండి. Access log ను అప్పుడప్పుడు పరిశీలించండి.
మొబైల్ terminal నుంచి SSH మరియు mosh
తక్కువ శ్రమతో ఉపయోగించగల మార్గం ఇదే: ఫోన్లో terminal app ను install చేసి, అందులో SSH key ను load చేసి, agent యొక్క text interface ను ఉపయోగించండి.
ssh you@vps.example.com
tmux new -A -s phone
hermes --tuitmux new -A -s phone, phone అనే session కు జతచేయబడుతుంది. అలాంటి session లేకపోతే దాన్ని సృష్టిస్తుంది. అందువల్ల connection తెగిపోయినా agent నడుస్తూనే ఉంటుంది. తదుపరి సారి మళ్లీ అదే స్థలానికి చేరుకుంటారు. ఇదే విధానాన్ని ఫోన్ నుంచి Claude Code ను నిర్వహించడం లో కూడా ఉపయోగిస్తారు.
మొబైల్ network పై plain SSH ఉపయోగించడం అసౌకర్యంగా ఉంటుంది. ఫోన్ address మార్చినప్పుడు లేదా sleep లోకి వెళ్లినప్పుడు connection తెగిపోతుంది. Mosh దీనిని పరిష్కరిస్తుంది. ఇది UDP (user datagram protocol) పై నడుస్తుంది. Byte stream కు బదులుగా terminal state ను synchronize చేస్తుంది. అందువల్ల wifi నుంచి cellular కు మారుతూ నడిచినా session కొనసాగుతుంది:
sudo apt install -y mosh
sudo ufw allow 60000:61000/udpఫోన్ నుంచి mosh you@vps.example.com ను అమలు చేయండి. మీ ప్రస్తుత SSH login ద్వారా Mosh mosh-server ను ప్రారంభిస్తుంది. తరువాత session ను 60000 నుంచి 61000 మధ్యలోని UDP port కు మారుస్తుంది. అందుకే ఈ range ను open చేయాలి. ప్రతి session కు దాని స్వంత port మాత్రమే అవసరం. కాబట్టి ఒక server పై ఏకకాలంలో కొన్ని session లు మాత్రమే ఉంటే, 60000 నుంచి 60010 వరకు వంటి చిన్న range ను open చేయవచ్చు.
భద్రతకు సంబంధించిన ఖర్చు స్పష్టంగా ఉంటుంది. SSH session ఒక shell. Shell ద్వారా ఆ account చేయగలిగే ప్రతిదీ చేయవచ్చు. దొంగిలించబడిన, unlock చేసిన phone మరియు మీ files మధ్య agent యొక్క approval prompts మాత్రమే చివరి రక్షణగా మిగులుతాయి. ఇందుకోసం ప్రత్యేక non-root account ను ఉపయోగించండి. Key-only authentication ను ఎంచుకోండి. మీరు వెంట తీసుకెళ్లే device లో key పెట్టే ముందు VPS పై SSH ను harden చేయడం పూర్తి చేయండి.
మొబైల్ నెట్వర్క్లో ఏమి విఫలమవుతుంది
నాలుగు విషయాలు ప్రభావితమవుతాయి. వీటిలో ఏదీ configuration మార్చడం ద్వారా పరిష్కరించగల bug కాదు.
మీరు గమనించకుండానే dashboard మిమ్మల్ని logout చేస్తుంది. ఇది ఎంత త్వరగా జరుగుతుందనేది login provider పై ఆధారపడి ఉంటుంది. Username మరియు password provider defaultగా 12 గంటలు చెల్లే access token ను జారీ చేస్తుంది. దీనిని session_ttl_seconds, dashboard.basic_auth కింద నిర్దేశిస్తుంది. అయితే ఆ విలువ dashboard backgroundలో ఎంత తరచుగా refresh అవుతుందో మాత్రమే నియంత్రిస్తుంది; మీరు ఎంతకాలం signed in గా ఉంటారో నియంత్రించదు. ప్రతి refresh కొత్త 30 రోజుల refresh token ను సృష్టిస్తుంది. అందువల్ల refresh లేకుండా 30 రోజులు గడిచే వరకు password login కొనసాగుతుంది. HERMES_DASHBOARD_BASIC_AUTH_SECRET సెట్ చేయకపోతే backend restart కూడా login session ను ముగిస్తుంది. కారణం, Hermes ప్రతి ప్రారంభంలో కొత్త signing key ను రూపొందిస్తుంది. Nous Portal OAuth provider 15 నిమిషాల TTL (time to live) కలిగిన access token లను జారీ చేస్తుంది. Refresh token ను ఉపయోగించి backgroundలో వాటిని renew చేస్తుంది. ఆ refresh token ప్రతి వినియోగంలో rotate అవుతుంది. అందువల్ల access token ఒక్కటే expire కావడం వల్ల మిమ్మల్ని /login కు తిరిగి పంపదు. Refresh session కోల్పోవడం వల్ల మాత్రం అలా జరుగుతుంది. v0.21.3 కంటే ముందు విడుదలైన releasesలో (tag v2026.9.14, 14 September 2026న ప్రచురించబడింది), phone background నుంచి తిరిగి వచ్చినప్పుడు ఒకేసారి అనేక requests పంపే అవకాశం ఉండేది. అవి ఇప్పుడే rotate అయిన refresh token ను మళ్లీ ఉపయోగించేవి. దీంతో provider యొక్క reuse detection పనిచేసి మొత్తం session revoke అయ్యేది. మీరు తిరిగి login screen వద్దకు వచ్చినప్పుడు టైప్ చేస్తున్నది మొత్తం పోయి ఉండేది. v0.21.3 ఈ requests ను ఒకే refresh ను పంచుకునేలా చేస్తుంది. Nous Portal వైపు, refresh session ఇప్పుడు ప్రతి rotation సమయంలో తన 30 రోజుల వ్యవధిని పొడిగిస్తుంది. అయితే 30 idle days గడిస్తే session ముగుస్తుంది. ఈ పేజీ ప్రారంభంలో పేర్కొన్న v2026.8.3 pin పై కొనసాగితే, అప్పుడప్పుడు forced login ఎదురవుతుందని భావించండి. ఏదీ విరగలేదు. మళ్లీ sign in చేయండి.
Embedded terminal background tab ను తట్టుకోదు. Server PTY వెనుక TUI (text user interface) ను ప్రారంభిస్తుంది. Tab మూసినప్పుడు దాన్ని సక్రమంగా ముగిస్తుంది. మళ్లీ తెరిస్తే కొత్తదాన్ని ప్రారంభిస్తుంది. Memory తిరిగి పొందడానికి mobile browsers background tabs ను discard చేస్తాయి. అందువల్ల మరో app కు చాలాసేపు మారితే ఆ terminal ముగుస్తుంది. మీ chat history సురక్షితంగానే ఉంటుంది. Sessions serverలో నిల్వ ఉంటాయి, అలాగే hermes sessions list వాటిని ఇప్పటికీ చూపిస్తుంది. Terminalకు మళ్లీ attach కావడం సాధ్యం కాదు. కొనసాగిపోయే session అవసరమైతే SSH ద్వారా tmux ఉపయోగించండి.
Idle connections నిశ్శబ్దంగా ముగుస్తాయి. NAT (network address translation) table entries ను తిరిగి పొందడానికి mobile carriers idle TCP connections ను తొలగిస్తాయి. Screen ఆఫ్ అయిన తర్వాత phone network సేవలను దాదాపు పూర్తిగా ఆపివేస్తుంది. కొంతసేపు ఎలాంటి activity లేకుండా ఉన్న WebSocket మీరు unlock చేసే సమయానికి సాధారణంగా ఇప్పటికే dead అయి ఉంటుంది. Page మీరు దానిని touch చేసిన తర్వాత మాత్రమే reconnect అవుతుంది. అందుకే phoneలో SSH కంటే mosh మెరుగ్గా అనిపిస్తుంది. కోల్పోవడానికి దానికి connection ఎప్పుడూ ఉండదు.
ఏదీ notification push చేయదు. Dashboard గానీ SSH session గానీ మీ phone ను మేల్కొలపలేవు. Deviceలో Hermes app లేదు. అందువల్ల platform యొక్క push service కు మార్గం కూడా లేదు. దీర్ఘకాల agent run పూర్తవుతుంది. మీరు తదుపరి సారి చూసినప్పుడు మాత్రమే అది పూర్తయిందని తెలుసుకుంటారు.
సందేశ gateway ద్వారా notifications అందుతాయి
చివరి సమస్యకు పరిష్కారం gateway. ఇది agent ను చేరుకోవడానికి పూర్తిగా భిన్నమైన మార్గం. hermes gateway, Telegram, Discord, Slack, WhatsApp, Signal మరియు email సహా messaging platforms కు agent ను అనుసంధానిస్తుంది. మీ phone లో ఇప్పటికే push channel కలిగి ఉన్న, background delivery ను ఇప్పటికే నిర్వహించే, network disconnect అయినప్పుడు కూడా ఇప్పటికే సరిగా పనిచేసే app లో మీరు agent తో మాట్లాడవచ్చు.
hermes gateway setup
hermes gateway install
hermes gateway statushermes gateway install gateway ను systemd service గా register చేస్తుంది. అందువల్ల reboot తర్వాత అది మళ్లీ ప్రారంభమవుతుంది. Installer లోని gateway దశ ఈ పని మీ కోసం చేయవచ్చు. అయితే hermes dashboard కోసం installer ఎటువంటి unit ను సృష్టించదు. కాబట్టి restart తర్వాత dashboard స్వయంగా తిరిగి ప్రారంభం కాదు. మీరు ఆధారపడే ప్రతి భాగానికి unit రాయండి. ఫైల్ను ఎలా రాయాలో VPSలో systemd services మరియు timers రాయడం లో వివరించారు.
Conversation అవసరం లేకుండానే scheduled job కూడా అదే విధంగా ఫలితాన్ని పంపగలదు:
hermes send -t telegram -s "Backup report" -f /home/you/report.txtఇక్కడ authorization డిఫాల్ట్గా deny విధానంలో ఉంటుంది. Allowlist సెట్ చేయకపోతే మరియు GATEWAY_ALLOW_ALL_USERS unset గా ఉంటే, ప్రతి user నిరాకరించబడతాడు. ప్రారంభానికి ఇదే సరైన విధానం. మీకు అనుమతించాలనుకున్న accounts పేర్లను ~/.hermes/.env లో ఇవ్వండి:
TELEGRAM_ALLOWED_USERS=123456789
GATEWAY_ALLOWED_USERS=123456789లేదా numeric IDs ను paste చేయడానికి బదులుగా code-based pairing ఉపయోగించండి. Chat-style DM platforms కు ఇది default విధానం. ~/.hermes/config.yaml లోని unauthorized_dm_behavior: pair తో దీన్ని స్పష్టంగా సెట్ చేయవచ్చు. తెలియని account agent కు message పంపినప్పుడు, దానికి ఎనిమిది అక్షరాల code అందుతుంది. మీరు approve చేసే వరకు మరేమీ జరగదు:
hermes pairing list
hermes pairing approve telegram ABC12DEF
hermes pairing revoke telegram 123456789Codes ఒక గంట తర్వాత expire అవుతాయి. ఒక user ప్రతి పది నిమిషాలకు ఒక code ను అభ్యర్థించవచ్చు. ఐదు విఫల ప్రయత్నాల తర్వాత ఆ account కు ప్రాప్యత నిరోధించబడుతుంది.
దొంగిలించబడిన ఫోన్ వల్ల నష్టాన్ని పరిమితం చేయడం
మీ agent ను చేరుకోగల ఫోన్ మీ server పై commands అమలు చేయగల ఫోన్ కూడా అవుతుంది. ఫోన్లు పోగొట్టుకోవచ్చు. ఆ ఫోన్ను పట్టుకున్న వ్యక్తి ఏమి చేయగలడో ఇప్పుడే నిర్ణయించండి.
Approvals ను ఆన్లో ఉంచండి. approvals.mode యొక్క default విలువ smart. ఇది risk ను అంచనా వేయడానికి auxiliary model ను ఉపయోగిస్తుంది మరియు తక్కువ risk ఉన్న commands కు మాత్రమే స్వయంచాలకంగా approval ఇస్తుంది. దాన్ని off కు సెట్ చేయడం అంటే ప్రతిదీ --yolo తో run చేయడంతో సమానం. HERMES_YOLO_MODE=1 ద్వారా అదే పని environment ను ఉపయోగించి జరుగుతుంది. ఆ స్థితిలో agent తో మాట్లాడే ఫోన్ను మీ వెంట తీసుకెళ్లవద్దు. మీరు నిద్రిస్తున్నప్పుడు scheduled jobs తమకు తామే approval ఇవ్వలేని విధంగా approvals.cron_mode: deny సెట్ చేయండి.
approvals:
mode: smart
cron_mode: denyAgent దెబ్బతీయగల పరిధిని తగ్గించండి. terminal.backend: docker commands ను ఒక container లో run చేస్తుంది. ఆ container కొద్దిపాటి జాబితాలో ఉన్నవి తప్ప అన్ని Linux capabilities ను తొలగిస్తుంది, no-new-privileges ను సెట్ చేస్తుంది, process count కు పరిమితి విధిస్తుంది. అందువల్ల prompt బదులుగా container boundary గా పనిచేస్తుంది. terminal.cwd working directory ను నిర్దిష్టంగా నిర్ణయిస్తుంది. మీరు పేర్కొన్న directories కు మాత్రమే HERMES_WRITE_SAFE_ROOT మరియు write_file, patch ను పరిమితం చేస్తుంది. వాటి వెలుపల write చేయాలంటే approval తో override చేయలేని విధంగా అది block అవుతుంది.
export HERMES_WRITE_SAFE_ROOT=/home/you/projects:/home/you/.hermesHermes ఇప్పటికే ~/.ssh, ~/.aws, ~/.kube మరియు /etc/sudoers కు writes ను block చేస్తుంది. ~/.hermes/.env వంటి తన స్వంత secret stores కు కూడా అదే వర్తిస్తుంది. Disk లోని ఇతర ప్రదేశాల్లో ఉన్న Project .env files ను read చేయడం block అవుతుంది, కానీ అవి writable గానే ఉంటాయి. మీ approval settings ఏమైనా సరే, destructive commands యొక్క ఖచ్చితమైన జాబితాను కూడా అది reject చేస్తుంది. దీన్ని కనిష్ఠ రక్షణగా పరిగణించండి; మీ పూర్తి ప్రణాళికగా కాదు. Agent ను సాధారణ user గా run చేయండి; ఎప్పుడూ root గా run చేయవద్దు. unattended గా నడుస్తున్న ఏ coding agent కైనా ఇదే కారణం వర్తిస్తుంది. VPS పై Claude Code ను సురక్షితంగా నడపడం దీన్ని మరింత వివరంగా వివరిస్తుంది.
తరువాత అవసరం రాకముందే revocation దశలను రాసి ఉంచండి. Tailscale admin console లో device ను తొలగిస్తే mesh access వెంటనే నిలిచిపోతుంది. HERMES_DASHBOARD_BASIC_AUTH_SECRET ను మార్చి restart చేస్తే ప్రతి device లోని ప్రతి dashboard session చెల్లదు, ఎందుకంటే ఆ విలువ session cookie పై సంతకం చేస్తుంది. ~/.ssh/authorized_keys నుంచి phone యొక్క public key ను తొలగిస్తే SSH access ముగుస్తుంది. hermes pairing revoke telegram <user-id> messaging account ను తొలగిస్తుంది. Provider keys ను read చేయగల సమాచారం device లో ఏదైనా ఉంటే, hermes auth logout <provider> తో వాటిని తొలగించి upstream వద్ద కొత్త keys issue చేయండి.
ఫలితాన్ని ఊహించకుండా తనిఖీ చేయండి. ఇవి మీ స్వంత box పై run చేయాల్సిన commands. అవి print చేసే output మీ setup పై ఆధారపడి ఉంటుంది:
tailscale status
hermes pairing list
hermes logs gateway -n 100
hermes status --deepLogs ~/.hermes/logs/ కింద ఉంటాయి. Incident జరిగిన తర్వాత వాటిని చదవండి. Incident ఏదీ జరగనప్పుడు కూడా అప్పుడప్పుడు చదవండి.
FAQ
iOS లేదా Android కోసం అధికారిక Hermes mobile app ఉందా?
లేదు. Hermes repository ఒక command line interface, web dashboard, అలాగే macOS, Windows మరియు Linux కోసం Electron desktop client ను అందిస్తుంది. iOS లేదా Android కోసం first-party build లేదు. ఫోన్ నుంచి browser లో web dashboard, SSH client లేదా hermes gateway ద్వారా అనుసంధానించిన messaging platform ను ఉపయోగించాలి. Third-party mobile clients అందుబాటులో ఉన్నాయి. అయితే అవి మీ agent credentials ను కలిగి ఉండే third-party code. కాబట్టి వాటిని install చేయడానికి ముందు source ను పరిశీలించండి.
నా ఫోన్లో Hermes dashboard నన్ను ఎందుకు logout చేస్తుంది?
ఇది login provider పై ఆధారపడి ఉంటుంది. Nous Portal OAuth provider 15 minute TTL ఉన్న access tokens ను జారీ చేస్తుంది. ఇది rotating refresh token ద్వారా వాటిని background లో renew చేస్తుంది. అందువల్ల access token గడువు ముగియడం మాత్రమే మిమ్మల్ని /login కు పంపదు. v0.21.3 (tag v2026.9.14) కు ముందు విడుదలల్లో, background నుంచి తిరిగి వచ్చిన ఫోన్ ఒకేసారి అనేక requests పంపగలిగేది. అది ఇప్పుడే rotate చేసిన refresh token ను మళ్లీ పంపి, మొత్తం session ను revoke చేయించగలిగేది. దాంతో login తప్పనిసరి అవుతుంది. v0.21.3 ఈ సమస్యను పరిష్కరిస్తుంది. అయితే 30 days పాటు idle గా ఉన్న refresh session ఇప్పటికీ expire అవుతుంది. Username and password provider default గా 12 hour access token ను ఉపయోగిస్తుంది. దీన్ని session_ttl_seconds నిర్దేశిస్తుంది. ఇది dashboard background లో ఎంత తరచుగా refresh అవుతుందో మాత్రమే నియంత్రిస్తుంది. ఇది ప్రతి refresh సమయంలో మళ్లీ జారీ అయ్యే 30 day refresh token ద్వారా renew అవుతుంది. కాబట్టి password login 12 hours తర్వాత ముగియదు. ఈ provider తో HERMES_DASHBOARD_BASIC_AUTH_SECRET ను స్థిరమైన random value కు set చేయండి. ఇది లేకపోతే Hermes ప్రతి ప్రారంభంలో కొత్త signing key ను generate చేస్తుంది. దాంతో ప్రతి restart తర్వాత మీరు logout అవుతారు.
Hermes dashboard ను public internet పై సురక్షితంగా ఉంచవచ్చా?
మీరు స్వయంగా authentication ను verify చేసినప్పుడు మాత్రమే ఉంచవచ్చు. Bind address ఆధారంగా auth gate enable అవుతుంది. ప్రస్తుత విడుదలల్లో dashboard.public_url non-loopback host ను సూచించినప్పుడు కూడా అది enable అవుతుంది. అందువల్ల reverse proxy వెనుక 127.0.0.1 కు bind చేసిన dashboard కు public URL set చేయకపోతే, internet నుంచి వచ్చే users ను login అడగదు. curl -s https://your-host/api/status | jq '.auth_required' ను run చేసి, తిరిగి వచ్చే output ను చదవండి. Username and password కు బదులుగా OAuth లేదా OIDC ను ఉపయోగించండి. ఎందుకంటే password provider ను trusted networks మరియు VPNs కోసం మాత్రమే ఉపయోగించాలని project docs చెబుతున్నాయి. Private mesh ఉపయోగిస్తే ఈ సమస్య పూర్తిగా తొలగిపోతుంది. అందుకే అది మెరుగైన default.
నాకు Tailscale account అవసరమా, లేదా control plane ను self-host చేయవచ్చా?
మీరు దాన్ని self-host చేయవచ్చు. Headscale అనేది Tailscale coordination server యొక్క open implementation. Official Tailscale clients tailscale up --login-server https://headscale.example.com తో దానికి connect అవుతాయి. ఆ తర్వాత mesh లోకి అనుమతించే devices జాబితాపై మీకే నియంత్రణ ఉంటుంది. అయితే ఆ server ను ఇప్పుడు మీరే run చేసి backup చేయాలి. అది down గా ఉన్నప్పుడు device ను enrol చేయలేరు లేదా మళ్లీ authenticate చేయలేరు.
Agent ఒక job పూర్తి చేసినప్పుడు నా ఫోన్లో notification ఎలా పొందాలి?
Messaging gateway ను ఉపయోగించండి. ఫోన్ను మేల్కొలిపే విధానం dashboard మరియు SSH లో లేదు. ఎందుకంటే push స్వీకరించడానికి device లో Hermes app లేదు. hermes gateway setup తో agent ను Telegram, Signal, Discord లేదా ఇతర supported platform కు connect చేయండి. ఆ platform యొక్క స్వంత app notification ను deliver చేస్తుంది. hermes send -t telegram -s "Job done" -f /path/to/report.txt తో cron job ఒక single message ను కూడా push చేయగలదు. ఇది model ను call చేయకుండానే deliver అవుతుంది.