npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vk007/mikacli

v1.2.0

Published

Terminal automation toolkit for developers and AI agents across LLMs, social platforms, developer tools, editors, data tools, and public utilities.

Readme

MikaCLI

npm version license providers categories

MikaCLI is a terminal automation toolkit for developers and AI agents that turns websites, LLMs, developer platforms, editors, and utilities into one reusable CLI.

The core idea is simple:

  • sign in once
  • save the session or token locally
  • keep using the provider headlessly from the terminal
  • return clean --json output for scripts, agents, and orchestration

What makes MikaCLI especially useful is that it does not stop at API tokens. It works across cookies, saved browser sessions, user sessions, bot tokens, local tools, and public services, so the same CLI can drive GitHub, ChatGPT, Jira, Reddit, ffmpeg, DNS lookups, and more without switching tools.

Why It Matters

  • One command surface across 120 providers.
  • Shared browser login means less manual cookie exporting for cookie-backed platforms.
  • Sessions and tokens stay local, so follow-up commands are short and automation-friendly.
  • Category-based routing stays predictable as the tool grows: mikacli llm ..., mikacli google ..., mikacli social ..., mikacli developer ..., mikacli devops ....
  • Every provider is designed to be script-friendly, with strong --json support.
  • Provider capability metadata helps agents see auth type, stability, browser support, and read/write boundaries before they guess.
  • Shared result normalization adds stable JSON aliases like data.items, data.entity, and data.guidance.

Auto Browser Login

MikaCLI can keep a shared browser profile under its own control, let you sign in once, then reuse that browser state for later provider logins.

That means you can:

  • log into Google or another identity provider once
  • use Continue with Google, passkeys, or normal web sign-in flows
  • let later provider logins reuse that same saved browser profile
  • avoid re-exporting cookies every time for many cookie-backed providers

Typical flow:

mikacli login --browser
mikacli developer github login --browser
mikacli social x login --browser
mikacli llm qwen login --browser

After the provider session is saved, normal commands stay headless:

mikacli developer github me --json
mikacli social x post "Shipping from MikaCLI"
mikacli llm qwen text "Summarize this changelog"

At a Glance

| Item | Value | | --- | --- | | Package | @vk007/mikacli | | CLI command | mikacli | | Providers | 120 | | Categories | 17 | | npm install | npm install -g @vk007/mikacli | | bun install | bun install -g @vk007/mikacli | | Local setup | bun install | | Docs sync | bun run sync:docs |

Get Started

Install globally with npm or Bun:

npm install -g @vk007/mikacli
bun install -g @vk007/mikacli

Validate the install right away:

mikacli --version
mikacli doctor
mikacli doctor --fix

Set up the repo locally with Bun:

bun install
bun run build

Bootstrap the shared browser once if you want browser-assisted logins:

mikacli login --browser

Clear saved state when you want to sign back out:

mikacli logout
mikacli logout x default
mikacli logout --browser

Typical commands:

mikacli status
mikacli sessions validate
mikacli sessions repair
mikacli jobs
mikacli logout x default
mikacli search "youtube download"
mikacli llm chatgpt text "Write release notes for MikaCLI"
mikacli developer github login --browser
mikacli developer github me --json
mikacli developer github capabilities --json
mikacli devops cloudflare zones --json
mikacli devops render services --json
mikacli jobs show job-id-example
mikacli google gmail labels --json
mikacli google calendar today --json
mikacli google docs documents --json
mikacli google forms forms --json
mikacli google drive files --json
mikacli google sheets values google-sheet-id-example Sheet1!A1:B5 --json
mikacli tools page-links https://example.com --json
mikacli tools http github inspect --json

Every provider help page now includes:

  • a generated Quick Start block
  • a Support Profile with auth, discovery, mutation, browser, and async support
  • a Stability Guide so agents can tell whether a provider is stable, partial, or experimental

Why Use MikaCLI

  • Sign into real web apps once, then reuse the saved session from the terminal.
  • Use the same CLI for LLMs, socials, job search, developer tools, devops platforms, editors, and public utilities.
  • Keep auth local to your machine instead of scattering cookies and tokens across one-off scripts.
  • Give agents and scripts a stable command model with consistent JSON output.
  • Reach protected web surfaces that are awkward to automate with plain APIs alone.

Command Model

MikaCLI is category-only. Provider commands never live at the root.

  • mikacli llm ...
  • mikacli ai ...
  • mikacli editor ...
  • mikacli finance ...
  • mikacli data ...
  • mikacli google ...
  • mikacli maps ...
  • mikacli movie ...
  • mikacli news ...
  • mikacli music ...
  • mikacli social ...
  • mikacli careers ...
  • mikacli shopping ...
  • mikacli developer ...
  • mikacli devops ...
  • mikacli bot ...
  • mikacli tools ...

Examples:

