Jacky CLI
AI CLI, Automate.
Designer / Author: Maturi Jaswanth Sai Madhu Mohan
Built on Hermes Agent by Nous Research. Jacky CLI
is a personalized, distinct distribution of Nous Research's MIT-licensed
Hermes Agent — full credit and
thanks to the Nous Research team for the original agent, its tool-calling
architecture, and its self-improving skill system. This fork keeps that
foundation and adds: a bundled offensive-security / bug-bounty hunt-loop
methodology (skills/, METHODOLOGY.md), a one-command setup.sh bootstrap,
and CLI ergonomics tuned around dual local + cloud model use. If you're
looking for the upstream project, it's at
github.com/NousResearch/hermes-agent.
Quick Start
git clone https://github.com/jaswanthsai1/jacky-cli.git
cd jacky-cli
./setup.sh
jacky
setup.sh creates a virtual environment, installs Jacky CLI into it, copies
.env.example → .env, links the jacky command onto your PATH, and — before
declaring success — actually runs jacky --help to prove the install works.
Windows (native, PowerShell):
git clone https://github.com/jaswanthsai1/jacky-cli.git
cd jacky-cli
powershell -ExecutionPolicy ByPass -File scripts\install.ps1
See website/docs/user-guide/windows-native.md for the native Windows feature matrix.
📖 Full documentation → | 🎯 Hunt-loop methodology →
What Jacky can do
| Dual local + cloud model support | Run entirely offline against Ollama and any GGUF model — zero API cost, nothing leaves your machine — or point it at any OpenAI-compatible cloud provider (OpenRouter, direct OpenAI/Anthropic, Google AI Studio, and more). Switch providers any time with jacky model, no code changes. |
| Bundled offensive-security methodology | Ships with a real bug-bounty / red-team hunt-loop doctrine under skills/: scope → recon → rank → enumerate → test → validate → chain → report, plus finding-validation gates, evidence-hygiene discipline, and report-writing formulas. See METHODOLOGY.md. |
| A closed learning loop | Agent-curated memory with periodic nudges. Autonomous skill creation after complex tasks — skills self-improve during use. FTS5 session search with LLM summarization for cross-session recall. Compatible with the agentskills.io open standard. |
| A real terminal interface | Full TUI with multiline editing, slash-command autocomplete, conversation history, interrupt-and-redirect, and streaming tool output. |
| Lives where you do | Telegram, Discord, Slack, WhatsApp, Signal, and CLI — all from a single gateway process. Voice memo transcription, cross-platform conversation continuity. |
| Scheduled automations | Built-in cron scheduler with delivery to any platform. Daily reports, nightly backups, weekly audits — all in natural language, running unattended. |
| Delegates and parallelizes | Spawn isolated subagents for parallel workstreams. Write Python scripts that call tools via RPC, collapsing multi-step pipelines into zero-context-cost turns. |
| Tool-calling and agentic by default | 40+ built-in tools, an MCP client for connecting any MCP server, and a toolset system for scoping what's available per session. |
| Runs anywhere | Six terminal backends — local, Docker, SSH, Singularity, Modal, and Daytona. Daytona and Modal offer serverless persistence — your agent's environment hibernates when idle and wakes on demand. |
Local model (Ollama) vs. cloud provider setup
Jacky supports both, and switching between them is a one-line config change.
Local, zero API cost, fully offline:
curl -fsSL https://ollama.com/install.sh | sh # install Ollama
ollama pull qwen3:8b # or any tool-calling-capable model
jacky model # pick Ollama + the model you pulled
CPU-only works but is slower — see
website/docs/guides/local-ollama-setup.md
for hardware guidance, model recommendations, and the timeout tuning needed
for slow CPU inference.
Cloud, any OpenAI-compatible provider:
cp .env.example .env # done for you by setup.sh
# edit .env: add the API key for OpenRouter, OpenAI, Anthropic, Google AI
# Studio, z.ai, Kimi, MiniMax, Hugging Face, or your own OpenAI-compatible
# endpoint — see .env.example for the full list
jacky model # pick your provider and model
Full provider reference: website/docs/integrations/providers.md.
Getting Started
jacky # Interactive CLI — start a conversation
jacky model # Choose your LLM provider and model
jacky tools # Configure which tools are enabled
jacky config set # Set individual config values
jacky gateway # Start the messaging gateway (Telegram, Discord, etc.)
jacky setup # Run the full setup wizard (configures everything at once)
jacky update # Update to the latest version
jacky doctor # Diagnose any issues
📖 Full documentation → | 🎯 Hunt-loop methodology →
CLI vs Messaging Quick Reference
Jacky has two entry points: start the terminal UI with jacky, or run the gateway and talk to it from Telegram, Discord, Slack, WhatsApp, Signal, or Email. Once you're in a conversation, many slash commands are shared across both interfaces.
| Action | CLI | Messaging platforms |
|---|---|---|
| Start chatting | jacky |
Run jacky gateway setup + jacky gateway start, then send the bot a message |
| Start fresh conversation | /new or /reset |
/new or /reset |
| Change model | /model [provider:model] |
/model [provider:model] |
| Set a personality | /personality [name] |
/personality [name] |
| Retry or undo the last turn | /retry, /undo |
/retry, /undo |
| Compress context / check usage | /compress, /usage, /insights [--days N] |
/compress, /usage, /insights [days] |
| Browse skills | /skills or /<skill-name> |
/<skill-name> |
| Interrupt current work | Ctrl+C or send a new message |
/stop or send a new message |
| Platform-specific status | /platforms |
/status, /sethome |
For the full command lists, see website/docs/user-guide/cli.md and website/docs/user-guide/messaging/.
Documentation
Source docs live under website/docs/:
| Section | What's Covered |
|---|---|
| Quickstart | Install → setup → first conversation in 2 minutes |
| CLI Usage | Commands, keybindings, personalities, sessions |
| Configuration | Config file, providers, models, all options |
| Messaging Gateway | Telegram, Discord, Slack, WhatsApp, Signal, Home Assistant |
| Security | Command approval, DM pairing, container isolation |
| Tools & Toolsets | 40+ tools, toolset system, terminal backends |
| Skills System | Procedural memory, Skills Hub, creating skills |
| Memory | Persistent memory, user profiles, best practices |
| MCP Integration | Connect any MCP server for extended capabilities |
| Cron Scheduling | Scheduled tasks with platform delivery |
| Providers | Local (Ollama) and cloud (OpenAI-compatible) providers |
| Local Ollama Setup | Zero-API-cost local setup, hardware guidance |
| Architecture | Project structure, agent loop, key classes |
| Contributing | Development setup, PR process, code style |
| CLI Reference | All commands and flags |
| Environment Variables | Complete env var reference |
| Hunt-Loop Methodology | Bundled bug-bounty/offensive-security doctrine and skills |
Contributing
We welcome contributions! See CONTRIBUTING.md for development setup, code style, and PR process.
git clone https://github.com/jaswanthsai1/jacky-cli.git
cd jacky-cli
./setup.sh
.venv/bin/pip install -e ".[all,dev]"
scripts/run_tests.sh
Community
- 🐛 Issues
- 📚 Skills Hub (agentskills.io)
- 🔌 computer-use-linux — Linux desktop-control MCP server for Jacky and other MCP hosts, with AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.
License
MIT — see LICENSE.
Jacky CLI is a fork of Hermes Agent, © Nous Research, used and modified under the MIT License. Jacky-specific additions © Maturi Jaswanth Sai Madhu Mohan. See LICENSE for the full dual attribution.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jacky_cli-0.18.3.tar.gz.
File metadata
- Download URL: jacky_cli-0.18.3.tar.gz
- Upload date:
- Size: 13.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70ab0d4306364da13e9a6c37c3445d148e0aafe28ab543fb37a7589c995ff175
|
|
| MD5 |
5edb8bd9fd7e8c58a246a360afdad35b
|
|
| BLAKE2b-256 |
0030cb0ad03fa7d0b84d7a253c085679b8c4cabf3ebd25ba7741c5e4ca989a78
|
Provenance
The following attestation bundles were made for jacky_cli-0.18.3.tar.gz:
Publisher:
upload_to_pypi.yml on jaswanthsai1/jacky-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jacky_cli-0.18.3.tar.gz -
Subject digest:
70ab0d4306364da13e9a6c37c3445d148e0aafe28ab543fb37a7589c995ff175 - Sigstore transparency entry: 2490216827
- Sigstore integration time:
-
Permalink:
jaswanthsai1/jacky-cli@d149a7bee6b9ee0b10c1ce9d27bffb7d77c4483c -
Branch / Tag:
refs/tags/v2026.8.16 - Owner: https://github.com/jaswanthsai1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
upload_to_pypi.yml@d149a7bee6b9ee0b10c1ce9d27bffb7d77c4483c -
Trigger Event:
push
-
Statement type:
File details
Details for the file jacky_cli-0.18.3-py3-none-any.whl.
File metadata
- Download URL: jacky_cli-0.18.3-py3-none-any.whl
- Upload date:
- Size: 9.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c530875a74f0adac66c16dd57638509c44c24109770056cfdd529e5352e0d74f
|
|
| MD5 |
86e0be26acca37e4e81bb2a59bb1da43
|
|
| BLAKE2b-256 |
81cc39baa39d4de431038a674f2930bb598e8a12521abe1e59a4d4fb15c08af9
|
Provenance
The following attestation bundles were made for jacky_cli-0.18.3-py3-none-any.whl:
Publisher:
upload_to_pypi.yml on jaswanthsai1/jacky-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jacky_cli-0.18.3-py3-none-any.whl -
Subject digest:
c530875a74f0adac66c16dd57638509c44c24109770056cfdd529e5352e0d74f - Sigstore transparency entry: 2490217023
- Sigstore integration time:
-
Permalink:
jaswanthsai1/jacky-cli@d149a7bee6b9ee0b10c1ce9d27bffb7d77c4483c -
Branch / Tag:
refs/tags/v2026.8.16 - Owner: https://github.com/jaswanthsai1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
upload_to_pypi.yml@d149a7bee6b9ee0b10c1ce9d27bffb7d77c4483c -
Trigger Event:
push
-
Statement type: