بنقرة واحدة
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 |