Skip to content
ย 
ย 

Latest commit

ย 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฅ‹ CodeMonk

An open-source AI-powered platform for understanding complex codebases.

Navigating a massive codebase shouldn't feel like wandering through an ancient maze without a map. CodeMonk is an open-source engineering initiative built to transform how developers discover, understand, and reason about complex, multi-service software systems. Instead of treating code as flat text files, CodeMonk builds structural knowledge graph representations and intelligent retrieval pipelines to bring deep architectural comprehension directly to developers.


๐Ÿ’ก Why Does This Exist?

You clone a new repository on your first day.

Or maybe you are tasked with adding a feature to a legacy monolith that your team inherited.

  • Thousands of files across dozens of packages.
  • Hundreds of classes deeply coupled through inheritance, interfaces, and dynamic dependency injection.
  • Multiple microservices communicating asynchronously over message buses and RPCs.
  • Outdated documentationโ€”or worse, none at all.

You start grepping through the codebase. You jump from file to file following references. You open five different tabs of outdated Wiki pages. You ping senior engineers on Slack, waiting hours for a quick hint on how a single data pipeline flows. Before you write a single line of working code, you've spent days just trying to answer: "Where does this request actually go?"

CodeMonk is being built to eliminate this friction. We believe software architecture should explain itself, dynamically and accurately, powered by deep structural analysis and modern AI.


๐ŸŽฏ What Are We Building?

CodeMonk bridges raw code parsing with state-of-the-art AI reasoning. Rather than relying solely on naive keyword matching or plain vector embeddings of code snippets, CodeMonk extracts the underlying relationshipsโ€”call graphs, data flows, cross-service contracts, and schema boundariesโ€”into a unified context engine.

Repository
   โ†“
Understand the Code (AST & Structural Parsing)
   โ†“
Build Knowledge (Knowledge Graph & Vector Embeddings)
   โ†“
Retrieve Context (Hybrid RAG & Relationship Traversal)
   โ†“
Reason with AI (Spring AI & Multi-Agent Orchestration)
   โ†“
Help the Developer (Instant Architectural Insights)

By connecting static code analysis with graph representations and large language models, CodeMonk allows developers to query their software system at an architectural level.


โšก Why Is This Interesting?

CodeMonk is a real-world playground for modern distributed systems, code intelligence, and practical AI engineering. If you are passionate about high-performance backends or cutting-edge AI techniques, this project brings together complementary domains:

Technology Domain Engineering Application in CodeMonk
โ˜• Spring Boot 3 & Java 21 Building resilient, modular enterprise services leveraging virtual threads and modern Java capabilities.
๐ŸŒ Spring Cloud Service discovery, distributed configuration, and API gateway routing for multi-service environments.
๐Ÿ“จ Apache Kafka High-throughput event streaming for real-time code change events, asynchronous indexing, and pipeline tasks.
๐ŸŒฒ Code Analysis & AST Parsing Parsing Java, Kotlin, TypeScript, and Go into Abstract Syntax Trees to extract call graphs, definitions, and references.
๐Ÿ•ธ๏ธ Knowledge Graphs (Neo4j) Modeling class hierarchies, API endpoints, database schemas, and microservice dependencies into graph structures.
๐Ÿ”Ž Vector Search & Hybrid RAG Vector databases (pgvector / Qdrant) combined with lexical search for semantic code snippet retrieval.
๐Ÿง  Spring AI & AI Agents Multi-agent reasoning chains, tool orchestration, and LLM provider integration native to the Spring ecosystem.
๐Ÿ”ฌ Model Evaluation & Fine-Tuning Benchmark suites for code retrieval accuracy, PEFT / LoRA adaptation of open-weights LLMs for specialized code tasks.

Every technology in CodeMonk serves a clear architectural purpose. As a contributor, you get hands-on experience building production-grade distributed AI infrastructure.


๐Ÿ”ฎ The Big Idea

Imagine opening your terminal or IDE and asking CodeMonk questions that previously required hours of code diving:

๐Ÿ—ฃ๏ธ "How does user authentication work across services in this repository?"

๐Ÿ—ฃ๏ธ "Where does an incoming /orders/checkout request go after hitting the API gateway?"

๐Ÿ—ฃ๏ธ "What downstream services and message queues consume events published by PaymentProcessedEvent?"

๐Ÿ—ฃ๏ธ "If I change the signature of UserService.updateProfile(), what components might be affected?"

๐Ÿ—ฃ๏ธ "Explain this project's architecture to someone who has never seen it before."

These are our core engineering goals. We are building the foundational pipelines to make this level of repository intelligence a reality.


๐Ÿ—๏ธ Architecture

CodeMonk is designed with a decoupled, event-driven architecture to process repositories at scale:

flowchart TD
    subgraph Ingestion ["1. Code Ingestion & AST Parsing"]
        Repo["Git Repository"] --> Parser["Tree-Sitter / Language Parsers"]
        Parser --> Extractor["Structural & Dependency Extractor"]
    end

    subgraph Processing ["2. Streaming & Knowledge Building"]
        Extractor --> Kafka["Apache Kafka Event Bus"]
        Kafka --> KG["Knowledge Graph (Neo4j / Graph DB)"]
        Kafka --> VectorStore["Vector Database (pgvector / Qdrant)"]
    end

    subgraph Intelligence ["3. Reasoning & AI Engine"]
        KG --> ContextEngine["Context Assembly Engine"]
        VectorStore --> ContextEngine
        ContextEngine --> SpringAI["Spring AI Agentic Framework"]
        SpringAI --> LLM["Code LLM / Local Fine-Tuned Model"]
    end

    subgraph Interface ["4. Developer Experience"]
        LLM --> API["REST & gRPC API Gateway"]
        API --> CLI["CodeMonk CLI / IDE Plugins / Web UI"]
    end
Loading

๐Ÿ“Œ Current Status

We are committed to full transparency about what exists today versus what is being actively engineered.

Component Status Details
Core Architecture & Service Skeleton โœ… Available Spring Boot 3 base setup, project structure, and local dev environments.
Basic Code Tokenization & Storage โœ… Available Repository file ingestion and basic metadata extraction.
AST Code Parsing & Relation Extraction ๐Ÿšง In Progress Tree-Sitter integration for Java structural parsing and dependency extraction.
Apache Kafka Pipeline ๐Ÿšง In Progress Async event bus for repo indexing events and job queuing.
Vector Indexing & Hybrid Retrieval ๐Ÿšง In Progress Embedding pipeline setup with pgvector integration.
Knowledge Graph Schema Design ๐Ÿ”ฎ Planned Graph model specification for cross-service call trees and data models.
Spring AI Agent Orchestration ๐Ÿ”ฎ Planned Multi-step agent tools for repository-level contextual Q&A.
Impact Analysis Engine ๐Ÿ”ฎ Planned Graph-based change detection and dependency blast radius calculation.
Fine-Tuning & Evaluation Suite ๐Ÿ”ฎ Planned Benchmarking framework for code understanding accuracy.

๐Ÿš€ Quickstart for Local Development

Start the infrastructure containers and build the microservices ecosystem:

# 1. Start local infrastructure (PostgreSQL with pgvector, Redis, Kafka)
docker compose up -d

# 2. Build & run tests across all microservices
mvn clean test

๐Ÿ—บ๏ธ Roadmap

Building CodeMonk is a step-by-step journey. Here is our strategic roadmap:

๐Ÿฅ‹ Phase 1 โ€” Foundation
   โ”œโ”€โ”€ Core service architecture setup
   โ””โ”€โ”€ Local development Docker environment

๐Ÿ—บ๏ธ Phase 2 โ€” Repository Understanding
   โ”œโ”€โ”€ Multi-language AST parsing (Java/Kotlin/TS)
   โ””โ”€โ”€ Call graph & dependency structure extraction

๐Ÿง  Phase 3 โ€” Code Intelligence
   โ”œโ”€โ”€ Apache Kafka event pipeline for async indexing
   โ””โ”€โ”€ Incremental repository diff tracking

๐Ÿ”Ž Phase 4 โ€” Retrieval & RAG
   โ”œโ”€โ”€ Code chunking & hybrid vector embedding
   โ””โ”€โ”€ Semantic code search engine

๐Ÿ•ธ๏ธ Phase 5 โ€” Knowledge Graph
   โ”œโ”€โ”€ Graph database integration (Neo4j)
   โ””โ”€โ”€ Microservice & database schema relationship mapping

๐Ÿค– Phase 6 โ€” AI Intelligence
   โ”œโ”€โ”€ Spring AI agentic framework & tool definitions
   โ””โ”€โ”€ Contextual Q&A over full repositories

โšก Phase 7 โ€” Impact Analysis
   โ”œโ”€โ”€ Blast-radius visualization for refactoring
   โ””โ”€โ”€ Pull Request automated architecture review

๐Ÿ”ฌ Phase 8 โ€” AI Research
   โ”œโ”€โ”€ Custom code evaluation benchmarks
   โ””โ”€โ”€ Fine-tuning lightweight open models (PEFT / LoRA)

๐Ÿค Contribute

You do NOT need to be an AI researcher.
You do NOT need to be a senior architect.
You do NOT need to understand every file in this repository.

Whether you are fixing a small bug, writing unit tests, improving documentation, or designing a graph schema, your contribution is valuable. CodeMonk is built by developers, for developers.

Choose Your Path

