Locopilot is an open-source, local-first, agentic coding assistant built for developers. It leverages local LLMs (via Ollama), and advanced memory management using LangGraph, to automate, plan, and edit codebasesβall inside an interactive shell.
- Private: All code and prompts stay on your machine.
- Agentic: Locopilot plans, edits, iterates, and manages your coding tasks.
- Interactive: Drop into a shell, enter tasks or slash commands, and steer the agent in real time.
- Memory-Efficient: Advanced memory compression via LangGraph for "infinite" context.
- Extensible: Change models, modes, and add custom tools or plugins on the fly.
- Features
- How It Works
- Architecture
- Getting Started
- Usage: Interactive Shell & Commands
- Project Structure
- Extensibility & Roadmap
- Contributing
- License
- Local LLM Backend: Bring your own Ollama server and code with any open-source LLM.
- LangGraph Agent Workflow: Plans, executes, edits, and compresses memory as a stateful, extensible graph.
- Interactive Shell/REPL: After init, drop into a chat-like agent terminalβjust type coding tasks or slash commands.
- Slash Command Support:
/model,/change-mode,/concise,/clear,/new,/end,/help, and more. - Smart Memory Compression: Automatically summarizes previous context using the LLM itself, supporting ultra-long sessions.
- Configurable: Models, modes, and summarization thresholds are all runtime-editable.
- Pluggable Nodes: Add file tools, planning modules, git ops, and vector-based retrieval easily.
- (Planned) Git Integration: Auto-commit, rollback, and view code diffs per agent step.
Run locopilot init in your project root.
- Locopilot checks Ollama, prompts for model, sets up
.locopilot/config.yaml. - You're dropped into an interactive agent shell (REPL).
Each user input is parsed:
- Slash command (
/model, etc.) β runs as a graph branch. - Normal prompt (task) β plans, edits, summarizes via a workflow graph:
User Task β [Planning Node] β [File Edit Node] β [Memory Summarizer Node] β (Repeat) - Memory is managed with a LangGraph memory nodeβsummarizing, chunking, and compressing context as needed.
- Change models, modes, or reset memory on the fly with slash commands.
- All state (memory, model, mode) persists during the session.
Key components:
- CLI Layer: Typer-based CLI, launches shell (REPL), parses slash commands.
- LangGraph Workflow:
- Nodes: Planning, file edit, summarization, slash command handler, etc.
- Edges: Control session flow, branching between commands and prompts.
- LLM Backend:
- Ollama: For running CodeLlama, DeepSeek, etc.
- Memory Layer:
- LangChain/LangGraph memory objects (buffer, summary, vector, hybrid).
- Summarizes old context using the LLM to avoid hitting token/window limits.
- Config/Project Layer:
.locopilot/config.yamlstores model/backend/session preferences.
[User Input]
|
+---------------+---------------+
| |
[Slash Command] [Prompt/Task]
| |
[Command Handler] [Plan]->[Edit]->[Summarize]->[Memory]
| |
END Loop
- Python 3.8+
- Ollama running locally
- pip
Option 1: Install from PyPI (Recommended)
pip install locopilotOption 2: Install from Source
git clone https://github.com/Ripan-Roy/locopilot-ai.git
cd locopilot-backend
pip install -e .Ollama:
ollama serve
ollama pull codellama:latestlocopilot initThis checks LLM backend, prompts for config, scans for project context, and launches the interactive shell.
After init, Locopilot enters a shell where you can type prompts and commands:
$ locopilot init
[β] Ollama running. Model: codellama:latest
[β] Project context initialized.
Locopilot Shell (mode: do):
> Add OAuth login to my Django app
[PLANNING] ...
[EDITING] ...
[MEMORY] ...
> /model
Current model: codellama:latest
Enter new model: deepseek-coder:latest
[β] Model switched to deepseek-coder:latest
> /change-mode
Current mode: do
Available modes: do, refactor, explain, chat
Enter new mode: refactor
[β] Mode set to refactor.
> Refactor the payment logic for clarity
...
> /concise
[β] Context summarized and compressed.
> /clear
[β] Session memory cleared.
> /new
[β] New session started.
> /end
[β] Session ended. Bye!
| Command | Purpose |
|---|---|
/model |
Change LLM model/backend for current session |
/change-mode |
Switch between do, refactor, explain, chat modes |
/clear |
Clear all current context/memory |
/new |
Start a new session/project |
/end |
End the agent shell and exit |
/concise |
Force summarization/compression of current context |
/help |
Show help and command list |
Anything not starting with / is treated as a task in the current mode!
locopilot-backend/
βββ locopilot/ # Main package directory
β βββ __init__.py
β βββ core/ # Core functionality
β β βββ __init__.py
β β βββ agent.py # LangGraph workflow and nodes
β β βββ memory.py # Session/context memory management
β β βββ executor.py # Plan execution engine
β βββ llm/ # LLM backend handling
β β βββ __init__.py
β β βββ connection.py # Ollama connection helpers
β β βββ backends/ # Backend-specific implementations
β βββ cli/ # CLI components
β β βββ __init__.py
β β βββ app.py # CLI entrypoint, shell/REPL logic
β β βββ commands/ # CLI command implementations
β βββ utils/ # Utility functions
β βββ __init__.py
β βββ file_ops.py # File operations, config helpers
βββ tests/ # Test suite
β βββ conftest.py
β βββ test_agent.py
β βββ test_basic.py
β βββ test_connection.py
β βββ test_plan_executor.py
βββ scripts/ # Setup and utility scripts
β βββ setup.sh
βββ docs/ # Documentation
βββ assets/ # Static assets
β βββ locopilot-demo.png
βββ pyproject.toml # Package configuration
βββ requirements.txt # Dependencies
βββ README.md
βββ LICENSE
ConversationBufferMemoryorConversationSummaryBufferMemoryis attached to the agent graph.- As session context grows, old steps are summarized using the LLM and replaced in memory.
- This ensures Locopilot "remembers" key tasks, design decisions, and context for long sessions.
- Slash command
/conciselets you summarize on demand.
- Editor Plugins: VSCode, Vim, JetBrains, etc.
- Project-Aware RAG: Integrate vector DBs (Chroma, Qdrant) for smart codebase retrieval.
- (Planned) Git Integration: Auto-commit, diff, and rollback per step.
- Save/Load Sessions:
/save,/load,/historycommands. - Custom Plugins/Nodes: Add your own LangGraph nodes for tools or workflows.
- Web/GUI Frontends: Same agent core, different interface.
- Fork and PRs are welcome!
- Open issues for bugs or feature requests.
- For major features (graph nodes, memory backends), see CONTRIBUTING.md (coming soon).
MIT License. Use, fork, and extend as you wish!
Locopilot is inspired by Copilot, Claude Code, Dev-GPT, OpenDevin, and the emerging open-source agentic ecosystemβaiming to empower developers with private, supercharged, customizable AI tools.
# Install from PyPI
pip install locopilot
# Initialize in your project
locopilot init
# ... then just type your coding tasks and manage the session with slash commands!Links:
