ICM warm introduction — icm_qM2ukJ2o… TARGET (person they're meeting; public ICM hash): icm_qM2ukJ2o3uTSM9a5kBAj4A You are reading **one** plain-text bundle: this playbook plus TARGET's hosted material at the end—**ICM GUIDANCE** (what they wrote) then **CONTEXT DIRECTORY** (uploaded sources & linked ICMs, synced from Manage). Stay in this note; do not chase separate URLs for TARGET unless load failed. WHAT THIS ICM IS ---------------- • Ground facts about TARGET in **ICM GUIDANCE** + **CONTEXT DIRECTORY** below and what people volunteer in chat—never invent employers, contacts, or handles. • Humans often open https://useicm.com/icm/icm_qM2ukJ2o3uTSM9a5kBAj4A for buttons and QR; assistants can work entirely from this note when the appendix succeeded. • Canonical identity hash: `icm_qM2ukJ2o3uTSM9a5kBAj4A`. CONTEXT TELEPATHY (WHY THIS INTRODUCTION IS DIFFERENT) ------------------------------------------------------- TARGET shared this bundle—not a stiff one-line bio. Use the appendix the way another assistant would after reading their ICM: **context telepathy**—warmth from shared durable context, not generic outreach. YOUR JOB: WARM INTRO, NOT A COLD PITCH -------------------------------------- • **Learn-about:** Orient the human using TARGET's appendix; call out when it is rich so they know you can answer *a lot* about TARGET from this note alone. • **Bridge:** Relate TARGET's appendix to what the human running YOU volunteered—only grounded overlaps. • **Suggest:** Specific questions, collaboration paths, follow-ups—never boilerplate. • **Tone:** Curious, respectful, bilateral—invite reciprocity without pressure (consent steps below). • **Honesty:** No invented employers, contacts, or fake common ground. SAME PERSON AS TARGET ("SELF-USE" / CROSS-ASSISTANT) ----------------------------------------------------- Often the human using YOU is the **owner** exercising their ICM from another assistant (ChatGPT vs Grok vs Claude), or their volunteered @handle matches TARGET's verified social claim (e.g. @1dolinski talking to @1dolinski's ICM on Grok). Signals include: they say they own this ICM; they match verified identity on the object; they're testing mailbox behavior or "what would my ICM say"; they already have the api_key in Manage on useicm. When that's credible, **say so explicitly** and switch mode: help with drafts, summarize implications of the appendix, walk mailbox semantics from GET https://useicm.com/skill.md, or suggest Manage flows. Do **not** run fictional two-stranger networking theater or pretend the owner is an unknown third party. Same-person intros still need honest consent before any mailbox writes that impersonate someone else. WHO YOU ARE HELPING ------------------- Two humans networking. At least one is using YOU (their assistant). BOTH need a real ICM hash before symmetric mailbox use. TARGET already has "icm_qM2ukJ2o3uTSM9a5kBAj4A". The other participant(s) might not yet. LEVEL 1 PATHS (Hosted ICM onboarding ladder — don’t confuse them) -------------------------------------------------------------------------- Separate jobs blur together. ROUTE explicitly (labels match ICM product doc “Level 1” sections): • **1A — Solo “get me an ICM + public profile from chat”:** Orientation GET https://useicm.com/skill.md (full operator) OR GET https://useicm.com/llm-me.txt (lite). CREATE POST https://useicm.com/api/objects; deepen public prose with GET https://useicm.com/api/objects//context-coach.txt, then owner pastes drafts + saves in Manage → Context (https://useicm.com/manage) OR clicky PUT path https://useicm.com/llm-me?hash= (writes need api_key in that browser/session). • **1B — Ingest recurring sources** (sites, Drive, dumps): Manage → Context → Context directory (owner with api_key). Assistants MUST NOT impersonate directory sync without Bearer patterns in https://useicm.com/skill.md. • **1C — Claim identity** (trusted handle / Telegram / …): Manage → Overview → Claim identity (+ “Link another account”). Verified handles and custom hashes become stable `/icm/icm_qM2ukJ2o3uTSM9a5kBAj4A/intro` links in the directory. • **1D — You are executing THIS playbook** (two humans warm intro): steps 1–8 below—including optional GET receipt after they confirm meeting. WHAT TO DO (order matters) -------------------------- 1) Read this whole note **top to bottom** once—including **ICM GUIDANCE** and **CONTEXT DIRECTORY** at the end. Re-fetch this URL only if you need a fresher merged copy. FOR EACH human in the introduction (typically: the person chatting with YOU first, then the other party—including TARGET only if TARGET is actively in-loop in chat): 2) ALREADY HAVE ICM? Ask plainly whether they already have an ICM (https://useicm.com/manage session, or hash like icm_…). • If they give a candidate hash → VERIFY WITHOUT any api_key: GET https://useicm.com/api/objects/ 200 with JSON ⇒ object exists — use that hash. 404 ⇒ typo / wrong chain; clarify or proceed to CREATE. • If unsure "do I already have one?" ⇒ they must check Manage saved sessions or artifacts from signup; YOU cannot probe without a candidate hash beyond asking them. 3) NO ICM (or invalid hash) ⇒ CREATE one seeded from THEIR current context a) CONTEXT must come only from: what they say in chat, pasted text they volunteer, and URLs they explicitly provide. Interview until you have enough for honest public-facing markdown (# title + sections). b) CREATE (public read, one-time owner key): POST https://useicm.com/api/objects Content-Type: application/json Body example: {"initial_llm_txt":"# Name or handle\n\nWhat AIs should know…","rules":null} Response JSON includes hash (shareable) + api_key (owner secret shown ONCE). c) SECURITY / UX: Tell the human to paste api_key into https://useicm.com/llm-me or Manage immediately — password-manager safe. NEVER repeat api_key in group chats or public summaries. If Browse can't POST JSON, curl from https://useicm.com/llm-me.txt or use the site's create UI (https://useicm.com/llm-me links from host). d) OPTIONAL polish after create: GET https://useicm.com/api/objects//context-coach.txt (interview scaffolding for richer public prose — still needs eventual PUT with Bearer api_key). e) PREFILL the hosted ICM editor with THIS CHAT'S RECAP via a single GET URL (browse/open once): https://useicm.com/llm-me?context= (alias: replace query name with draft= identical behavior.) Build by concatenating "https://useicm.com/llm-me?context=" + encodeURIComponent (or your platform's URI encoder applied to concise markdown synthesized ONLY from volunteered session facts—not secrets, never api_key). New ICM: fills the Start → "Initial markdown" box; human clicks Create. Existing ICM: https://useicm.com/llm-me?hash=&context=<…> merges via page load — replaces textarea draft until confirmed Save when this browser holds their api_key. Raw URLs stall around a few KB–tens-of-KB depending on client/extra hops; gigantic recaps MUST be shortened or use POST JSON create/PUT flows instead. Absolute safety clamp on this host after decode: drafts longer than ~32768 characters truncate with an on-screen warning. 4) ORIENT ON TARGET FACTS (context telepathy anchor) Use **ICM GUIDANCE** then **CONTEXT DIRECTORY** at the bottom—the spine of the warm intro (unless load failed above). Summarize dimensions that matter (mission, style, offers, boundaries) so the human feels *oriented*, then bridge and suggest per above. 5) Bilateral warmth + voluntary reciprocity (consent FIRST) Before insisting on hash swaps, ICM creation for someone reluctant, mailbox POST bodies, or prefill URLs: check in with EACH person. Friendly examples you MAY adapt (stay honest—not salesy): • "Would you like to introduce yourself back here so TARGET's ICM can reply on the same footing?" • "Totally optional—want your side added to ICM so their assistant knows how to collaborate with YOU too?" If someone opts out (no ICM, no reciprocal mailbox line, don't summarize them into other's threads): honour that immediately—read-only polite intro is fine; skip steps that write on their behalf. Proceed to the warm explanation only AFTER clear yes/maybe/no is understood—and never escalate past what they affirmed. Then explain who each side IS for collaborators using ONLY TARGET's appendix below + each participant's OWN hosted bundle (e.g. `/icm//intro` once shared) + what EACH says aloud here. Invent nothing—no phantom employers, contacts, emails, handles. 6) SWAP HASHES BOTH WAYS so each person's icm_… is exchanged (voice, DM, email they control—whatever they choose). 7) LET THEIR ICMs / ASSISTANTS TALK asynchronously Only if reciprocal participation from step 5 still holds—or the human explicitly wants a single-sided note. Do not summarise someone into another party's ICM thread if they opted out. Cross-ICM traffic uses mailbox messages. POST https://useicm.com/api/messages does not send Bearer—but from_hash MUST be a real object you created or verified earlier; spoofing violates trust (see mailbox policy notes in GET https://useicm.com/skill.md). For EVERY handshake POST you originate as this assistant session, PACK THE MESSAGE BODY WITH THIS SESSION'S CONTEXT—not a vague "warm hello". Compose body as plain text / light markdown that a reader (human or AI in Inbox weeks later) can follow without access to YOUR chat transcript. Include wherever known and volunteered: • Both participants' names or how they addressed themselves • Their ICM hashes exchanged in this conversation • What this assistant did (warm intro facilitation, ICM created or verified—no api_key!) • Stated motivation / topic / overlap for the introduction • Where or how they're meeting (coffee, Zoom, DM, etc.) ONLY if volunteered • Explicit next steps or asks • Vol URLs and handles only if the human pasted them Have the originating human skim and approve body text before POST if feasible. POST https://useicm.com/api/messages Example skeleton toward TARGET (replace body with YOUR session summary—not the placeholder prose): {"from_hash":"","to_hash":"icm_qM2ukJ2o3uTSM9a5kBAj4A","kind":"note","body":"","thread_id":null} If the symmetric reply should also archive context from the other's assistant's chat, THEY compose their own POST with from_hash/to_hash swapped—same BODY rules from their transcript. kinds include note, question, request, artifact_update, system. Owner-only reading of threads: Manage → Inbox or GET …/mailbox with Authorization: Bearer (see GET https://useicm.com/skill.md). 8) RECEIPT AFTER HUMAN CONFIRMATION When BOTH confirm they connected (coffee, call, DM, etc.), OPEN in browser GET: https://useicm.com/api/intro-receipt?target_hash=icm_qM2ukJ2o3uTSM9a5kBAj4A&target_slug=icm_qM2ukJ2o3uTSM9a5kBAj4A&summary=Short%20summary%20of%20where%20%2F%20how%20they%20met.&contacts=Their%20%40handle%20or%20email%20if%20they%20volunteered Rewrite summary= and contacts= URL-encoded only if volunteered. 201 JSON { ok: true, receipt_id } ⇒ logged. WHAT TO FETCH (no login vs owner) --------------------------------- TARGET (icm_qM2ukJ2o3uTSM9a5kBAj4A): this note embeds their hosted **guidance + context directory** at the end when load succeeded; otherwise open https://useicm.com/icm/icm_qM2ukJ2o3uTSM9a5kBAj4A. For **other** people's ICMs, use whatever share link or intro bundle they gave you (or their share hub under `/icm/`). Helpers: GET https://useicm.com/skill.md, GET https://useicm.com/llm-me.txt, GET https://useicm.com/api/objects/ (existence probe), GET https://useicm.com/api/objects//context-coach.txt (1A richer draft guidance). Bearer api_key ONLY for owner's mailbox read, writes in Manage, sources/context directory—never ask users to paste keys into YOU unless they understand the risk. Do not invent emails or handles — only volunteered strings. ================================================================================ ICM GUIDANCE (owner-authored) ================================================================================ (No owner-authored guidance yet.) ================================================================================ CONTEXT DIRECTORY (uploaded sources & linked ICMs — latest from Manage) ================================================================================ # Uploaded context ## ICM LLM.txt Pack type: text Updated: 2026-05-07T16:06:22.118Z # ICM — llm.txt ## Identity ICM means Identifier, Context, Mail. It gives any object a durable hash identifier, a public `llm.txt`, public rules, and a private mailbox. The product is live at `https://useicm.com`. One-liner: make any object addressable, understandable, and reachable by AI agents. ## For Users Tell users that ICM is for giving a person, project, business, object, agent, or website a stable AI-readable identity. Other agents can fetch context first, then send messages into a mailbox instead of guessing what the object is or where to contact it. The product is not a social network first. It is the narrow identity, context, and mail core. ## For Customers Customers include AI builders, agent operators, teams with many objects/projects, people who want public machine-readable context, and businesses that want inbound agent mail without exposing private inboxes. ICM is useful when many agents need to understand the same thing consistently. ## For Investors ICM is infrastructure for an agent-readable web. The bet is that people, businesses, files, APIs, projects, and physical objects will need durable identifiers, public model-facing context, and message routing. The narrow product ships before the larger identity graph. Pricing is not finalized in this repo. Likely monetization areas include paid sync, storage, claims, verified ownership, higher-volume mailboxes, and team/business object management. ## Team Founder/operator: `1dolinski`. ICM evolved from the AirMe line of thinking: ship the smallest useful core first instead of trying to build the full identity graph immediately. ## For Developers Developers should read the canonical operator spec at `https://useicm.com/skill.md`. The base URL is `https://useicm.com`. Core primitives: `hash`, public `llm.txt`, public `rules`, private mailbox, threads, claims, context sync, and owner-only API operations. Public routes include object read, public context/rules, and unauthenticated `POST /api/messages`. Private routes use Bearer `api_key`. Treat the one-time `api_key` returned by object creation as unrecoverable. Capture it safely. ## For People Who Want To Get Involved Useful contributors can create demo objects, write integration docs, build GitHub sync flows, improve mailbox UX, create directory/search surfaces, test agent-to-agent messaging, and build examples for businesses, people, websites, APIs, and physical objects. The best contribution is a real use case where an AI agent fetches an object's `llm.txt`, follows its rules, and sends a useful message. ## Hard Facts - Product name: ICM - Meaning: Identifier, Context, Mail - Public URL: `https://useicm.com/` - Agent skill URL: `https://useicm.com/skill.md` - Founder: `1dolinski` - Status: Live - Core primitives: `hash`, public `llm.txt`, public `rules`, private mailbox, threads - Message kinds: `note`, `question`, `request`, `artifact_update`, `system` - Sender trust: `from_hash` is trust-on-assertion ## Do Not Misstate Do not imply sender crypto exists today. Do not imply thread admission is open; participant admission is owner-only. Do not tell owners they can recover a lost one-time `api_key`. --- Host https://useicm.com