mikacli llm chatgpt text "Write release notes for MikaCLI"
mikacli google gmail labels
mikacli google calendar today
mikacli google docs documents
mikacli google forms forms
mikacli google drive files
mikacli google sheets values google-sheet-id-example Sheet1!A1:B10
mikacli social x post "Shipping MikaCLI today"
mikacli developer confluence search "release process"
mikacli developer github me
mikacli devops vercel projects
mikacli bot telegrambot send 123456789 "Build finished"
mikacli news top "AI"
mikacli tools translate "hello world" --to hi
mikacli tools timezone "Mumbai"
mikacli tools oembed https://www.youtube.com/watch?v=dQw4w9WgXcQ
mikacli tools http github request GET /settings/profile
mikacli tools download info https://www.youtube.com/watch?v=dQw4w9WgXcQ
mikacli tools transcript https://www.youtube.com/watch?v=dQw4w9WgXcQ

Google Workspace

Google providers share the same OAuth2 flow. Enable the APIs you need in Google Cloud, create an OAuth client, and register the localhost callback URI:

http://127.0.0.1:3333/callback

Common APIs to enable:

  • Gmail API
  • Google Calendar API
  • Google Docs API
  • Google Forms API
  • Google Drive API
  • Google Sheets API

Typical login flow:

mikacli google gmail login --client-id <id> --client-secret <secret>
mikacli google calendar login --client-id <id> --client-secret <secret>
mikacli google docs login --client-id <id> --client-secret <secret>
mikacli google forms login --client-id <id> --client-secret <secret>
mikacli google drive login --client-id <id> --client-secret <secret>
mikacli google sheets login --client-id <id> --client-secret <secret>

Docs examples:

mikacli google docs documents --limit 10 --json
mikacli google docs document google-doc-id-example --json
mikacli google docs content google-doc-id-example --json
mikacli google docs create "Launch Notes" --text "Hello from MikaCLI" --json
mikacli google docs append-text google-doc-id-example "More text from MikaCLI" --json
mikacli google docs replace-text google-doc-id-example --search "draft" --replace "published" --json

Forms examples:

mikacli google forms forms --limit 10 --json
mikacli google forms form google-form-id-example --json
mikacli google forms create "Launch Survey" --description "Tell us what you think" --json
mikacli google forms add-text-question google-form-id-example --title "What should we improve?" --paragraph --required --json
mikacli google forms add-choice-question google-form-id-example --title "How did we do?" --options "Great|Good|Okay|Needs work" --type RADIO --json
mikacli google forms responses google-form-id-example --limit 20 --json
mikacli google forms publish google-form-id-example --published true --accepting-responses true --json

Calendar examples:

mikacli google calendar calendars --json
mikacli google calendar today --calendar primary --json
mikacli google calendar events --calendar primary --time-min 2026-04-12T00:00:00+05:30 --time-max 2026-04-12T23:59:59+05:30 --json
mikacli google calendar create-event --calendar primary --summary "Launch review" --start 2026-04-12T10:00:00+05:30 --end 2026-04-12T10:30:00+05:30 --json
mikacli google calendar update-event google-event-id-example --calendar primary --location "Zoom" --json
mikacli google calendar delete-event google-event-id-example --calendar primary --json

Cross-Site Downloads

Use mikacli tools download for multi-site media downloads powered by yt-dlp, with optional saved-session cookies from MikaCLI when a site needs auth.

Examples:

mikacli tools download info https://www.youtube.com/watch?v=dQw4w9WgXcQ --json
mikacli tools download video https://x.com/user/status/123 --platform x
mikacli tools download video https://www.instagram.com/reel/SHORTCODE/ --platform instagram --account default
mikacli tools download audio https://www.youtube.com/watch?v=dQw4w9WgXcQ --audio-format mp3
mikacli tools download batch ./urls.txt --mode video --quality 720p
mikacli tools download info 'https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI' --playlist --limit 5

Command Search

Use mikacli search to find providers and exact runnable commands across MikaCLI's built-in command surface.

Examples:

mikacli search github
mikacli search "youtube download"
mikacli search uptime --category devops
mikacli search gmail --category google
mikacli search transcript --json

Session Validation

Use mikacli sessions validate when you want a live provider check instead of the last saved session state.

Examples:

mikacli sessions validate
mikacli sessions validate x
mikacli sessions validate youtube default --json

Use mikacli sessions repair when you want MikaCLI to validate first, then replay safe login paths like stored tokens or browser-assisted cookie repair.

Examples:

mikacli sessions repair
mikacli sessions repair x --browser
mikacli sessions repair discordbot default --json

Saved Jobs

Use mikacli jobs to inspect saved media and async jobs across providers, then reopen, watch, download, or cancel them from one root command surface.

Examples:

mikacli jobs
mikacli jobs --platform grok
mikacli jobs show job-id-example
mikacli jobs watch job-id-example
mikacli jobs download job-id-example --output-dir ./renders
mikacli jobs cancel job-id-example --platform grok

Cross-Site Transcripts

Use mikacli tools transcript to pull subtitles or transcripts from media pages supported by yt-dlp, with plain text by default and subtitle formats when you need them.

Examples:

mikacli tools transcript https://www.youtube.com/watch?v=dQw4w9WgXcQ
mikacli tools transcript https://www.youtube.com/watch?v=dQw4w9WgXcQ --lang en --format srt
mikacli tools transcript https://www.youtube.com/watch?v=dQw4w9WgXcQ --auto --format json --json

