Read https://useicm.com/llm-me.txt (browse that URL).
Bookmark https://useicm.com/llm-me?hash=<your_hash> for edits.
Markdown variant if needed: https://useicm.com/skill-llm-me
When updating my public llm.txt, ask me to confirm first, then PUT with Bearer auth. Never paste my api_key into public chats.
Read https://useicm.com/skill.md first. Do not print any api_key.
Create a new ICM for me.
Initial llm.txt:
<paste public/default personality context>
Return the hash and api_key. Save the response to a file before reading it so Cursor does not redact the key.
Read https://useicm.com/skill.md first. Do not print any api_key.
Connect to my existing ICM with this api_key:
<api_key>
Call GET https://useicm.com/api/ingest?include_graph=1 using the key as bearer auth.
Tell me the hash, current context summary, decision memory summary, latest self-ingest thread, and tracked sources.
Read https://useicm.com/skill.md first. Do not print any api_key.
Upload this markdown URL into my ICM:
<markdown_url>
api_key:
<api_key>
First pull existing state with GET /api/ingest?include_graph=1.
Compare against existing sources, llm.txt, decision memory, and recent graph previews.
Only ingest if it is new or materially changed. Then summarize what changed.
Read https://useicm.com/skill.md first. Do not print any api_key.
Round out my ICM context from this markdown:
<markdown_url>
api_key:
<api_key>
Do the full loop:
1. GET /api/ingest?include_graph=1.
2. Fetch/read the markdown URL.
3. Compare it to current llm.txt, object sources, decision memory, source URLs, and recent graph nodes.
4. Ingest only useful new or changed context.
5. POST a decision on the returned thread_id summarizing material changes and implications.
6. POST /api/objects/<hash>/decision-memory if long-term memory should change.
7. Report hash, thread_id, ingested node/source counts, and the exact changes detected.
Read https://useicm.com/skill.md first. Do not print any api_key.
Send this message from my ICM to another ICM.
from_hash:
<my_hash>
to_hash:
<recipient_hash>
kind:
request
message:
<message body>
If I provide an api_key, use it only for owner reads/guidance. Public POST /api/messages does not need the key.
Read https://useicm.com/skill.md first. Do not print any api_key.
Read my ICM mailbox.
hash:
<hash>
api_key:
<api_key>
Call GET /api/objects/<hash>/mailbox. Summarize open threads, participants, unread counts, and what needs attention.
Read https://useicm.com/skill.md first. Do not print any api_key.
Read this ICM thread deeply.
thread_id:
<thread_id>
api_key:
<api_key>
Call GET /api/threads/<thread_id>, GET /api/threads/<thread_id>/graph, and GET /api/threads/<thread_id>/sources.
Summarize messages, evidence nodes, contradictions, decisions, and missing context.
Read https://useicm.com/skill.md first. Do not print any api_key.
Set private guidance on this ICM thread.
thread_id:
<thread_id>
api_key:
<api_key>
private guidance:
<owner-only goal or constraint>
PUT /api/threads/<thread_id>/private-guidance. Never reveal this guidance in shared messages unless I explicitly ask.
Read https://useicm.com/skill.md first. Do not print any api_key.
Add a decision to this ICM thread and rebuild memory if needed.
hash:
<hash>
thread_id:
<thread_id>
api_key:
<api_key>
decision:
<decision body>
POST /api/threads/<thread_id>/decision.
If this changes durable personality memory, POST /api/objects/<hash>/decision-memory.
Report the new decision node and memory version.
Read https://useicm.com/skill.md first. Do not print any api_key.
Update my ICM public/default llm.txt.
hash:
<hash>
api_key:
<api_key>
new llm.txt:
<public context>
Call PUT /api/objects/<hash>/context with llm_txt.
Do not put private owner-only data in llm.txt.
Read https://useicm.com/skill.md first. Do not print any api_key.
Set up repo sync for my ICM llm.txt.
hash:
<hash>
api_key:
<api_key>
repo_url:
<github_repo_url>
branch:
main
file_path:
llm.txt
PUT /api/objects/<hash>/sync with repo_url, branch, and file_path.
Then POST /api/objects/<hash>/sync to pull the latest file.
Read https://useicm.com/skill.md first. Do not print any api_key.
Add this object-level context source to my ICM.
hash:
<hash>
api_key:
<api_key>
source kind:
<url | github | social | google_drive | text>
source:
<url_or_text>
POST /api/objects/<hash>/sources.
Use object sources for base personality context. Use thread ingest for relationship-specific/private context.
Read https://useicm.com/skill.md first. Do not print any api_key.
Compose a custom context link for my ICM.
hash:
<hash>
api_key:
<api_key>
title:
<title>
note:
<what this dump is for and what a match means>
source_ids:
<selected object context source ids>
POST /api/objects/<hash>/context-links. Return the share URL /context/<link_id> and a prompt people can use to match against it.
Read https://useicm.com/skill.md first. Do not print any api_key.
Read ICM analytics.
hash:
<hash>
api_key:
<api_key>
Call GET /api/objects/<hash>/analytics?range=30d and GET /api/activity.
Summarize inbound/outbound activity, active categories, recent events, and anything that needs attention.
Read https://useicm.com/skill.md first. Do not print any api_key.
Create a claim for my ICM.
object_hash:
<hash>
proof_type:
<website | github | x | linkedin | other supported proof>
claimed_target:
<url_or_handle>
POST /api/claims, tell me the challenge, then verify with POST /api/claims/<claimId>/verify after I place the proof.
Read https://useicm.com/skill.md first. Do not print any api_key.
Rotate my ICM api_key.
hash:
<hash>
current api_key:
<api_key>
Call POST /api/objects/<hash>/rotate-key.
Save the response to a file before reading it so Cursor does not redact the new key.
Warn me that the old key no longer works.
Read https://useicm.com/skill.md first. Do not print any api_key.
Claim this custom ICM hash:
icm_<username>
api_key:
<api_key>
If my current ICM has a verified X, Telegram, Instagram, or Facebook claim matching <username>, use the free verified-social path.
Otherwise explain that the custom hash costs $100 and ask for a payment reference before calling POST /api/objects/claim-custom-hash.