
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
CLI for posting and deleting tweets through the official X API v2 (OAuth 1.0a), built for scripting and CI usage.
git clone https://github.com/your-username/x-api-cli.git
cd x-api-cli
npm install
npm link
Option A: environment variables (recommended)
export X_API_KEY="your-consumer-key"
export X_API_SECRET="your-consumer-secret"
export X_ACCESS_TOKEN="your-access-token"
export X_ACCESS_SECRET="your-access-token-secret"
Option B: x-api.json, .x-api.json, or ~/.config/x-api.json
{
"consumerKey": "your-consumer-key",
"consumerSecret": "your-consumer-secret",
"accessToken": "your-access-token",
"accessTokenSecret": "your-access-token-secret"
}
You can also use a custom path:
x-post --config ./secrets/x-api.json "hello from config"
x-delete --config ./secrets/x-api.json 1234567890
Or set:
export X_API_CONFIG="./secrets/x-api.json"
# Post
x-post "Hello world from CLI"
# Reply
x-post "Replying to this" --reply-to 1234567890
# Quote by tweet ID
x-post "Read this thread" --quote 1234567890
# Quote by URL
x-post "Read this thread" --quote-url https://x.com/user/status/1234567890
# Delete one or many
x-delete 1234567890
x-delete 1234567890 2345678901 3456789012
# Help
x-post --help
x-delete --help
--help always exits with status 0 and no API requests.1 and clear usage guidance.x-delete exits non-zero when any deletion fails.npm test
Tests cover parsing, credential resolution, and edge cases in test/x-cli-common.test.mjs.
Workflow: .github/workflows/release.yml
flowchart LR
A["Push tag vX.Y.Z"] --> B["GitHub Action: Release workflow"]
B --> C["Validate semver format"]
C --> D["Verify tag == package.json version"]
D --> E["npm ci + npm test"]
E --> F["npm publish --provenance"]
F --> G["Auto-create GitHub Release notes"]
Option A: Add NPM_TOKEN as a repository secret in GitHub.
Option B: Configure npm Trusted Publishing for this GitHub repo/workflow (OIDC), then set repository variable NPM_TRUSTED_PUBLISHING=true.x-api-cli) is available to publish on npm.version in package.json aligned with your next tag.x-api-cli:
Repository owner: eliaseffects
Repository: x-api-cli
Workflow file: .github/workflows/release.yml
Environment: leave empty unless you use one in GitHub Actions.gh variable set NPM_TRUSTED_PUBLISHING --repo eliaseffects/x-api-cli --body true
gh run rerun 21823966697 --repo eliaseffects/x-api-cli
If npm does not allow trusted publisher setup before first package publish, do one bootstrap publish with NPM_TOKEN, then switch back to trusted publishing only.
# choose one
npm version patch
npm version minor
npm version major
git push origin HEAD --follow-tags
Tag format must be vMAJOR.MINOR.PATCH (for example: v1.1.0).
brew tap eliaseffects/tap
brew install x-api-cli
x-api.json and .x-api.json are ignored by default.MIT
FAQs
Node.js CLI for posting and deleting tweets with X API v2 using OAuth 1.0a.
The npm package x-api-cli receives a total of 1 weekly downloads. As such, x-api-cli popularity was classified as not popular.
We found that x-api-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.