Find a module that aligns with your interests and skills:

  • ๐Ÿฅ‹ Backend Engineering: Java 21, microservices architecture, clean code principles.
  • โ˜• Spring Boot: REST APIs, application configuration, Spring security, and actuators.
  • ๐ŸŒ Spring Cloud: Gateway, service discovery, resilient communication patterns.
  • ๐Ÿ“จ Apache Kafka: Streaming pipelines, event producers/consumers, topics partition management.
  • ๐Ÿง  Spring AI: Building agents, memory managers, and prompt engineering pipelines.
  • ๐Ÿ”Ž RAG & Search: Chunking strategies, vector embeddings, hybrid search algorithms.
  • ๐Ÿ•ธ๏ธ Knowledge Graphs: Cypher queries, graph schemas, relationship modeling in Neo4j.
  • ๐Ÿ”ฌ AI / ML: Evaluation metrics, fine-tuning scripts, model optimization.
  • ๐Ÿงช Testing: Unit tests, integration tests, Testcontainers, mock services.
  • ๐Ÿณ DevOps & Infra: Docker, Kubernetes manifests, CI/CD GitHub Actions pipelines.
  • ๐Ÿ“š Documentation: Architecture guides, setup tutorials, code inline docs.
  • ๐ŸŽจ Developer Experience: CLI design, web interface UI, IDE extensions.

๐ŸŒฑ Good First Contribution

Never contributed to CodeMonk before? Here is how to get started in 8 simple steps:

  1. Fork the Repository: Click the Fork button at the top right of this GitHub page.
  2. Clone & Explore: Clone your fork locally and inspect the project structure.
  3. Check the Architecture: Read through our Architecture section above.
  4. Pick an Issue: Browse open issues on GitHub tagged with newcomer-friendly labels:
    • good first issue โ€” Great starter tasks requiring minimal setup.
    • beginner โ€” Low-complexity tasks ideal for first-time contributors.
    • intermediate โ€” Tasks focused on specific service features.
    • advanced โ€” Complex subsystem design or AI pipeline work.
    • help wanted โ€” Tasks where community feedback and contributions are actively sought.
  5. Ask Questions: Unsure about something? Comment directly on the issue! We love answering questions and helping contributors get unblocked.
  6. Create a Branch: Create a feature branch (git checkout -b feature/my-cool-fix).
  7. Make Changes & Test: Write clean code, add tests, and verify locally using ./gradlew test (or ./mvnw test).
  8. Open a Pull Request: Submit your PR with a brief summary of what you built.

๐Ÿชœ Contributor Journey

We believe open source should empower your technical growth. As you contribute to CodeMonk, you can naturally evolve your role within the community:

First PR (Fix a typo, add a test, or resolve a good first issue)
   โ†“
More Contributions (Implement a feature module or AST parser)
   โ†“
Feature Ownership (Take ownership of a component like Kafka indexing or RAG search)
   โ†“
Maintainer / Architect (Review PRs, mentor new contributors, and guide project vision)

๐Ÿ’Ž Why Contribute?

CodeMonk isn't just another side projectโ€”it's a real-world software engineering ecosystem. By contributing, you will:

  • ๐Ÿ› ๏ธ Work on a real distributed system: Build event-driven microservices handling non-trivial data pipelines.
  • ๐Ÿš€ Master modern Spring: Gain hands-on experience with Spring Boot 3, Spring Cloud, and Spring AI.
  • ๐Ÿง  Experiment with production AI: Work beyond simple API calls by building hybrid RAG engines, agentic tool workflows, and graph-augmented contexts.
  • ๐Ÿ‘ฅ Collaborate with peers: Code alongside passionate developers, receive constructive code reviews, and share knowledge.
  • ๐Ÿ“ Understand system design: Learn how real enterprise software is structured, tested, and deployed.
  • ๐Ÿ“œ Build a public track record: Demonstrate real open-source achievements on your GitHub profile.

๐Ÿ’ฌ Community

CodeMonk is not meant to be built by one person or a closed team.

The architecture, features, documentation, experiments, and roadmap ideas are all open to being shaped by contributors like you. Have an idea for a new feature? Want to propose an alternative graph schema? Found a performance bottleneck?

  • ๐Ÿ’ก Propose an Idea: Open a GitHub Discussion to brainstorm new concepts.
  • ๐Ÿ› Report a Bug: File a detailed GitHub Issue if something breaks.
  • ๐Ÿ’ฌ Join the Conversation: Engage with fellow developers in issue threads and PR reviews.

๐Ÿ‘ฅ Contributors

CodeMonk is built by developers from around the world. Every single contribution mattersโ€”from fixing a typo in the README to designing a major subsystem.

Contributors

Thank you to everyone who has dedicated their time and talent to building CodeMonk!


๐Ÿš€ Join Us in Building CodeMonk

Found something interesting?
Have an idea to share?
Want to build a piece of the future of code intelligence?

Pick an issue. Start a discussion. Open a pull request.

Join us in building CodeMonk. ๐Ÿฅ‹

About

CodeMonk ๐Ÿฅ‹ โ€”>An open-source AI powered code intelligence platform that helps developers understand, explore, and navigate complex codebases using modern Spring Boot, Spring AI, RAG, knowledge graphs, and intelligent code analysis

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages