joonecli
v0.2.0
Published
An autonomous coding agent
Downloads
301
Readme
⚡ Joone
An autonomous coding agent powered by prompt caching, harness engineering, and secure sandboxing.
Joone is a highly capable autonomous AI coding assistant that runs directly in your terminal. It leverages a hybrid environment: it has read/write access to your local project files for seamless editing, but all code execution, testing, and dependency installations happen securely inside an isolated cloud sandbox (powered by E2B).
✨ Features
- 🧠 Pluggable Intelligence: Seamlessly switch between Anthropic (Claude 3.5 Sonnet, Opus), OpenAI (GPT-4o, o1), Google (Gemini 1.5/pro), Mistral, Groq, local Ollama models, and more.
- 🔌 User-Local Provider Plugins: Heavy LLM SDKs (like
@langchain/google-genai) are dynamically installed into~/.joone/providers. This keeps the base Joone installation incredibly lightweight while supporting every major AI provider. - 🛡️ Secure Execution Sandbox: Joone cannot accidentally delete your local database or run malicious
npm installscripts on your host machine. All execution happens in an isolated E2B cloud sandbox that syncs seamlessly with your local workspace. - 🖥️ Beautiful Terminal UI: Built with React and Ink, Joone provides a rich, interactive TUI (Terminal User Interface) with spinners, syntax highlighting, and progress tracking.
- 🔍 Deep Insights: Integrated with LangSmith for comprehensive session tracing, token counting, and performance analysis.
- 🔁 Agent Resilience: Includes loop detection, command sanitization, backoff retries, and a human-in-the-loop (HITL) permission middleware (
auto,ask_dangerous,ask_all).
🚀 Getting Started
🚀 Quickstart
The fastest way to experience Joone is to run it on-demand without installing anything globally. This will automatically trigger the onboarding wizard and launch your first session seamlessly:
npx joone@latest startGlobal Installation (Alternative)
If you prefer to install Joone globally:
npm install -g jooneOnce installed, simply run joone in any directory. If it's your first time, the configuration wizard will open automatically.
Configuration
If you ever need to change your LLM provider, API keys, or models, run the configuration wizard:
joone configTo start an autonomous session in your current project directory:
joone startUninstallation
Since Joone manages its own user-local plugins and settings, completely removing Joone from your system is a two-step process:
- Wipe User Data: First, use Joone's built-in cleanup command to safely delete your configurations, traces, and dynamically installed LLM provider dependencies stored in
~/.joone:joone cleanup - Remove the App: Next, uninstall the base package using the package manager you originally used:
npm uninstall -g joone # OR brew uninstall joone
🛠️ Commands
| Command | Description |
| ------------------------------ | ------------------------------------------------------------------------------- |
| joone start | Start a new Joone agent session in the current directory. |
| joone start --resume <id> | Resume a previously saved persistent session. |
| joone config | Run the configuration wizard (Providers, API Keys, etc.). |
| joone sessions | List all available persistent sessions for resumption. |
| joone provider add <name> | Manually download a dynamic LLM provider package (e.g., google, anthropic). |
| joone provider remove <name> | Uninstall a provider package locally. |
| joone analyze [sessionId] | Analyze a session trace for token usage and performance insights. |
| joone eval | Run automated offline evaluation against the LangSmith dataset. |
| joone cleanup | Wipe all Joone configurations, keys, traces, and plugins from your machine. |
🏗️ Architecture
Joone is built around the Execution Harness pattern.
- Prompt Builder: Dynamically constructs LLM prompts using Anthropic/LangChain's prompt caching features to save tokens over long sessions.
- Middleware Pipeline: Tool calls pass through a robust middleware stack (Loop Detection, Command Sanitization, Permissions) before executing.
- Dynamic Sandbox: Tools executing terminal commands or running dev servers are routed via
@langchain/coredirectly into a temporary E2B sandbox. File modifications are synchronized back to your local machine via a bidirectional sync layer.
🤝 Contributing
We welcome contributions!
- Clone the repository
- Run
npm install - Make your changes in
src/ - Compile with
npm run build - Test your changes locally using
npm run dev -- start
📝 License
ISC License. See LICENSE for more information.
