@hera-al/server 1.6.1
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/LICENSE +21 -0
- package/README.md +325 -0
- package/bundled/apple-notes/SKILL.md +77 -0
- package/bundled/apple-reminders/SKILL.md +96 -0
- package/bundled/blogwatcher/SKILL.md +69 -0
- package/bundled/camsnap/SKILL.md +45 -0
- package/bundled/discord/SKILL.md +578 -0
- package/bundled/gemini/SKILL.md +43 -0
- package/bundled/gifgrep/SKILL.md +79 -0
- package/bundled/github/SKILL.md +77 -0
- package/bundled/gog/SKILL.md +116 -0
- package/bundled/goplaces/SKILL.md +52 -0
- package/bundled/himalaya/SKILL.md +257 -0
- package/bundled/himalaya/references/configuration.md +184 -0
- package/bundled/himalaya/references/message-composition.md +199 -0
- package/bundled/homebrew/SKILL.md +82 -0
- package/bundled/local-places/SERVER_README.md +101 -0
- package/bundled/local-places/SKILL.md +102 -0
- package/bundled/local-places/pyproject.toml +21 -0
- package/bundled/local-places/src/local_places/__init__.py +2 -0
- package/bundled/local-places/src/local_places/google_places.py +314 -0
- package/bundled/local-places/src/local_places/main.py +65 -0
- package/bundled/local-places/src/local_places/schemas.py +107 -0
- package/bundled/markitdown/SKILL.md +96 -0
- package/bundled/mcporter/SKILL.md +61 -0
- package/bundled/merge-pr/SKILL.md +187 -0
- package/bundled/merge-pr/agents/openai.yaml +4 -0
- package/bundled/nano-banana-pro/SKILL.md +58 -0
- package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
- package/bundled/nano-pdf/SKILL.md +38 -0
- package/bundled/open-prose/README.md +25 -0
- package/bundled/open-prose/index.ts +5 -0
- package/bundled/open-prose/openclaw.plugin.json +11 -0
- package/bundled/open-prose/package.json +15 -0
- package/bundled/open-prose/skills/prose/LICENSE +21 -0
- package/bundled/open-prose/skills/prose/SKILL.md +323 -0
- package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
- package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
- package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
- package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
- package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
- package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
- package/bundled/open-prose/skills/prose/compiler.md +2971 -0
- package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
- package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
- package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
- package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
- package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
- package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
- package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
- package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
- package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
- package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
- package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
- package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
- package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
- package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
- package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
- package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
- package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
- package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
- package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
- package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
- package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
- package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
- package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
- package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
- package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
- package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
- package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
- package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
- package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
- package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
- package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
- package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
- package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
- package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
- package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
- package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
- package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
- package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
- package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
- package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
- package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
- package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
- package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
- package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
- package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
- package/bundled/open-prose/skills/prose/examples/README.md +391 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
- package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
- package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
- package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
- package/bundled/open-prose/skills/prose/help.md +144 -0
- package/bundled/open-prose/skills/prose/lib/README.md +108 -0
- package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
- package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
- package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
- package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
- package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
- package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
- package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
- package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
- package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
- package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
- package/bundled/open-prose/skills/prose/prose.md +1237 -0
- package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
- package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
- package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
- package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
- package/bundled/peekaboo/SKILL.md +190 -0
- package/bundled/prepare-pr/SKILL.md +277 -0
- package/bundled/prepare-pr/agents/openai.yaml +4 -0
- package/bundled/review-pr/SKILL.md +228 -0
- package/bundled/review-pr/agents/openai.yaml +4 -0
- package/bundled/sag/SKILL.md +87 -0
- package/bundled/skill-creator/SKILL.md +370 -0
- package/bundled/skill-creator/license.txt +202 -0
- package/bundled/skill-creator/scripts/init_skill.py +378 -0
- package/bundled/skill-creator/scripts/package_skill.py +111 -0
- package/bundled/skill-creator/scripts/quick_validate.py +101 -0
- package/bundled/spotify-player/SKILL.md +64 -0
- package/bundled/ssh/SKILL.md +119 -0
- package/bundled/summarize/SKILL.md +87 -0
- package/bundled/video-frames/SKILL.md +46 -0
- package/bundled/video-frames/scripts/frame.sh +81 -0
- package/bundled/voice-call/SKILL.md +45 -0
- package/bundled/wacli/SKILL.md +72 -0
- package/bundled/weather/SKILL.md +54 -0
- package/dist/agent/agent-service.d.ts +88 -0
- package/dist/agent/agent-service.js +1 -0
- package/dist/agent/message-queue.d.ts +24 -0
- package/dist/agent/message-queue.js +1 -0
- package/dist/agent/prompt-builder.d.ts +58 -0
- package/dist/agent/prompt-builder.js +1 -0
- package/dist/agent/session-agent.d.ts +197 -0
- package/dist/agent/session-agent.js +1 -0
- package/dist/agent/session-db.d.ts +26 -0
- package/dist/agent/session-db.js +1 -0
- package/dist/agent/session-error-handler.d.ts +37 -0
- package/dist/agent/session-error-handler.js +1 -0
- package/dist/agent/session-manager.d.ts +19 -0
- package/dist/agent/session-manager.js +1 -0
- package/dist/agent/workspace-files.d.ts +51 -0
- package/dist/agent/workspace-files.js +1 -0
- package/dist/auth/auth-middleware.d.ts +9 -0
- package/dist/auth/auth-middleware.js +1 -0
- package/dist/auth/node-signature-db.d.ts +30 -0
- package/dist/auth/node-signature-db.js +1 -0
- package/dist/auth/token-db.d.ts +38 -0
- package/dist/auth/token-db.js +1 -0
- package/dist/browser/browser-service.d.ts +9 -0
- package/dist/browser/browser-service.js +1 -0
- package/dist/channels/channel.d.ts +2 -0
- package/dist/channels/channel.js +1 -0
- package/dist/channels/responses.d.ts +21 -0
- package/dist/channels/responses.js +1 -0
- package/dist/commands/clear.d.ts +7 -0
- package/dist/commands/clear.js +1 -0
- package/dist/commands/cmd.d.ts +7 -0
- package/dist/commands/cmd.js +1 -0
- package/dist/commands/coder.d.ts +12 -0
- package/dist/commands/coder.js +1 -0
- package/dist/commands/command-registry.d.ts +12 -0
- package/dist/commands/command-registry.js +1 -0
- package/dist/commands/command.d.ts +22 -0
- package/dist/commands/command.js +1 -0
- package/dist/commands/compact.d.ts +7 -0
- package/dist/commands/compact.js +1 -0
- package/dist/commands/customsubagents.d.ts +15 -0
- package/dist/commands/customsubagents.js +1 -0
- package/dist/commands/help.d.ts +9 -0
- package/dist/commands/help.js +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.js +1 -0
- package/dist/commands/model.d.ts +22 -0
- package/dist/commands/model.js +1 -0
- package/dist/commands/models.d.ts +11 -0
- package/dist/commands/models.js +1 -0
- package/dist/commands/new.d.ts +7 -0
- package/dist/commands/new.js +1 -0
- package/dist/commands/plugin.d.ts +7 -0
- package/dist/commands/plugin.js +1 -0
- package/dist/commands/sandbox.d.ts +12 -0
- package/dist/commands/sandbox.js +1 -0
- package/dist/commands/showtool.d.ts +12 -0
- package/dist/commands/showtool.js +1 -0
- package/dist/commands/status.d.ts +24 -0
- package/dist/commands/status.js +1 -0
- package/dist/commands/stop.d.ts +10 -0
- package/dist/commands/stop.js +1 -0
- package/dist/commands/subagents.d.ts +12 -0
- package/dist/commands/subagents.js +1 -0
- package/dist/commands/usage.d.ts +25 -0
- package/dist/commands/usage.js +1 -0
- package/dist/commands/useplugin.d.ts +7 -0
- package/dist/commands/useplugin.js +1 -0
- package/dist/config-watcher.d.ts +14 -0
- package/dist/config-watcher.js +1 -0
- package/dist/config.d.ts +267 -0
- package/dist/config.js +1 -0
- package/dist/cron/cron-service.d.ts +57 -0
- package/dist/cron/cron-service.js +1 -0
- package/dist/cron/heartbeat-token.d.ts +29 -0
- package/dist/cron/heartbeat-token.js +1 -0
- package/dist/cron/schedule.d.ts +3 -0
- package/dist/cron/schedule.js +1 -0
- package/dist/cron/store.d.ts +4 -0
- package/dist/cron/store.js +1 -0
- package/dist/cron/types.d.ts +47 -0
- package/dist/cron/types.js +1 -0
- package/dist/gateway/bridge.d.ts +38 -0
- package/dist/gateway/bridge.js +1 -0
- package/dist/gateway/channel-manager.d.ts +45 -0
- package/dist/gateway/channel-manager.js +1 -0
- package/dist/gateway/channels/qr-image.d.ts +5 -0
- package/dist/gateway/channels/qr-image.js +1 -0
- package/dist/gateway/channels/telegram.d.ts +39 -0
- package/dist/gateway/channels/telegram.js +1 -0
- package/dist/gateway/channels/webchat.d.ts +51 -0
- package/dist/gateway/channels/webchat.js +1 -0
- package/dist/gateway/channels/whatsapp.d.ts +40 -0
- package/dist/gateway/channels/whatsapp.js +1 -0
- package/dist/gateway/node-registry.d.ts +38 -0
- package/dist/gateway/node-registry.js +1 -0
- package/dist/heracli/index.d.ts +3 -0
- package/dist/heracli/index.js +2 -0
- package/dist/heracli/logs.d.ts +13 -0
- package/dist/heracli/logs.js +1 -0
- package/dist/heracli/security/audit.d.ts +17 -0
- package/dist/heracli/security/audit.js +1 -0
- package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
- package/dist/heracli/security/checks/channel-policies.js +1 -0
- package/dist/heracli/security/checks/credentials.d.ts +6 -0
- package/dist/heracli/security/checks/credentials.js +1 -0
- package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
- package/dist/heracli/security/checks/fs-permissions.js +1 -0
- package/dist/heracli/security/checks/network.d.ts +4 -0
- package/dist/heracli/security/checks/network.js +1 -0
- package/dist/heracli/security/report.d.ts +4 -0
- package/dist/heracli/security/report.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/installer/hera.d.ts +3 -0
- package/dist/installer/hera.js +2 -0
- package/dist/media/message-processor.d.ts +23 -0
- package/dist/media/message-processor.js +1 -0
- package/dist/memory/memory-manager.d.ts +21 -0
- package/dist/memory/memory-manager.js +1 -0
- package/dist/memory/memory-provider.d.ts +22 -0
- package/dist/memory/memory-provider.js +1 -0
- package/dist/memory/memory-search.d.ts +102 -0
- package/dist/memory/memory-search.js +1 -0
- package/dist/memory/recall-strategies.d.ts +2 -0
- package/dist/memory/recall-strategies.js +1 -0
- package/dist/nostromo/auth.d.ts +29 -0
- package/dist/nostromo/auth.js +1 -0
- package/dist/nostromo/nostromo.d.ts +23 -0
- package/dist/nostromo/nostromo.js +1 -0
- package/dist/nostromo/ui-html-layout.d.ts +3 -0
- package/dist/nostromo/ui-html-layout.js +1 -0
- package/dist/nostromo/ui-html-modals.d.ts +3 -0
- package/dist/nostromo/ui-html-modals.js +1 -0
- package/dist/nostromo/ui-js-agent.d.ts +3 -0
- package/dist/nostromo/ui-js-agent.js +1 -0
- package/dist/nostromo/ui-js-channels.d.ts +3 -0
- package/dist/nostromo/ui-js-channels.js +1 -0
- package/dist/nostromo/ui-js-competences.d.ts +3 -0
- package/dist/nostromo/ui-js-competences.js +1 -0
- package/dist/nostromo/ui-js-config.d.ts +3 -0
- package/dist/nostromo/ui-js-config.js +1 -0
- package/dist/nostromo/ui-js-core.d.ts +3 -0
- package/dist/nostromo/ui-js-core.js +1 -0
- package/dist/nostromo/ui-js-ops.d.ts +3 -0
- package/dist/nostromo/ui-js-ops.js +1 -0
- package/dist/nostromo/ui-js-prompts.d.ts +3 -0
- package/dist/nostromo/ui-js-prompts.js +1 -0
- package/dist/nostromo/ui-styles.d.ts +3 -0
- package/dist/nostromo/ui-styles.js +1 -0
- package/dist/nostromo/ui.d.ts +2 -0
- package/dist/nostromo/ui.js +1 -0
- package/dist/server.d.ts +80 -0
- package/dist/server.js +1 -0
- package/dist/stt/local-whisper.d.ts +9 -0
- package/dist/stt/local-whisper.js +1 -0
- package/dist/stt/openai-whisper.d.ts +14 -0
- package/dist/stt/openai-whisper.js +1 -0
- package/dist/stt/stt-loader.d.ts +4 -0
- package/dist/stt/stt-loader.js +1 -0
- package/dist/stt/stt-provider.d.ts +4 -0
- package/dist/stt/stt-provider.js +1 -0
- package/dist/tools/browser-tools.d.ts +9 -0
- package/dist/tools/browser-tools.js +1 -0
- package/dist/tools/cron-tools.d.ts +4 -0
- package/dist/tools/cron-tools.js +1 -0
- package/dist/tools/memory-tools.d.ts +3 -0
- package/dist/tools/memory-tools.js +1 -0
- package/dist/tools/message-tools.d.ts +5 -0
- package/dist/tools/message-tools.js +1 -0
- package/dist/tools/node-tools.d.ts +3 -0
- package/dist/tools/node-tools.js +1 -0
- package/dist/tools/server-tools.d.ts +2 -0
- package/dist/tools/server-tools.js +1 -0
- package/dist/tools/tts-tools.d.ts +3 -0
- package/dist/tools/tts-tools.js +1 -0
- package/dist/tts/tts-service.d.ts +19 -0
- package/dist/tts/tts-service.js +1 -0
- package/dist/utils/chunk.d.ts +3 -0
- package/dist/utils/chunk.js +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/markdown/fences.d.ts +11 -0
- package/dist/utils/markdown/fences.js +1 -0
- package/dist/utils/markdown/ir.d.ts +33 -0
- package/dist/utils/markdown/ir.js +1 -0
- package/dist/utils/markdown/render.d.ts +19 -0
- package/dist/utils/markdown/render.js +1 -0
- package/dist/utils/markdown/tables.d.ts +3 -0
- package/dist/utils/markdown/tables.js +1 -0
- package/dist/utils/media-response.d.ts +29 -0
- package/dist/utils/media-response.js +1 -0
- package/dist/utils/package-paths.d.ts +5 -0
- package/dist/utils/package-paths.js +1 -0
- package/dist/utils/telegram-format.d.ts +13 -0
- package/dist/utils/telegram-format.js +1 -0
- package/installationPkg/.env.example +26 -0
- package/installationPkg/AGENTS.md +143 -0
- package/installationPkg/BOOTSTRAP.md +45 -0
- package/installationPkg/CBINT.json +16 -0
- package/installationPkg/HEARTBEAT.md +5 -0
- package/installationPkg/IDENTITY.md +7 -0
- package/installationPkg/SOUL.md +36 -0
- package/installationPkg/SYSTEM_PROMPT.md +55 -0
- package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
- package/installationPkg/TOOLS.md +36 -0
- package/installationPkg/USER.md +11 -0
- package/installationPkg/config.example.yaml +291 -0
- package/package.json +95 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github
|
|
3
|
+
description: "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries."
|
|
4
|
+
metadata:
|
|
5
|
+
{
|
|
6
|
+
"openclaw":
|
|
7
|
+
{
|
|
8
|
+
"emoji": "🐙",
|
|
9
|
+
"requires": { "bins": ["gh"] },
|
|
10
|
+
"install":
|
|
11
|
+
[
|
|
12
|
+
{
|
|
13
|
+
"id": "brew",
|
|
14
|
+
"kind": "brew",
|
|
15
|
+
"formula": "gh",
|
|
16
|
+
"bins": ["gh"],
|
|
17
|
+
"label": "Install GitHub CLI (brew)",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "apt",
|
|
21
|
+
"kind": "apt",
|
|
22
|
+
"package": "gh",
|
|
23
|
+
"bins": ["gh"],
|
|
24
|
+
"label": "Install GitHub CLI (apt)",
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
}
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# GitHub Skill
|
|
32
|
+
|
|
33
|
+
Use the `gh` CLI to interact with GitHub. Always specify `--repo owner/repo` when not in a git directory, or use URLs directly.
|
|
34
|
+
|
|
35
|
+
## Pull Requests
|
|
36
|
+
|
|
37
|
+
Check CI status on a PR:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
gh pr checks 55 --repo owner/repo
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
List recent workflow runs:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
gh run list --repo owner/repo --limit 10
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
View a run and see which steps failed:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gh run view <run-id> --repo owner/repo
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
View logs for failed steps only:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
gh run view <run-id> --repo owner/repo --log-failed
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API for Advanced Queries
|
|
62
|
+
|
|
63
|
+
The `gh api` command is useful for accessing data not available through other subcommands.
|
|
64
|
+
|
|
65
|
+
Get PR with specific fields:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## JSON Output
|
|
72
|
+
|
|
73
|
+
Most commands support `--json` for structured output. You can use `--jq` to filter:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"'
|
|
77
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gog
|
|
3
|
+
description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
|
|
4
|
+
homepage: https://gogcli.sh
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"openclaw":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "🎮",
|
|
10
|
+
"requires": { "bins": ["gog"] },
|
|
11
|
+
"install":
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "brew",
|
|
15
|
+
"kind": "brew",
|
|
16
|
+
"formula": "steipete/tap/gogcli",
|
|
17
|
+
"bins": ["gog"],
|
|
18
|
+
"label": "Install gog (brew)",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# gog
|
|
26
|
+
|
|
27
|
+
Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.
|
|
28
|
+
|
|
29
|
+
Setup (once)
|
|
30
|
+
|
|
31
|
+
- `gog auth credentials /path/to/client_secret.json`
|
|
32
|
+
- `gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets`
|
|
33
|
+
- `gog auth list`
|
|
34
|
+
|
|
35
|
+
Common commands
|
|
36
|
+
|
|
37
|
+
- Gmail search: `gog gmail search 'newer_than:7d' --max 10`
|
|
38
|
+
- Gmail messages search (per email, ignores threading): `gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account you@example.com`
|
|
39
|
+
- Gmail send (plain): `gog gmail send --to a@b.com --subject "Hi" --body "Hello"`
|
|
40
|
+
- Gmail send (multi-line): `gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt`
|
|
41
|
+
- Gmail send (stdin): `gog gmail send --to a@b.com --subject "Hi" --body-file -`
|
|
42
|
+
- Gmail send (HTML): `gog gmail send --to a@b.com --subject "Hi" --body-html "<p>Hello</p>"`
|
|
43
|
+
- Gmail draft: `gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt`
|
|
44
|
+
- Gmail send draft: `gog gmail drafts send <draftId>`
|
|
45
|
+
- Gmail reply: `gog gmail send --to a@b.com --subject "Re: Hi" --body "Reply" --reply-to-message-id <msgId>`
|
|
46
|
+
- Calendar list events: `gog calendar events <calendarId> --from <iso> --to <iso>`
|
|
47
|
+
- Calendar create event: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso>`
|
|
48
|
+
- Calendar create with color: `gog calendar create <calendarId> --summary "Title" --from <iso> --to <iso> --event-color 7`
|
|
49
|
+
- Calendar update event: `gog calendar update <calendarId> <eventId> --summary "New Title" --event-color 4`
|
|
50
|
+
- Calendar show colors: `gog calendar colors`
|
|
51
|
+
- Drive search: `gog drive search "query" --max 10`
|
|
52
|
+
- Contacts: `gog contacts list --max 20`
|
|
53
|
+
- Sheets get: `gog sheets get <sheetId> "Tab!A1:D10" --json`
|
|
54
|
+
- Sheets update: `gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED`
|
|
55
|
+
- Sheets append: `gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS`
|
|
56
|
+
- Sheets clear: `gog sheets clear <sheetId> "Tab!A2:Z"`
|
|
57
|
+
- Sheets metadata: `gog sheets metadata <sheetId> --json`
|
|
58
|
+
- Docs export: `gog docs export <docId> --format txt --out /tmp/doc.txt`
|
|
59
|
+
- Docs cat: `gog docs cat <docId>`
|
|
60
|
+
|
|
61
|
+
Calendar Colors
|
|
62
|
+
|
|
63
|
+
- Use `gog calendar colors` to see all available event colors (IDs 1-11)
|
|
64
|
+
- Add colors to events with `--event-color <id>` flag
|
|
65
|
+
- Event color IDs (from `gog calendar colors` output):
|
|
66
|
+
- 1: #a4bdfc
|
|
67
|
+
- 2: #7ae7bf
|
|
68
|
+
- 3: #dbadff
|
|
69
|
+
- 4: #ff887c
|
|
70
|
+
- 5: #fbd75b
|
|
71
|
+
- 6: #ffb878
|
|
72
|
+
- 7: #46d6db
|
|
73
|
+
- 8: #e1e1e1
|
|
74
|
+
- 9: #5484ed
|
|
75
|
+
- 10: #51b749
|
|
76
|
+
- 11: #dc2127
|
|
77
|
+
|
|
78
|
+
Email Formatting
|
|
79
|
+
|
|
80
|
+
- Prefer plain text. Use `--body-file` for multi-paragraph messages (or `--body-file -` for stdin).
|
|
81
|
+
- Same `--body-file` pattern works for drafts and replies.
|
|
82
|
+
- `--body` does not unescape `\n`. If you need inline newlines, use a heredoc or `$'Line 1\n\nLine 2'`.
|
|
83
|
+
- Use `--body-html` only when you need rich formatting.
|
|
84
|
+
- HTML tags: `<p>` for paragraphs, `<br>` for line breaks, `<strong>` for bold, `<em>` for italic, `<a href="url">` for links, `<ul>`/`<li>` for lists.
|
|
85
|
+
- Example (plain text via stdin):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
gog gmail send --to recipient@example.com \
|
|
89
|
+
--subject "Meeting Follow-up" \
|
|
90
|
+
--body-file - <<'EOF'
|
|
91
|
+
Hi Name,
|
|
92
|
+
|
|
93
|
+
Thanks for meeting today. Next steps:
|
|
94
|
+
- Item one
|
|
95
|
+
- Item two
|
|
96
|
+
|
|
97
|
+
Best regards,
|
|
98
|
+
Your Name
|
|
99
|
+
EOF
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- Example (HTML list):
|
|
103
|
+
```bash
|
|
104
|
+
gog gmail send --to recipient@example.com \
|
|
105
|
+
--subject "Meeting Follow-up" \
|
|
106
|
+
--body-html "<p>Hi Name,</p><p>Thanks for meeting today. Here are the next steps:</p><ul><li>Item one</li><li>Item two</li></ul><p>Best regards,<br>Your Name</p>"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Notes
|
|
110
|
+
|
|
111
|
+
- Set `GOG_ACCOUNT=you@gmail.com` to avoid repeating `--account`.
|
|
112
|
+
- For scripting, prefer `--json` plus `--no-input`.
|
|
113
|
+
- Sheets values can be passed via `--values-json` (recommended) or as inline rows.
|
|
114
|
+
- Docs supports export/cat/copy. In-place edits require a Docs API client (not in gog).
|
|
115
|
+
- Confirm before sending mail or creating events.
|
|
116
|
+
- `gog gmail search` returns one row per thread; use `gog gmail messages search` when you need every individual email returned separately.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goplaces
|
|
3
|
+
description: Query Google Places API (New) via the goplaces CLI for text search, place details, resolve, and reviews. Use for human-friendly place lookup or JSON output for scripts.
|
|
4
|
+
homepage: https://github.com/steipete/goplaces
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"openclaw":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "📍",
|
|
10
|
+
"requires": { "bins": ["goplaces"], "env": ["GOOGLE_PLACES_API_KEY"] },
|
|
11
|
+
"primaryEnv": "GOOGLE_PLACES_API_KEY",
|
|
12
|
+
"install":
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "brew",
|
|
16
|
+
"kind": "brew",
|
|
17
|
+
"formula": "steipete/tap/goplaces",
|
|
18
|
+
"bins": ["goplaces"],
|
|
19
|
+
"label": "Install goplaces (brew)",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# goplaces
|
|
27
|
+
|
|
28
|
+
Modern Google Places API (New) CLI. Human output by default, `--json` for scripts.
|
|
29
|
+
|
|
30
|
+
Install
|
|
31
|
+
|
|
32
|
+
- Homebrew: `brew install steipete/tap/goplaces`
|
|
33
|
+
|
|
34
|
+
Config
|
|
35
|
+
|
|
36
|
+
- `GOOGLE_PLACES_API_KEY` required.
|
|
37
|
+
- Optional: `GOOGLE_PLACES_BASE_URL` for testing/proxying.
|
|
38
|
+
|
|
39
|
+
Common commands
|
|
40
|
+
|
|
41
|
+
- Search: `goplaces search "coffee" --open-now --min-rating 4 --limit 5`
|
|
42
|
+
- Bias: `goplaces search "pizza" --lat 40.8 --lng -73.9 --radius-m 3000`
|
|
43
|
+
- Pagination: `goplaces search "pizza" --page-token "NEXT_PAGE_TOKEN"`
|
|
44
|
+
- Resolve: `goplaces resolve "Soho, London" --limit 5`
|
|
45
|
+
- Details: `goplaces details <place_id> --reviews`
|
|
46
|
+
- JSON: `goplaces search "sushi" --json`
|
|
47
|
+
|
|
48
|
+
Notes
|
|
49
|
+
|
|
50
|
+
- `--no-color` or `NO_COLOR` disables ANSI color.
|
|
51
|
+
- Price levels: 0..4 (free → very expensive).
|
|
52
|
+
- Type filter sends only the first `--type` value (API accepts one).
|
|
@@ -0,0 +1,257 @@
|
|
|
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
|
+
"openclaw":
|
|
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
|
+
---
|
|
24
|
+
|
|
25
|
+
# Himalaya Email CLI
|
|
26
|
+
|
|
27
|
+
Himalaya is a CLI email client that lets you manage emails from the terminal using IMAP, SMTP, Notmuch, or Sendmail backends.
|
|
28
|
+
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
- `references/configuration.md` (config file setup + IMAP/SMTP authentication)
|
|
32
|
+
- `references/message-composition.md` (MML syntax for composing emails)
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
1. Himalaya CLI installed (`himalaya --version` to verify)
|
|
37
|
+
2. A configuration file at `~/.config/himalaya/config.toml`
|
|
38
|
+
3. IMAP/SMTP credentials configured (password stored securely)
|
|
39
|
+
|
|
40
|
+
## Configuration Setup
|
|
41
|
+
|
|
42
|
+
Run the interactive wizard to set up an account:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
himalaya account configure
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Or create `~/.config/himalaya/config.toml` manually:
|
|
49
|
+
|
|
50
|
+
```toml
|
|
51
|
+
[accounts.personal]
|
|
52
|
+
email = "you@example.com"
|
|
53
|
+
display-name = "Your Name"
|
|
54
|
+
default = true
|
|
55
|
+
|
|
56
|
+
backend.type = "imap"
|
|
57
|
+
backend.host = "imap.example.com"
|
|
58
|
+
backend.port = 993
|
|
59
|
+
backend.encryption.type = "tls"
|
|
60
|
+
backend.login = "you@example.com"
|
|
61
|
+
backend.auth.type = "password"
|
|
62
|
+
backend.auth.cmd = "pass show email/imap" # or use keyring
|
|
63
|
+
|
|
64
|
+
message.send.backend.type = "smtp"
|
|
65
|
+
message.send.backend.host = "smtp.example.com"
|
|
66
|
+
message.send.backend.port = 587
|
|
67
|
+
message.send.backend.encryption.type = "start-tls"
|
|
68
|
+
message.send.backend.login = "you@example.com"
|
|
69
|
+
message.send.backend.auth.type = "password"
|
|
70
|
+
message.send.backend.auth.cmd = "pass show email/smtp"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Common Operations
|
|
74
|
+
|
|
75
|
+
### List Folders
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
himalaya folder list
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### List Emails
|
|
82
|
+
|
|
83
|
+
List emails in INBOX (default):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
himalaya envelope list
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
List emails in a specific folder:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
himalaya envelope list --folder "Sent"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
List with pagination:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
himalaya envelope list --page 1 --page-size 20
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Search Emails
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
himalaya envelope list from john@example.com subject meeting
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Read an Email
|
|
108
|
+
|
|
109
|
+
Read email by ID (shows plain text):
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
himalaya message read 42
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Export raw MIME:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
himalaya message export 42 --full
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Reply to an Email
|
|
122
|
+
|
|
123
|
+
Interactive reply (opens $EDITOR):
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
himalaya message reply 42
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Reply-all:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
himalaya message reply 42 --all
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Forward an Email
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
himalaya message forward 42
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Write a New Email
|
|
142
|
+
|
|
143
|
+
Interactive compose (opens $EDITOR):
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
himalaya message write
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Send directly using template:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
cat << 'EOF' | himalaya template send
|
|
153
|
+
From: you@example.com
|
|
154
|
+
To: recipient@example.com
|
|
155
|
+
Subject: Test Message
|
|
156
|
+
|
|
157
|
+
Hello from Himalaya!
|
|
158
|
+
EOF
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Or with headers flag:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Message body here"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Move/Copy Emails
|
|
168
|
+
|
|
169
|
+
Move to folder:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
himalaya message move 42 "Archive"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Copy to folder:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
himalaya message copy 42 "Important"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Delete an Email
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
himalaya message delete 42
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Manage Flags
|
|
188
|
+
|
|
189
|
+
Add flag:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
himalaya flag add 42 --flag seen
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Remove flag:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
himalaya flag remove 42 --flag seen
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Multiple Accounts
|
|
202
|
+
|
|
203
|
+
List accounts:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
himalaya account list
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Use a specific account:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
himalaya --account work envelope list
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Attachments
|
|
216
|
+
|
|
217
|
+
Save attachments from a message:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
himalaya attachment download 42
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Save to specific directory:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
himalaya attachment download 42 --dir ~/Downloads
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Output Formats
|
|
230
|
+
|
|
231
|
+
Most commands support `--output` for structured output:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
himalaya envelope list --output json
|
|
235
|
+
himalaya envelope list --output plain
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Debugging
|
|
239
|
+
|
|
240
|
+
Enable debug logging:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
RUST_LOG=debug himalaya envelope list
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Full trace with backtrace:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Tips
|
|
253
|
+
|
|
254
|
+
- Use `himalaya --help` or `himalaya <command> --help` for detailed usage.
|
|
255
|
+
- Message IDs are relative to the current folder; re-list after folder changes.
|
|
256
|
+
- For composing rich emails with attachments, use MML syntax (see `references/message-composition.md`).
|
|
257
|
+
- Store passwords securely using `pass`, system keyring, or a command that outputs the password.
|
|
@@ -0,0 +1,184 @@
|
|
|
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
|
+
```
|