Local-first AI

Your computer.
Your data.
One assistant.

Corque is a local-first personal AI that runs on your machine. Chat in natural language—manage todos, email, weather, run code, and more. Extend it with tools and skills.

Corque chat: Good afternoon! with input bar

Why Corque

🏠

Local-first

Runs with Ollama on your machine by default. Your data stays local; optionally plug in OpenAI or other cloud models via config.

🔧

Tool-ready Agent

Built on LangChain + LangGraph. You talk → the model picks tools → runs them → replies in plain language. Todos, email, weather, code, search, and more.

📚

Skills & plugins

Extensible skill packs in Markdown define workflows and when to use which tools. Add your own tools and skills to shape one assistant that can do it all.

Shortest demo

Clone the repo, install dependencies, then run the app. You get a chat loop in your terminal—no code to write.

python main.py

On Windows you can double-click run.bat. When you see "Corque is ready to assist you!", start typing. Type quit to exit.

Docs

Everything you need to run Corque, understand its design, and extend it.

Getting started

Prerequisites

  • Python 3.9 or higher
  • Ollama installed and running
  • Ollama model (default gpt-oss:120b-cloud; change in config/settings.py if needed)

1. Get the repo

Clone or download: github.com/StDoses72/Corque-AI-agent

2. Install dependencies

pip install langchain langchain-ollama langgraph python-dotenv tzlocal tavily-python

3. Optional: environment variables

Create a .env file in the project root for email and optional APIs:

EMAIL_USER=your-email@example.com
EMAIL_PASS=your-email-password
SMTP_SERVER=smtp.example.com
IMAP_SERVER=imap.example.com
TAVILY_API_KEY=your-tavily-api-key   # Optional, for web search
OPENAI_API_KEY=your-openai-key      # Optional, to use OpenAI

For Gmail use smtp.gmail.com and imap.gmail.com; you’ll need an app password.

4. Run Corque

On Windows: double-click run.bat. Otherwise:

python main.py

When you see “Corque is ready to assist you!”, start chatting. Type quit to exit.

Concepts

Tools (the “hands”): Python functions decorated with @tool. The docstring is the contract: when to use the tool, parameters, and return shape. On failure, return "Error: ..." instead of raising. Keys and paths come from config.settings; use timeTools for time.

Skills (the “brain”): Markdown files in skills/ that describe workflows and when to call which tools. The agent gets skill names and short descriptions in the system prompt, then calls load_skill(skill_name) to pull full content when needed.

Flow:

User Chat Agent Tools / Skills Result

Cookbook / Examples

One-command examples you can copy and run:

  • Manage todos: add, list, complete, filter by date.
  • Send email (with human-in-the-loop approval before sending).
  • Check weather by location (e.g. wttr.in).
  • Time: current UTC, timezone conversion, date math.
  • Search and news: Tavily search, daily news by topic.
  • Code: generate code and run it in a workspace (“write → run → fix” loop).
  • Domain data: domain lookup, World Bank, Open Library, earthquakes, Pokémon, Star Wars API, Stooq finance, etc.

Registry / Gallery

Browse built-in tools and skills. Filter by category to see what’s available and how to combine them.

  • Todos — add, list, update, complete (SQLite)
  • Email — send, list unread (SMTP/IMAP, with approval)
  • Weather — by location
  • Time — UTC, timezone, date math
  • Search & news — Tavily, daily news
  • Code — generate + run in workspace
  • Domain, World Bank, Open Library, USGS earthquakes, PokéAPI, Star Wars, Stooq, …
  • coding_agent — write → generate → run → fix flow
  • Cat_persona, skillArchitect, toolArchitect — personas and design helpers
  • Add your own skills/*.md for new workflows.

Community

  • Contributing: See the repo’s contribution guide. We welcome new tools and skills.
  • Templates: Use the existing tool/skill structure as a template for your plugins.
  • Roadmap: More tools, more skills, optional web UI — check the project README and issues.