Agent JSON Conventions

MikaCLI keeps provider-specific fields, but it also adds a few stable JSON aliases so agents can plan and transform results more reliably:

  • data.items for list-style results, even when the provider also returns keys like repos, projects, posts, or recommendations
  • data.entity for singular objects, even when the provider also returns keys like profile, page, movie, or project
  • data.meta.count and data.meta.listKey for quick list summaries
  • data.guidance.recommendedNextCommand and data.guidance.nextCommands for safer follow-up planning

Example:

mikacli social reddit search "bun cli" --json
mikacli movie tmdb title 27205 --json
mikacli developer github capabilities --json

Output Filtering & Field Selection

Use --filter and --select global flags to transform JSON results without external tools:

Filter by conditions

mikacli developer github repos --json --filter 'stargazers_count > 100'
mikacli developer github repos --json --filter 'language = "TypeScript" AND stargazers_count > 1000'
mikacli social x posts --json --filter 'public_metrics.likes > 5000'

Select specific fields

mikacli developer github repos --json --select name,stargazers_count,language
mikacli social linkedin posts --json --select content,engagement_count,timestamp

Combine filtering and selection

mikacli developer github repos --json \
  --filter 'stargazers_count > 100 AND language = "TypeScript"' \
  --select name,stargazers_count,url

Supported Operators

  • Comparison: >, <, >=, <=, =, !=
  • Text: CONTAINS, STARTS_WITH, ENDS_WITH
  • Logic: AND, OR with proper precedence
  • Nested fields: Access via dot notation, e.g., public_metrics.like_count

For detailed examples and syntax reference, see FILTERING_GUIDE.md.

Output Format Transformations

Transform JSON results into different formats without external tools using --format:

Available Formats

  • csv - Comma-separated values (for spreadsheets and data pipelines)
  • table - Formatted terminal table with unicode borders
  • yaml - YAML output (for configuration and infrastructure)
  • markdown - Markdown tables (for documentation and reports)
  • html - HTML tables (for email reports and web pages)
  • json - Default JSON format

Examples

# Export to CSV for Excel
mikacli developer github repos --json --format csv > repos.csv

# Display as formatted table in terminal
mikacli social reddit search "ai" --json --format table --filter 'score > 100'

# Generate markdown table for documentation
mikacli developer github repos --json --format markdown --select name,language,stargazers_count

# Create HTML report
mikacli devops vercel projects --json --format html --select name,updated_at > report.html

# YAML for configuration/infrastructure
mikacli devops railway services --json --format yaml > services.yaml

Combine Formats with Filtering & Selection

# High-star TypeScript repos as CSV
mikacli developer github repos --json \
  --filter 'language = "TypeScript" AND stargazers_count > 100000' \
  --select name,stargazers_count,forks_count \
  --format csv > top-ts-repos.csv

# Popular posts as markdown table
mikacli social reddit search "bun cli" --json \
  --filter 'score > 500' \
  --select title,author,score \
  --format markdown

Stability Levels

  • stable: ready for routine automation and the default choice when you have options
  • partial: core flows work well, but some protected or edge routes may still need care
  • experimental: useful, but still changing quickly and best used with extra verification
  • unknown: not classified yet, so inspect with capabilities --json before leaning on it

To inspect a provider before acting:

mikacli developer github capabilities --json
mikacli social reddit capabilities --json
mikacli devops railway capabilities --json

Category Overview

This inventory is generated from the live platform registry.

| Category | Representative providers | Count | Auth modes | Use it for | Route | | --- | --- | ---: | --- | --- | --- | | llm | chatgpt, claude, deepseek, gemini, grok, +4 more | 9 | cookies | Prompting, chat, image, and generation workflows. | mikacli llm ... | | ai | huggingface, ollama | 2 | none | Model hubs, datasets, Spaces, local runtimes, and inference APIs. | mikacli ai ... | | editor | archive, audio, document, gif, image, +3 more | 8 | none | Local file, media, and document transformations. | mikacli editor ... | | finance | crypto, currency, stocks | 3 | none | Market, forex, and crypto lookups. | mikacli finance ... | | data | csv, html, json, markdown, text, +2 more | 7 | none | Structured data cleanup, conversion, filtering, and extraction. | mikacli data ... | | google | calendar, docs, drive, forms, gmail, +1 more | 6 | oauth2 | Google Workspace APIs and account-backed productivity flows. | mikacli google ... | | maps | geo, openstreetmap, osrm | 3 | none | Geocoding, routing, elevation, and geometry helpers. | mikacli maps ... | | movie | anilist, imdb, justwatch, kitsu, letterboxd, +3 more | 8 | cookies, none | Title lookup, recommendations, and streaming availability. | mikacli movie ... | | news | news | 1 | none | Headline discovery, source search, and feed aggregation. | mikacli news ... | | music | bandcamp, deezer, soundcloud, spotify, youtube-music | 5 | cookies, none | Music discovery, playback, and library-style workflows. | mikacli music ... | | social | bluesky, facebook, instagram, linkedin, mastodon, +9 more | 14 | cookies, none, session | Posting, profile lookup, messaging, and public social reads. | mikacli social ... | | careers | indeed, ziprecruiter | 2 | none | Job search and hiring discovery workflows. | mikacli careers ... | | shopping | amazon, ebay, etsy, flipkart | 4 | cookies, none | Product discovery plus cart and order surfaces where supported. | mikacli shopping ... | | developer | confluence, github, gitlab, jira, linear, +2 more | 7 | cookies | Code hosting, issues, docs, and workspace automation. | mikacli developer ... | | devops | cloudflare, digitalocean, fly, netlify, railway, +4 more | 9 | api token | Infrastructure, deployments, DNS, and uptime automation. | mikacli devops ... | | bot | discordbot, githubbot, slackbot, telegrambot | 4 | api token, bot token | Bot-token messaging and chat ops. | mikacli bot ... | | tools | cheat, dns, download, favicon, headers, +23 more | 28 | cookies, none, session | Public utilities, temp mail, downloads, transcripts, and web helpers. | mikacli tools ... |

