Skip to main content

Ask your codebase anything — locally, privately, powerfully

Project description

███████╗███████╗ ██████╗  ██████╗██╗      ██████╗ ██╗   ██╗██████╗
╚══███╔╝██╔════╝██╔═══██╗██╔════╝██║     ██╔═══██╗██║   ██║██╔══██╗
  ███╔╝ █████╗  ██║   ██║██║     ██║     ██║   ██║██║   ██║██║  ██║
 ███╔╝  ██╔══╝  ██║   ██║██║     ██║     ██║   ██║██║   ██║██║  ██║
███████╗███████╗╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝
╚══════╝╚══════╝ ╚═════╝  ╚═════╝╚══════╝ ╚═════╝  ╚═════╝ ╚═════╝

Ask your codebase anything — locally, privately, powerfully.

Version PyPI License: MIT Python 3.11+ uv Ollama Qdrant PRs Welcome


What is Zeocloud?

Zeocloud is an open-source CLI tool that lets you have natural conversations with any codebase — in English or Hindi — without sending a single byte to the cloud.

It indexes your code locally, stores vectors in a local Qdrant database, and uses Ollama to run language models on your own hardware. No API keys. No subscriptions. No privacy concerns.

$ zeocloud

  buddy is listening

  1.  Ask a question about your code
  2.  Index a new project

  You  buddy: auth middleware kahan hai aur kaise kaam karta hai?

  🤖 buddy:

  The auth middleware lives in `src/middleware/auth.js` (lines 12–48).
  It validates JWT tokens using the `jsonwebtoken` library...

Features

  • 100% local — Ollama + Qdrant, zero cloud calls
  • Smart hardware detection — suggests the right model for your machine (RAM, GPU, Apple Silicon)
  • Bilingual — ask questions in English or Hindi, get answers in the same language
  • Conversation memory — follow-up questions use previous context
  • Any language — Python, JS, TS, Go, Rust, Java, C++, and 40+ more
  • Gitignore-aware — skips node_modules, build artifacts, binary files
  • Safety guardrails — blocks indexing of system directories, warns about .env files
  • Session logs — every conversation is saved to ~/.zeocloud/sessions/
  • Beautiful CLI — Rich-powered colorful terminal with progress bars, spinners, tables
  • zeocloud status — health check for all services at a glance

Requirements

Tool Version Purpose
Python 3.11+ Runtime
Ollama latest Local LLM
Docker latest Vector database

Quick Start

Option 1 — PyPI (recommended):

pipx install zeocloud
# or
uv tool install zeocloud

Option 2 — Clone:

git clone https://github.com/manishdashsharma/Zeocloud.git
cd Zeocloud
bash scripts/install.sh

Then run setup:

zeocloud install

After setup, just run:

zeocloud

Name your agent, point it at a project, and start asking questions.


Usage

zeocloud install

Interactive setup wizard that:

  1. Detects your CPU, RAM, and GPU
  2. Recommends the best local model for your hardware
  3. Pulls the model via Ollama (downloads once, stored locally)
  4. Starts Qdrant vector database in Docker
  5. Runs health checks on all services
$ zeocloud install

  System Detection
  ┌──────────────┬──────────────────────────────────┐
  │ Property     │ Value                            │
  ├──────────────┼──────────────────────────────────┤
  │ OS           │ Darwin                           │
  │ CPU          │ Apple M3 Pro                     │
  │ CPU Cores    │ 11                               │
  │ RAM          │ 18.0 GB                          │
  │ Chip         │ Apple Silicon (unified memory)   │
  └──────────────┴──────────────────────────────────┘

  Recommended: llama3.1:8b  ★★★★☆ Great

zeocloud

$ zeocloud

  ╔═══════════════════════════════════════╗
  ║           Z E O C L O U D            ║
  ║    Ask your codebase anything         ║
  ╚═══════════════════════════════════════╝

  ── Name Your Agent ──────────────────────

  Give your AI assistant a name — something that feels right to you.
  Examples: buddy, sage, aria, max, nova, cody, orion

  Agent name [buddy]: aria

  ✓  aria is your Zeocloud agent. Let's go!

  ⚡  aria is listening

  1.  Ask a question about your code
  2.  Index a new project
  3.  View indexed projects
  4.  Remove a project
  5.  Exit

  Choice [1]:

On first run, you name your AI agent — call it anything you like. That name is saved and used in every session going forward. Then the interactive menu appears:

  • Ask a question — select a project and ask anything in English or Hindi
  • Index a new project — provide a path, Zeocloud indexes all source files
  • View projects — table of all indexed projects with stats
  • Remove a project — deletes vectors from Qdrant and config entry

zeocloud status

Check health of all services at a glance:

  Services
  ┌─────────┬──────────────────────┬─────────────────┐
  │ Service │ Address              │ Status          │
  ├─────────┼──────────────────────┼─────────────────┤
  │ Ollama  │ http://localhost:... │ ✓  Running      │
  │ Qdrant  │ localhost:6333       │ ✓  Running      │
  └─────────┴──────────────────────┴─────────────────┘

How It Works

Your Code
    │
    ▼
  Indexer          Walk repo → skip ignored dirs → chunk files (400 tokens, 80 overlap)
    │
    ▼
  Embedder         nomic-embed-text via Ollama → 768-dim vectors
    │
    ▼
  Qdrant           Store in collection zeocloud_{project} (cosine similarity)
    │
    ▼  ──── at query time ────
    │
  Embedder         Embed your question with the same model
    │
    ▼
  Retriever        Top-8 most similar chunks from Qdrant
    │
    ▼
  LLM              Build prompt with context → stream answer via Ollama
    │
    ▼
  Terminal         Streamed tokens, then source file citations

