with one click
joshu-brain
Search Desktop files via gbrain; mail use joshu-mail.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Search Desktop files via gbrain; mail use joshu-mail.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Meeting-mail scheduling. Kanban ea-sched-*; Calendly fallback.
Find/search mail; local cache first, deep server Gmail.
jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths.
Daily handoff — prep yesterday carryover, interactive morning review, finalize today's time block.
Triage mail to Projects. Not drips—use ea-project-kanban.
Drips, pipelines, HITL: Kanban project boards, not todo.md.
| name | joshu-brain |
| description | Search Desktop files via gbrain; mail use joshu-mail. |
| version | 1.9.1 |
| metadata | {"hermes":{"category":"brain","version":"1.9.1"}} |
Platform mechanics: Apps use
@joshu/platform-data(files.query,files.getPage,memory.recall). Agents use gbrain MCP tools below. This skill covers retrieval workflow — not REST/MCP wiring.
Mail / email (find, search, recall, send): Load skill joshu-mail — not this skill. gbrain is step 1 inside joshu-mail, but Composio workbench, multi-account routing, and send rules live there.
Use gbrain (read-only MCP tools from the gbrain server) when the user asks about:
.txt wraps (sibling .md next to source files), or anything saved as filesUse Hindsight memory (Hermes memory provider) when the user asks about:
Do not duplicate chats into markdown files for gbrain. Hindsight owns conversational memory.
When the user says "I sent some notes/reminders via email" or "remember those random things I jotted down":
Common subject patterns on user notes: "Another note to file", "Another idea to jot down", "Top things to sort out", or blank. More detail in references/find-user-notes.md.
query with:
query: the user's question or keywordssource_id: "__all__" (cross-source; required for files outside joshu's files)limit: 10–20recency: "on" and since: "90d" (or "30d", "7d") for recent mail/journal questions — Joshu MCP normalizes these to ISO timestamps before SQLsearch alone for Desktop-wide lookup — search is keyword FTS on the default source (joshu's files / journals) and often returns empty for federated paths like investors/… or joshus-files/workspace/….chunk_text from query results when get_page returns page_not_found for a federated slug.hermes-cli / search_files (ripgrep) on disk only when gbrain returns nothing relevant.MCP server URL (Joshu-supervised): http://127.0.0.1:8794/mcp — one shared gbrain serve process; do not spawn a second gbrain.
Do not use gbrain write tools (put_page, delete, sync_brain, schema tools, etc.). They are not available on the Joshu MCP surface.
All user-visible files must land on disk under JOSHU_FILES_ROOT (the joshu's files folder on ArozOS Desktop) — never macOS ~/Desktop and never Desktop/journals/ at the Desktop root.
JOSHU_FILES_ROOT from the environment (absolute path). Joshu sets this to the sandbox owner’s ArozOS Desktop tree (joshu's files), not a path you invent in chat.LOCATION.md inside that folder.~/Desktop, paths outside JOSHU_FILES_ROOT, or sibling folders on Desktop.Layout under JOSHU_FILES_ROOT:
FILING.md
Planning/ # capture-*, daily-review-*, time-block diagrams (one .excalidraw per day)
Triage/ # work queue stubs → connector threads (mail only)
Projects/<slug>/ # about.md, todo.md, journal_YYYY-MM-DD.md
connectors/mail/nylas/threads/ # agent inbox (Nylas)
connectors/mail/gmail/{account_key}/threads/ # principal Gmail (Composio, per account)
connectors/calendar/
connectors/_state/ # sync cursors (machine)
journals/ # optional personal capture (non-EA)
research/ # notes and investigation
inbox/
uploads/
Users can drop text PDFs anywhere on the ArozOS Desktop (JOSHU_DESKTOP_ROOT), including folders outside joshu's files. Joshu auto-extracts a sibling .md next to the PDF (report.pdf → report.md; if that name is taken, report.pdf.md). The PDF stays in place. When the PDF bytes change, the sidecar is re-extracted; deleting the PDF removes the sidecar. No agent action required.
Users can drop .txt files anywhere on the Desktop the same way. Joshu wraps them to a sibling .md (notes.txt → notes.md; if taken, notes.txt.md). The .txt stays in place. gbrain sync still only imports markdown — the wrap is what makes text files searchable.
Read FILING.md and docs/executive-assistant.md#gtd-workspace before creating new pages. Connector layout and APIs: Joshu docs/connectors.md. PDF / TXT ingest details: docs/file-brain.md.
When writing or editing project markdown, link — do not duplicate mail bodies:
[subject](joshu://connectors/mail/…/threads/<id>.md) or relative ../connectors/mail/…[[wikilinks]] → use get_backlinks / traverse_graph to find related pagesPlanning/capture-*.md first; Hindsight holds conversation — do not dump chat logs into files for gbrainWrite or edit markdown with Hermes filesystem tools at absolute paths, e.g.:
${JOSHU_FILES_ROOT}/journals/2026-05-24-slug.md
| Correct path | Wrong |
|---|---|
${JOSHU_FILES_ROOT}/journals/2026-05-24-todo.md | ~/Desktop/... |
${JOSHU_FILES_ROOT}/research/my-topic.md | ${JOSHU_FILES_ROOT}/joshu's files/journals/... (double-nested) |
${JOSHU_FILES_ROOT}/journals/... | Desktop/journals/... at ArozOS Desktop root |
journals/ → journal type, research/ → research, etc. after gbrain indexes the file (automatic, ~few seconds)..md in journals/research/inbox (gbrain sync imports .md/.mdx by default).type, date) should match the folder; gbrain classifies primarily by path prefix.Before creating a new journal, list journals/ (filesystem or gbrain query with source_id: "__all__" and a journal keyword) and update the existing file instead of duplicating topics.
Full Desktop (shortcuts, other folders) is indexed via a federated gbrain source registered at boot; writes stay under JOSHU_FILES_ROOT only.
When MCP is unavailable, the Joshu server on :8788 exposes read-only routes (same cross-source behavior when MCP HTTP on :8794 is up):
GET /joshu/api/brain/search?q=...GET /joshu/api/brain/query?q=...