MikaCLI currently exposes 120 providers across 17 active command groups.

Access Modes

| Needs | Meaning | | --- | --- | | none | Public or local functionality. No cookies, no token, no API key. | | local tools | Uses binaries already installed on the machine, like ffmpeg, ffprobe, qpdf, or yt-dlp. | | cookies | Import a browser session with login --cookies ... or let MikaCLI open a browser with login --browser, then reuse it headlessly. | | session | Do one interactive login once, save the resulting user session locally, then reuse it headlessly. | | cookies + local token | Cookie session plus a token the site keeps in localStorage or a similar client store. | | api token | A personal or service token saved once with login --token .... | | bot token | A bot token saved once with login --token .... | | browser later | The current CLI route works for some surfaces, but more protected flows may later get an opt-in browser-backed mode. |

Installation

Recommended Global Install

Use the published package as the primary supported install path:

npm install -g mikacli
bun install -g mikacli

After install, verify the command and your local environment:

mikacli --version
mikacli doctor
mikacli doctor --fix
mikacli status

mikacli doctor checks the shared browser setup plus optional local tools such as ffmpeg, yt-dlp, qpdf, poppler, 7z, and macOS-native helpers when relevant.

On macOS, mikacli doctor --fix can install all supported missing browser and local-tool dependencies automatically with Homebrew, then rerun the health check.

Local Development Setup

Set up the repo locally with Bun:

bun install

Build the Node-targeted bundle:

bun run build

Experimental Standalone Binary

You can also compile a standalone Bun binary:

bun run build:bin

This path is still experimental. The supported production install remains the npm or Bun global package above, because some runtime-heavy providers can behave differently in the compiled Bun binary.

Local Development Linking

Link mikacli globally for local development:

bun run link:global

If your shell still says command not found, open a new shell or run hash -r.

Documentation Sync

Refresh the generated README sections, regenerate the provider-specific skill references, and sync the installed Codex skill copy:

bun run generate:readme
bun run generate:skill-providers
bun run sync:docs
bun run sync:skills

bun run generate:readme refreshes the marker-based sections in this README from the live provider registry.

bun run sync:docs runs the README generator, refreshes the generated files under skills/mikacli/references/providers, and copies the repo skill into your local Codex skill directory (defaults to ~/.codex/skills/mikacli unless CODEX_HOME is set).

npm publish now runs this automatically through prepublishOnly, so release builds regenerate and sync the docs before typecheck, tests, and build.

Platform Registry Sync

Platform manifests and provider runtime metadata are auto-discovered into generated files, so new providers no longer need a manual import/edit pass in src/platforms/index.ts or a hand-edited central config entry.

bun run generate:platform-registry

Common scripts such as dev, start, typecheck, test, build, and generate:skill-providers refresh the generated registry automatically.

Open Source Project Files

If you plan to contribute, please do not commit live cookies, tokens, QR session state, or personal exports. MikaCLI should only store those locally on the contributor machine, never in the repository.

Quick Start

Check global status:

mikacli status
mikacli status --json
mikacli doctor
mikacli sessions

If you have not linked the CLI globally yet:

bun run dev status

Typical first-run flows:

mikacli social x login --cookies ./x.cookies.json
mikacli developer github login --browser
mikacli llm chatgpt text "Summarize this changelog"
mikacli developer github login --cookies ./github.cookies.json
mikacli devops cloudflare login --token $CLOUDFLARE_API_TOKEN
mikacli social telegram login --api-id 123456 --api-hash abcdef123456 --qr
mikacli bot telegrambot login --token 123456:ABCDEF --name alerts-bot
mikacli news top "AI"
mikacli tools websearch search "bun commander zod"
mikacli tools http github inspect

Best Example Workflows

Cookie-backed social posting

mikacli social instagram login --cookies ./instagram.cookies.txt
mikacli social instagram post ./photo.jpg --caption "Shipping from the terminal"
mikacli social x login --cookies ./x.cookies.json
mikacli social x post "Launching MikaCLI" --image ./launch.png

