@symerian/symi 3.0.16 → 3.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{audio-preflight-CBDFctZN.js → audio-preflight-BfmZbg4Y.js} +4 -4
- package/dist/{audio-preflight-gsZSpG-6.js → audio-preflight-DcuC-liM.js} +4 -4
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +8 -8
- package/dist/bundled/session-memory/handler.js +7 -7
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-nPMY1XTJ.js → chrome-Bo7cbvFK.js} +5 -5
- package/dist/{chrome-BjVab8gM.js → chrome-DYp18Q0t.js} +5 -5
- package/dist/{deliver-D-QFqm31.js → deliver-ChSIbiMM.js} +1 -1
- package/dist/{deliver-B4-bcot9.js → deliver-DEgRQM4J.js} +1 -1
- package/dist/extensionAPI.js +7 -7
- package/dist/{image-CDwtQjmt.js → image-Bx-hvoNJ.js} +1 -1
- package/dist/{image-CcS-vzTA.js → image-CQl_mjWk.js} +1 -1
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{manager-BnEdHzmO.js → manager-D_pn0urG.js} +1 -1
- package/dist/{manager-09r0qPze.js → manager-YQxK2t0C.js} +1 -1
- package/dist/{pi-embedded-CWsY69-4.js → pi-embedded-CLw_ZzEZ.js} +16 -16
- package/dist/{pi-embedded-helpers-BBMy-lqr.js → pi-embedded-helpers-B5I53aw6.js} +4 -4
- package/dist/{pi-embedded-helpers-ChEYbgVj.js → pi-embedded-helpers-sUAEIC9X.js} +4 -4
- package/dist/plugin-sdk/{accounts-BfyWsC_i.js → accounts-CWFytwbR.js} +3 -3
- package/dist/plugin-sdk/{active-listener-DcJW7xAT.js → active-listener-BkZ4jHrL.js} +2 -2
- package/dist/plugin-sdk/{agent-scope-ChbGV6of.js → agent-scope-C9gfY_Gk.js} +2 -2
- package/dist/plugin-sdk/{audio-preflight-D3GtNLqW.js → audio-preflight-HKbdzXLZ.js} +21 -21
- package/dist/plugin-sdk/{bindings-CN2Qmefj.js → bindings-BaKIqPPy.js} +2 -2
- package/dist/plugin-sdk/{channel-web-DTyqujjA.js → channel-web-D5nWiTH1.js} +18 -18
- package/dist/plugin-sdk/{chrome-BKzAKr3K.js → chrome-klTSnz-9.js} +3 -3
- package/dist/plugin-sdk/{chunk-DhDkBujV.js → chunk-BbrYSny_.js} +1 -1
- package/dist/plugin-sdk/{command-format-CVrYFyZS.js → command-format-BN6tyZt6.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-17yfZkHZ.js → commands-registry-CTzKKtY6.js} +4 -4
- package/dist/plugin-sdk/{config-7wk65zKC.js → config-Crv2qEdJ.js} +9 -9
- package/dist/plugin-sdk/{consolidate-exbAW0ml.js → consolidate-DT1QH65Q.js} +2 -2
- package/dist/plugin-sdk/{deliver-TxAcw7J5.js → deliver-7rOvAlrc.js} +12 -12
- package/dist/plugin-sdk/{diagnostic-Debx4frd.js → diagnostic-0nsxhWp7.js} +1 -1
- package/dist/plugin-sdk/{fs-safe-wBYbAkJF.js → fs-safe-DfWYBeWF.js} +1 -1
- package/dist/plugin-sdk/{gemini-auth-7U2pm2Ky.js → gemini-auth-C0N0_u49.js} +1 -1
- package/dist/plugin-sdk/{image-BtDVmYA5.js → image-WOSl2apK.js} +4 -4
- package/dist/plugin-sdk/index.js +43 -43
- package/dist/plugin-sdk/{ir-CKMvRrGW.js → ir-9J84MTls.js} +4 -4
- package/dist/plugin-sdk/{local-roots-c_gaPs01.js → local-roots-OLRDbvyY.js} +3 -3
- package/dist/plugin-sdk/{login-DUym1Jy0.js → login-C7x4q0i2.js} +7 -7
- package/dist/plugin-sdk/{login-qr-B-WBdvrX.js → login-qr-Dv5_MoAW.js} +9 -9
- package/dist/plugin-sdk/{manager-B71SCzos.js → manager-C83tK17x.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-Dnic6Chh.js → manifest-registry-CJMV-PI7.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-Dur7OTlM.js → markdown-tables-DXNKz5y_.js} +1 -1
- package/dist/plugin-sdk/{message-channel-BrAhJJV_.js → message-channel-aGy1HbQQ.js} +1 -1
- package/dist/plugin-sdk/{model-selection-B9qaVQSJ.js → model-selection-C-3-tpe7.js} +4 -4
- package/dist/plugin-sdk/{outbound-DB1wDM8b.js → outbound-DquCeSy5.js} +6 -6
- package/dist/plugin-sdk/{pi-auth-json-ZO118hoy.js → pi-auth-json-D9PDCXGn.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-s_U0Un7j.js → pi-embedded-helpers-D3ygfH7l.js} +16 -16
- package/dist/plugin-sdk/{plugins-DF81oSaI.js → plugins-DOwnSg9D.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-CTwP02uv.js → pw-ai-rlengLjb.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-CBaSGant.js → qmd-manager-BzxFjRFa.js} +4 -4
- package/dist/plugin-sdk/{registry-CZVURNhF.js → registry-5iFfixlB.js} +2 -2
- package/dist/plugin-sdk/{replies-hwRbkU3z.js → replies-BXOzO_H5.js} +7 -7
- package/dist/plugin-sdk/{reply-prefix-CaXmzZlx.js → reply-prefix-INAKTqCU.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-fxVSOBmk.js → resolve-outbound-target-DvbxHtqp.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-ClCyiOeu.js → resolve-route-URXlY3AK.js} +3 -3
- package/dist/plugin-sdk/{runner-Cq5jvwQ7.js → runner-Bv0_DWoH.js} +9 -9
- package/dist/plugin-sdk/{session-B_TkB65Y.js → session-C3r8l7ou.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-0LF9HTGr.js → skill-commands-KjLUGIdZ.js} +5 -5
- package/dist/plugin-sdk/{skills-BIT_O7J0.js → skills-BrsD4L5c.js} +7 -7
- package/dist/plugin-sdk/{sqlite-Bx5Y5U5X.js → sqlite-CjW7ME1H.js} +1 -1
- package/dist/plugin-sdk/{subsystem-CXqYeDy-.js → subsystem-DcOg1xJr.js} +1 -1
- package/dist/plugin-sdk/{synthesis-DtsYAj1E.js → synthesis-CY7YAasV.js} +38 -38
- package/dist/plugin-sdk/{target-errors-B8mokOeH.js → target-errors-BVWJGWFq.js} +2 -2
- package/dist/plugin-sdk/{thinking-Ca0DhqzO.js → thinking-CtsTDPOi.js} +3 -3
- package/dist/plugin-sdk/{tokens-CvlONEqh.js → tokens-8lqOTZCB.js} +1 -1
- package/dist/plugin-sdk/{tool-images-DpBaWEHT.js → tool-images-Cl_rGIUZ.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-BOvUFa0f.js → tool-loop-detection-Da4WUT_P.js} +2 -2
- package/dist/plugin-sdk/{unified-runner-CnM7lyNd.js → unified-runner-nwMnsZyj.js} +60 -60
- package/dist/plugin-sdk/web-BlweOZDp.js +54 -0
- package/dist/plugin-sdk/{whatsapp-actions-CvnfsFJm.js → whatsapp-actions-DpfaGYs7.js} +21 -21
- package/dist/{pw-ai-BW8_KeDf.js → pw-ai-BqxJG-Wh.js} +1 -1
- package/dist/{pw-ai-j9IE1K0-.js → pw-ai-C-NSGye0.js} +1 -1
- package/dist/{runner-8ALr2UII.js → runner-COGFTeDw.js} +1 -1
- package/dist/{runner-C4-9kFdR.js → runner-DhCi2lT1.js} +1 -1
- package/dist/{synthesis-Cph3LhA1.js → synthesis-CXZu24Vx.js} +7 -7
- package/dist/{synthesis-Cus0A2dL.js → synthesis-DrPxcMlQ.js} +7 -7
- package/dist/{unified-runner-CX80YMTk.js → unified-runner-iByUazvW.js} +16 -16
- package/dist/{web-ChozvJ7I.js → web-EsMQBIYf.js} +7 -7
- package/dist/{web-DFlsbXmQ.js → web-PPg5y6xI.js} +7 -7
- package/docs/.i18n/zh-CN.tm.jsonl +0 -20
- package/docs/automation/cron-jobs.md +0 -2
- package/docs/automation/hooks.md +0 -2
- package/docs/automation/poll.md +0 -8
- package/docs/automation/webhook.md +0 -2
- package/docs/capabilities.md +0 -2
- package/docs/channels/broadcast-groups.md +0 -1
- package/docs/channels/channel-routing.md +4 -10
- package/docs/channels/group-messages.md +0 -2
- package/docs/channels/groups.md +0 -10
- package/docs/channels/index.md +0 -1
- package/docs/channels/matrix.md +0 -2
- package/docs/channels/msteams.md +0 -2
- package/docs/channels/pairing.md +0 -3
- package/docs/channels/signal.md +0 -2
- package/docs/channels/troubleshooting.md +0 -7
- package/docs/cli/channels.md +0 -6
- package/docs/cli/configure.md +0 -1
- package/docs/cli/directory.md +0 -1
- package/docs/cli/index.md +0 -7
- package/docs/cli/message.md +1 -47
- package/docs/cli/status.md +0 -1
- package/docs/concepts/architecture.md +0 -1
- package/docs/concepts/features.md +0 -2
- package/docs/concepts/markdown-formatting.md +6 -8
- package/docs/concepts/memory.md +0 -4
- package/docs/concepts/messages.md +0 -1
- package/docs/concepts/models.md +0 -1
- package/docs/concepts/multi-agent.md +4 -19
- package/docs/concepts/queue.md +0 -3
- package/docs/concepts/retry.md +0 -5
- package/docs/concepts/session-tool.md +0 -2
- package/docs/concepts/session.md +2 -9
- package/docs/concepts/streaming.md +0 -2
- package/docs/concepts/system-prompt.md +0 -1
- package/docs/concepts/timezone.md +0 -1
- package/docs/date-time.md +0 -1
- package/docs/docs.json +2 -11
- package/docs/experiments/plans/cron-add-hardening.md +0 -1
- package/docs/experiments/plans/session-binding-channel-agnostic.md +2 -23
- package/docs/experiments/plans/thread-bound-subagents.md +7 -64
- package/docs/gateway/configuration-examples.md +0 -10
- package/docs/gateway/configuration-reference.md +22 -47
- package/docs/gateway/configuration.md +0 -3
- package/docs/gateway/heartbeat.md +0 -2
- package/docs/gateway/security/index.md +1 -6
- package/docs/gateway/troubleshooting.md +0 -1
- package/docs/help/faq.md +0 -13
- package/docs/help/troubleshooting.md +0 -1
- package/docs/index.md +0 -6
- package/docs/install/ansible.md +2 -3
- package/docs/install/docker.md +1 -7
- package/docs/install/fly.md +0 -14
- package/docs/install/northflank.mdx +7 -11
- package/docs/install/railway.mdx +6 -10
- package/docs/install/render.mdx +1 -2
- package/docs/ja-JP/index.md +0 -3
- package/docs/pi.md +3 -5
- package/docs/platforms/digitalocean.md +0 -1
- package/docs/platforms/mac/voicewake.md +0 -1
- package/docs/providers/index.md +0 -2
- package/docs/refactor/outbound-session-mirroring.md +0 -2
- package/docs/reference/AGENTS.default.md +0 -1
- package/docs/reference/RELEASING.md +0 -1
- package/docs/reference/session-management-compaction.md +0 -1
- package/docs/reference/templates/AGENTS.md +0 -7
- package/docs/reference/wizard.md +0 -4
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -1
- package/docs/security/README.md +0 -1
- package/docs/security/THREAT-MODEL-ATLAS.md +7 -10
- package/docs/start/docs-directory.md +0 -1
- package/docs/start/hubs.md +0 -1
- package/docs/start/lore.md +0 -3
- package/docs/start/setup.md +0 -2
- package/docs/start/showcase.md +0 -2
- package/docs/start/symi.md +0 -4
- package/docs/start/wizard-cli-reference.md +0 -4
- package/docs/start/wizard.md +3 -4
- package/docs/tools/agent-send.md +0 -1
- package/docs/tools/elevated.md +0 -2
- package/docs/tools/exec-approvals.md +0 -1
- package/docs/tools/index.md +0 -7
- package/docs/tools/multi-agent-sandbox-tools.md +1 -2
- package/docs/tools/reactions.md +0 -1
- package/docs/tools/slash-commands.md +0 -14
- package/docs/tools/symihub.md +0 -1
- package/docs/tts.md +0 -1
- package/docs/web/control-ui.md +0 -1
- package/docs/zh-CN/automation/cron-jobs.md +0 -2
- package/docs/zh-CN/automation/poll.md +0 -8
- package/docs/zh-CN/automation/webhook.md +0 -2
- package/docs/zh-CN/channels/broadcast-groups.md +0 -1
- package/docs/zh-CN/channels/channel-routing.md +4 -9
- package/docs/zh-CN/channels/group-messages.md +0 -2
- package/docs/zh-CN/channels/groups.md +0 -10
- package/docs/zh-CN/channels/imessage.md +0 -2
- package/docs/zh-CN/channels/index.md +0 -1
- package/docs/zh-CN/channels/msteams.md +0 -2
- package/docs/zh-CN/channels/pairing.md +0 -3
- package/docs/zh-CN/channels/signal.md +0 -2
- package/docs/zh-CN/channels/slack.md +0 -2
- package/docs/zh-CN/channels/telegram.md +0 -3
- package/docs/zh-CN/channels/troubleshooting.md +0 -2
- package/docs/zh-CN/cli/channels.md +0 -6
- package/docs/zh-CN/cli/configure.md +0 -1
- package/docs/zh-CN/cli/directory.md +0 -1
- package/docs/zh-CN/cli/index.md +0 -7
- package/docs/zh-CN/cli/message.md +1 -42
- package/docs/zh-CN/cli/status.md +0 -1
- package/docs/zh-CN/concepts/architecture.md +0 -1
- package/docs/zh-CN/concepts/features.md +0 -2
- package/docs/zh-CN/concepts/markdown-formatting.md +6 -8
- package/docs/zh-CN/concepts/messages.md +0 -1
- package/docs/zh-CN/concepts/multi-agent.md +4 -5
- package/docs/zh-CN/concepts/queue.md +0 -3
- package/docs/zh-CN/concepts/retry.md +0 -5
- package/docs/zh-CN/concepts/session-tool.md +0 -2
- package/docs/zh-CN/concepts/session.md +3 -11
- package/docs/zh-CN/concepts/streaming.md +0 -2
- package/docs/zh-CN/concepts/system-prompt.md +0 -2
- package/docs/zh-CN/concepts/timezone.md +0 -2
- package/docs/zh-CN/date-time.md +0 -1
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +0 -1
- package/docs/zh-CN/gateway/configuration-examples.md +0 -7
- package/docs/zh-CN/gateway/configuration.md +2 -50
- package/docs/zh-CN/gateway/heartbeat.md +0 -2
- package/docs/zh-CN/gateway/security/index.md +1 -6
- package/docs/zh-CN/gateway/troubleshooting.md +1 -14
- package/docs/zh-CN/help/faq.md +0 -15
- package/docs/zh-CN/index.md +0 -3
- package/docs/zh-CN/install/ansible.md +2 -3
- package/docs/zh-CN/install/docker.md +1 -7
- package/docs/zh-CN/install/fly.md +0 -14
- package/docs/zh-CN/install/northflank.mdx +7 -11
- package/docs/zh-CN/install/railway.mdx +6 -10
- package/docs/zh-CN/install/render.mdx +1 -2
- package/docs/zh-CN/pi.md +3 -5
- package/docs/zh-CN/platforms/digitalocean.md +0 -1
- package/docs/zh-CN/platforms/mac/voicewake.md +0 -1
- package/docs/zh-CN/providers/index.md +0 -2
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +0 -2
- package/docs/zh-CN/reference/AGENTS.default.md +0 -1
- package/docs/zh-CN/reference/RELEASING.md +0 -1
- package/docs/zh-CN/reference/session-management-compaction.md +0 -1
- package/docs/zh-CN/reference/templates/AGENTS.md +0 -5
- package/docs/zh-CN/start/docs-directory.md +0 -1
- package/docs/zh-CN/start/getting-started.md +0 -5
- package/docs/zh-CN/start/hubs.md +0 -1
- package/docs/zh-CN/start/lore.md +0 -3
- package/docs/zh-CN/start/setup.md +0 -2
- package/docs/zh-CN/start/showcase.md +0 -2
- package/docs/zh-CN/start/symi.md +0 -4
- package/docs/zh-CN/start/wizard.md +0 -5
- package/docs/zh-CN/tools/agent-send.md +0 -1
- package/docs/zh-CN/tools/elevated.md +0 -2
- package/docs/zh-CN/tools/exec-approvals.md +0 -1
- package/docs/zh-CN/tools/index.md +0 -7
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +1 -2
- package/docs/zh-CN/tools/reactions.md +0 -1
- package/docs/zh-CN/tools/slash-commands.md +0 -9
- package/docs/zh-CN/tts.md +0 -2
- package/docs/zh-CN/web/control-ui.md +0 -1
- package/package.json +1 -1
- package/dist/plugin-sdk/web-CIPJBHAU.js +0 -54
- package/docs/channels/discord.md +0 -998
- package/docs/zh-CN/channels/discord.md +0 -468
- package/skills/1password/SKILL.md +0 -71
- package/skills/1password/references/cli-examples.md +0 -29
- package/skills/1password/references/get-started.md +0 -17
- package/skills/apple-notes/SKILL.md +0 -78
- package/skills/apple-reminders/SKILL.md +0 -119
- package/skills/bear-notes/SKILL.md +0 -108
- package/skills/blogwatcher/SKILL.md +0 -70
- package/skills/blucli/SKILL.md +0 -48
- package/skills/bluebubbles/SKILL.md +0 -132
- package/skills/camsnap/SKILL.md +0 -46
- package/skills/canvas/SKILL.md +0 -204
- package/skills/connect-email/SKILL.md +0 -142
- package/skills/document-generation/SKILL.md +0 -83
- package/skills/eightctl/SKILL.md +0 -51
- package/skills/food-order/SKILL.md +0 -49
- package/skills/gemini/SKILL.md +0 -44
- package/skills/gh-issues/SKILL.md +0 -865
- package/skills/gifgrep/SKILL.md +0 -80
- package/skills/github/SKILL.md +0 -164
- package/skills/gog/SKILL.md +0 -117
- package/skills/goplaces/SKILL.md +0 -53
- package/skills/healthcheck/SKILL.md +0 -246
- package/skills/himalaya/SKILL.md +0 -258
- package/skills/himalaya/references/configuration.md +0 -184
- package/skills/himalaya/references/message-composition.md +0 -199
- package/skills/imsg/SKILL.md +0 -122
- package/skills/long-task/SKILL.md +0 -58
- package/skills/long-task/scripts/detach-task.sh +0 -187
- package/skills/nano-banana-pro/SKILL.md +0 -59
- package/skills/nano-banana-pro/scripts/generate_image.py +0 -184
- package/skills/nano-pdf/SKILL.md +0 -39
- package/skills/notion/SKILL.md +0 -173
- package/skills/obsidian/SKILL.md +0 -82
- package/skills/openai-image-gen/SKILL.md +0 -90
- package/skills/openai-image-gen/scripts/gen.py +0 -240
- package/skills/openai-whisper/SKILL.md +0 -39
- package/skills/openai-whisper-api/SKILL.md +0 -53
- package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
- package/skills/openhue/SKILL.md +0 -113
- package/skills/oracle/SKILL.md +0 -126
- package/skills/ordercli/SKILL.md +0 -79
- package/skills/peekaboo/SKILL.md +0 -191
- package/skills/reactions-extensive/SKILL.md +0 -30
- package/skills/reactions-minimal/SKILL.md +0 -31
- package/skills/safe-edit/SKILL.md +0 -51
- package/skills/sag/SKILL.md +0 -88
- package/skills/sherpa-onnx-tts/SKILL.md +0 -104
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
- package/skills/songsee/SKILL.md +0 -50
- package/skills/sonoscli/SKILL.md +0 -66
- package/skills/spotify-player/SKILL.md +0 -65
- package/skills/symihub/SKILL.md +0 -78
- package/skills/things-mac/SKILL.md +0 -87
- package/skills/tmux/SKILL.md +0 -153
- package/skills/tmux/scripts/find-sessions.sh +0 -112
- package/skills/tmux/scripts/wait-for-text.sh +0 -83
- package/skills/trello/SKILL.md +0 -96
- package/skills/video-frames/SKILL.md +0 -47
- package/skills/video-frames/scripts/frame.sh +0 -81
- package/skills/voice-call/SKILL.md +0 -46
- package/skills/wacli/SKILL.md +0 -73
- package/skills/weather/SKILL.md +0 -113
- package/skills/xurl/SKILL.md +0 -462
package/skills/himalaya/SKILL.md
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: himalaya
|
|
3
|
-
description: "CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language)."
|
|
4
|
-
homepage: https://github.com/pimalaya/himalaya
|
|
5
|
-
metadata:
|
|
6
|
-
{
|
|
7
|
-
"symi":
|
|
8
|
-
{
|
|
9
|
-
"emoji": "📧",
|
|
10
|
-
"requires": { "bins": ["himalaya"] },
|
|
11
|
-
"install":
|
|
12
|
-
[
|
|
13
|
-
{
|
|
14
|
-
"id": "brew",
|
|
15
|
-
"kind": "brew",
|
|
16
|
-
"formula": "himalaya",
|
|
17
|
-
"bins": ["himalaya"],
|
|
18
|
-
"label": "Install Himalaya (brew)",
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
},
|
|
22
|
-
}
|
|
23
|
-
triggers: [himalaya]
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
# Himalaya Email CLI
|
|
27
|
-
|
|
28
|
-
Himalaya is a CLI email client that lets you manage emails from the terminal using IMAP, SMTP, Notmuch, or Sendmail backends.
|
|
29
|
-
|
|
30
|
-
## References
|
|
31
|
-
|
|
32
|
-
- `references/configuration.md` (config file setup + IMAP/SMTP authentication)
|
|
33
|
-
- `references/message-composition.md` (MML syntax for composing emails)
|
|
34
|
-
|
|
35
|
-
## Prerequisites
|
|
36
|
-
|
|
37
|
-
1. Himalaya CLI installed (`himalaya --version` to verify)
|
|
38
|
-
2. A configuration file at `~/.config/himalaya/config.toml`
|
|
39
|
-
3. IMAP/SMTP credentials configured (password stored securely)
|
|
40
|
-
|
|
41
|
-
## Configuration Setup
|
|
42
|
-
|
|
43
|
-
Run the interactive wizard to set up an account:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
himalaya account configure
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Or create `~/.config/himalaya/config.toml` manually:
|
|
50
|
-
|
|
51
|
-
```toml
|
|
52
|
-
[accounts.personal]
|
|
53
|
-
email = "you@example.com"
|
|
54
|
-
display-name = "Your Name"
|
|
55
|
-
default = true
|
|
56
|
-
|
|
57
|
-
backend.type = "imap"
|
|
58
|
-
backend.host = "imap.example.com"
|
|
59
|
-
backend.port = 993
|
|
60
|
-
backend.encryption.type = "tls"
|
|
61
|
-
backend.login = "you@example.com"
|
|
62
|
-
backend.auth.type = "password"
|
|
63
|
-
backend.auth.cmd = "pass show email/imap" # or use keyring
|
|
64
|
-
|
|
65
|
-
message.send.backend.type = "smtp"
|
|
66
|
-
message.send.backend.host = "smtp.example.com"
|
|
67
|
-
message.send.backend.port = 587
|
|
68
|
-
message.send.backend.encryption.type = "start-tls"
|
|
69
|
-
message.send.backend.login = "you@example.com"
|
|
70
|
-
message.send.backend.auth.type = "password"
|
|
71
|
-
message.send.backend.auth.cmd = "pass show email/smtp"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Common Operations
|
|
75
|
-
|
|
76
|
-
### List Folders
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
himalaya folder list
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### List Emails
|
|
83
|
-
|
|
84
|
-
List emails in INBOX (default):
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
himalaya envelope list
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
List emails in a specific folder:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
himalaya envelope list --folder "Sent"
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
List with pagination:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
himalaya envelope list --page 1 --page-size 20
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Search Emails
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
himalaya envelope list from john@example.com subject meeting
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### Read an Email
|
|
109
|
-
|
|
110
|
-
Read email by ID (shows plain text):
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
himalaya message read 42
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Export raw MIME:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
himalaya message export 42 --full
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Reply to an Email
|
|
123
|
-
|
|
124
|
-
Interactive reply (opens $EDITOR):
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
himalaya message reply 42
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Reply-all:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
himalaya message reply 42 --all
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Forward an Email
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
himalaya message forward 42
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Write a New Email
|
|
143
|
-
|
|
144
|
-
Interactive compose (opens $EDITOR):
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
himalaya message write
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
Send directly using template:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
cat << 'EOF' | himalaya template send
|
|
154
|
-
From: you@example.com
|
|
155
|
-
To: recipient@example.com
|
|
156
|
-
Subject: Test Message
|
|
157
|
-
|
|
158
|
-
Hello from Himalaya!
|
|
159
|
-
EOF
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Or with headers flag:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Message body here"
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Move/Copy Emails
|
|
169
|
-
|
|
170
|
-
Move to folder:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
himalaya message move 42 "Archive"
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Copy to folder:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
himalaya message copy 42 "Important"
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Delete an Email
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
himalaya message delete 42
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### Manage Flags
|
|
189
|
-
|
|
190
|
-
Add flag:
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
himalaya flag add 42 --flag seen
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
Remove flag:
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
himalaya flag remove 42 --flag seen
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
## Multiple Accounts
|
|
203
|
-
|
|
204
|
-
List accounts:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
himalaya account list
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Use a specific account:
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
himalaya --account work envelope list
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Attachments
|
|
217
|
-
|
|
218
|
-
Save attachments from a message:
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
himalaya attachment download 42
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Save to specific directory:
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
himalaya attachment download 42 --dir ~/Downloads
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## Output Formats
|
|
231
|
-
|
|
232
|
-
Most commands support `--output` for structured output:
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
himalaya envelope list --output json
|
|
236
|
-
himalaya envelope list --output plain
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
## Debugging
|
|
240
|
-
|
|
241
|
-
Enable debug logging:
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
RUST_LOG=debug himalaya envelope list
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Full trace with backtrace:
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
## Tips
|
|
254
|
-
|
|
255
|
-
- Use `himalaya --help` or `himalaya <command> --help` for detailed usage.
|
|
256
|
-
- Message IDs are relative to the current folder; re-list after folder changes.
|
|
257
|
-
- For composing rich emails with attachments, use MML syntax (see `references/message-composition.md`).
|
|
258
|
-
- Store passwords securely using `pass`, system keyring, or a command that outputs the password.
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
# Himalaya Configuration Reference
|
|
2
|
-
|
|
3
|
-
Configuration file location: `~/.config/himalaya/config.toml`
|
|
4
|
-
|
|
5
|
-
## Minimal IMAP + SMTP Setup
|
|
6
|
-
|
|
7
|
-
```toml
|
|
8
|
-
[accounts.default]
|
|
9
|
-
email = "user@example.com"
|
|
10
|
-
display-name = "Your Name"
|
|
11
|
-
default = true
|
|
12
|
-
|
|
13
|
-
# IMAP backend for reading emails
|
|
14
|
-
backend.type = "imap"
|
|
15
|
-
backend.host = "imap.example.com"
|
|
16
|
-
backend.port = 993
|
|
17
|
-
backend.encryption.type = "tls"
|
|
18
|
-
backend.login = "user@example.com"
|
|
19
|
-
backend.auth.type = "password"
|
|
20
|
-
backend.auth.raw = "your-password"
|
|
21
|
-
|
|
22
|
-
# SMTP backend for sending emails
|
|
23
|
-
message.send.backend.type = "smtp"
|
|
24
|
-
message.send.backend.host = "smtp.example.com"
|
|
25
|
-
message.send.backend.port = 587
|
|
26
|
-
message.send.backend.encryption.type = "start-tls"
|
|
27
|
-
message.send.backend.login = "user@example.com"
|
|
28
|
-
message.send.backend.auth.type = "password"
|
|
29
|
-
message.send.backend.auth.raw = "your-password"
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Password Options
|
|
33
|
-
|
|
34
|
-
### Raw password (testing only, not recommended)
|
|
35
|
-
|
|
36
|
-
```toml
|
|
37
|
-
backend.auth.raw = "your-password"
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Password from command (recommended)
|
|
41
|
-
|
|
42
|
-
```toml
|
|
43
|
-
backend.auth.cmd = "pass show email/imap"
|
|
44
|
-
# backend.auth.cmd = "security find-generic-password -a user@example.com -s imap -w"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### System keyring (requires keyring feature)
|
|
48
|
-
|
|
49
|
-
```toml
|
|
50
|
-
backend.auth.keyring = "imap-example"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Then run `himalaya account configure <account>` to store the password.
|
|
54
|
-
|
|
55
|
-
## Gmail Configuration
|
|
56
|
-
|
|
57
|
-
```toml
|
|
58
|
-
[accounts.gmail]
|
|
59
|
-
email = "you@gmail.com"
|
|
60
|
-
display-name = "Your Name"
|
|
61
|
-
default = true
|
|
62
|
-
|
|
63
|
-
backend.type = "imap"
|
|
64
|
-
backend.host = "imap.gmail.com"
|
|
65
|
-
backend.port = 993
|
|
66
|
-
backend.encryption.type = "tls"
|
|
67
|
-
backend.login = "you@gmail.com"
|
|
68
|
-
backend.auth.type = "password"
|
|
69
|
-
backend.auth.cmd = "pass show google/app-password"
|
|
70
|
-
|
|
71
|
-
message.send.backend.type = "smtp"
|
|
72
|
-
message.send.backend.host = "smtp.gmail.com"
|
|
73
|
-
message.send.backend.port = 587
|
|
74
|
-
message.send.backend.encryption.type = "start-tls"
|
|
75
|
-
message.send.backend.login = "you@gmail.com"
|
|
76
|
-
message.send.backend.auth.type = "password"
|
|
77
|
-
message.send.backend.auth.cmd = "pass show google/app-password"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Note:** Gmail requires an App Password if 2FA is enabled.
|
|
81
|
-
|
|
82
|
-
## iCloud Configuration
|
|
83
|
-
|
|
84
|
-
```toml
|
|
85
|
-
[accounts.icloud]
|
|
86
|
-
email = "you@icloud.com"
|
|
87
|
-
display-name = "Your Name"
|
|
88
|
-
|
|
89
|
-
backend.type = "imap"
|
|
90
|
-
backend.host = "imap.mail.me.com"
|
|
91
|
-
backend.port = 993
|
|
92
|
-
backend.encryption.type = "tls"
|
|
93
|
-
backend.login = "you@icloud.com"
|
|
94
|
-
backend.auth.type = "password"
|
|
95
|
-
backend.auth.cmd = "pass show icloud/app-password"
|
|
96
|
-
|
|
97
|
-
message.send.backend.type = "smtp"
|
|
98
|
-
message.send.backend.host = "smtp.mail.me.com"
|
|
99
|
-
message.send.backend.port = 587
|
|
100
|
-
message.send.backend.encryption.type = "start-tls"
|
|
101
|
-
message.send.backend.login = "you@icloud.com"
|
|
102
|
-
message.send.backend.auth.type = "password"
|
|
103
|
-
message.send.backend.auth.cmd = "pass show icloud/app-password"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**Note:** Generate an app-specific password at appleid.apple.com
|
|
107
|
-
|
|
108
|
-
## Folder Aliases
|
|
109
|
-
|
|
110
|
-
Map custom folder names:
|
|
111
|
-
|
|
112
|
-
```toml
|
|
113
|
-
[accounts.default.folder.alias]
|
|
114
|
-
inbox = "INBOX"
|
|
115
|
-
sent = "Sent"
|
|
116
|
-
drafts = "Drafts"
|
|
117
|
-
trash = "Trash"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## Multiple Accounts
|
|
121
|
-
|
|
122
|
-
```toml
|
|
123
|
-
[accounts.personal]
|
|
124
|
-
email = "personal@example.com"
|
|
125
|
-
default = true
|
|
126
|
-
# ... backend config ...
|
|
127
|
-
|
|
128
|
-
[accounts.work]
|
|
129
|
-
email = "work@company.com"
|
|
130
|
-
# ... backend config ...
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Switch accounts with `--account`:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
himalaya --account work envelope list
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Notmuch Backend (local mail)
|
|
140
|
-
|
|
141
|
-
```toml
|
|
142
|
-
[accounts.local]
|
|
143
|
-
email = "user@example.com"
|
|
144
|
-
|
|
145
|
-
backend.type = "notmuch"
|
|
146
|
-
backend.db-path = "~/.mail/.notmuch"
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## OAuth2 Authentication (for providers that support it)
|
|
150
|
-
|
|
151
|
-
```toml
|
|
152
|
-
backend.auth.type = "oauth2"
|
|
153
|
-
backend.auth.client-id = "your-client-id"
|
|
154
|
-
backend.auth.client-secret.cmd = "pass show oauth/client-secret"
|
|
155
|
-
backend.auth.access-token.cmd = "pass show oauth/access-token"
|
|
156
|
-
backend.auth.refresh-token.cmd = "pass show oauth/refresh-token"
|
|
157
|
-
backend.auth.auth-url = "https://provider.com/oauth/authorize"
|
|
158
|
-
backend.auth.token-url = "https://provider.com/oauth/token"
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Additional Options
|
|
162
|
-
|
|
163
|
-
### Signature
|
|
164
|
-
|
|
165
|
-
```toml
|
|
166
|
-
[accounts.default]
|
|
167
|
-
signature = "Best regards,\nYour Name"
|
|
168
|
-
signature-delim = "-- \n"
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Downloads directory
|
|
172
|
-
|
|
173
|
-
```toml
|
|
174
|
-
[accounts.default]
|
|
175
|
-
downloads-dir = "~/Downloads/himalaya"
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Editor for composing
|
|
179
|
-
|
|
180
|
-
Set via environment variable:
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
export EDITOR="vim"
|
|
184
|
-
```
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
# Message Composition with MML (MIME Meta Language)
|
|
2
|
-
|
|
3
|
-
Himalaya uses MML for composing emails. MML is a simple XML-based syntax that compiles to MIME messages.
|
|
4
|
-
|
|
5
|
-
## Basic Message Structure
|
|
6
|
-
|
|
7
|
-
An email message is a list of **headers** followed by a **body**, separated by a blank line:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
From: sender@example.com
|
|
11
|
-
To: recipient@example.com
|
|
12
|
-
Subject: Hello World
|
|
13
|
-
|
|
14
|
-
This is the message body.
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Headers
|
|
18
|
-
|
|
19
|
-
Common headers:
|
|
20
|
-
|
|
21
|
-
- `From`: Sender address
|
|
22
|
-
- `To`: Primary recipient(s)
|
|
23
|
-
- `Cc`: Carbon copy recipients
|
|
24
|
-
- `Bcc`: Blind carbon copy recipients
|
|
25
|
-
- `Subject`: Message subject
|
|
26
|
-
- `Reply-To`: Address for replies (if different from From)
|
|
27
|
-
- `In-Reply-To`: Message ID being replied to
|
|
28
|
-
|
|
29
|
-
### Address Formats
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
To: user@example.com
|
|
33
|
-
To: John Doe <john@example.com>
|
|
34
|
-
To: "John Doe" <john@example.com>
|
|
35
|
-
To: user1@example.com, user2@example.com, "Jane" <jane@example.com>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Plain Text Body
|
|
39
|
-
|
|
40
|
-
Simple plain text email:
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
From: alice@localhost
|
|
44
|
-
To: bob@localhost
|
|
45
|
-
Subject: Plain Text Example
|
|
46
|
-
|
|
47
|
-
Hello, this is a plain text email.
|
|
48
|
-
No special formatting needed.
|
|
49
|
-
|
|
50
|
-
Best,
|
|
51
|
-
Alice
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## MML for Rich Emails
|
|
55
|
-
|
|
56
|
-
### Multipart Messages
|
|
57
|
-
|
|
58
|
-
Alternative text/html parts:
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
From: alice@localhost
|
|
62
|
-
To: bob@localhost
|
|
63
|
-
Subject: Multipart Example
|
|
64
|
-
|
|
65
|
-
<#multipart type=alternative>
|
|
66
|
-
This is the plain text version.
|
|
67
|
-
<#part type=text/html>
|
|
68
|
-
<html><body><h1>This is the HTML version</h1></body></html>
|
|
69
|
-
<#/multipart>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Attachments
|
|
73
|
-
|
|
74
|
-
Attach a file:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
From: alice@localhost
|
|
78
|
-
To: bob@localhost
|
|
79
|
-
Subject: With Attachment
|
|
80
|
-
|
|
81
|
-
Here is the document you requested.
|
|
82
|
-
|
|
83
|
-
<#part filename=/path/to/document.pdf><#/part>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Attachment with custom name:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
<#part filename=/path/to/file.pdf name=report.pdf><#/part>
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Multiple attachments:
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
<#part filename=/path/to/doc1.pdf><#/part>
|
|
96
|
-
<#part filename=/path/to/doc2.pdf><#/part>
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Inline Images
|
|
100
|
-
|
|
101
|
-
Embed an image inline:
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
From: alice@localhost
|
|
105
|
-
To: bob@localhost
|
|
106
|
-
Subject: Inline Image
|
|
107
|
-
|
|
108
|
-
<#multipart type=related>
|
|
109
|
-
<#part type=text/html>
|
|
110
|
-
<html><body>
|
|
111
|
-
<p>Check out this image:</p>
|
|
112
|
-
<img src="cid:image1">
|
|
113
|
-
</body></html>
|
|
114
|
-
<#part disposition=inline id=image1 filename=/path/to/image.png><#/part>
|
|
115
|
-
<#/multipart>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Mixed Content (Text + Attachments)
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
From: alice@localhost
|
|
122
|
-
To: bob@localhost
|
|
123
|
-
Subject: Mixed Content
|
|
124
|
-
|
|
125
|
-
<#multipart type=mixed>
|
|
126
|
-
<#part type=text/plain>
|
|
127
|
-
Please find the attached files.
|
|
128
|
-
|
|
129
|
-
Best,
|
|
130
|
-
Alice
|
|
131
|
-
<#part filename=/path/to/file1.pdf><#/part>
|
|
132
|
-
<#part filename=/path/to/file2.zip><#/part>
|
|
133
|
-
<#/multipart>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## MML Tag Reference
|
|
137
|
-
|
|
138
|
-
### `<#multipart>`
|
|
139
|
-
|
|
140
|
-
Groups multiple parts together.
|
|
141
|
-
|
|
142
|
-
- `type=alternative`: Different representations of same content
|
|
143
|
-
- `type=mixed`: Independent parts (text + attachments)
|
|
144
|
-
- `type=related`: Parts that reference each other (HTML + images)
|
|
145
|
-
|
|
146
|
-
### `<#part>`
|
|
147
|
-
|
|
148
|
-
Defines a message part.
|
|
149
|
-
|
|
150
|
-
- `type=<mime-type>`: Content type (e.g., `text/html`, `application/pdf`)
|
|
151
|
-
- `filename=<path>`: File to attach
|
|
152
|
-
- `name=<name>`: Display name for attachment
|
|
153
|
-
- `disposition=inline`: Display inline instead of as attachment
|
|
154
|
-
- `id=<cid>`: Content ID for referencing in HTML
|
|
155
|
-
|
|
156
|
-
## Composing from CLI
|
|
157
|
-
|
|
158
|
-
### Interactive compose
|
|
159
|
-
|
|
160
|
-
Opens your `$EDITOR`:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
himalaya message write
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Reply (opens editor with quoted message)
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
himalaya message reply 42
|
|
170
|
-
himalaya message reply 42 --all # reply-all
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### Forward
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
himalaya message forward 42
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### Send from stdin
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
cat message.txt | himalaya template send
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### Prefill headers from CLI
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
himalaya message write \
|
|
189
|
-
-H "To:recipient@example.com" \
|
|
190
|
-
-H "Subject:Quick Message" \
|
|
191
|
-
"Message body here"
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
## Tips
|
|
195
|
-
|
|
196
|
-
- The editor opens with a template; fill in headers and body.
|
|
197
|
-
- Save and exit the editor to send; exit without saving to cancel.
|
|
198
|
-
- MML parts are compiled to proper MIME when sending.
|
|
199
|
-
- Use `himalaya message export --full` to inspect the raw MIME structure of received emails.
|