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.1 (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.1.tar.gz (167.0 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.1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pkgq-0.3.1.tar.gz
  • Upload date:
  • Size: 167.0 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.1.tar.gz
Algorithm Hash digest
SHA256 59f6e1a621b34d32ac6176e613011a5d9b344c39594fce257d7e51e3f738ed6f
MD5 07804e313b0662f992d7bcd0e635751e
BLAKE2b-256 46d96edd5e16b27c36c978cad4ddf98eb67babf6533063c68eba8787e3b1f324

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pkgq-0.3.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c6941c771eb58fa45e00b07cfe247e95270cdd7216563eb6c9df0d363cd2259d
MD5 7bc3bd0f3bc442f97db7638f1ea7f650
BLAKE2b-256 c53b86b9fec3621b2d32a960487dd28e0e6f89641e398a0325f6f4b275dd52b4

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