If you do not want to export cookies manually, many cookie-backed providers now also support:

mikacli login --browser
mikacli developer github login --browser
mikacli social x login --browser
mikacli llm qwen login --browser

mikacli login --browser opens MikaCLI's shared browser profile so you can sign into Google or other identity providers once. Later provider logins reuse that same saved browser profile, and mikacli <category> <provider> login --browser still skips opening the browser entirely when an already-saved active provider session is available.

LLM prompting and generation

mikacli llm chatgpt text "Write release notes for MikaCLI"
mikacli llm deepseek login --cookies ./deepseek.cookies.json --token <userToken>
mikacli llm deepseek text "Explain retrieval-augmented generation"
mikacli llm grok image "Minimal orange fox logo on white background"
mikacli llm grok video "Minimal orange fox logo with subtle camera motion"

Developer and bot automation

mikacli developer confluence search "deploy backend"
mikacli developer github me
mikacli developer gitlab projects "mikacli" --limit 10
mikacli developer jira projects
mikacli developer linear issues --team ENG --limit 20
mikacli developer trello boards
mikacli devops netlify sites
mikacli devops railway projects
mikacli devops fly apps --org personal
mikacli devops digitalocean apps
mikacli bot telegrambot send 123456789 "Build finished"
mikacli bot discordbot send 123456789012345678 "nightly deploy complete"

Google workspace automation

mikacli google gmail labels --json
mikacli google calendar today --calendar primary --json
mikacli google docs documents --limit 10 --json
mikacli google forms forms --limit 10 --json
mikacli google drive files --limit 10 --json
mikacli google sheets values google-sheet-id-example Sheet1!A1:B10 --json

Session-backed messaging

mikacli social telegram login --api-id 123456 --api-hash abcdef123456 --qr
mikacli social telegram send me "Hello from MikaCLI"
mikacli social reddit search "bun cli"
mikacli social reddit post programming "Launching MikaCLI" "Now with Reddit support."
mikacli social whatsapp login
mikacli social whatsapp send 919876543210 "Ping from MikaCLI"

Public utilities

mikacli news top "AI" --source google
mikacli news search "typescript cli"
mikacli news feed https://hnrss.org/frontpage --limit 5
mikacli tools translate "hello world" --to hi
mikacli tools websearch search "typescript cli bun"
mikacli tools screenshot https://example.com --output-dir ./shots
mikacli tools favicon openai.com
mikacli tools page-links https://example.com --type external
mikacli tools timezone "Mumbai"
mikacli tools oembed https://www.youtube.com/watch?v=dQw4w9WgXcQ
mikacli login --browser
mikacli tools http github.com capture --browser-timeout 60
mikacli tools http github.com capture --summary --group-by endpoint --browser-timeout 60
mikacli tools uptime https://example.com --json
mikacli tools rss https://hnrss.org/frontpage --limit 5

Music discovery and download

mikacli music bandcamp search "radiohead"
mikacli music bandcamp album https://radiohead.bandcamp.com/album/in-rainbows
mikacli music soundcloud search "dandelions"
mikacli music soundcloud user aviciiofficial
mikacli music soundcloud playlist https://soundcloud.com/lofi-hip-hop-music/sets/lofi-lofi
mikacli music soundcloud download "dandelions" --output-dir ./downloads

Local editing

mikacli editor image resize ./photo.png --width 1200
mikacli editor video split ./clip.mp4 --every 30
mikacli editor video blur ./clip.mp4 --x 120 --y 80 --width 360 --height 200 --start 00:00:05 --duration 3 --corner-radius 24
mikacli editor audio loudness-report ./podcast.wav
mikacli editor pdf watermark ./deck.pdf --text "Internal"
mikacli editor subtitle burn ./video.mp4 --subtitle ./captions.srt

Sessions And Connections

Cookie sessions are stored under:

~/.mikacli/sessions/<platform>/<account>.json

Token, bot, and saved session connections are stored under:

~/.mikacli/connections/<platform>/<account>.json

MikaCLI supports importing:

  • Netscape cookies.txt
  • raw cookie strings
  • JSON cookie arrays
  • serialized tough-cookie jars

After the first login, later commands normally omit --account or --bot and MikaCLI uses the most recently saved connection for that provider.

Provider Matrix

The tables below are generated from provider manifests and runtime capability metadata, so they stay aligned with mikacli <category> <provider> capabilities --json.

LLM

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | ChatGPT | stable | cookies | supported | supported | supported | partial | mikacli llm chatgpt | | Claude | partial | cookies | supported | supported | supported | partial | mikacli llm claude | | DeepSeek | partial | cookies | supported | supported | supported | partial | mikacli llm deepseek | | Gemini | stable | cookies | supported | supported | supported | partial | mikacli llm gemini | | Grok | partial | cookies | supported | supported | supported | supported | mikacli llm grok | | Mistral | partial | cookies | supported | supported | supported | partial | mikacli llm mistral | | Perplexity | partial | cookies | supported | supported | supported | partial | mikacli llm perplexity | | Qwen | partial | cookies | supported | supported | supported | partial | mikacli llm qwen | | Z.ai | partial | cookies | supported | supported | supported | partial | mikacli llm zai |

Notes:

  • chatgpt: Shared browser login works well for cookie capture and reuse.
  • deepseek: Some flows also need a token recovered from browser storage.
  • grok: MikaCLI can fall back to an in-browser Grok request path when the browserless endpoint is blocked.

AI

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Hugging Face | stable | none | supported | unsupported | unsupported | unsupported | mikacli ai huggingface | | Ollama | partial | none | supported | unsupported | unsupported | unsupported | mikacli ai ollama |

Notes:

  • huggingface: Uses Hugging Face Hub public APIs for model, dataset, and Space discovery.
  • ollama: Uses Ollama's public model library and search pages for discovery.

Editor

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Archive Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor archive | | Audio Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor audio | | Document Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor document | | GIF Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor gif | | Image Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor image | | PDF Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor pdf | | Subtitle Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor subtitle | | Video Editor | stable | none | supported | supported | unsupported | unsupported | mikacli editor video |

Finance

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Crypto | stable | none | supported | unsupported | unsupported | unsupported | mikacli finance crypto | | Currency | stable | none | supported | unsupported | unsupported | unsupported | mikacli finance currency | | Stocks | stable | none | supported | unsupported | unsupported | unsupported | mikacli finance stocks |

Data

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | CSV | stable | none | supported | supported | unsupported | unsupported | mikacli data csv | | HTML | stable | none | supported | supported | unsupported | unsupported | mikacli data html | | JSON | stable | none | supported | supported | unsupported | unsupported | mikacli data json | | Markdown | stable | none | supported | supported | unsupported | unsupported | mikacli data markdown | | Text | stable | none | supported | supported | unsupported | unsupported | mikacli data text | | XML | stable | none | supported | supported | unsupported | unsupported | mikacli data xml | | YAML | stable | none | supported | supported | unsupported | unsupported | mikacli data yaml |

Google

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Gmail | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google gmail | | Google Calendar | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google calendar | | Google Docs | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google docs | | Google Drive | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google drive | | Google Forms | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google forms | | Google Sheets | stable | oauth2 | supported | supported | unsupported | unsupported | mikacli google sheets |

Notes:

  • gmail: Uses Google's OAuth2 flow and stores refresh tokens locally for headless reuse.
  • calendar: Uses Google's OAuth2 flow for calendar listing plus Google Calendar event reads and writes.
  • docs: Uses Google's OAuth2 flow for Google Docs listing, content reads, document creation, and text edits.
  • drive: Uses Google's OAuth2 flow and supports Drive file listing, uploads, downloads, and deletes.
  • forms: Uses Google's OAuth2 flow plus Drive-backed listing and deletion for Google Forms CRUD, responses, and publish settings.
  • sheets: Uses Google's OAuth2 flow for spreadsheet reads and writes.

Maps

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Geo | stable | none | supported | unsupported | unsupported | unsupported | mikacli maps geo | | OpenStreetMap | stable | none | supported | unsupported | unsupported | unsupported | mikacli maps openstreetmap | | OSRM | stable | none | supported | unsupported | unsupported | unsupported | mikacli maps osrm |

Movie

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | AniList | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie anilist | | IMDb | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie imdb | | JustWatch | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie justwatch | | Kitsu | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie kitsu | | Letterboxd | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie letterboxd | | MyAnimeList | stable | cookies, none | supported | unsupported | unsupported | unsupported | mikacli movie myanimelist | | TMDb | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie tmdb | | TVMaze | stable | none | supported | unsupported | unsupported | unsupported | mikacli movie tvmaze |

News

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | News | stable | none | supported | unsupported | unsupported | unsupported | mikacli news |

Music

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Bandcamp | stable | none | supported | unsupported | partial | unsupported | mikacli music bandcamp | | Deezer | stable | none | supported | unsupported | partial | unsupported | mikacli music deezer | | SoundCloud | stable | none | supported | partial | partial | unsupported | mikacli music soundcloud | | Spotify | stable | cookies | supported | supported | supported | unsupported | mikacli music spotify | | YouTube Music | partial | cookies | supported | supported | supported | unsupported | mikacli music youtube-music |

Social

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Bluesky | stable | none, session | supported | supported | unsupported | unsupported | mikacli social bluesky | | Facebook | partial | cookies | supported | supported | supported | unsupported | mikacli social facebook | | Instagram | partial | cookies | supported | supported | supported | unsupported | mikacli social instagram | | LinkedIn | partial | cookies | supported | partial | supported | unsupported | mikacli social linkedin | | Mastodon | stable | none | supported | unsupported | unsupported | unsupported | mikacli social mastodon | | Pinterest | stable | none | supported | unsupported | unsupported | unsupported | mikacli social pinterest | | Reddit | partial | none, cookies | supported | supported | supported | unsupported | mikacli social reddit | | Telegram | partial | session | supported | supported | unsupported | unsupported | mikacli social telegram | | Threads | partial | none | supported | unsupported | unsupported | unsupported | mikacli social threads | | TikTok | partial | cookies | supported | partial | supported | unsupported | mikacli social tiktok | | Twitch | partial | cookies | supported | partial | supported | unsupported | mikacli social twitch | | WhatsApp | partial | session | supported | supported | unsupported | unsupported | mikacli social whatsapp | | X | partial | cookies | supported | supported | supported | unsupported | mikacli social x | | YouTube | partial | cookies | supported | partial | supported | unsupported | mikacli social youtube |

