@elizaos/skills 2.0.0-alpha.10
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/README.md +126 -0
- package/dist/formatter.d.ts +44 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +182 -0
- package/dist/frontmatter.d.ts +39 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +105 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/loader.d.ts +33 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +362 -0
- package/dist/resolver.d.ts +18 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +90 -0
- package/dist/types.d.ts +201 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/package.json +57 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +96 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/bird/SKILL.md +224 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +203 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +284 -0
- package/skills/discord/SKILL.md +578 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/food-order/SKILL.md +48 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +77 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +74 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +102 -0
- package/skills/local-places/pyproject.toml +21 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +58 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/notion/SKILL.md +172 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +89 -0
- package/skills/openai-image-gen/scripts/gen.py +240 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +51 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +10 -0
- package/skills/security-ask-questions-if-underspecified/README.md +24 -0
- package/skills/security-ask-questions-if-underspecified/SKILL.md +85 -0
- package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +85 -0
- package/skills/security-audit-context-building/.claude-plugin/plugin.json +10 -0
- package/skills/security-audit-context-building/README.md +58 -0
- package/skills/security-audit-context-building/SKILL.md +297 -0
- package/skills/security-audit-context-building/commands/audit-context.md +21 -0
- package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +297 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +47 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +355 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +71 -0
- package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +10 -0
- package/skills/security-building-secure-contracts/README.md +241 -0
- package/skills/security-building-secure-contracts/SKILL.md +67 -0
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +284 -0
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +405 -0
- package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +409 -0
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +329 -0
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +722 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +218 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +355 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +248 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +33 -0
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +334 -0
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +740 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +252 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +329 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +118 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +298 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +161 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +279 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +132 -0
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +389 -0
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +669 -0
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +298 -0
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +791 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +362 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +571 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +141 -0
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +388 -0
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +595 -0
- package/skills/security-differential-review/.claude-plugin/plugin.json +10 -0
- package/skills/security-differential-review/README.md +109 -0
- package/skills/security-differential-review/SKILL.md +220 -0
- package/skills/security-differential-review/commands/diff-review.md +21 -0
- package/skills/security-differential-review/skills/differential-review/SKILL.md +220 -0
- package/skills/security-differential-review/skills/differential-review/adversarial.md +203 -0
- package/skills/security-differential-review/skills/differential-review/methodology.md +234 -0
- package/skills/security-differential-review/skills/differential-review/patterns.md +300 -0
- package/skills/security-differential-review/skills/differential-review/reporting.md +369 -0
- package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +10 -0
- package/skills/security-entry-point-analyzer/README.md +74 -0
- package/skills/security-entry-point-analyzer/SKILL.md +251 -0
- package/skills/security-entry-point-analyzer/commands/entry-points.md +18 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +251 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +182 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +107 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +87 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +155 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +135 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +185 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +141 -0
- package/skills/security-fix-review/.claude-plugin/plugin.json +13 -0
- package/skills/security-fix-review/README.md +118 -0
- package/skills/security-fix-review/SKILL.md +264 -0
- package/skills/security-fix-review/commands/fix-review.md +24 -0
- package/skills/security-fix-review/skills/fix-review/SKILL.md +264 -0
- package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +408 -0
- package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +298 -0
- package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +398 -0
- package/skills/security-insecure-defaults/.claude-plugin/plugin.json +10 -0
- package/skills/security-insecure-defaults/README.md +45 -0
- package/skills/security-insecure-defaults/SKILL.md +117 -0
- package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
- package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
- package/skills/security-modern-python/.claude-plugin/plugin.json +10 -0
- package/skills/security-modern-python/README.md +58 -0
- package/skills/security-modern-python/SKILL.md +333 -0
- package/skills/security-modern-python/hooks/hooks.json +16 -0
- package/skills/security-modern-python/hooks/intercept-legacy-python.bats +388 -0
- package/skills/security-modern-python/hooks/intercept-legacy-python.sh +109 -0
- package/skills/security-modern-python/hooks/test_helper.bash +75 -0
- package/skills/security-modern-python/skills/modern-python/SKILL.md +333 -0
- package/skills/security-modern-python/skills/modern-python/references/dependabot.md +43 -0
- package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +141 -0
- package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
- package/skills/security-modern-python/skills/modern-python/references/prek.md +211 -0
- package/skills/security-modern-python/skills/modern-python/references/pyproject.md +254 -0
- package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +240 -0
- package/skills/security-modern-python/skills/modern-python/references/security-setup.md +255 -0
- package/skills/security-modern-python/skills/modern-python/references/testing.md +284 -0
- package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +200 -0
- package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +36 -0
- package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
- package/skills/security-property-based-testing/.claude-plugin/plugin.json +9 -0
- package/skills/security-property-based-testing/README.md +47 -0
- package/skills/security-property-based-testing/SKILL.md +109 -0
- package/skills/security-property-based-testing/skills/property-based-testing/README.md +88 -0
- package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +109 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +191 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +200 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
- package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +8 -0
- package/skills/semgrep-rule-creator/README.md +43 -0
- package/skills/semgrep-rule-creator/SKILL.md +168 -0
- package/skills/semgrep-rule-creator/commands/semgrep-rule.md +26 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +168 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +203 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +240 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sharp-edges/.claude-plugin/plugin.json +10 -0
- package/skills/sharp-edges/README.md +48 -0
- package/skills/sharp-edges/SKILL.md +292 -0
- package/skills/sharp-edges/skills/sharp-edges/SKILL.md +292 -0
- package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +252 -0
- package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +274 -0
- package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +333 -0
- package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +190 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +205 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +285 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +270 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +263 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +269 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +265 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +245 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +274 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +273 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +272 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +287 -0
- package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +588 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +370 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +111 -0
- package/skills/skill-creator/scripts/quick_validate.py +101 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +46 -0
- package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +10 -0
- package/skills/spec-to-code-compliance/README.md +67 -0
- package/skills/spec-to-code-compliance/SKILL.md +349 -0
- package/skills/spec-to-code-compliance/commands/spec-compliance.md +22 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +349 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/static-analysis/.claude-plugin/plugin.json +8 -0
- package/skills/static-analysis/README.md +59 -0
- package/skills/static-analysis/SKILL.md +91 -0
- package/skills/static-analysis/skills/codeql/SKILL.md +315 -0
- package/skills/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
- package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
- package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
- package/skills/static-analysis/skills/semgrep/SKILL.md +337 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/testing-handbook-skills/.claude-plugin/plugin.json +8 -0
- package/skills/testing-handbook-skills/README.md +241 -0
- package/skills/testing-handbook-skills/SKILL.md +104 -0
- package/skills/testing-handbook-skills/scripts/pyproject.toml +8 -0
- package/skills/testing-handbook-skills/scripts/validate-skills.py +657 -0
- package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +341 -0
- package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +640 -0
- package/skills/testing-handbook-skills/skills/atheris/SKILL.md +515 -0
- package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +454 -0
- package/skills/testing-handbook-skills/skills/codeql/SKILL.md +549 -0
- package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +507 -0
- package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +607 -0
- package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +297 -0
- package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +426 -0
- package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +614 -0
- package/skills/testing-handbook-skills/skills/libafl/SKILL.md +625 -0
- package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +795 -0
- package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +426 -0
- package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +443 -0
- package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +601 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +372 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +280 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +452 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +504 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +454 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +527 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +366 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +482 -0
- package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +533 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +135 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/variant-analysis/.claude-plugin/plugin.json +8 -0
- package/skills/variant-analysis/README.md +41 -0
- package/skills/variant-analysis/SKILL.md +142 -0
- package/skills/variant-analysis/commands/variants.md +23 -0
- package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +327 -0
- package/skills/variant-analysis/skills/variant-analysis/SKILL.md +142 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +69 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +71 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +80 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +75 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +54 -0
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@elizaos/skills",
|
|
3
|
+
"version": "2.0.0-alpha.10",
|
|
4
|
+
"description": "Bundled skills and skill loading utilities for elizaOS agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./skills": "./skills/",
|
|
14
|
+
"./package.json": "./package.json"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"clean": "rm -rf dist",
|
|
18
|
+
"build": "tsc -p tsconfig.build.json",
|
|
19
|
+
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
20
|
+
"test": "node --test --import tsx test/*.test.ts",
|
|
21
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
22
|
+
"lint": "bunx @biomejs/biome check --write ./src",
|
|
23
|
+
"lint:check": "bunx @biomejs/biome check ./src"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist/**/*",
|
|
27
|
+
"skills/**/*",
|
|
28
|
+
"README.md"
|
|
29
|
+
],
|
|
30
|
+
"keywords": [
|
|
31
|
+
"elizaos",
|
|
32
|
+
"skills",
|
|
33
|
+
"agent",
|
|
34
|
+
"ai",
|
|
35
|
+
"llm",
|
|
36
|
+
"automation"
|
|
37
|
+
],
|
|
38
|
+
"author": "elizaOS",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "git+https://github.com/elizaos/eliza.git",
|
|
43
|
+
"directory": "packages/skills"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=22.0.0"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"yaml": "^2.8.2"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"tsx": "^4.19.0"
|
|
53
|
+
},
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 1password
|
|
3
|
+
description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
|
|
4
|
+
homepage: https://developer.1password.com/docs/cli/get-started/
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"otto":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "🔐",
|
|
10
|
+
"requires": { "bins": ["op"] },
|
|
11
|
+
"install":
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "brew",
|
|
15
|
+
"kind": "brew",
|
|
16
|
+
"formula": "1password-cli",
|
|
17
|
+
"bins": ["op"],
|
|
18
|
+
"label": "Install 1Password CLI (brew)",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# 1Password CLI
|
|
26
|
+
|
|
27
|
+
Follow the official CLI get-started steps. Don't guess install commands.
|
|
28
|
+
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
- `references/get-started.md` (install + app integration + sign-in flow)
|
|
32
|
+
- `references/cli-examples.md` (real `op` examples)
|
|
33
|
+
|
|
34
|
+
## Workflow
|
|
35
|
+
|
|
36
|
+
1. Check OS + shell.
|
|
37
|
+
2. Verify CLI present: `op --version`.
|
|
38
|
+
3. Confirm desktop app integration is enabled (per get-started) and the app is unlocked.
|
|
39
|
+
4. REQUIRED: create a fresh tmux session for all `op` commands (no direct `op` calls outside tmux).
|
|
40
|
+
5. Sign in / authorize inside tmux: `op signin` (expect app prompt).
|
|
41
|
+
6. Verify access inside tmux: `op whoami` (must succeed before any secret read).
|
|
42
|
+
7. If multiple accounts: use `--account` or `OP_ACCOUNT`.
|
|
43
|
+
|
|
44
|
+
## REQUIRED tmux session (T-Max)
|
|
45
|
+
|
|
46
|
+
The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, always run `op` inside a dedicated tmux session with a fresh socket/session name.
|
|
47
|
+
|
|
48
|
+
Example (see `tmux` skill for socket conventions, do not reuse old session names):
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
SOCKET_DIR="${OTTO_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/otto-tmux-sockets}"
|
|
52
|
+
mkdir -p "$SOCKET_DIR"
|
|
53
|
+
SOCKET="$SOCKET_DIR/otto-op.sock"
|
|
54
|
+
SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
|
|
55
|
+
|
|
56
|
+
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
|
|
57
|
+
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter
|
|
58
|
+
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter
|
|
59
|
+
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op vault list" Enter
|
|
60
|
+
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
|
|
61
|
+
tmux -S "$SOCKET" kill-session -t "$SESSION"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Guardrails
|
|
65
|
+
|
|
66
|
+
- Never paste secrets into logs, chat, or code.
|
|
67
|
+
- Prefer `op run` / `op inject` over writing secrets to disk.
|
|
68
|
+
- If sign-in without app integration is needed, use `op account add`.
|
|
69
|
+
- If a command returns "account is not signed in", re-run `op signin` inside tmux and authorize in the app.
|
|
70
|
+
- Do not run `op` outside tmux; stop and ask if tmux is unavailable.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# op CLI examples (from op help)
|
|
2
|
+
|
|
3
|
+
## Sign in
|
|
4
|
+
|
|
5
|
+
- `op signin`
|
|
6
|
+
- `op signin --account <shorthand|signin-address|account-id|user-id>`
|
|
7
|
+
|
|
8
|
+
## Read
|
|
9
|
+
|
|
10
|
+
- `op read op://app-prod/db/password`
|
|
11
|
+
- `op read "op://app-prod/db/one-time password?attribute=otp"`
|
|
12
|
+
- `op read "op://app-prod/ssh key/private key?ssh-format=openssh"`
|
|
13
|
+
- `op read --out-file ./key.pem op://app-prod/server/ssh/key.pem`
|
|
14
|
+
|
|
15
|
+
## Run
|
|
16
|
+
|
|
17
|
+
- `export DB_PASSWORD="op://app-prod/db/password"`
|
|
18
|
+
- `op run --no-masking -- printenv DB_PASSWORD`
|
|
19
|
+
- `op run --env-file="./.env" -- printenv DB_PASSWORD`
|
|
20
|
+
|
|
21
|
+
## Inject
|
|
22
|
+
|
|
23
|
+
- `echo "db_password: {{ op://app-prod/db/password }}" | op inject`
|
|
24
|
+
- `op inject -i config.yml.tpl -o config.yml`
|
|
25
|
+
|
|
26
|
+
## Whoami / accounts
|
|
27
|
+
|
|
28
|
+
- `op whoami`
|
|
29
|
+
- `op account list`
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# 1Password CLI get-started (summary)
|
|
2
|
+
|
|
3
|
+
- Works on macOS, Windows, and Linux.
|
|
4
|
+
- macOS/Linux shells: bash, zsh, sh, fish.
|
|
5
|
+
- Windows shell: PowerShell.
|
|
6
|
+
- Requires a 1Password subscription and the desktop app to use app integration.
|
|
7
|
+
- macOS requirement: Big Sur 11.0.0 or later.
|
|
8
|
+
- Linux app integration requires PolKit + an auth agent.
|
|
9
|
+
- Install the CLI per the official doc for your OS.
|
|
10
|
+
- Enable desktop app integration in the 1Password app:
|
|
11
|
+
- Open and unlock the app, then select your account/collection.
|
|
12
|
+
- macOS: Settings > Developer > Integrate with 1Password CLI (Touch ID optional).
|
|
13
|
+
- Windows: turn on Windows Hello, then Settings > Developer > Integrate.
|
|
14
|
+
- Linux: Settings > Security > Unlock using system authentication, then Settings > Developer > Integrate.
|
|
15
|
+
- After integration, run any command to sign in (example in docs: `op vault list`).
|
|
16
|
+
- If multiple accounts: use `op signin` to pick one, or `--account` / `OP_ACCOUNT`.
|
|
17
|
+
- For non-integration auth, use `op account add`.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-notes
|
|
3
|
+
description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Otto to add a note, list notes, search notes, or manage note folders.
|
|
4
|
+
homepage: https://github.com/antoniorodr/memo
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"otto":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "📝",
|
|
10
|
+
"os": ["darwin"],
|
|
11
|
+
"requires": { "bins": ["memo"] },
|
|
12
|
+
"install":
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "brew",
|
|
16
|
+
"kind": "brew",
|
|
17
|
+
"formula": "antoniorodr/memo/memo",
|
|
18
|
+
"bins": ["memo"],
|
|
19
|
+
"label": "Install memo via Homebrew",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Apple Notes CLI
|
|
27
|
+
|
|
28
|
+
Use `memo notes` to manage Apple Notes directly from the terminal. Create, view, edit, delete, search, move notes between folders, and export to HTML/Markdown.
|
|
29
|
+
|
|
30
|
+
Setup
|
|
31
|
+
|
|
32
|
+
- Install (Homebrew): `brew tap antoniorodr/memo && brew install antoniorodr/memo/memo`
|
|
33
|
+
- Manual (pip): `pip install .` (after cloning the repo)
|
|
34
|
+
- macOS-only; if prompted, grant Automation access to Notes.app.
|
|
35
|
+
|
|
36
|
+
View Notes
|
|
37
|
+
|
|
38
|
+
- List all notes: `memo notes`
|
|
39
|
+
- Filter by folder: `memo notes -f "Folder Name"`
|
|
40
|
+
- Search notes (fuzzy): `memo notes -s "query"`
|
|
41
|
+
|
|
42
|
+
Create Notes
|
|
43
|
+
|
|
44
|
+
- Add a new note: `memo notes -a`
|
|
45
|
+
- Opens an interactive editor to compose the note.
|
|
46
|
+
- Quick add with title: `memo notes -a "Note Title"`
|
|
47
|
+
|
|
48
|
+
Edit Notes
|
|
49
|
+
|
|
50
|
+
- Edit existing note: `memo notes -e`
|
|
51
|
+
- Interactive selection of note to edit.
|
|
52
|
+
|
|
53
|
+
Delete Notes
|
|
54
|
+
|
|
55
|
+
- Delete a note: `memo notes -d`
|
|
56
|
+
- Interactive selection of note to delete.
|
|
57
|
+
|
|
58
|
+
Move Notes
|
|
59
|
+
|
|
60
|
+
- Move note to folder: `memo notes -m`
|
|
61
|
+
- Interactive selection of note and destination folder.
|
|
62
|
+
|
|
63
|
+
Export Notes
|
|
64
|
+
|
|
65
|
+
- Export to HTML/Markdown: `memo notes -ex`
|
|
66
|
+
- Exports selected note; uses Mistune for markdown processing.
|
|
67
|
+
|
|
68
|
+
Limitations
|
|
69
|
+
|
|
70
|
+
- Cannot edit notes containing images or attachments.
|
|
71
|
+
- Interactive prompts may require terminal access.
|
|
72
|
+
|
|
73
|
+
Notes
|
|
74
|
+
|
|
75
|
+
- macOS-only.
|
|
76
|
+
- Requires Apple Notes.app to be accessible.
|
|
77
|
+
- For automation, grant permissions in System Settings > Privacy & Security > Automation.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-reminders
|
|
3
|
+
description: Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
|
|
4
|
+
homepage: https://github.com/steipete/remindctl
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"otto":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "⏰",
|
|
10
|
+
"os": ["darwin"],
|
|
11
|
+
"requires": { "bins": ["remindctl"] },
|
|
12
|
+
"install":
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "brew",
|
|
16
|
+
"kind": "brew",
|
|
17
|
+
"formula": "steipete/tap/remindctl",
|
|
18
|
+
"bins": ["remindctl"],
|
|
19
|
+
"label": "Install remindctl via Homebrew",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Apple Reminders CLI (remindctl)
|
|
27
|
+
|
|
28
|
+
Use `remindctl` to manage Apple Reminders directly from the terminal. It supports list filtering, date-based views, and scripting output.
|
|
29
|
+
|
|
30
|
+
Setup
|
|
31
|
+
|
|
32
|
+
- Install (Homebrew): `brew install steipete/tap/remindctl`
|
|
33
|
+
- From source: `pnpm install && pnpm build` (binary at `./bin/remindctl`)
|
|
34
|
+
- macOS-only; grant Reminders permission when prompted.
|
|
35
|
+
|
|
36
|
+
Permissions
|
|
37
|
+
|
|
38
|
+
- Check status: `remindctl status`
|
|
39
|
+
- Request access: `remindctl authorize`
|
|
40
|
+
|
|
41
|
+
View Reminders
|
|
42
|
+
|
|
43
|
+
- Default (today): `remindctl`
|
|
44
|
+
- Today: `remindctl today`
|
|
45
|
+
- Tomorrow: `remindctl tomorrow`
|
|
46
|
+
- Week: `remindctl week`
|
|
47
|
+
- Overdue: `remindctl overdue`
|
|
48
|
+
- Upcoming: `remindctl upcoming`
|
|
49
|
+
- Completed: `remindctl completed`
|
|
50
|
+
- All: `remindctl all`
|
|
51
|
+
- Specific date: `remindctl 2026-01-04`
|
|
52
|
+
|
|
53
|
+
Manage Lists
|
|
54
|
+
|
|
55
|
+
- List all lists: `remindctl list`
|
|
56
|
+
- Show list: `remindctl list Work`
|
|
57
|
+
- Create list: `remindctl list Projects --create`
|
|
58
|
+
- Rename list: `remindctl list Work --rename Office`
|
|
59
|
+
- Delete list: `remindctl list Work --delete`
|
|
60
|
+
|
|
61
|
+
Create Reminders
|
|
62
|
+
|
|
63
|
+
- Quick add: `remindctl add "Buy milk"`
|
|
64
|
+
- With list + due: `remindctl add --title "Call mom" --list Personal --due tomorrow`
|
|
65
|
+
|
|
66
|
+
Edit Reminders
|
|
67
|
+
|
|
68
|
+
- Edit title/due: `remindctl edit 1 --title "New title" --due 2026-01-04`
|
|
69
|
+
|
|
70
|
+
Complete Reminders
|
|
71
|
+
|
|
72
|
+
- Complete by id: `remindctl complete 1 2 3`
|
|
73
|
+
|
|
74
|
+
Delete Reminders
|
|
75
|
+
|
|
76
|
+
- Delete by id: `remindctl delete 4A83 --force`
|
|
77
|
+
|
|
78
|
+
Output Formats
|
|
79
|
+
|
|
80
|
+
- JSON (scripting): `remindctl today --json`
|
|
81
|
+
- Plain TSV: `remindctl today --plain`
|
|
82
|
+
- Counts only: `remindctl today --quiet`
|
|
83
|
+
|
|
84
|
+
Date Formats
|
|
85
|
+
Accepted by `--due` and date filters:
|
|
86
|
+
|
|
87
|
+
- `today`, `tomorrow`, `yesterday`
|
|
88
|
+
- `YYYY-MM-DD`
|
|
89
|
+
- `YYYY-MM-DD HH:mm`
|
|
90
|
+
- ISO 8601 (`2026-01-04T12:34:56Z`)
|
|
91
|
+
|
|
92
|
+
Notes
|
|
93
|
+
|
|
94
|
+
- macOS-only.
|
|
95
|
+
- If access is denied, enable Terminal/remindctl in System Settings → Privacy & Security → Reminders.
|
|
96
|
+
- If running over SSH, grant access on the Mac that runs the command.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bear-notes
|
|
3
|
+
description: Create, search, and manage Bear notes via grizzly CLI.
|
|
4
|
+
homepage: https://bear.app
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"otto":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "🐻",
|
|
10
|
+
"os": ["darwin"],
|
|
11
|
+
"requires": { "bins": ["grizzly"] },
|
|
12
|
+
"install":
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "go",
|
|
16
|
+
"kind": "go",
|
|
17
|
+
"module": "github.com/tylerwince/grizzly/cmd/grizzly@latest",
|
|
18
|
+
"bins": ["grizzly"],
|
|
19
|
+
"label": "Install grizzly (go)",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Bear Notes
|
|
27
|
+
|
|
28
|
+
Use `grizzly` to create, read, and manage notes in Bear on macOS.
|
|
29
|
+
|
|
30
|
+
Requirements
|
|
31
|
+
|
|
32
|
+
- Bear app installed and running
|
|
33
|
+
- For some operations (add-text, tags, open-note --selected), a Bear app token (stored in `~/.config/grizzly/token`)
|
|
34
|
+
|
|
35
|
+
## Getting a Bear Token
|
|
36
|
+
|
|
37
|
+
For operations that require a token (add-text, tags, open-note --selected), you need an authentication token:
|
|
38
|
+
|
|
39
|
+
1. Open Bear → Help → API Token → Copy Token
|
|
40
|
+
2. Save it: `echo "YOUR_TOKEN" > ~/.config/grizzly/token`
|
|
41
|
+
|
|
42
|
+
## Common Commands
|
|
43
|
+
|
|
44
|
+
Create a note
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
echo "Note content here" | grizzly create --title "My Note" --tag work
|
|
48
|
+
grizzly create --title "Quick Note" --tag inbox < /dev/null
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Open/read a note by ID
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
grizzly open-note --id "NOTE_ID" --enable-callback --json
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Append text to a note
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
echo "Additional content" | grizzly add-text --id "NOTE_ID" --mode append --token-file ~/.config/grizzly/token
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
List all tags
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
grizzly tags --enable-callback --json --token-file ~/.config/grizzly/token
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Search notes (via open-tag)
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
grizzly open-tag --name "work" --enable-callback --json
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Options
|
|
76
|
+
|
|
77
|
+
Common flags:
|
|
78
|
+
|
|
79
|
+
- `--dry-run` — Preview the URL without executing
|
|
80
|
+
- `--print-url` — Show the x-callback-url
|
|
81
|
+
- `--enable-callback` — Wait for Bear's response (needed for reading data)
|
|
82
|
+
- `--json` — Output as JSON (when using callbacks)
|
|
83
|
+
- `--token-file PATH` — Path to Bear API token file
|
|
84
|
+
|
|
85
|
+
## Configuration
|
|
86
|
+
|
|
87
|
+
Grizzly reads config from (in priority order):
|
|
88
|
+
|
|
89
|
+
1. CLI flags
|
|
90
|
+
2. Environment variables (`GRIZZLY_TOKEN_FILE`, `GRIZZLY_CALLBACK_URL`, `GRIZZLY_TIMEOUT`)
|
|
91
|
+
3. `.grizzly.toml` in current directory
|
|
92
|
+
4. `~/.config/grizzly/config.toml`
|
|
93
|
+
|
|
94
|
+
Example `~/.config/grizzly/config.toml`:
|
|
95
|
+
|
|
96
|
+
```toml
|
|
97
|
+
token_file = "~/.config/grizzly/token"
|
|
98
|
+
callback_url = "http://127.0.0.1:42123/success"
|
|
99
|
+
timeout = "5s"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Notes
|
|
103
|
+
|
|
104
|
+
- Bear must be running for commands to work
|
|
105
|
+
- Note IDs are Bear's internal identifiers (visible in note info or via callbacks)
|
|
106
|
+
- Use `--enable-callback` when you need to read data back from Bear
|
|
107
|
+
- Some operations require a valid token (add-text, tags, open-note --selected)
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bird
|
|
3
|
+
description: X/Twitter CLI for reading, searching, posting, and engagement via cookies.
|
|
4
|
+
homepage: https://bird.fast
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"otto":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "🐦",
|
|
10
|
+
"requires": { "bins": ["bird"] },
|
|
11
|
+
"install":
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "brew",
|
|
15
|
+
"kind": "brew",
|
|
16
|
+
"formula": "steipete/tap/bird",
|
|
17
|
+
"bins": ["bird"],
|
|
18
|
+
"label": "Install bird (brew)",
|
|
19
|
+
"os": ["darwin"],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "npm",
|
|
23
|
+
"kind": "node",
|
|
24
|
+
"package": "@steipete/bird",
|
|
25
|
+
"bins": ["bird"],
|
|
26
|
+
"label": "Install bird (npm)",
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# bird 🐦
|
|
34
|
+
|
|
35
|
+
Fast X/Twitter CLI using GraphQL + cookie auth.
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# npm/pnpm/bun
|
|
41
|
+
npm install -g @steipete/bird
|
|
42
|
+
|
|
43
|
+
# Homebrew (macOS, prebuilt binary)
|
|
44
|
+
brew install steipete/tap/bird
|
|
45
|
+
|
|
46
|
+
# One-shot (no install)
|
|
47
|
+
bunx @steipete/bird whoami
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Authentication
|
|
51
|
+
|
|
52
|
+
`bird` uses cookie-based auth.
|
|
53
|
+
|
|
54
|
+
Use `--auth-token` / `--ct0` to pass cookies directly, or `--cookie-source` for browser cookies.
|
|
55
|
+
|
|
56
|
+
Run `bird check` to see which source is active. For Arc/Brave, use `--chrome-profile-dir <path>`.
|
|
57
|
+
|
|
58
|
+
## Commands
|
|
59
|
+
|
|
60
|
+
### Account & Auth
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
bird whoami # Show logged-in account
|
|
64
|
+
bird check # Show credential sources
|
|
65
|
+
bird query-ids --fresh # Refresh GraphQL query ID cache
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Reading Tweets
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
bird read <url-or-id> # Read a single tweet
|
|
72
|
+
bird <url-or-id> # Shorthand for read
|
|
73
|
+
bird thread <url-or-id> # Full conversation thread
|
|
74
|
+
bird replies <url-or-id> # List replies to a tweet
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Timelines
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
bird home # Home timeline (For You)
|
|
81
|
+
bird home --following # Following timeline
|
|
82
|
+
bird user-tweets @handle -n 20 # User's profile timeline
|
|
83
|
+
bird mentions # Tweets mentioning you
|
|
84
|
+
bird mentions --user @handle # Mentions of another user
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Search
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bird search "query" -n 10
|
|
91
|
+
bird search "from:steipete" --all --max-pages 3
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### News & Trending
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
bird news -n 10 # AI-curated from Explore tabs
|
|
98
|
+
bird news --ai-only # Filter to AI-curated only
|
|
99
|
+
bird news --sports # Sports tab
|
|
100
|
+
bird news --with-tweets # Include related tweets
|
|
101
|
+
bird trending # Alias for news
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Lists
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
bird lists # Your lists
|
|
108
|
+
bird lists --member-of # Lists you're a member of
|
|
109
|
+
bird list-timeline <id> -n 20 # Tweets from a list
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Bookmarks & Likes
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
bird bookmarks -n 10
|
|
116
|
+
bird bookmarks --folder-id <id> # Specific folder
|
|
117
|
+
bird bookmarks --include-parent # Include parent tweet
|
|
118
|
+
bird bookmarks --author-chain # Author's self-reply chain
|
|
119
|
+
bird bookmarks --full-chain-only # Full reply chain
|
|
120
|
+
bird unbookmark <url-or-id>
|
|
121
|
+
bird likes -n 10
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Social Graph
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
bird following -n 20 # Users you follow
|
|
128
|
+
bird followers -n 20 # Users following you
|
|
129
|
+
bird following --user <id> # Another user's following
|
|
130
|
+
bird about @handle # Account origin/location info
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Engagement Actions
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
bird follow @handle # Follow a user
|
|
137
|
+
bird unfollow @handle # Unfollow a user
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Posting
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
bird tweet "hello world"
|
|
144
|
+
bird reply <url-or-id> "nice thread!"
|
|
145
|
+
bird tweet "check this out" --media image.png --alt "description"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**⚠️ Posting risks**: Posting is more likely to be rate limited; if blocked, use the browser tool instead.
|
|
149
|
+
|
|
150
|
+
## Media Uploads
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
bird tweet "hi" --media img.png --alt "description"
|
|
154
|
+
bird tweet "pics" --media a.jpg --media b.jpg # Up to 4 images
|
|
155
|
+
bird tweet "video" --media clip.mp4 # Or 1 video
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Pagination
|
|
159
|
+
|
|
160
|
+
Commands supporting pagination: `replies`, `thread`, `search`, `bookmarks`, `likes`, `list-timeline`, `following`, `followers`, `user-tweets`
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
bird bookmarks --all # Fetch all pages
|
|
164
|
+
bird bookmarks --max-pages 3 # Limit pages
|
|
165
|
+
bird bookmarks --cursor <cursor> # Resume from cursor
|
|
166
|
+
bird replies <id> --all --delay 1000 # Delay between pages (ms)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Output Options
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
--json # JSON output
|
|
173
|
+
--json-full # JSON with raw API response
|
|
174
|
+
--plain # No emoji, no color (script-friendly)
|
|
175
|
+
--no-emoji # Disable emoji
|
|
176
|
+
--no-color # Disable ANSI colors (or set NO_COLOR=1)
|
|
177
|
+
--quote-depth n # Max quoted tweet depth in JSON (default: 1)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Global Options
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
--auth-token <token> # Set auth_token cookie
|
|
184
|
+
--ct0 <token> # Set ct0 cookie
|
|
185
|
+
--cookie-source <source> # Cookie source for browser cookies (repeatable)
|
|
186
|
+
--chrome-profile <name> # Chrome profile name
|
|
187
|
+
--chrome-profile-dir <path> # Chrome/Chromium profile dir or cookie DB path
|
|
188
|
+
--firefox-profile <name> # Firefox profile
|
|
189
|
+
--timeout <ms> # Request timeout
|
|
190
|
+
--cookie-timeout <ms> # Cookie extraction timeout
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Config File
|
|
194
|
+
|
|
195
|
+
`~/.config/bird/config.json5` (global) or `./.birdrc.json5` (project):
|
|
196
|
+
|
|
197
|
+
```json5
|
|
198
|
+
{
|
|
199
|
+
cookieSource: ["chrome"],
|
|
200
|
+
chromeProfileDir: "/path/to/Arc/Profile",
|
|
201
|
+
timeoutMs: 20000,
|
|
202
|
+
quoteDepth: 1,
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Environment variables: `BIRD_TIMEOUT_MS`, `BIRD_COOKIE_TIMEOUT_MS`, `BIRD_QUOTE_DEPTH`
|
|
207
|
+
|
|
208
|
+
## Troubleshooting
|
|
209
|
+
|
|
210
|
+
### Query IDs stale (404 errors)
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
bird query-ids --fresh
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Cookie extraction fails
|
|
217
|
+
|
|
218
|
+
- Check browser is logged into X
|
|
219
|
+
- Try different `--cookie-source`
|
|
220
|
+
- For Arc/Brave: use `--chrome-profile-dir`
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
**TL;DR**: Read/search/engage with CLI. Post carefully or use browser. 🐦
|