openrind-navigate
Query PostgreSQL with pg and navigate Openrind Shell's primary FUSE or compatibility workspace; /db is custom-agent-only.
SKILL.md.claude/skills/openrind-navigate/SKILL.md
GitHubOpenrind Shell Navigate
Identify the runtime from the kernel mount, not an image tag:
if mountpoint -q /sandbox/work 2>/dev/null; then
echo primary-fuse
else
echo compatibility
fi
Persistence Map
flowchart TB
detect{"mountpoint /sandbox/work?"}
detect -->|Yes| primary["Primary FUSE<br/>HOME=/sandbox/work"]
primary --> all["Every descendant file<br/>PostgreSQL-backed"]
detect -->|No| compat["Compatibility<br/>HOME=/sandbox"]
compat --> scoped["Persisted: .claude, .claude.json,<br/>.openrind-shell and legacy .openeral"]
compat --> ephemeral["Everything else<br/>sandbox-local"]
custom["createOpenrindShell custom agent"] --> db["/db read-only PgFs"]
PostgreSQL Queries
Use the pg helper in either runtime and quote the complete SQL string:
pg "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'"
pg "SELECT * FROM public.users LIMIT 5"
The helper prints a JSON array and exits nonzero on database or policy failure.
Primary FUSE Workspace
Use normal tools below /sandbox/work. fsync is an explicit durability barrier;
clean Claude exit also flushes pending dirty data.
openrind-shell-fused health
openrind-shell-fused flush-all
Only one writable sandbox may mount a given workspace ID. Stop mutating files if
health is not writable. Operations return EIO while the daemon reconnects to
PostgreSQL; a daemon exit or lease loss restarts the whole container and ends the
current shell or Claude session, so fsync anything you cannot afford to lose.
Compatibility Workspace
Compatibility synchronization covers only:
/sandbox/.claude/**
/sandbox/.claude.json
/sandbox/.openrind-shell/**
/sandbox/.openeral/** # legacy state during migration
PGlite, when used, lasts only for that sandbox. Other files are not persisted.
Claude Memory
Run from the relevant project directory:
openrind-shell memory refresh --query "current project"
claude -c
/db Virtual Filesystem
/db is not mounted in Claude Code's native shell. It exists only when a custom agent
uses createOpenrindShell() and just-bash:
ls /db
cat /db/public/users/.info/columns.json
cat /db/public/users/.info/schema.sql
cat /db/public/users/.info/count
cat /db/public/users/page_1/1/row.json
The custom-agent path is read-only. Prefer .filter/ and .info/count over scanning
page trees.
Security Facts
- Provider keys remain OpenShell placeholders resolved only at approved egress.
- The PostgreSQL URL is raw-protocol runtime state, not a provider placeholder.
- Primary v1 runs Claude and the FUSE daemon as the same UID; do not claim secret isolation between them.
/tmpand/var/lib/openrind-shell/runtimeare operational, not persisted FUSE namespace paths.