Skip to main content

jps-forge

Build Publish to PyPI codecov

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

  1. Index: Scan your codebase and create vector embeddings of your code
  2. Query: Ask questions in natural language about your code
  3. Retrieve: Automatically fetch relevant code context using semantic search
  4. Act: Agent uses tools (git status, etc.) when needed to gather information
  5. 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:

  1. Install jps-forge (see above)
  2. Configure workspace in ~/.config/jps-forge/config.yaml
  3. Index your code: jps-forge-index
  4. Start chatting: jps-forge-forge

📚 Documentation

🧰 Available Tools

The agent has access to the following tools:

  • list_dirty_repos(): Find all git repositories with uncommitted changes
  • current_repo_status(): Get git status of the current working directory
  • git_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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📜 License

MIT License © Jaideep Sundaram

🙏 Acknowledgments

🔮 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jps_forge-0.3.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jps_forge-0.3.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file jps_forge-0.3.0.tar.gz.

File metadata

  • Download URL: jps_forge-0.3.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jps_forge-0.3.0.tar.gz
Algorithm Hash digest
SHA256 07a126b3bdb650bb5cfb9680a0d87e245528c4ae3a7414999399a663f4c54c7b
MD5 8b85e1569518dcee5205759c58add4e1
BLAKE2b-256 c7888ccdd50ea17a063ab3778016d8967f0d7572da0a4b66d81b75f72b0ce96c

See more details on using hashes here.

File details

Details for the file jps_forge-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: jps_forge-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for jps_forge-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0307562eea422c4849984013db4897ee065595d3ebecf0e5ef428e39789cddf
MD5 74b3ed52cebf2c39239f4e7222e38e2b
BLAKE2b-256 abee8b68f2c33c8907a3912117553daecaa33cdc654a2d364db7b254af2e12cd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page