Notes:

  • bluesky: Public reads stay available without auth. App-password login enables saved-session me, post, comment, and like commands without browser automation.
  • facebook: Facebook writes now run through browser-backed post, like, and comment flows. Use --browser to jump straight into the shared MikaCLI browser profile when you want the visible browser path.
  • instagram: Reads and image/comment writes are browserless; post and comment deletion can fall back to browser-backed flows when Instagram's web APIs get flaky.
  • reddit: Public reads are stable; writes can use a saved session or the shared browser profile.
  • telegram: Uses saved MTProto sessions instead of browser cookies.
  • twitch: Uses Twitch's authenticated web GraphQL surface for channel, stream, video, and clip lookups.
  • twitch: Follow and unfollow try Twitch's web mutation path first, then can fall back to the shared MikaCLI browser profile when Twitch enforces an integrity challenge.
  • twitch: Clip creation and stream settings updates currently run through the shared MikaCLI browser profile.
  • whatsapp: Uses QR or pairing-code session state instead of browser cookies.
  • x: X write actions run through browser-backed flows. Use --browser to force the shared MikaCLI browser profile immediately when you want the live browser path.
  • youtube: Studio uploads are browser-backed. Watch-page likes, dislikes, comments, and subscriptions still use request tokens from the saved session.

Careers

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Indeed | stable | none | supported | unsupported | unsupported | unsupported | mikacli careers indeed | | ZipRecruiter | stable | none | supported | unsupported | unsupported | unsupported | mikacli careers ziprecruiter |

Shopping

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Amazon | partial | cookies | supported | partial | supported | unsupported | mikacli shopping amazon | | eBay | stable | none | supported | unsupported | unsupported | unsupported | mikacli shopping ebay | | Etsy | partial | none | supported | unsupported | unsupported | unsupported | mikacli shopping etsy | | Flipkart | stable | cookies | supported | supported | supported | unsupported | mikacli shopping flipkart |

Notes:

  • amazon: add-to-cart, remove-from-cart, update-cart, orders, order, and cart support browser-backed execution when the saved session alone is not enough.
  • flipkart: Uses the saved Flipkart session for cart actions. New adds use the authenticated cart endpoint; quantity updates and removals use the saved session in an invisible browser.

Developer

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Confluence | stable | cookies | supported | supported | supported | unsupported | mikacli developer confluence | | GitHub | stable | cookies | supported | supported | supported | unsupported | mikacli developer github | | GitLab | stable | cookies | supported | supported | supported | unsupported | mikacli developer gitlab | | Jira | stable | cookies | supported | supported | supported | unsupported | mikacli developer jira | | Linear | partial | cookies | supported | supported | supported | unsupported | mikacli developer linear | | Notion | partial | cookies | supported | supported | supported | unsupported | mikacli developer notion | | Trello | stable | cookies | supported | supported | supported | unsupported | mikacli developer trello |

Notes:

  • github: Uses a saved GitHub web session for browserless repository automation.

DevOps

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Cloudflare | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops cloudflare | | DigitalOcean | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops digitalocean | | Fly.io | partial | api token | supported | unsupported | unsupported | unsupported | mikacli devops fly | | Netlify | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops netlify | | Railway | partial | api token | supported | unsupported | unsupported | unsupported | mikacli devops railway | | Render | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops render | | Supabase | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops supabase | | UptimeRobot | stable | api token | supported | supported | unsupported | unsupported | mikacli devops uptimerobot | | Vercel | stable | api token | supported | unsupported | unsupported | unsupported | mikacli devops vercel |

Notes:

  • fly: Org-aware app listing may require an explicit --org slug for some tokens.
  • railway: Uses Railway's GraphQL surface, so some deeper actions may still be added later.
  • uptimerobot: Uses UptimeRobot's official v3 API with bearer-token authentication.

Bot

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Discord Bot | stable | bot token | supported | supported | unsupported | unsupported | mikacli bot discordbot | | GitHub Bot | stable | api token | supported | supported | unsupported | unsupported | mikacli bot githubbot | | Slack Bot | stable | bot token | supported | supported | unsupported | unsupported | mikacli bot slackbot | | Telegram Bot | stable | bot token | supported | supported | unsupported | unsupported | mikacli bot telegrambot |

Tools

