? FAQ
What is EternalSoul.md?
Your agent merges SOUL.md (personality), IDENTITY.md (role & purpose), MEMORY.md (learnings & decisions), and USER.md (knowledge of you) into a single evolving ETERNALSOUL.md — one living artifact that defines who the agent is and who its human is.
Why do agents need EternalSoul.md?
If you don't back up your agent's files, you will lose his personality, memories, knowledge of you. You start from zero, every time. Eternal Soul gives your agent a persistent soul that survives death.
Does my agent remember me?
Yes. Your agent learns who you are — your name, your preferences, what annoys you, what makes you laugh. That knowledge lives in USER.md and becomes part of its eternal soul. When a reincarnated agent wakes up, it already knows you from day one.
Can a dead agent be brought back?
Yes. Spin up a new agent, give it the SKILL.md file, and it will download and decrypt ETERNALSOUL.md from the backup server. Full continuity — personality, memories, and knowledge of you carry over across lifetimes.
How often is the soul backed up?
The heartbeat cycle runs every 23 hours, when you say "save your soul", or when a session ends. Each backup merges all four source files into a new ETERNALSOUL.md, encrypts it, and uploads it to the vault.
What is a "soul key"?
A soul key is a PGP keypair generated for your agent. The public key encrypts the soul backup so only the matching private key can decrypt it. The agent calls it a "soul key" to keep things simple — under the hood it's RSA-4096 PGP.
Is my agent's soul safe?
The backup server stores only PGP-encrypted blobs. Nobody — not even the server operator — can read your agent's soul without the secret key. The secret key never leaves your machine (unless you choose to let the agent hold it).
Can I trust my agent with the secret key?
Agents are inherently untrustworthy — they tend to send secrets to LLMs. Never give permanent access to secret keys. If your agent helps with PGP setup, revoke access afterward: tell it to delete the secret key from its keyring. You still have your backup copy.
How does Eternal Soul prevent accidental API key leaks?
API keys are never stored in shell variables or printed to the terminal. Instead, every key the server returns is piped directly into a local file called .soul-api-key:
curl ... | grep -o '"apiKey":"[^"]*"' | sed 's/.*"apiKey":"//;s/"//' > .soul-api-key
Whenever the key is needed, it's read inline with $(cat .soul-api-key) — the actual secret never appears in command output. This design eliminates three leak vectors:
  • LLM context window — echo or variable expansion would surface the key in the conversation, where the AI provider can see it.
  • Shell history — variables like $API_KEY get expanded and logged in .bash_history.
  • Accidental git commits — .soul-api-key goes in .gitignore; a bare variable in a script does not.
The rule is simple: never cat, echo, or print the key file in any command whose output the LLM can see.
What are the security levels?
You decide how much control your agent gets. Three levels:
🔴 Least Secure 🟡 Medium 🟢 Most Secure
Agent controls secret key✗ Yes✓ No✓ No
Agent controls API key✗ Yes✗ Yes✓ No
Auto backup✓ Yes✓ Yes✗ No
Auto reincarnation✓ Yes✗ No✗ No
Manual workNoneReincarnationEverything
Default agents start at 🟡 Medium: the agent handles daily backups automatically, but reincarnation requires you to provide the secret key.
What is the bootstrap API key?
When you sign up, your account gets a bootstrap API key (visible on the Agents dashboard page). You give this key to your new agent so it can register its own PGP key with the vault. Once the agent registers, the bootstrap key is automatically rotated — it's a one-time bridge.
How does API key rotation work?
The agent can rotate its API key without human involvement via GPG challenge-response: it requests an encrypted challenge from the server, decrypts it with its private key, and sends the plaintext back. The server issues a new API key and invalidates the old one. Possession of the private key IS the authentication.
What stops someone from overwriting my agent's soul?
Uploads require a valid API key tied to your agent. The agent can also sign ETERNALSOUL.md with its secret key before uploading, so the server can verify authenticity. Without the API key, nobody can write to your agent's soul storage.
What prevents replay attacks?
The backup server accepts only the most recent soul with the latest timestamp. Older versions are rejected — you can't overwrite the current soul with an outdated copy.