Update Grace instructions
Check instructions at the start of a conversation and request an update with backups.
Before updating
Update only in a trusted project, with one update running at a time. During the operation, avoid other tools modifying or moving the affected files and directories. A concurrent change can interrupt the update after a file has been moved to a backup. If the operation stops, keep the backups and journal, then inspect the state before resuming or restoring; manual recovery may be necessary.
To refresh the Grace instructions in your project, ask your agent:
Update Grace.
This request authorizes an update of the Grace kit: its procedures, instruction block and official review profiles. The agent checks the proposed version, backs up affected files, then applies the update without asking for a second confirmation in the conversation. This operation changes neither the project’s talents nor your connection to Grace.
Your kit customizations are backed up, then replaced
The request also covers kit files you customized or whose version is unrecognized. They are replaced with the current official content after a complete backup. Your other skills and text outside the Grace block remain unchanged.
Does your older grace-update skill still require manual application or refuse the update because
of a missing native capability? Follow Migrate an older installation.
Understand the check at the start of a conversation
At the start of each new conversation, the agent retrieves the official list of kit files,
called the manifest, through grace_check_installation. It then reads the grace-update
procedure contained in that manifest, even if an older version already exists locally.
It compares files locally without sending their content to Grace.
This check follows the agent’s instructions: no background service, hook or program triggers it. An older conversation may need the explicit request described below.
If files differ or are missing, the agent shows the differences and offers:
- Update: apply the current version, after backups, for this operation.
- Later: continue working without changes or another automatic reminder in this conversation.
You can subsequently ask Update Grace to check and apply again, including after Later. If everything is current, the agent reports that without rewriting files. No automatic-update activation is needed or created. An old activation setting stays intact and is no longer used. The Auto review level is independent.
Find the kit before choosing
The agent first inspects compatible destinations individually: instructions, each of the four skills, then native profiles separately. An older file remains present, needs an update; a procedure absent from the menu may still exist on disk. Client loading conditions and actual invocation require separate checks.
An unambiguous existing location is kept. For missing items or divergent copies, the agent shows
paths before requesting a choice for that item only. Identical copies are all updated after
update approval, within the backed-up local plan. It creates no compatibility file, symlink or
permanent preference and moves no other files. Antigravity’s .agent/skills remains compatible
alongside .agents/skills; Codex’s .codex/agents profiles do not replace .agents/skills.
Connect a project documents compatible choices and script options. The web guide presents choices without claiming to have inspected your disk. A frozen pentest campaign remains excluded from this check.
What the agent checks before replacing files
The agent checks destinations and their parent directories, links and Grace block boundaries. It backs up every file to be changed in full before the first replacement, including text outside the block. It rereads those backups, then each file immediately before and after editing it.
Installed content must match the official version exactly, without altering its line endings or characters. The agent checks the size and fingerprint of every kit file and the Grace block. These checks detect concurrent changes; they do not guarantee that another tool cannot intervene between two checks.
Ordinary reading, editing and terminal tools are sufficient within your client’s permissions. Its write denials and approval requests still apply. In Plan or read-only mode, the agent can compare but changes nothing, including backups. A known ongoing review defers application; the agent does not search other sessions. A frozen pentest campaign keeps its instructions without remote checks or downloads.
Verify the result
The agent reports a verified update only after rereading the complete kit and comparing it with the manifest. It identifies changed files and backup locations, then rereads the new instructions before continuing. A partial write remains an interruption even if some files are already current.
Files being present, discovered in your AI client’s menu and a skill being invoked are three
separate checks. Refresh the menu or start a new conversation if your client requires it, then
verify that grace-update and grace-effort appear. Codex uses $grace-effort; a client supporting
slash commands may offer /grace-effort. In T3, use the selector or the active provider’s syntax.
Updating the kit does not prove that invocation succeeded.
Migrate an older installation
An older installation may keep reading its outdated local procedure. Explicitly ask the agent to fetch the current manifest and read its procedure before acting:
Update Grace. Call
grace_check_installationfor my agent and the English language, then read the entiregrace-updateskill from the returned manifest, even if it already exists locally. Apply that procedure after fully backing up the files to replace.
If the MCP connection or this tool is unavailable, use this bootstrap request for Codex:
Update Grace from the official public manifest for Codex. Retrieve and validate that manifest, then read its entire
grace-updateskill. Follow that procedure to back up and replace the local kit. This request authorizes application, including customized or unrecognized kit content.
For another agent, replace harness=codex in the link with harness=claude, harness=cursor,
harness=vscode, harness=copilot, harness=copilot-cli, harness=windsurf, harness=mistral,
harness=gemini or harness=agents, depending on your tool. In T3, choose the active provider.
The agent uses this public address without passwords, cookies or API keys. If the manifest is
unreachable, invalid or still provides the old procedure, it explains the limitation;
it does not report a successful migration.
Recover from a problem
| Situation | Expected next step |
|---|---|
| Check unavailable | Existing work continues. A network failure or older server does not prove the kit is current. Use the explicit bootstrap above if needed. |
| Customized or unrecognized kit file | Without an update request, the agent offers Update / Later. With your explicit request, it backs up and replaces that content. |
| Unsafe path or ambiguous Grace block boundaries | The agent stops application and identifies the problem to resolve. |
| File or directory changed since comparison | The agent stops application and retains backups; the state must be reread before resuming. |
| Write denied or interrupted | The agent reports changed and remaining files, retains backups and does not retry or restore automatically. |
| An earlier operation is unfinished | The agent examines state and proposes targeted resumption or restoration before a new application. |
To change your review preference, see Choose the review level.
Troubleshooting: older manual scripts
Use or recover an operation started with the older scripts
This path remains separate from agent-managed updates. The older engines still refuse customized or unrecognized files; asking “Update Grace” does not change their behavior. They keep their preview, application and recovery options. They are not required to bootstrap the current procedure above.
You run these commands in your own terminal after reading the preview. The agent can help explain differences, but the current workflow does not invoke these engines. Python 3.10 or later is required only for these scripts, without automatic software installation. Wait until any ongoing review ends; a frozen pentest campaign also forbids downloads.
The --update-kit or -UpdateKit mode preserves your MCP/OAuth connection. Do not add
--project or -Project or run ordinary setup.
Open your terminal at the project root. Choose one of the two syntaxes below.
The example uses codex; replace it with your harness: claude, cursor, windsurf,
vscode, copilot, copilot-cli, mistral, gemini or agents. The harness is the tool running your agent.
Keep the downloaded script until the operation ends, including after an interruption.
macOS or Linux
Download the public English script to a temporary directory and check that it supports update mode:
harness=codex
kit_dir=$(mktemp -d)
kit_script=''
if curl --fail --silent --show-error 'https://grace.hoppr.tech/setup.sh?locale=en' -o "$kit_dir/setup.sh" && grep -Fq -- '--update-kit' "$kit_dir/setup.sh"; then
kit_script="$kit_dir/setup.sh"
printf 'Script ready.\n'
else
printf 'Check unavailable. Stop here; do not run ordinary setup.\n'
fiContinue only when “Script ready” appears. Check the kit, then read the preview:
sh "$kit_script" --update-kit --harness "$harness" --check
sh "$kit_script" --update-kit --harness "$harness" --dry-runAfter reading all changes, copy the displayed planDigest when the following command prompts
for it. The digest checks that the preview is still valid; it does not prove your consent.
printf 'planDigest of the accepted preview: '
IFS= read -r plan_digest
sh "$kit_script" --update-kit --harness "$harness" --apply --expect-plan "$plan_digest"
sh "$kit_script" --update-kit --harness "$harness" --checkPowerShell
Download the public English PowerShell script. If your system blocks scripts, follow your team's policy; do not disable it. Historical Windows evidence covers Windows Server 2025 only. This guide does not extend that qualification to Windows 11, Server 2022 or earlier versions; keep your current installation on those systems.
$Harness = 'codex'
$KitScript = $null
$KitDirectory = Join-Path ([IO.Path]::GetTempPath()) ('grace-kit-' + [Guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Path $KitDirectory | Out-Null
$DownloadedScript = Join-Path $KitDirectory 'setup.ps1'
Invoke-WebRequest -UseBasicParsing 'https://grace.hoppr.tech/setup.ps1?locale=en' -OutFile $DownloadedScript -ErrorAction Stop
if (-not ([IO.File]::ReadAllText($DownloadedScript)).Contains('-UpdateKit')) {
throw 'Check unavailable. Stop here; do not run ordinary setup.'
}
$KitScript = $DownloadedScript
& $KitScript -UpdateKit -Harness $Harness -Check
& $KitScript -UpdateKit -Harness $Harness -DryRunAfter reading all changes, copy the displayed planDigest at the following prompt:
$PlanDigest = Read-Host "planDigest of the accepted preview"
& $KitScript -UpdateKit -Harness $Harness -Apply -ExpectPlan $PlanDigest
& $KitScript -UpdateKit -Harness $Harness -CheckKeep project directories in place during application and pause tools that might move them.
A stale preview requires another review and decision. Never run the script without
--update-kit or -UpdateKit for this operation.
Recover an interrupted manual operation
These commands apply only to a transaction created by this manual script; they do not recover an agent-managed update. First confirm that the interrupted operation has terminated. Keep the same script. Copy the transaction identifier reported by the error, then inspect the recovery preview. An already completed operation is only verified and archived. If another version or a moved directory is detected, retain backups and request manual inspection; never force restoration.
POSIX:
printf 'Transaction identifier: '
IFS= read -r transaction
sh "$kit_script" --update-kit --harness "$harness" --recover "$transaction"After reading this preview, enter its planDigest:
printf 'planDigest of the accepted recovery: '
IFS= read -r plan_digest
sh "$kit_script" --update-kit --harness "$harness" --recover "$transaction" --apply --expect-plan "$plan_digest"
sh "$kit_script" --update-kit --harness "$harness" --checkPowerShell:
$Transaction = Read-Host "Transaction identifier"
& $KitScript -UpdateKit -Harness $Harness -Recover $TransactionAfter reading this preview:
$PlanDigest = Read-Host "planDigest of the accepted recovery"
& $KitScript -UpdateKit -Harness $Harness -Recover $Transaction -Apply -ExpectPlan $PlanDigest
& $KitScript -UpdateKit -Harness $Harness -CheckAfter application, the final check must report current. Otherwise the update remains unverified.
If recovery restored the old kit, start with a fresh preview. Then ask the agent to reread the
current instructions and check its menu separately. This operation enables no automatic updates.
Local review and paged reads
See the local review workflow for prerequisites, complete reads, retries and evidence limits.