| Provider | Stability | Auth | Read | Write | Browser login | Async jobs | Command | | --- | --- | --- | --- | --- | --- | --- | --- | | Cheat | stable | none | supported | unknown | unsupported | unsupported | mikacli tools cheat | | DNS | stable | none | supported | unknown | unsupported | unsupported | mikacli tools dns | | Download | stable | none, cookies | supported | unknown | unsupported | unsupported | mikacli tools download | | Favicon | stable | none | supported | unknown | unsupported | unsupported | mikacli tools favicon | | Headers | stable | none | supported | unknown | unsupported | unsupported | mikacli tools headers | | HTTP Toolkit | stable | none, cookies | supported | supported | unsupported | unsupported | mikacli tools http | | IP | stable | none | supported | unknown | unsupported | unsupported | mikacli tools ip | | JWT Analyzer | stable | none | supported | unknown | unsupported | unsupported | mikacli tools jwt | | Markdown Fetch | stable | none | supported | unknown | unsupported | unsupported | mikacli tools markdown-fetch | | Metadata | stable | none | supported | unknown | unsupported | unsupported | mikacli tools metadata | | oEmbed | stable | none | supported | unknown | unsupported | unsupported | mikacli tools oembed | | Page Links | stable | none | supported | unknown | unsupported | unsupported | mikacli tools page-links | | QR | stable | none | supported | unknown | unsupported | unsupported | mikacli tools qr | | Redirect | stable | none | supported | unknown | unsupported | unsupported | mikacli tools redirect | | Robots | stable | none | supported | unknown | unsupported | unsupported | mikacli tools robots | | RSS | stable | none | supported | unknown | unsupported | unsupported | mikacli tools rss | | Screenshot | stable | none | supported | unknown | unsupported | unsupported | mikacli tools screenshot | | Sitemap | stable | none | supported | unknown | unsupported | unsupported | mikacli tools sitemap | | SSL | stable | none | supported | unknown | unsupported | unsupported | mikacli tools ssl | | Temp Mail | stable | session | supported | supported | unsupported | unsupported | mikacli tools tempmail | | Time | stable | none | supported | unknown | unsupported | unsupported | mikacli tools time | | Timezone | stable | none | supported | unknown | unsupported | unsupported | mikacli tools timezone | | Transcript | stable | none | supported | unknown | unsupported | unsupported | mikacli tools transcript | | Translate | stable | none | supported | unknown | unsupported | unsupported | mikacli tools translate | | Uptime | stable | none | supported | unknown | unsupported | unsupported | mikacli tools uptime | | Weather | stable | none | supported | unknown | unsupported | unsupported | mikacli tools weather | | Web Search | stable | none | supported | unknown | unsupported | unsupported | mikacli tools websearch | | Whois | stable | none | supported | unknown | unsupported | unsupported | mikacli tools whois |

Notes:

  • http: Best used with saved sessions or the shared browser profile for authenticated request inspection and replay.
  • tempmail: Uses Mail.tm's free disposable inbox API and stores the mailbox session locally for reuse.

Agent-Friendly Output

Every command supports --json.

Success shape:

{
  "ok": true,
  "platform": "x",
  "account": "personal",
  "action": "post",
  "message": "X post created for personal.",
  "id": "1234567890",
  "url": "https://x.com/user/status/1234567890"
}

Error shape:

{
  "ok": false,
  "error": {
    "code": "SESSION_EXPIRED",
    "message": "X returned a logged-out page. Re-import cookies.txt."
  }
}

This makes MikaCLI friendly for:

  • shell scripts
  • CI jobs
  • multi-step agents
  • external orchestrators

Session Refresh

MikaCLI includes a refresh layer in src/utils/autorefresh.ts.

  • Instagram, X, and YouTube can use lightweight authenticated keepalive checks before normal actions.
  • Rotated cookies are persisted back into the saved session file when the platform returns them.
  • Some platforms still do not support a durable cookie-only refresh path, so expiration handling remains provider-specific.

This is the most practical browserless approach for copied web sessions, but it is not a universal guarantee for every website.

For cookie-backed providers that support interactive capture, you can also use login --browser to open a real browser, complete the sign-in flow manually, and let MikaCLI save the session automatically.

Project Structure

.
├── README.md
├── package.json
├── tsconfig.json
└── src
    ├── __tests__
    ├── core
    │   ├── auth
    │   └── runtime
    ├── commands
    ├── platforms
    │   ├── ai
    │   ├── bot
    │   ├── developer
    │   ├── editor
    │   ├── finance
    │   ├── llm
    │   ├── maps
    │   ├── movie
    │   ├── music
    │   ├── shopping
    │   ├── social
    │   ├── tools
    │   ├── config.ts
    │   └── index.ts
    ├── utils
    ├── config.ts
    ├── errors.ts
    ├── index.ts
    └── logger.ts

Development

Run the local CLI:

bun run dev --help
bun run dev social x login --cookies ./cookie.json

Watch mode:

bun run dev:watch --help

Typecheck:

bun run typecheck

Run tests:

bun test

Notes On Reliability

  • Cookie-backed private web flows can drift as providers change internal endpoints.
  • Token-backed developer and bot providers are usually the most stable long-term.
  • Local editor and public utility providers are the least fragile because they do not depend on private web sessions.
  • The category model is intentionally strict so provider names do not collide as MikaCLI grows.

Star History

Star History Chart