## Summary
- add `analytics:posts:list` to `skills/typefully/scripts/typefully.js`
- add `--include-replies` / `--include_replies` so clients can opt back
in to X replies explicitly
- document the X analytics workflow and reply-filter behavior in
`skills/typefully/SKILL.md`
- add user-facing changelog entries in `skills/typefully/CHANGELOG.md`
## Why
Typefully API v2 now exposes X post analytics by date range, and backend
PR `typefully/typefully-backend#1476` changes the default result set to
exclude replies unless `include_replies=true` is sent. The public
skill/CLI should match that behavior and expose the opt-in path
directly.
## Validation
- `node -c skills/typefully/scripts/typefully.js`
- `node skills/typefully/scripts/typefully.js help | rg -n
"analytics:posts:list|include-replies|include_replies" -S`
- `node skills/typefully/scripts/typefully.js analytics:posts:list
--include_replies --end_date 2026-03-17`
- `node skills/typefully/scripts/typefully.js analytics:posts:list 123
--platform linkedin --include-replies --start-date 2026-03-10 --end-date
2026-03-17`
- Move changelog into skill folder (skills/typefully/CHANGELOG.md)\n- Document that changelog entries must be user-facing only\n- Instruct agents to update the relevant skill changelog when changing CLI/skill behavior
- Support tag-only drafts:update without modifying content\n- Harden create-draft/update-draft aliases (clean errors on missing values)\n- Honor --social-set-id/--social_set_id in config:set-default + other commands\n- Improve thread splitting to handle CRLF\n- Add hermetic node:test suite + GitHub Actions CI
Restructured the setup section to follow the actual user workflow: install → copy API key → run setup → start using. Moved other installation methods to a collapsible details section, made the interactive setup command the primary path, and moved the environment variable to a secondary option in the troubleshooting section. Removed outdated guidance about manually configuring social_set_id in CLAUDE.md.
- Create AGENTS.md as symlink to CLAUDE.md
- Add "Updating the Skill" section to remind updating last-updated date
- Update SKILL.md last-updated to 2026-01-29
Add comprehensive guidance to prevent common agent mistakes:
- Tags: Always list existing tags before creating new ones
- Multi-platform: Always use single draft with drafts:update for different content per platform
Includes updated Common Actions table with platform-specific examples and new "Working with Tags" and "Publishing to Multiple Platforms" sections with clear step-by-step instructions.
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
- Add explicit SKILL.md section instructing agents to tell user to run
setup and stop/wait rather than searching for keys in random places
- Make CLI error message more explicit by including setup instruction
in the main error text
* Rewrite Typefully CLI from Bash to JavaScript
Replaces shell script with zero-dependency Node.js implementation:
- Eliminates curl/jq/perl dependencies
- Adds flexible API key configuration (env, local .env, ~/.config)
- Enhanced media upload with presigned URLs and polling
- Improved error handling and JSON output
- Updated CLAUDE.md and SKILL.md documentation
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* Add --all flag to post to all connected platforms
- Add getAllConnectedPlatforms helper function
- Support --all flag in drafts:create command
- Error when both --all and --platform are used
- Update SKILL.md with new flag documentation
- Add publishing confirmation guideline
* Add secure setup command with JSON config
- Replace directory-scanning .env lookup with fixed config paths
- New `setup` command with interactive prompts for API key and storage location
- Support global (~/.config/typefully/config.json) and local (./.typefully/config.json) configs
- Config priority: env var > local > global
- Offer to add .typefully/ to .gitignore for local configs
- Remove config:set-key in favor of setup command
- Update docs to reflect new setup flow
* Preserve existing platforms in drafts:update and improve setup security
- drafts:update now preserves the draft's existing enabled platforms when
--platform is not specified, instead of defaulting to X
- setup command offers to create .gitignore if none exists to protect API keys
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Add update instructions to Typefully skill
Add self-update awareness so users know how to keep the skill current with API changes:
- Include last-updated date in frontmatter for freshness tracking
- Add freshness check instruction to prompt users when outdated
- Document update methods for each installation type (CLI, plugin, Cursor, manual)
Addresses suggestions from community feedback on keeping skills maintainable without blocking API releases.
* Use npx skills update instead of add for updates
- Rename commands to align with API terminology: accounts→social-sets, account→social-set
- Apply consistent colon-style naming to draft commands: drafts→draft:list, draft→draft:get, create→draft:create, update→draft:update, delete→draft:delete, tags→tag:list
- Add --sort parameter support to draft:list for sorting by created_at, updated_at, scheduled_date, published_at (with optional - prefix for descending)
- Add --media parameter to draft:create and draft:update for attaching media to posts (comma-separated IDs)
- Update documentation with new command names, examples, and comprehensive media workflow guides
- Add "Social Sets" section explaining terminology and configuration examples for project files
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- --reply-to <url>: Reply to an existing X post
- --community <id>: Post to an X community
- --share: Generate a public share URL for drafts
- Fix help command to work without API key
Add skill for AI agents to draft, schedule, and publish social media
posts via Typefully. Includes SKILL.md workflow definition and a Bash
CLI wrapper for the Typefully API v2.