jps-forge
A 100% local, Ollama-powered coding agent that indexes your projects, answers questions about your codebase with RAG, and can autonomously run Git commands and other tools — no cloud, no API keys, no data ever leaves your machine.
🚀 Overview
jps-forge is a privacy-focused AI coding assistant that runs entirely on your local machine using Ollama. It combines retrieval-augmented generation (RAG) with autonomous tool execution to help you understand and work with your codebase without sending any data to external services.
Key Features
- 🔒 100% Local & Private: All processing happens on your machine using Ollama - no cloud APIs, no data leakage
- 📚 Intelligent Code Search: Uses FAISS vector store with sentence transformers for semantic code search
- 🤖 Autonomous Agent: Powered by LangGraph's ReAct agent that can use tools to answer questions
- 🔧 Git Integration: Built-in tools to check repository status and find uncommitted changes
- 💬 Interactive Chat: Rich terminal interface for conversational code exploration
- 🎯 Context-Aware: Retrieves relevant code snippets to provide accurate, contextual answers
- 🐳 Docker Support: Includes Dockerfile and docker-compose.yml for containerized deployment
How It Works
- Index: Scan your codebase and create vector embeddings of your code
- Query: Ask questions in natural language about your code
- Retrieve: Automatically fetch relevant code context using semantic search
- Act: Agent uses tools (git status, etc.) when needed to gather information
- Answer: Get AI-powered responses grounded in your actual codebase
📦 Installation
Prerequisites
- Python 3.10 or higher
- Ollama installed and running
- An Ollama model pulled (e.g.,
ollama pull llama3.1:8b)
Install from PyPI
pip install jps-forge
Install from Source
git clone https://github.com/jai-python3/jps-forge.git
cd jps-forge
pip install -e .
Docker
See the Usage Guide for detailed Docker deployment instructions.
Quick start with docker-compose:
docker-compose up -d
docker-compose exec jps-forge jps-forge-index
docker-compose exec jps-forge jps-forge-forge
🎯 Quick Start
For detailed usage instructions, see the Usage Guide.
Basic workflow:
- Install jps-forge (see above)
- Configure workspace in
~/.config/jps-forge/config.yaml - Index your code:
jps-forge-index - Start chatting:
jps-forge-forge
📚 Documentation
- Usage Guide - Comprehensive usage instructions
- Development SOP - Development workflow
- Release SOP - Release procedures
🧰 Available Tools
The agent has access to the following tools:
list_dirty_repos(): Find all git repositories with uncommitted changescurrent_repo_status(): Get git status of the current working directorygit_status(repo_path): Get git status of a specific repository
For detailed usage examples, see the Usage Guide.
🧪 Development
See Development SOP for detailed development workflow.
Setup Development Environment
# Clone and install with dev dependencies
git clone https://github.com/jai-python3/jps-forge.git
cd jps-forge
pip install -e '.[dev]'
Run Tests
make test
Code Quality
# Auto-fix imports and formatting
make fix
# Format code with black
make format
# Run linting
make lint
Pre-commit Hooks
# Install pre-commit hooks
pre-commit install
# Run manually on all files
make precommit
📋 Requirements
- Python 3.10+
- Ollama (running locally)
- Git
- Required Python packages (installed automatically):
- langchain
- langchain-community
- langchain-huggingface
- langchain-ollama
- langgraph
- faiss-cpu
- sentence-transformers
- gitpython
- rich
- PyYAML
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📜 License
MIT License © Jaideep Sundaram
🙏 Acknowledgments
- Ollama for local LLM inference
- LangChain for the agent framework
- LangGraph for the ReAct agent implementation
- FAISS for vector similarity search
- Sentence Transformers for text embeddings
🔮 Roadmap
- Add more development tools (run tests, search code, refactor, etc.)
- Support for multiple programming languages
- Code modification and file creation capabilities
- Integration with more version control systems
- Custom tool plugins
- Web UI option
- Multi-repo workspace management
Note: This tool requires Ollama to be running. Make sure you have Ollama installed and at least one model pulled before using jps-forge.
Metadata
Release files for jps-forge 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jps_forge-0.3.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jps_forge-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.5 kB
Release files / jps_forge-0.3.0.tar.gz
| Download URL | jps_forge-0.3.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07a126b3bdb650bb5cfb9680a0d87e245528c4ae3a7414999399a663f4c54c7b
|
|
BLAKE2b-256 checksum How to use checksums |
c7888ccdd50ea17a063ab3778016d8967f0d7572da0a4b66d81b75f72b0ce96c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / jps_forge-0.3.0-py3-none-any.whl
| Download URL | jps_forge-0.3.0-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0307562eea422c4849984013db4897ee065595d3ebecf0e5ef428e39789cddf
|
|
BLAKE2b-256 checksum How to use checksums |
abee8b68f2c33c8907a3912117553daecaa33cdc654a2d364db7b254af2e12cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|