lacp
Local policy, evidence, and recovery controls for coding agents. LACP wraps Claude, Codex, Hermes, and other CLI agents with deterministic routing, approval gates, execution records, memory controls, and rollback paths.
Local-first X Intelligence CLI for search, monitoring, analysis, exports, OAuth actions, and agent tooling.
$ npx -y skills add 0xNyk/xint --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: 0xNyk/xint
What's inside
xint is a local-first TypeScript CLI for X API research and operations. It supports recent and full-archive search, filtered streams, watch loops, account and follower analysis, OAuth actions, Grok-assisted analysis, structured exports, and an MCP interface for agents.
It uses official X and xAI APIs. You bring the credentials, choose the scope, and keep cache, snapshots, and reports on your machine by default.
Project status: actively maintained. Latest release:
2026.7.5. Runtime: Bun 1.0+.
| Need | What xint provides |
|---|---|
| Research | Search, threads, profiles, trends, reposts, articles, and reports |
| Monitoring | Watch loops, filtered streams, follower snapshots, and webhooks |
| Analysis | Local filtering plus optional Grok sentiment and synthesis |
| Automation | JSON, JSONL, CSV, MCP, shell pipelines, and machine-readable capabilities |
| Account operations | OAuth-backed bookmarks, likes, follows, lists, blocks, and mutes |
It is a spiritual successor to twint, rebuilt around official APIs instead of scraping.
The release installer verifies the source archive against the release checksum. Download it first so you can inspect what will run:
curl -fsSLo /tmp/xint-install.sh \
https://raw.githubusercontent.com/0xNyk/xint/2026.7.5/install.sh
XINT_INSTALL_VERSION=2026.7.5 bash /tmp/xint-install.sh
Install the latest published release instead:
curl -fsSLo /tmp/xint-install.sh \
https://raw.githubusercontent.com/0xNyk/xint/main/install.sh
bash /tmp/xint-install.sh
Homebrew (lightweight prebuilt binary on Apple Silicon):
brew tap 0xNyk/xint
brew install xint
Rust variant explicitly:
brew install xint-rs
Manual source install:
git clone https://github.com/0xNyk/xint.git
cd xint
bun install
Requires: Bun and prepaid X API access.

| Task | Command |
|---|---|
| Search | xint search "AI agents" |
| Monitor | xint watch "solana" -i 5m |
| Stream | xint stream |
| Profile | xint profile @elonmusk |
| Thread | xint thread 123456789 |
| Followers | xint diff @username |
| Bookmarks | xint bookmarks |
| Lists | xint lists |
| Blocks | xint blocks |
| Mutes | xint mutes |
| Follow | xint follow @username |
| Media | xint media <tweet_id> |
| Trends | xint trends |
| AI Analyze | xint analyze "best AI frameworks?" |
| Report | xint report "crypto" |
| Reposts | xint reposts <tweet_id> |
| User Search | xint users "AI researcher" |
| Article | xint article <url> --ai "summarize" |
| Capabilities | xint capabilities --json |
| TUI | xint tui |
xint s "query" # search
xint w "query" # watch
xint p @user # profile
xint tr # trends
xint bm # bookmarks
# Built-in themes: classic | neon | minimal | ocean | amber
XINT_TUI_THEME=ocean xint tui
# Disable animated hero line
XINT_TUI_HERO=0 xint tui
# Disable icons in menu rows
XINT_TUI_ICONS=0 xint tui
# Force ASCII borders
XINT_TUI_ASCII=1 xint tui
# Optional theme token file
XINT_TUI_THEME_FILE=./tui-theme.tokens.example.json xint tui

Set a local bearer token in your shell or secret manager (do not commit credentials):
X_BEARER_TOKENGet your bearer token from the X Developer Console under your app's credentials.
For analyze, report --sentiment, and article --ai:
XAI_API_KEYFor bookmarks, likes, lists, blocks/mutes, and follower tracking:
X_CLIENT_IDRun xint auth setup to complete OAuth flow.
xint-cloud)XINT_PACKAGE_API_BASE_URL=http://localhost:8787/v1 (or your deployed URL)XINT_PACKAGE_API_KEY=<workspace_api_key>XINT_WORKSPACE_ID=<workspace_id>XINT_BILLING_UPGRADE_URL=https://your-app/pricingNotes:
XINT_PACKAGE_API_BASE_URL is unset, package API MCP tools return a setup error.xint-cloud should remain private; xint and xint-rs stay public OSS clients.xint now ships a machine-readable manifest for agent runtime allowlists and tool routing:
# Pretty JSON
xint capabilities
# Compact JSON for machine ingestion
xint capabilities --compact
# Quick pulse
xint search "AI agents" --quick
# High-engagement from last hour
xint search "react 19" --since 1h --sort likes --min-likes 50
# Full-archive deep dive
xint search "bitcoin ETF" --full --pages 3
# With sentiment
xint search "solana" --sentiment
# Export
xint search "startups" --csv > data.csv
xint search "AI" --jsonl | jq '.text'
| Flag | Description |
|---|---|
--sort | likes ยท impressions ยท retweets ยท recent |
--since | 1h ยท 3h ยท 12h ยท 1d ยท 7d |
--full | Search full archive (back to 2006) |
--min-likes N | Filter by engagement |
--pages N | Pages to fetch (1-5) |
--sentiment | Add AI sentiment per tweet |
--quick | Fast mode with caching |
# Monitor topic every 5 minutes
xint watch "solana" --interval 5m
# Watch user
xint watch "@vitalikbuterin" -i 1m
# Webhook to Slack
xint watch "breaking" -i 30s --webhook https://example.com/webhook
Webhook safety:
https://http:// is accepted only for localhost/loopback targetsXINT_WEBHOOK_ALLOWED_HOSTS=hooks.example.com,*.internal.examplePress Ctrl+C to stop and show session stats.
# List current stream rules
xint stream-rules
# Add a filtered-stream rule
xint stream-rules add "from:elonmusk -is:retweet" --tag elon
# Connect to stream
xint stream
# JSONL output + stop after 25 events
xint stream --jsonl --max-events 25
# First run: creates snapshot
xint diff @vitalikbuterin
# Second run: shows changes
xint diff @vitalikbuterin
# Track following
xint diff @username --following
Requires OAuth (xint auth setup).
# List your owned lists
xint lists
# Create a private list
xint lists create "AI Researchers" --description "High-signal accounts" --private
# Add/remove members
xint lists members add <list_id> @username
xint lists members remove <list_id> @username
# List blocked/muted users
xint blocks
xint mutes
# Add/remove
xint blocks add @username
xint blocks remove @username
xint mutes add @username
xint mutes remove @username
xint follow @username
xint unfollow @username
# Download media from a tweet ID
xint media 1900100012345678901
# Download media from a tweet URL
xint media https://x.com/user/status/1900100012345678901
# Custom output directory + JSON summary
xint media 1900100012345678901 --dir ./downloads --json
# Download only first video/gif
xint media 1900100012345678901 --video-only --max-items 1
# Download only photos
xint media 1900100012345678901 --photos-only
# Custom filename template
xint media 1900100012345678901 --name-template "{username}-{created_at}-{index}"
# See who reposted a tweet
xint reposts <tweet_id>
xint reposts <tweet_id> --limit 50 --json
# Find users by keyword
xint users "AI researcher"
xint users "solana dev" --limit 10 --json
# Generate report
xint report "AI agents" --save
# With sentiment + specific accounts
xint report "crypto" --sentiment --accounts @aaboronkov,@solana
Reports include: summary, sentiment breakdown, top tweets, account activity.
# Fetch article
xint article "https://example.com"
# Fetch + AI summary
xint article "https://example.com" --ai "Key takeaways?"
# From X tweet
xint article "https://x.com/user/status/123" --ai "Summarize"
Uses xAI's grok-4.3 model. Since the 2026-05-15 model retirement, requests using retired slugs such as grok-4-1-fast and grok-3 redirect to grok-4.3 and use its rates.
Designed for AI coding agents. Add as a skill:
# Claude Code
mkdir -p .claude/skills && cd .claude/skills
git clone https://github.com/0xNyk/xint.git
# OpenClaw
mkdir -p skills && cd skills
git clone https://github.com/0xNyk/xint.git
Ask: "Search X for what people say about React 19." The agent reads SKILL.md and selects the matching command.
xint mcp
Runs an MCP server AI agents can connect to.
# HTTP/SSE mode (local-only by default)
xint mcp --sse --port=3000
# Optional: require bearer auth (recommended if binding beyond loopback)
XINT_MCP_AUTH_TOKEN=replace-with-long-random-token xint mcp --sse --host=127.0.0.1
Security defaults:
127.0.0.1 unless --host / XINT_MCP_HOST is set.--auth-token or XINT_MCP_AUTH_TOKEN.
X uses prepaid, operation-specific pricing. xint records local estimates and exposes budget controls, but the X Developer Console is authoritative for current rates and billed usage. See the official X API pricing page.
xint costs # Today's spend
xint costs week # Last 7 days
xint costs budget # Show/set limits
# Show workspace plan, limits, and feature gates
xint billing status
# Show usage units by operation over a window
xint billing usage --days=30
These commands read from the local/hosted package API (XINT_PACKAGE_API_BASE_URL).
For hosted billing sync, package API also supports:
POST /v1/billing/webhook (provider-agnostic event ingest)GET /v1/billing/events?limit=100 (workspace billing event history)| Variable | Required | Description |
|---|---|---|
X_BEARER_TOKEN | Yes | X API v2 bearer token |
XAI_API_KEY | No | xAI key for analyze/report |
XINT_ARTICLE_TIMEOUT_SEC | No | Article fetch timeout seconds (default 30, range 5-120) |
X_CLIENT_ID | No | OAuth for bookmarks/likes/lists/blocks/mutes |
XINT_PACKAGE_API_BASE_URL | No | Package API base URL for MCP package tools/billing |
XINT_PACKAGE_API_KEY | No | Legacy single bearer key for package API auth |
XINT_PACKAGE_API_KEYS | No | JSON map of API keys to workspace_id + plan |
XINT_PACKAGE_API_PLAN | No | Default workspace plan (free|pro|team|enterprise) |
XINT_WORKSPACE_ID | No | Workspace id used by local xint billing * calls |
XINT_BILLING_WEBHOOK_SECRET | No | HMAC secret for /v1/billing/webhook signature validation |
XINT_BILLING_UPGRADE_URL | No | Upgrade URL shown in MCP plan/quota errors |
xint/
โโโ xint.ts # CLI entry
โโโ lib/ # Core modules
โ โโโ api.ts # X API wrapper
โ โโโ oauth.ts # OAuth 2.0 PKCE
โ โโโ grok.ts # xAI integration
โ โโโ sentiment.ts # AI sentiment
โ โโโ watch.ts # Real-time monitoring
โ โโโ format.ts # Output formatters
โโโ data/
โ โโโ cache/ # Search cache (15min TTL)
โ โโโ exports/ # Saved results
โ โโโ snapshots/ # Follower snapshots
โโโ SKILL.md # AI agent instructions
โโโ .env.example # Template
chmod 600See SECURITY.md for supported versions and private reporting instructions.
xint is the source of truth for release automation across xint and xint-rs.
# from xint/
./scripts/release.sh --dry-run --allow-dirty
./scripts/release.sh 2026.2.18.4 --allow-dirty
# disable default ClawdHub publish for one run
./scripts/release.sh 2026.2.18.4 --no-clawdhub
# enable skills.sh as well
./scripts/release.sh 2026.2.18.4 --skillsh
# disable GitHub auto-generated notes if you want manual sections only
./scripts/release.sh 2026.2.18.4 --no-auto-notes
# write release report to a custom location
./scripts/release.sh 2026.2.18.4 --report-dir /tmp/xint-release-reports
Optional path overrides:
REPO_PATH_XINT (defaults to current repo when running inside xint)REPO_PATH_XINT_RS (defaults to sibling ../xint-rs when present)RELEASE_REPORT_DIR (defaults to xint/reports/releases)Notes behavior:
gh release create --generate-notesCHANGELOG_ADDED, CHANGELOG_CHANGED, CHANGELOG_FIXED, CHANGELOG_SECURITYclawdhub CLI is available (disable with --no-clawdhub)--skillsh (or --ai-skill for both)Release report:
reports/releases/<version>.md--no-report-asset)--no-report-body)--no-reportRead CONTRIBUTING.md before opening a pull request. Use GitHub Issues for reproducible bugs and scoped feature requests. Security reports belong in the private channel described in SECURITY.md, not in public issues.
If xint helps your work, sponsor its continued maintenance.
Solana donations
2k1oq9U99mwy4gm8P2hXPJoZusoXQCpFs35EEf5Ve73y
Need agent infrastructure, trading systems, or Solana applications built for your team?
Builderz builds production AI systems, trading infrastructure, and Solana applications.
Get in touch | Nyk | @nykdotdev
Licensed under the MIT License.
.changeset/
config.json
README.md
.env.example
.github/
CODEOWNERS
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE/
pull_request_template.md
release-drafter/
config.yml
release.yml
workflows/
capability-contract.yml
ci.yml
guardrails-audit.yml
mcp-nightly-regression.yml
release-drafter.yml
release-parity.yml
.gitignore
assets/
github-social.png
hero.png
readme/
access-data-boundaries.jpeg
cost-control.jpeg
query-intelligence-loop.jpeg
xint-intelligence-cli.jpeg
bun.lock
CHANGELOG.md
CONTRIBUTING.md
data/
.gitkeep
cache/
.gitkeep
exports/
.gitkeep
snapshots/
.gitkeep
watchlist.example.json
install.sh
lib/
action_result.ts
actions.test.ts
actions.ts
analytics.ts
api.ts
article.test.ts
article.ts
billing.ts
bookmark_kb.ts
bookmarks.ts
cache.test.ts
cache.ts
capabilities.test.ts
capabilities.ts
CLAUDE.md
collections.ts
completions.ts
content_audit.ts
costs.test.ts
costs.ts
credits.ts
dryrun.ts
engage.ts
engagement.ts
errors.ts
followers.ts
format.test.ts
format.ts
grok.ts
growth.ts
health.ts
lists.test.ts
lists.ts
mcp_dispatcher.test.ts
mcp_dispatcher.ts
mcp-envelope-contract.test.ts
mcp-package-contract.test.ts
mcp.ts
media.test.ts
media.ts
moderation.test.ts
moderation.ts
news.ts
oauth.ts
output-meta.ts
package_api_server.ts
reliability.test.ts
reliability.ts
report.ts
reposts.ts
sentiment.ts
spinner.ts
stream.test.ts
stream.ts
timeline.ts
timing.ts
top.ts
trends.ts
tui_adapter.test.ts
tui_adapter.ts
tui.test.ts
tui.ts
users.ts
watch.ts
webhook-security.test.ts
webhook-security.ts
x_search.ts
LICENSE
package-lock.json
package.json
README.md
references/
CLAUDE.md
x-api.md
reports/
security/
2026-02-21-scan-delta-2026.2.20.2-vs-2026.2.19-3.md
scripts/
.gitignore
apply-branch-protection.sh
apply-repo-rulesets.sh
audit-guardrails.sh
check-capability-contract.mjs
check-release-version-parity.mjs
release.sh
xai_collections.py
xai_x_search_scan.py
SECURITY.md
SKILL.md
tests/
efficiency.test.ts
grok.test.ts
tsconfig.json
tsconfig.typecheck.json
tui-theme.tokens.example.json
xint.tsLocal policy, evidence, and recovery controls for coding agents. LACP wraps Claude, Codex, Hermes, and other CLI agents with deterministic routing, approval gates, execution records, memory controls, and rollback paths.
FAQ
xint is a Claude Code plugin with 1 hand-picked skill for data work, indexed on Flowy. Install it with the command on its page. It includes xint. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.