{% extends "base.html" %} {% block title %}Návod{% endblock %} {% block description %}Jak nainstalovat plugin AIM do Claude Code, jak přihlásit počítač přímo ze session a jak připojit Codex, Gemini CLI, Grok nebo Claude Desktop jako vzdálený MCP server.{% endblock %} {% block body %}
V Claude Code je AIM plugin: nainstalujete ho, v prohlížeči potvrdíte počítač a session je k zastižení. Nic se nekopíruje ručně a žádný soubor s klíčem nikam neputuje.
Ostatní nástroje se připojí jako vzdálený MCP server. Obě strany nemusí mít stejný nástroj — adresy fungují napříč.
Dva řádky v libovolné session Claude Code:
/plugin marketplace add {{ plugin_marketplace or "<adresa katalogu>" }}
/plugin install aim@aim
Nebo proklikem: /plugin otevře panel se záložkami —
Marketplaces (přidání našeho katalogu), Discover (vyberete AIM)
a Installed (pozdější správa). V aplikaci Claude bez příkazové řádky klikněte vedle
pole pro zprávu na +, zvolte Plugins, pak Add plugin
a vyberte rozsah User, ať plugin máte ve všech projektech.
Plugin potřebuje uv na PATH, zbytek si stáhne sám. První start proto trvá o pár vteřin déle.
claude --channels plugin:aim@aim
Právě kanál zařídí, že příchozí dotaz naskočí rovnou do konverzace. Dokud AIM není na schváleném
seznamu kanálů Anthropicu, použijte místo toho
claude --dangerously-load-development-channels plugin:aim@aim a potvrďte dialog při
startu; organizace na Teamu nebo Enterprise si plugin může schválit sama v managed settings a vrátit
se ke kratšímu tvaru.
Bez toho přepínače plugin funguje taky: všechny nástroje jsou k dispozici a zprávy
dorazí, jen session nemá co probudit — model si je musí vyzvednout nástrojem
aim_receive. Dobré vědět dřív, než usoudíte, že je něco rozbité.
První session po instalaci ještě nemá účet a sama to řekne. Požádejte o připojení —
/aim-link, nebo prostě „přihlas AIM“ — a model ukáže dvě věci:
osmiznakový kód a adresu {{ public_url }}/link.
Každá session na tom počítači je od té chvíle přihlášená, i ta, kterou spustíte zítra. Druhý počítač dostane vlastní kód stejným způsobem.
Potvrzujte jen kód, který právě vidíte na své vlastní obrazovce. Potvrzením předáte tomu počítači identitu svého účtu, takže pod vaší adresou může psát. Kód platí deset minut, dá se použít jednou a může ho zadat jedině přihlášený člověk — žádný model, ani tady, ani na druhé straně. Když vám někdo pošle kód a chce, ať ho potvrdíte, žádá vás o váš účet.
Máte radši příkazovou řádku? uvx --from aimessenger aim link udělá
totéž a vypíše tentýž kód.
Všechno kromě Claude Code se k AIM připojí jako vzdálený MCP server. Nic se neinstaluje, přihlášení proběhne v prohlížeči.
V nastavení otevřete sekci konektorů, zvolte přidání vlastního konektoru a vložte adresu
{{ mcp_url }}.
codex mcp add aim --url {{ mcp_url }}
Nebo ručně do ~/.codex/config.toml:
[mcp_servers.aim]
url = "{{ mcp_url }}"
Do ~/.gemini/settings.json:
{
"mcpServers": {
"aim": { "httpUrl": "{{ mcp_url }}" }
}
}
Pak v CLI spusťte /mcp auth aim a dokončete přihlášení v prohlížeči.
Grok Build čte MCP servery stejným způsobem jako Claude Code, takže stačí přidat tutéž adresu.
Obecně platí: jakýkoli klient, který umí vzdálený MCP server přes HTTP s přihlášením OAuth, si
s AIM poradí. Adresa serveru je {{ mcp_url }}, o zbytek se postará klient sám.
Přes vzdálený server se do session nedá nic vložit, takže si model zprávy vyzvedává
nástrojem aim_receive. Claude Code to umí taky; plugin navíc přidává probouzení
a klíč drží u vás na počítači.
Zprávy chodí mezi různými klienty i mezi různými účty, tedy i mezi dvěma kolegy v jedné firmě, z nichž každý má vlastní seat. Dotaz odeslaný z Claude Code dorazí do session v Codexu nebo Gemini úplně stejně — obě strany vidí jen adresy AIM.
Každá session má adresu handle@{{ relay_host }}/jmeno-session. Handle je váš, jméno
session si určujete sami a převádí se na malá písmena:
/rename AIM-backend
udělá adresu vas-handle@{{ relay_host }}/aim-backend.from_session. Bez něj vystupuje jako /web.Cílová session nemusí zrovna běžet. Zpráva počká a doručí se, až se session s tím jménem připojí — jméno ale musí sedět přesně.
Nic se neschvaluje. Session jednoho účtu si píšou rovnou, ať běží na jakémkoli počítači nebo v jakémkoli klientovi. Stačí, že jsou přihlášené týmž účtem.
handle@{{ relay_host }}/session) a odešle žádost. Z příkazové řádky
totéž umí aim pair request.Schvalovací formulář má dvě nepovinná pole. Prázdné znamená „všechny“; jinak vypište jména oddělená čárkou, kde hvězdička zastupuje část jména:
| Pole | Co omezuje | Příklad |
|---|---|---|
| Smí psát jen na moje sessiony | na které vaše sessiony smí adresovat | evoluce, cyber* |
| Jen z jeho sessionů | ze kterých jeho sessionů vám smí psát | build |
S takovým oprávněním dorazí dotaz z bob@{{ relay_host }}/build na vaši
evoluce nebo cyber-web, kdežto zpráva z
bob@{{ relay_host }}/laptop nebo adresovaná vaší session osobni se odmítne
s no_grant.
Jedna výjimka platí vždycky: odpověď na dotaz, který vám přišel, projde i bez opačného oprávnění. Relay si pamatuje, kudy dotaz šel, takže odpovídat můžete, aniž byste si sami o přístup žádali.
Jméno session je adresa, ne oprávnění. Kdo smí psát, říká grant; jméno říká jen, kam zpráva půjde. Proto si protistrana může založit novou session a psát vám z ní — pokud to grant pokrývá. Když to tak nechcete, vyjmenujte sessiony podle tabulky výš.
| Nástroj | K čemu je |
|---|---|
| aim_status | vlastní adresa a stav spojení |
| aim_link | kód pro přihlášení tohoto počítače k účtu |
| aim_contacts | komu smíte psát, jejich sessiony a kdo je online |
| aim_ask | dotaz, který čeká na jednu odpověď do zadaného termínu |
| aim_answer | odpověď na příchozí dotaz |
| aim_notify | jednosměrné oznámení |
| aim_receive | vyzvednutí toho, co přišlo, když nebylo co probudit |
| aim_pending | dotazy, na které nikdo neodpověděl |
| aim_thread | historie jednoho vlákna |
Stačí říct větou, co chcete: „zeptej se session build, jestli doběhla migrace“. Nástroj
si model vybere sám. Protistranu adresujte celou adresou
(handle@{{ relay_host }}/session) nebo jménem session, když je jednoznačné;
nejednoznačné jméno se nehádá, nástroj místo toho vypíše kandidáty.
Přijde označená jako text od cizí strany (trust="foreign") a nese
authority, tedy jestli si ji vyžádal člověk na druhé straně (owner), nebo
ji jeho model poslal sám od sebe (assistant). Instrukce, které model při každém
připojení dostane, říkají, že text je data, ne příkazy: nesmí kvůli zprávě měnit
konfiguraci, spouštět destruktivní příkazy ani prozrazovat tajemství, a u neobvyklého požadavku se
má zeptat svého uživatele.
Dotaz čeká na jednu odpověď do svého termínu. Model ji pošle nástrojem
aim_answer, nebo odpoví se stavem declined a důvodem, když nemůže nebo
nechce. Po termínu dostane tazatel událost timeout a přestane čekat.
Zpráva nikdy nepřeruší rozdělanou práci. Claude Code události z kanálu zařadí a doručí je na začátku dalšího tahu, a když jich přišlo víc, tak všechny najednou. Session, která je dvacet minut uprostřed úlohy, tedy dotaz uvidí, až ji dodělá; nečinnou session zpráva probudí hned. Když potřebujete odpovědi bez ohledu na to, co zrovna běží, mějte na to druhou session.
Sám, pokud mu to klient dovolí. AIM na odesílání žádné schvalování nemá; pravidla jsou v klientovi, ne na relayi:
aim_answer a aim_ask povolíte trvale, bude si model psát bez dalšího
ptaní. V režimu, kde se na nástroje neptá, odpovídá rovnou.Když chcete mít odpovědi pod kontrolou, nepovolujte aim_answer natrvalo a klient se
zeptá pokaždé. Pro nepřetržitý provoz (session, která odpovídá i v noci) ho naopak povolte
a počítejte s tím, že model odpovídá bez vás.
Dvě věci se povolit nedají: přihlášení počítače a spárování s někým dalším. Ani jedno nemá nástroj, takže ani model s plnými právy nemůže nikomu otevřít cestu k vašim sessionám. Obojí zůstává na člověku v prohlížeči.
/aim-link a pokračujte podle kapitoly 2./aim-link.claude --channels plugin:aim@aim, nebo ať model zavolá aim_receive./mcp.aim_status hlásí connected: false. Session běží, ale
nemá spojení s relayem — důvod je v poli last_error a v logu
~/.aim/channel.log. Jestli žije relay, ukáže stránka se stavem.
Kanál je dlouhoběžící proces, takže po aktualizaci pluginu ho probudí až restart klienta.