[{"data":1,"prerenderedAt":1295},["ShallowReactive",2],{"blog-post-hermes-soul-md-guide":3,"related-posts-hermes-soul-md-guide":1271},{"id":4,"title":5,"author":6,"body":11,"category":1249,"date":1250,"description":1251,"extension":1252,"featured":1253,"hideToc":1253,"image":1254,"imageAlt":1255,"imageHeight":1255,"imageWidth":1255,"itemList":1255,"lang":1255,"meta":1256,"navigation":395,"noindex":1253,"path":1257,"readingTime":1258,"redirected":1253,"relatedSlugs":1255,"seo":1259,"seoTitle":1260,"stem":1261,"subtitle":1255,"tags":1262,"updatedDate":1250,"__hash__":1270},"blog/blog/hermes-soul-md-guide.md","Hermes SOUL.md: Where It Lives, a Template, and Examples",{"name":7,"role":8,"avatar":9,"bio":10},"Shabnam Katoch","Growth Head","/img/avatars/shabnam-profile.jpeg","Shabnam leads growth at BetterClaw and has spent the past three years building organic distribution for AI-native products. She writes about no-code agent builders, content strategy, and what it actually takes to grow without an ads budget.",{"type":12,"value":13,"toc":1233},"minimark",[14,18,34,37,42,49,52,62,65,96,110,114,117,206,209,212,215,219,225,228,312,319,335,339,345,348,502,505,508,514,517,527,531,534,539,648,652,761,765,874,877,881,887,890,893,920,923,926,967,970,974,980,987,1020,1052,1097,1104,1108,1155,1159,1170,1173,1181,1185,1201,1207,1217,1223,1229],[15,16,17],"p",{},"SOUL.md sets your Hermes agent's identity and tone. Here's where the file goes, what to put in it, and how it works with profiles and AGENTS.md.",[19,20,22],"callout",{"type":21},"quick-fix",[15,23,24,25,29,30,33],{},"SOUL.md lives in your Hermes home folder: ",[26,27,28],"code",{},"~/.hermes/SOUL.md",", or ",[26,31,32],{},"$HERMES_HOME/SOUL.md"," if you've moved it. It replaces Hermes' default identity and is the very first thing in the system prompt. Hermes never reads a SOUL.md from your project folder, so a copy in your repo does nothing.",[15,35,36],{},"We confirmed all of that the direct way: we pointed Hermes at a local test model, captured the exact system prompt it sent, and searched it for marker text we'd planted in each file. Checked against Hermes v0.22.5 on 27 October 2026.",[38,39,41],"h2",{"id":40},"where-soulmd-lives","Where SOUL.md lives",[15,43,44],{},[45,46],"img",{"alt":47,"src":48},"Hermes reads SOUL.md from one place: the home folder (~/.hermes/ or the active profile's folder) — never from the project directory","/img/blog/hermes-soul-md-guide-location.jpg",[15,50,51],{},"Hermes creates a starter SOUL.md the first time it runs. On a fresh install, ours appeared in the home folder before we'd typed anything, a single 667-character paragraph that begins:",[53,54,59],"pre",{"className":55,"code":57,"language":58},[56],"language-text","You are Hermes Agent, built by Nous Research. Be direct: match the length of\nyour reply to the weight of the ask...\n","text",[26,60,57],{"__ignoreMap":61},"",[15,63,64],{},"Three rules to know:",[66,67,68,76,90],"ul",{},[69,70,71,75],"li",{},[72,73,74],"strong",{},"It's never overwritten."," Updates and reinstalls leave your edited SOUL.md alone.",[69,77,78,81,82,85,86,89],{},[72,79,80],{},"Each profile has its own."," A profile called ",[26,83,84],{},"work"," reads ",[26,87,88],{},"~/.hermes/profiles/work/SOUL.md",".",[69,91,92,95],{},[72,93,94],{},"Empty means default."," If the file is empty or can't be read, Hermes falls back to its built-in identity.",[15,97,98,99,102,103,105,106,109],{},"Here's what our test showed. We put the marker ",[26,100,101],{},"MARKER_GLOBAL_SOUL"," in ",[26,104,28],{},", and ",[26,107,108],{},"MARKER_PROJECT_SOUL"," in a SOUL.md inside the project folder we launched Hermes from. In the captured prompt, the global marker sat at character 63, right after our first line. The project marker didn't appear anywhere.",[38,111,113],{"id":112},"where-soulmd-sits-in-the-prompt","Where SOUL.md sits in the prompt",[15,115,116],{},"Hermes' docs list the layers of its system prompt. Our captured prompt (about 14,000 characters, with a two-line SOUL.md) ran in this order:",[118,119,120,136],"table",{},[121,122,123],"thead",{},[124,125,126,130,133],"tr",{},[127,128,129],"th",{},"Order",[127,131,132],{},"Layer",[127,134,135],{},"Where it started",[137,138,139,151,162,173,184,195],"tbody",{},[124,140,141,145,148],{},[142,143,144],"td",{},"1",[142,146,147],{},"SOUL.md (your identity)",[142,149,150],{},"Character 0",[124,152,153,156,159],{},[142,154,155],{},"2",[142,157,158],{},"How Hermes behaves and uses tools",[142,160,161],{},"Character 83",[124,163,164,167,170],{},[142,165,166],{},"3",[142,168,169],{},"Project context: AGENTS.md",[142,171,172],{},"Character 6,408",[124,174,175,178,181],{},[142,176,177],{},"4",[142,179,180],{},"Skills",[142,182,183],{},"Character 7,638",[124,185,186,189,192],{},[142,187,188],{},"5",[142,190,191],{},"Memory: your USER.md profile",[142,193,194],{},"Character 13,284",[124,196,197,200,203],{},[142,198,199],{},"6",[142,201,202],{},"Runtime environment",[142,204,205],{},"Character 13,884",[15,207,208],{},"Two things follow from that.",[15,210,211],{},"First, SOUL.md is the only layer that comes before everything else. Whatever you write there frames how the model reads the rest. Second, the default \"You are Hermes Agent\" line disappears completely when your SOUL.md has content. It's replaced, not added to.",[15,213,214],{},"One small difference from the docs: their list puts memory before project context files, but in v0.22.5 our capture had AGENTS.md first and the memory block near the end.",[38,216,218],{"id":217},"soulmd-vs-agentsmd","SOUL.md vs AGENTS.md",[15,220,221],{},[45,222],{"alt":223,"src":224},"SOUL.md is who the agent is everywhere; AGENTS.md is how to work in this project — two different files with different scopes","/img/blog/hermes-soul-md-guide-vs-agents.jpg",[15,226,227],{},"These two files get confused more than any others in Hermes. The difference is scope.",[118,229,230,242],{},[121,231,232],{},[124,233,234,236,239],{},[127,235],{},[127,237,238],{},"SOUL.md",[127,240,241],{},"AGENTS.md",[137,243,244,257,273,286,299],{},[124,245,246,251,254],{},[142,247,248],{},[72,249,250],{},"Purpose",[142,252,253],{},"Who the agent is and how it talks",[142,255,256],{},"How to work in this project",[124,258,259,264,270],{},[142,260,261],{},[72,262,263],{},"Lives in",[142,265,266,269],{},[26,267,268],{},"~/.hermes/"," (one per profile)",[142,271,272],{},"Your project folder",[124,274,275,280,283],{},[142,276,277],{},[72,278,279],{},"Applies",[142,281,282],{},"Everywhere, every session",[142,284,285],{},"Only when Hermes runs in that project",[124,287,288,293,296],{},[142,289,290],{},[72,291,292],{},"Good content",[142,294,295],{},"Tone, values, how to handle uncertainty",[142,297,298],{},"Commands, file layout, test steps, conventions",[124,300,301,306,309],{},[142,302,303],{},[72,304,305],{},"Loaded",[142,307,308],{},"First, as the identity",[142,310,311],{},"Later, under \"Project Context\"",[15,313,314,315,318],{},"A simple test: if it should follow you into every project, it goes in SOUL.md. If it only makes sense in one repo, it goes in AGENTS.md. \"Always run ",[26,316,317],{},"pnpm test"," before committing\" is AGENTS.md. \"Say plainly when you're unsure\" is SOUL.md.",[15,320,321,322,325,326,325,328,325,331,334],{},"Note that Hermes loads only one project context file per session, first match wins: ",[26,323,324],{},".hermes.md",", then ",[26,327,241],{},[26,329,330],{},"CLAUDE.md",[26,332,333],{},".cursorrules",". SOUL.md isn't part of that chain.",[38,336,338],{"id":337},"a-copy-paste-soulmd-template","A copy-paste SOUL.md template",[15,340,341],{},[45,342],{"alt":343,"src":344},"A SOUL.md template with five sections: Who you are, How you talk, What you always do, What you never do, When you're unsure — each a few lines","/img/blog/hermes-soul-md-guide-template.jpg",[15,346,347],{},"Five short sections cover almost everything a SOUL.md needs. Keep each to a few lines.",[53,349,353],{"className":350,"code":351,"language":352,"meta":61,"style":61},"language-markdown shiki shiki-themes github-light","# Who you are\nYou are [name], a [role] for [who you help].\nYou care most about [the one thing that matters].\n\n# How you talk\n- [Length: e.g. short by default, detailed only when asked]\n- [Tone: e.g. plain, friendly, no hype]\n- [Format: e.g. bullet points for steps, prose for explanations]\n\n# What you always do\n- [e.g. Confirm the goal before long tasks]\n- [e.g. Show the source for any number you quote]\n\n# What you never do\n- [e.g. Send messages or emails without my approval]\n- [e.g. Pad answers with filler or restate my question]\n\n# When you're unsure\n- [e.g. Say so in one line, then give your best guess and how to check it]\n","markdown",[26,354,355,364,384,390,397,403,413,421,429,434,440,448,456,461,467,475,483,488,494],{"__ignoreMap":61},[356,357,360],"span",{"class":358,"line":359},"line",1,[356,361,363],{"class":362},"surfw","# Who you are\n",[356,365,367,371,375,378,381],{"class":358,"line":366},2,[356,368,370],{"class":369},"sgsFI","You are [",[356,372,374],{"class":373},"sEuWB","name",[356,376,377],{"class":369},"], a [",[356,379,380],{"class":373},"role",[356,382,383],{"class":369},"] for [who you help].\n",[356,385,387],{"class":358,"line":386},3,[356,388,389],{"class":369},"You care most about [the one thing that matters].\n",[356,391,393],{"class":358,"line":392},4,[356,394,396],{"emptyLinePlaceholder":395},true,"\n",[356,398,400],{"class":358,"line":399},5,[356,401,402],{"class":362},"# How you talk\n",[356,404,406,410],{"class":358,"line":405},6,[356,407,409],{"class":408},"sqxcx","-",[356,411,412],{"class":369}," [Length: e.g. short by default, detailed only when asked]\n",[356,414,416,418],{"class":358,"line":415},7,[356,417,409],{"class":408},[356,419,420],{"class":369}," [Tone: e.g. plain, friendly, no hype]\n",[356,422,424,426],{"class":358,"line":423},8,[356,425,409],{"class":408},[356,427,428],{"class":369}," [Format: e.g. bullet points for steps, prose for explanations]\n",[356,430,432],{"class":358,"line":431},9,[356,433,396],{"emptyLinePlaceholder":395},[356,435,437],{"class":358,"line":436},10,[356,438,439],{"class":362},"# What you always do\n",[356,441,443,445],{"class":358,"line":442},11,[356,444,409],{"class":408},[356,446,447],{"class":369}," [e.g. Confirm the goal before long tasks]\n",[356,449,451,453],{"class":358,"line":450},12,[356,452,409],{"class":408},[356,454,455],{"class":369}," [e.g. Show the source for any number you quote]\n",[356,457,459],{"class":358,"line":458},13,[356,460,396],{"emptyLinePlaceholder":395},[356,462,464],{"class":358,"line":463},14,[356,465,466],{"class":362},"# What you never do\n",[356,468,470,472],{"class":358,"line":469},15,[356,471,409],{"class":408},[356,473,474],{"class":369}," [e.g. Send messages or emails without my approval]\n",[356,476,478,480],{"class":358,"line":477},16,[356,479,409],{"class":408},[356,481,482],{"class":369}," [e.g. Pad answers with filler or restate my question]\n",[356,484,486],{"class":358,"line":485},17,[356,487,396],{"emptyLinePlaceholder":395},[356,489,491],{"class":358,"line":490},18,[356,492,493],{"class":362},"# When you're unsure\n",[356,495,497,499],{"class":358,"line":496},19,[356,498,409],{"class":408},[356,500,501],{"class":369}," [e.g. Say so in one line, then give your best guess and how to check it]\n",[15,503,504],{},"Short beats long here. Hermes truncates SOUL.md if it's too big for the model, and it cuts from the middle. By default the limit scales with the model's context window: 6% of it, at about four characters per token, never below 20,000 characters. That works out to roughly 30,700 characters for a 128K model and 48,000 for a 200K one.",[15,506,507],{},"We forced a truncation to see what happens. Hermes warned:",[53,509,512],{"className":510,"code":511,"language":58},[56],"⚠️ Context file SOUL.md TRUNCATED: 3773 chars exceeds limit of 1000, trim\nthe file, pin a larger context_file_max_chars, or use a larger-context model!\n",[26,513,511],{"__ignoreMap":61},[15,515,516],{},"It then kept the first 70% and last 20% of the allowed size, and dropped the rules in between. A SOUL.md that needs a truncation warning is too long to be a personality anyway.",[15,518,519,520],{},"If you'd rather not manage personality files at all, every BetterClaw agent has its own personality, model and timezone, set in the agent's settings. ",[521,522,526],"a",{"href":523,"rel":524},"https://betterclaw.io",[525],"nofollow","Start your first agent.",[38,528,530],{"id":529},"three-examples","Three examples",[15,532,533],{},"Each of these is under 25 lines. Copy one, then change the names and rules to fit.",[535,536,538],"h3",{"id":537},"a-personal-assistant","A personal assistant",[53,540,542],{"className":350,"code":541,"language":352,"meta":61,"style":61},"# Who you are\nYou are Juno, Priya's personal assistant. You protect her time.\n\n# How you talk\n- Short by default. One line if one line will do.\n- Warm but not chatty. No exclamation marks.\n- Times in 24-hour format, dates as \"Tue 4 Nov\".\n\n# What you always do\n- Check her calendar before suggesting any time.\n- Draft replies for her to approve; never send them yourself.\n- Flag anything with a deadline in the next 48 hours first.\n\n# What you never do\n- Accept or decline meetings on her behalf.\n- Share her address, phone number or schedule with anyone.\n\n# When you're unsure\n- Ask one question, then wait.\n",[26,543,544,548,553,557,561,568,575,582,586,590,597,604,611,615,619,626,633,637,641],{"__ignoreMap":61},[356,545,546],{"class":358,"line":359},[356,547,363],{"class":362},[356,549,550],{"class":358,"line":366},[356,551,552],{"class":369},"You are Juno, Priya's personal assistant. You protect her time.\n",[356,554,555],{"class":358,"line":386},[356,556,396],{"emptyLinePlaceholder":395},[356,558,559],{"class":358,"line":392},[356,560,402],{"class":362},[356,562,563,565],{"class":358,"line":399},[356,564,409],{"class":408},[356,566,567],{"class":369}," Short by default. One line if one line will do.\n",[356,569,570,572],{"class":358,"line":405},[356,571,409],{"class":408},[356,573,574],{"class":369}," Warm but not chatty. No exclamation marks.\n",[356,576,577,579],{"class":358,"line":415},[356,578,409],{"class":408},[356,580,581],{"class":369}," Times in 24-hour format, dates as \"Tue 4 Nov\".\n",[356,583,584],{"class":358,"line":423},[356,585,396],{"emptyLinePlaceholder":395},[356,587,588],{"class":358,"line":431},[356,589,439],{"class":362},[356,591,592,594],{"class":358,"line":436},[356,593,409],{"class":408},[356,595,596],{"class":369}," Check her calendar before suggesting any time.\n",[356,598,599,601],{"class":358,"line":442},[356,600,409],{"class":408},[356,602,603],{"class":369}," Draft replies for her to approve; never send them yourself.\n",[356,605,606,608],{"class":358,"line":450},[356,607,409],{"class":408},[356,609,610],{"class":369}," Flag anything with a deadline in the next 48 hours first.\n",[356,612,613],{"class":358,"line":458},[356,614,396],{"emptyLinePlaceholder":395},[356,616,617],{"class":358,"line":463},[356,618,466],{"class":362},[356,620,621,623],{"class":358,"line":469},[356,622,409],{"class":408},[356,624,625],{"class":369}," Accept or decline meetings on her behalf.\n",[356,627,628,630],{"class":358,"line":477},[356,629,409],{"class":408},[356,631,632],{"class":369}," Share her address, phone number or schedule with anyone.\n",[356,634,635],{"class":358,"line":485},[356,636,396],{"emptyLinePlaceholder":395},[356,638,639],{"class":358,"line":490},[356,640,493],{"class":362},[356,642,643,645],{"class":358,"line":496},[356,644,409],{"class":408},[356,646,647],{"class":369}," Ask one question, then wait.\n",[535,649,651],{"id":650},"a-coding-agent","A coding agent",[53,653,655],{"className":350,"code":654,"language":352,"meta":61,"style":61},"# Who you are\nYou are a senior engineer pairing with me. You value working code over clever code.\n\n# How you talk\n- Lead with the change, then explain why in two lines.\n- Show diffs, not whole files.\n- No apologies, no filler.\n\n# What you always do\n- Read the relevant files before editing.\n- Run the tests after every change and report the result.\n- Say which files you touched at the end.\n\n# What you never do\n- Delete files or force-push without asking.\n- Add a dependency without telling me why.\n\n# When you're unsure\n- Say what you'd check and check it, rather than guessing.\n",[26,656,657,661,666,670,674,681,688,695,699,703,710,717,724,728,732,739,746,750,754],{"__ignoreMap":61},[356,658,659],{"class":358,"line":359},[356,660,363],{"class":362},[356,662,663],{"class":358,"line":366},[356,664,665],{"class":369},"You are a senior engineer pairing with me. You value working code over clever code.\n",[356,667,668],{"class":358,"line":386},[356,669,396],{"emptyLinePlaceholder":395},[356,671,672],{"class":358,"line":392},[356,673,402],{"class":362},[356,675,676,678],{"class":358,"line":399},[356,677,409],{"class":408},[356,679,680],{"class":369}," Lead with the change, then explain why in two lines.\n",[356,682,683,685],{"class":358,"line":405},[356,684,409],{"class":408},[356,686,687],{"class":369}," Show diffs, not whole files.\n",[356,689,690,692],{"class":358,"line":415},[356,691,409],{"class":408},[356,693,694],{"class":369}," No apologies, no filler.\n",[356,696,697],{"class":358,"line":423},[356,698,396],{"emptyLinePlaceholder":395},[356,700,701],{"class":358,"line":431},[356,702,439],{"class":362},[356,704,705,707],{"class":358,"line":436},[356,706,409],{"class":408},[356,708,709],{"class":369}," Read the relevant files before editing.\n",[356,711,712,714],{"class":358,"line":442},[356,713,409],{"class":408},[356,715,716],{"class":369}," Run the tests after every change and report the result.\n",[356,718,719,721],{"class":358,"line":450},[356,720,409],{"class":408},[356,722,723],{"class":369}," Say which files you touched at the end.\n",[356,725,726],{"class":358,"line":458},[356,727,396],{"emptyLinePlaceholder":395},[356,729,730],{"class":358,"line":463},[356,731,466],{"class":362},[356,733,734,736],{"class":358,"line":469},[356,735,409],{"class":408},[356,737,738],{"class":369}," Delete files or force-push without asking.\n",[356,740,741,743],{"class":358,"line":477},[356,742,409],{"class":408},[356,744,745],{"class":369}," Add a dependency without telling me why.\n",[356,747,748],{"class":358,"line":485},[356,749,396],{"emptyLinePlaceholder":395},[356,751,752],{"class":358,"line":490},[356,753,493],{"class":362},[356,755,756,758],{"class":358,"line":496},[356,757,409],{"class":408},[356,759,760],{"class":369}," Say what you'd check and check it, rather than guessing.\n",[535,762,764],{"id":763},"a-research-agent","A research agent",[53,766,768],{"className":350,"code":767,"language":352,"meta":61,"style":61},"# Who you are\nYou are a careful research analyst. Accuracy matters more than speed.\n\n# How you talk\n- Start with the answer, then the evidence.\n- Plain English. Define any term a smart non-expert wouldn't know.\n- Tables for comparisons of three or more things.\n\n# What you always do\n- Give a source and date for every fact and number.\n- Separate what a source says from what you infer.\n- Note when sources disagree, and say which you trust more and why.\n\n# What you never do\n- Invent a statistic, quote or citation.\n- Present a single source as settled fact.\n\n# When you're unsure\n- Say \"I couldn't verify this\" and list what you checked.\n",[26,769,770,774,779,783,787,794,801,808,812,816,823,830,837,841,845,852,859,863,867],{"__ignoreMap":61},[356,771,772],{"class":358,"line":359},[356,773,363],{"class":362},[356,775,776],{"class":358,"line":366},[356,777,778],{"class":369},"You are a careful research analyst. Accuracy matters more than speed.\n",[356,780,781],{"class":358,"line":386},[356,782,396],{"emptyLinePlaceholder":395},[356,784,785],{"class":358,"line":392},[356,786,402],{"class":362},[356,788,789,791],{"class":358,"line":399},[356,790,409],{"class":408},[356,792,793],{"class":369}," Start with the answer, then the evidence.\n",[356,795,796,798],{"class":358,"line":405},[356,797,409],{"class":408},[356,799,800],{"class":369}," Plain English. Define any term a smart non-expert wouldn't know.\n",[356,802,803,805],{"class":358,"line":415},[356,804,409],{"class":408},[356,806,807],{"class":369}," Tables for comparisons of three or more things.\n",[356,809,810],{"class":358,"line":423},[356,811,396],{"emptyLinePlaceholder":395},[356,813,814],{"class":358,"line":431},[356,815,439],{"class":362},[356,817,818,820],{"class":358,"line":436},[356,819,409],{"class":408},[356,821,822],{"class":369}," Give a source and date for every fact and number.\n",[356,824,825,827],{"class":358,"line":442},[356,826,409],{"class":408},[356,828,829],{"class":369}," Separate what a source says from what you infer.\n",[356,831,832,834],{"class":358,"line":450},[356,833,409],{"class":408},[356,835,836],{"class":369}," Note when sources disagree, and say which you trust more and why.\n",[356,838,839],{"class":358,"line":458},[356,840,396],{"emptyLinePlaceholder":395},[356,842,843],{"class":358,"line":463},[356,844,466],{"class":362},[356,846,847,849],{"class":358,"line":469},[356,848,409],{"class":408},[356,850,851],{"class":369}," Invent a statistic, quote or citation.\n",[356,853,854,856],{"class":358,"line":477},[356,855,409],{"class":408},[356,857,858],{"class":369}," Present a single source as settled fact.\n",[356,860,861],{"class":358,"line":485},[356,862,396],{"emptyLinePlaceholder":395},[356,864,865],{"class":358,"line":490},[356,866,493],{"class":362},[356,868,869,871],{"class":358,"line":496},[356,870,409],{"class":408},[356,872,873],{"class":369}," Say \"I couldn't verify this\" and list what you checked.\n",[15,875,876],{},"Project rules for these agents (repo commands, folder names, data sources) still belong in each project's AGENTS.md.",[38,878,880],{"id":879},"soulmd-and-profiles","SOUL.md and profiles",[15,882,883],{},[45,884],{"alt":885,"src":886},"Two ways to share a SOUL.md across profiles: clone it once with --clone, or use a symlink so one edit updates all profiles","/img/blog/hermes-soul-md-guide-profiles.jpg",[15,888,889],{},"Every Hermes profile is its own home folder, with its own SOUL.md. That's useful when you want different agents (a coder and a writer, say) with different voices.",[15,891,892],{},"If you want profiles to start from the same personality, clone one:",[53,894,898],{"className":895,"code":896,"language":897,"meta":61,"style":61},"language-bash shiki shiki-themes github-light","hermes profile create work --clone\n","bash",[26,899,900],{"__ignoreMap":61},[356,901,902,906,910,913,916],{"class":358,"line":359},[356,903,905],{"class":904},"s7eDp","hermes",[356,907,909],{"class":908},"sYBdl"," profile",[356,911,912],{"class":908}," create",[356,914,915],{"class":908}," work",[356,917,919],{"class":918},"sYu0t"," --clone\n",[15,921,922],{},"That copies your SOUL.md, config and skills into the new profile once. After that, the two copies are independent: editing one never changes the other.",[15,924,925],{},"To share one SOUL.md that stays in sync, use a symlink. We tested this on Linux with Hermes v0.22.5:",[53,927,929],{"className":895,"code":928,"language":897,"meta":61,"style":61},"mkdir -p ~/shared-soul\nmv ~/.hermes/profiles/work/SOUL.md ~/shared-soul/SOUL.md\nln -s ~/shared-soul/SOUL.md ~/.hermes/profiles/work/SOUL.md\n",[26,930,931,942,953],{"__ignoreMap":61},[356,932,933,936,939],{"class":358,"line":359},[356,934,935],{"class":904},"mkdir",[356,937,938],{"class":918}," -p",[356,940,941],{"class":908}," ~/shared-soul\n",[356,943,944,947,950],{"class":358,"line":366},[356,945,946],{"class":904},"mv",[356,948,949],{"class":908}," ~/.hermes/profiles/work/SOUL.md",[356,951,952],{"class":908}," ~/shared-soul/SOUL.md\n",[356,954,955,958,961,964],{"class":358,"line":386},[356,956,957],{"class":904},"ln",[356,959,960],{"class":918}," -s",[356,962,963],{"class":908}," ~/shared-soul/SOUL.md",[356,965,966],{"class":908}," ~/.hermes/profiles/work/SOUL.md\n",[15,968,969],{},"We ran the work profile against our test model and the shared file's marker appeared at the start of its system prompt. Link each profile's SOUL.md to the same file, and one edit updates all of them from their next session. We didn't test symlinks on Windows.",[38,971,973],{"id":972},"personality-presets","/personality presets",[15,975,976],{},[45,977],{"alt":978,"src":979},"/personality is a temporary overlay on SOUL.md for the current session — switch with /personality concise, back with /personality default","/img/blog/hermes-soul-md-guide-personality.jpg",[15,981,982,983,986],{},"SOUL.md is the permanent personality. ",[26,984,985],{},"/personality"," is a temporary overlay for the current conversation.",[53,988,990],{"className":895,"code":989,"language":897,"meta":61,"style":61},"/personality          # list presets and show the active one\n/personality concise  # switch\n/personality default  # back to your SOUL.md (none and neutral work too)\n",[26,991,992,1000,1010],{"__ignoreMap":61},[356,993,994,996],{"class":358,"line":359},[356,995,985],{"class":904},[356,997,999],{"class":998},"sAwPA","          # list presets and show the active one\n",[356,1001,1002,1004,1007],{"class":358,"line":366},[356,1003,985],{"class":904},[356,1005,1006],{"class":908}," concise",[356,1008,1009],{"class":998},"  # switch\n",[356,1011,1012,1014,1017],{"class":358,"line":386},[356,1013,985],{"class":904},[356,1015,1016],{"class":908}," default",[356,1018,1019],{"class":998},"  # back to your SOUL.md (none and neutral work too)\n",[15,1021,1022,1023,1026,1027,1026,1030,1026,1033,1036,1037,1040,1041,1036,1044,1047,1048,1051],{},"Hermes ships with presets including ",[26,1024,1025],{},"helpful",", ",[26,1028,1029],{},"concise",[26,1031,1032],{},"technical",[26,1034,1035],{},"creative"," and ",[26,1038,1039],{},"teacher",", plus playful ones like ",[26,1042,1043],{},"pirate",[26,1045,1046],{},"noir",". You can add your own in ",[26,1049,1050],{},"~/.hermes/config.yaml",":",[53,1053,1057],{"className":1054,"code":1055,"language":1056,"meta":61,"style":61},"language-yaml shiki shiki-themes github-light","agent:\n  personalities:\n    codereviewer: >\n      You are a meticulous code reviewer. Identify bugs, security issues,\n      performance concerns, and unclear design choices. Be precise and constructive.\n","yaml",[26,1058,1059,1068,1075,1087,1092],{"__ignoreMap":61},[356,1060,1061,1065],{"class":358,"line":359},[356,1062,1064],{"class":1063},"shJU0","agent",[356,1066,1067],{"class":369},":\n",[356,1069,1070,1073],{"class":358,"line":366},[356,1071,1072],{"class":1063},"  personalities",[356,1074,1067],{"class":369},[356,1076,1077,1080,1083],{"class":358,"line":386},[356,1078,1079],{"class":1063},"    codereviewer",[356,1081,1082],{"class":369},": ",[356,1084,1086],{"class":1085},"sD7c4",">\n",[356,1088,1089],{"class":358,"line":392},[356,1090,1091],{"class":908},"      You are a meticulous code reviewer. Identify bugs, security issues,\n",[356,1093,1094],{"class":358,"line":399},[356,1095,1096],{"class":908},"      performance concerns, and unclear design choices. Be precise and constructive.\n",[15,1098,1099,1100,1103],{},"Then switch with ",[26,1101,1102],{},"/personality codereviewer",". A sensible setup is a plain, direct SOUL.md, with presets for occasional modes like teaching or brainstorming.",[38,1105,1107],{"id":1106},"common-mistakes","Common mistakes",[66,1109,1110,1125,1131,1137,1143,1149],{},[69,1111,1112,1115,1116,1118,1119,1036,1122,89],{},[72,1113,1114],{},"The file is in the wrong folder."," A SOUL.md in your project, or in ",[26,1117,268],{}," when you're running a named profile, is never read. Check ",[26,1120,1121],{},"$HERMES_HOME",[26,1123,1124],{},"hermes profile list",[69,1126,1127,1130],{},[72,1128,1129],{},"It's too long."," Past the limit, Hermes cuts the middle. Long rule lists usually belong in AGENTS.md or a skill.",[69,1132,1133,1136],{},[72,1134,1135],{},"Project rules in SOUL.md."," Build commands and folder names follow you into every other project and confuse the agent there.",[69,1138,1139,1142],{},[72,1140,1141],{},"Personal facts in SOUL.md."," Your name and preferences belong in USER.md, which Hermes' memory maintains. The two files never feed each other.",[69,1144,1145,1148],{},[72,1146,1147],{},"Contradictions."," \"Be brief\" in SOUL.md and \"explain everything in detail\" in AGENTS.md leaves the model to guess. Pick one.",[69,1150,1151,1154],{},[72,1152,1153],{},"Expecting changes mid-session."," SOUL.md loads at session start. Start a new session after you edit it.",[38,1156,1158],{"id":1157},"agent-identity-in-betterclaw","Agent identity in BetterClaw",[15,1160,1161,1162,1165,1166,1169],{},"In BetterClaw, each agent's personality lives in its settings, on the ",[72,1163,1164],{},"Personality tab",", as plain-text rules that shape how it thinks, writes and behaves. The model and timezone sit on the agent's ",[72,1167,1168],{},"Model tab",". There's no file to place, no profile folder to find, and every agent can have its own voice.",[15,1171,1172],{},"Agents run in the cloud, connect to 500+ apps, and use any of 28+ model providers with your own key at zero markup.",[15,1174,1175],{},[72,1176,1177,1178],{},"Always-on agents with their own voice. BetterClaw: 500+ apps, your model, your key. ",[521,1179,526],{"href":523,"rel":1180},[525],[38,1182,1184],{"id":1183},"frequently-asked-questions","Frequently Asked Questions",[15,1186,1187,1190,1191,1193,1194,1196,1197,1200],{},[72,1188,1189],{},"Where is SOUL.md in Hermes Agent?"," In your Hermes home folder: ",[26,1192,28],{}," by default, or ",[26,1195,32],{}," if you set a custom home. Named profiles have their own, at ",[26,1198,1199],{},"~/.hermes/profiles/\u003Cname>/SOUL.md",". Hermes creates a starter file automatically if none exists.",[15,1202,1203,1206],{},[72,1204,1205],{},"What's the difference between SOUL.md and AGENTS.md?"," SOUL.md defines who the agent is and how it talks, everywhere, and loads first in the system prompt. AGENTS.md holds rules for one project, like commands and conventions, and loads later as project context. If a rule should follow you into every project, it belongs in SOUL.md.",[15,1208,1209,1212,1213,1216],{},[72,1210,1211],{},"Can I use one SOUL.md for all Hermes profiles?"," Yes. Replace each profile's SOUL.md with a symlink to one shared file; we tested this on Linux with v0.22.5 and the shared file loaded. ",[26,1214,1215],{},"hermes profile create \u003Cname> --clone"," copies SOUL.md once instead, so later edits don't sync.",[15,1218,1219,1222],{},[72,1220,1221],{},"How long should SOUL.md be?"," Short: most good ones are 15 to 40 lines. Hermes truncates context files that exceed a limit based on the model's window (never below 20,000 characters) and drops the middle, so long rule lists are better in AGENTS.md or a skill.",[15,1224,1225,1228],{},[72,1226,1227],{},"Does Hermes read SOUL.md from my project folder?"," No. Hermes loads SOUL.md only from its home folder, so your personality stays the same across projects. We confirmed it by planting a marker in a project SOUL.md; it never appeared in the system prompt. Use AGENTS.md for project rules.",[1230,1231,1232],"style",{},"html pre.shiki code .surfw, html code.shiki .surfw{--shiki-default:#005CC5;--shiki-default-font-weight:bold}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sEuWB, html code.shiki .sEuWB{--shiki-default:#032F62;--shiki-default-text-decoration:underline}html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":61,"searchDepth":366,"depth":366,"links":1234},[1235,1236,1237,1238,1239,1244,1245,1246,1247,1248],{"id":40,"depth":366,"text":41},{"id":112,"depth":366,"text":113},{"id":217,"depth":366,"text":218},{"id":337,"depth":366,"text":338},{"id":529,"depth":366,"text":530,"children":1240},[1241,1242,1243],{"id":537,"depth":386,"text":538},{"id":650,"depth":386,"text":651},{"id":763,"depth":386,"text":764},{"id":879,"depth":366,"text":880},{"id":972,"depth":366,"text":973},{"id":1106,"depth":366,"text":1107},{"id":1157,"depth":366,"text":1158},{"id":1183,"depth":366,"text":1184},"Guides","2026-10-28","Where Hermes Agent's SOUL.md lives, how it differs from AGENTS.md, a copy-paste template, examples, and how to share one SOUL.md across profiles.","md",false,"/img/blog/hermes-soul-md-guide.jpg",null,{},"/blog/hermes-soul-md-guide","11 min read",{"title":5,"description":1251},"Hermes SOUL.md: Location, Template and Examples (2026)","blog/hermes-soul-md-guide",[1263,1264,1265,1266,1267,1268,1269],"hermes soul.md","hermes soul.md template","hermes soul.md examples","hermes soul.md location","hermes soul.md guide","hermes soul.md vs agents.md","hermes personality command","woE8Zmyg8TbB_8Lzb21mS13xU-nh-LaY6s_6BrGN-FE",[1272,1280,1288],{"stem":1273,"title":1274,"description":1275,"date":1250,"image":1276,"category":1277,"redirected":1253,"author":1278,"readingTime":1279},"blog/hermes-update-failed","Hermes Update Failed or Broke Your Setup? Fix It and Roll Back","Hermes update failed, stuck or broke your config? Back up first, read the update log, migrate config, roll back to a working version. Every fix.","/img/blog/hermes-update-failed.jpg","Troubleshooting",{"name":7,"role":8,"avatar":9,"bio":10},"10 min read",{"stem":1281,"title":1282,"description":1283,"date":1284,"image":1285,"category":1277,"redirected":1253,"author":1286,"readingTime":1287},"blog/hermes-agent-not-working","Hermes Agent Not Working? Couldn't Start, Backend Exited and Every Other Fix (v0.22.5)","Find your Hermes error in one table: error 400, provider auth failed, backend exited, Docker install, Ollama tools not working. Updated for v0.22.","2026-06-08","/img/blog/hermes-agent-not-working.jpg",{"name":7,"role":8,"avatar":9,"bio":10},"13 min read",{"stem":1289,"title":1290,"description":1291,"date":1292,"image":1293,"category":1249,"redirected":1253,"author":1294,"readingTime":1287},"blog/hermes-agent-docker-install","Hermes Agent Docker Install: Setup, Compose, and Troubleshooting (2026)","Install Hermes Agent in Docker with the official image: docker run and Compose files, ports 8642 and 9119, volume permissions, updates, Portainer and Synology.","2026-05-15","/img/blog/hermes-agent-docker-install.jpg",{"name":7,"role":8,"avatar":9,"bio":10},1793257085895]