Skip to main content

Package Query - Find API information for Python packages

Project description

pkgq

PyPI Python uv CI Coverage License Agentic PACKAGE.md yoker

Make your Python package discoverable for AI coding agents in 3 steps.

What is PACKAGE.md?

PACKAGE.md is a informally proposed documentation standard for Python packages optimized for AI agents. Unlike README.md (written for humans), PACKAGE.md provides structured, scannable content that coding agents can quickly understand:

  • Purpose - What the package does in one line
  • Key Components - Classes, functions, and their signatures
  • Common Patterns - Code examples for typical use cases
  • Migration Guides - How to upgrade between versions

When you add PACKAGE.md to your repository root, coding agents using pkgq can instantly understand your package's capabilities.

Quick Start for Package Authors

3 steps to make your package discoverable:

# 0. Add the marketplace (one-time setup)
claude plugin marketplace add christophevg/marketplace

# 1. Get the plugin
claude plugin install pkgq@christophe.vg

# 2. Generate documentation
/pkgq:create

# 3. Commit and push
git add PACKAGE.md && git commit -m "docs: add PACKAGE.md" && git push

Done! Your package is now discoverable by coding agents using the pkgq tool or MCP server.

Add the badge to show your package supports AI agents:

[![PACKAGE.md](https://img.shields.io/badge/pkgq-PACKAGE.md-blueviolet)](https://github.com/christophevg/pkgq#readme)

For Package Users

Installation

pip install pkgq

# For MCP server support
pip install "pkgq[mcp]"

Python Module

from pkgq import find

# Find package documentation
result = find("yoker")
print(result.content)

# Check for updates
result = find("yoker", from_version="1.5.0")

Command Line

% pkgq find yoker --save | head -15
Saved to: /Users/xtof/.cache/pkgq/packages/yoker
yoker 0.4.0 (cached)
Source: github:christophevg/yoker

                              Yoker

A Python agent harness with configurable tools and guardrails - one who yokes
agents together.

Overview

Yoker is a library-first, event-driven agent harness for Python that integrates
with Ollama. It provides a transparent, configurable runtime for AI agents with
structured tool execution, guardrails, and event emission. Unlike CLI-first
agent frameworks, Yoker is designed to be embedded in applications with full
visibility into agent operations.

% pkgq cache --list
Cached packages (3):
  pkgq 0.3.2 (pypi)
  roomz 0.2.0 (github:christophevg/roomz)
  yoker 0.5.0 (github:christophevg/yoker)

Yoker Tool

When you're using yoker as your agent harness, you can simply include the pkgq package in your environment and ask yoker to load it as a plugin...

% uvx --with pkgq yoker --with pkgq

╭───────────────────────────────── Plugin: pkgq ──────────────────────────────────╮
│ Plugin: pkgq                                                                    │
│                                                                                 │
│ Tools:     pkgq:find                                                            │
│ Skills:    pkgq:create, pkgq:update                                             │
│ Agents:    (none)                                                               │
│                                                                                 │
│ Plugins can execute code on your system.                                        │
│ Only load plugins you trust.                                                    │
│                                                                                 │
│ Load this plugin? [y/N]:                                                        │
╰─────────────────────────────────────────────────────────────────────────────────╯

y

To trust this plugin permanently, add to your yoker.toml:

  [plugins.trusted]
  pkgq = true

╭───────────────────────────────── 👋 Welcome... ─────────────────────────────────╮
│ Yoker v0.4.0 - Using model: kimi-k2.7-code:cloud                                │
│ Harness: yoker v1.0                                                             │
│ Thinking mode: enabled (use /think on|off|silent to toggle)                     │
│ Agent: default - The default/minimal Yoker agent.                               │
│ Type /help for available commands.                                              │
│ Press Ctrl+D (or Ctrl+Z on Windows) to quit.                                    │
╰─────────────────────────────────────────────────────────────────────────────────╯

> use the pkgq find tool to get information on pkgq
  The user wants me to use the pkgq find tool to get information on pkgq. I should
  use the pkgq__find function with package="pkgq".

⏺ Pkgq:find tool: pkgq  ✓ Success
  I got the information from the pkgq find tool. Let me summarize this for the user
  in a helpful way.

  Here is the information for **pkgq** using the pkgq find tool:

  ## pkgq — Package Query

  - **Version:** 0.1.1
  - **Author:** None listed
  - **Description:** Package Query - Find API information for Python packages
  - **Install command:**
    pip install pkgq

MCP Server

pkgq-mcp-server
# Or: uvx --from "pkgq[mcp]" pkgq-mcp-server

So If you want to load it into your project, create a .mcp.json file:

{
  "mcpServers": {
    "pkgq": {
      "command": "uvx",
      "args": [
        "--from",
        "pkgq[mcp]",
        "pkgq-mcp-server"
      ]
    }
  }
}

When you start your MCP-based coding harness, e.g. Claude Code, you'll be prompted for confirmation to use the new MCP server:

────────────────────────────────────────────────────────────────────────────────────
  New MCP server found in this project: pkgq

  MCP servers may execute code or access system resources. All tool calls require
  approval. Learn more in the MCP documentation.

  ❯ 1. Use this MCP server
    2. Use this and all future MCP servers in this project
    3. Continue without using this MCP server

  Enter to confirm · Esc to cancel

And you can use it:

❯ use the find_pacakge tool to find information about pkgq

⏺ Thinking for 2s, calling plugin:c3:pkgq…

────────────────────────────────────────────────────────────────────────────────────
 Tool use

   plugin:c3:pkgq - find_package(package: "pkgq") (MCP)
   Find package documentation.

   Queries multiple sources in order:…

 Do you want to proceed?
 ❯ 1. Yes
   2. Yes, and don't ask again for plugin:c3:pkgq - find_package commands in /Users/xtof/Workspace/agentic/pkgq
   3. No

 Esc to cancel · Tab to amend


 pkgq Package Information
 
 Version: 0.1.1 (cached)
 Source: PyPI
 
 Overview
 
 pkgq (Package Query) is a tool for finding API information for Python packages.
 ...

Features

Feature Description
Cascade lookup Cache → GitHub PACKAGE.md → PyPI
MCP server Tool for Claude Code agents
Auto-caching Results saved to ~/.cache/pkgq/packages/
Plugin skills /pkgq:create and /pkgq:update

Development

% git clone https://github.com/christophevg/pkgq.git
% cd pkgq
% uv sync --all-extras
% uv run pytest

License

MIT

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

pkgq-0.3.2.tar.gz (166.9 kB view details)

Uploaded Source

Built Distribution

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

pkgq-0.3.2-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file pkgq-0.3.2.tar.gz.

File metadata

  • Download URL: pkgq-0.3.2.tar.gz
  • Upload date:
  • Size: 166.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pkgq-0.3.2.tar.gz
Algorithm Hash digest
SHA256 2e28dd1074a932cffb2e7c8ad70cbfa9dba61ceca4990dacf404c7dd80731d14
MD5 13c274e42bbddd33394acc6817ea2c98
BLAKE2b-256 b8be1da18829836f4db7535d5ca09ce34f3c3cd56c790f803d9f96c72b127bdb

See more details on using hashes here.

File details

Details for the file pkgq-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: pkgq-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for pkgq-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ecf7b78c27fb27b21d5c93b8176ea49c111dbc8a2d52372fd31fe4ee1a13473
MD5 be337851490419c761b0fce37791fad0
BLAKE2b-256 580a0ecb43b4b8d24ea8fd245e2a863bf1192800f613bbc8b5c86ff69bc129ba

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