Model Selection Guide

Zeocloud auto-detects your hardware and picks the best model:

Your Machine Suggested Model Quality
< 8 GB RAM phi3.5:3.8b ★★☆☆☆ Lite
8–16 GB RAM llama3.2:3b ★★★☆☆ Good
16+ GB RAM llama3.1:8b ★★★★☆ Great
Apple Silicon 16GB+ llama3.1:8b ★★★★☆ Great
Apple Silicon 32GB+ llama3.3:70b ★★★★★ Best
NVIDIA GPU ≥ 8GB VRAM llama3.1:8b ★★★★☆ Great
NVIDIA GPU ≥ 24GB VRAM llama3.3:70b ★★★★★ Best

Hindi support: llama3.1:8b and above handle Hindi well. Lighter models (3B and below) have limited Hindi understanding.


Project Layout

zeocloud/
├── src/                     ← Package root (maps to zeocloud.*)
│   ├── cli/                 ← Commands: main, install, chat
│   ├── config/              ← Settings model + persistence
│   ├── llm/                 ← Ollama LLM client (generate, pull, status)
│   ├── embedder/            ← Embedding client (nomic-embed-text)
│   ├── indexer/             ← File traversal + token-based chunking
│   ├── retriever/           ← Qdrant vector store + RAG pipeline
│   └── utils/               ← Display (Rich), system detection, safety, session
├── docker/                  ← Qdrant docker-compose (bundled)
├── docs/                    ← Architecture docs
├── sessions/                ← (gitignored) session log output during dev
├── tests/                   ← pytest unit tests
└── scripts/install.sh       ← bootstrap script

Session Logs

After every chat session, Zeocloud writes a structured markdown log to ~/.zeocloud/sessions/:

~/.zeocloud/sessions/
  2024-01-15_14-32-07.md
  2024-01-16_09-45-22.md

Each log contains:

  • Session summary (agent, duration, question count)
  • List of projects queried and indexed
  • Full Q&A transcript

Privacy

Zeocloud is designed from the ground up to keep your code private:

  • No cloud calls — Ollama and Qdrant both run on localhost
  • No telemetry — zero analytics, no crash reporting, nothing leaves your machine
  • No accounts — no sign-up, no API keys
  • Vectors are local — stored in a Docker volume on your machine
  • Config is local~/.zeocloud/config.json, readable only by you

Development

git clone https://github.com/manishdashsharma/Zeocloud.git
cd Zeocloud
uv sync              # install deps + package in editable mode
uv run zeocloud install
uv run zeocloud

Running tests

uv run pytest tests/ -v

Linting

uv run ruff check src/
uv run ruff format src/
uv run mypy src/

Contributing

Contributions are very welcome! This is a community project.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/your-feature)
  3. Write tests for your changes
  4. Run uv run ruff check src/ && uv run pytest tests/
  5. Open a pull request

Please read CONTRIBUTING.md before submitting your first PR.

Ideas for contributions

  • Incremental reindexing (only re-embed changed files)
  • zeocloud config command to update settings from CLI
  • Support for remote Ollama / Qdrant instances
  • Export session logs to different formats
  • File-level filtering when asking questions
  • VS Code extension

FAQ

Q: How is this different from GitHub Copilot or Cursor?
A: Those send your code to external servers. Zeocloud runs entirely on your machine — your code never leaves.

Q: Does it work on Windows?
A: Not officially tested yet. Docker and Ollama support Windows, so it should work. PRs welcome!

Q: Can I use a different LLM provider?
A: Currently Ollama-only. Support for other local providers is on the roadmap.

Q: How do I update the model after install?
A: Run zeocloud install again and choose a different model when prompted.

Q: My Hindi answers aren't great. What model should I use?
A: Use llama3.1:8b or larger. Smaller models have limited multilingual support.


Author

Manish Dash Sharma
Senior Software Engineer

Architecting AI-powered systems that scale.
From GenAI integrations to full-stack solutions — turning complex problems into elegant code.

🌐 Website · GitHub


License

MIT © Manish Dash Sharma


Built with ❤️ for the developer community · 100% local · 100% yours

⭐ Star this repo if Zeocloud helps you understand code faster!

Project details


Download files

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

Source Distribution

zeocloud-0.1.4.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

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

zeocloud-0.1.4-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file zeocloud-0.1.4.tar.gz.

File metadata

  • Download URL: zeocloud-0.1.4.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zeocloud-0.1.4.tar.gz
Algorithm Hash digest
SHA256 97b3c99b2f1f43c8cadb6441233eadd30ddb4f5cd8162ceea66176b8a3b5edbf
MD5 b57ad6d72e3fcd9acaa822c69e5ebf95
BLAKE2b-256 c2cc7601a84673e0fa490c86a3a5f739801c45d511f48a7708324532e1643f1a

See more details on using hashes here.

File details

Details for the file zeocloud-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: zeocloud-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 32.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zeocloud-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 eda760973aa93b0ae6be3392607e4e7ec22c339890265b1945e7759e338acefa
MD5 9ce82e9ab36308a78013b7ab5b218204
BLAKE2b-256 fc0a5171dafe3e8aa60ecefc20f6bbbf2c4b91a78f96efd77ac91c0527bbf7df

See more details on using hashes here.

Supported by

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