원클릭으로
jmail-gui
jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Search Desktop files via gbrain; mail use joshu-mail.
Meeting-mail scheduling. Kanban ea-sched-*; Calendly fallback.
Find/search mail; local cache first, deep server Gmail.
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 | jmail-gui |
| description | jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths. |
| version | 0.1.0 |
| metadata | {"hermes":{"category":"mail"}} |
Use when the jMail window is open and the user is working in the desktop app (embedded chat or voice).
When jMail is open, treat the on-screen inbox as the source of truth for read/list questions.
| User intent | Do this | Do NOT |
|---|---|---|
| List recent subjects, “what’s in my inbox”, summarize visible mail | Read inboxPreview / openThread from the injected GUI snapshot | Composio GMAIL_FETCH_*, joshu-mail, gbrain |
| Snapshot empty or user says “refresh” | app_gui_action refreshInbox — use returned subject list | Composio |
| Search/filter in current tab | app_gui_action searchMail with query, then read snapshot | Composio first |
| Open a message / compose draft | app_gui_action openThread / openCompose | Paste-only in chat |
| Mail outside loaded list, other account, deep archive, “search live Gmail” | skill_view('joshu-mail') → gbrain → mirror → Composio | — |
| Headless mirror/connector checks | POST /joshu/api/apps/jmail/invoke | — |
Never send mail — draft via openCompose only; user sends in the UI.
activeView: inbox_list | thread | compose | setupinboxPreview: loaded rows in the sidebar (id, subject, from, date) — same data the user seesopenThread: full detail when a message is openWhen activeView is thread, describe openThread, not stale compose state.
app_gui_action(appId="jmail", action=…, args=…) for in-app UI changes.app_gui_action with action=openCompose and { to, subject, body } — never only paste the draft in chat.joshu-mail search order (gbrain → mirror → Composio live Gmail).connectorsStatus, syncMirror.When jMail is open, voice tools are built from guiActions[].voice on the manifest (parameters inherit from the guiAction):
| User says | Gemini tool | guiAction |
|---|---|---|
| "new email", "compose", "put in the draft" + body | app_jmail_compose({ body, subject, to }) | openCompose |
| "search mail for …" | app_jmail_search({ query }) | searchMail |
| Multi-step / ambiguous | think → Hermes + app_gui_action | — |
Hermes tool: app_gui_action(appId, action, args?). Manifest guiActions names:
| action | Effect |
|---|---|
openCompose | Open compose pane; optional draft fields |
openThread | Select message id and load detail |
searchMail | Search and refresh inbox list |
startReply | Reply to selected thread |
switchInbox | Switch agent vs Gmail tab |
refreshInbox | Reload list; returns subject lines for agent |
syncMirror | Sync local mail mirror |
openSetup | Open setup pane |