Skip to main content

Knowledge dispatcher for live knowledge systems

Project description

kd

A knowledge dispatcher for live knowledge systems — pull what you need to reason, push your updates back, and stay on top of a live system rather than copying it.

Purpose

kd is a knowledge-network tool, not a data-exchange tool. It is built around a small, primer-shaped idea: the operator reasons on top of live trackers, not alongside copies of them. The primary loop is pull → reason → push updates back. Integrating multiple sources happens in the operator's head — not in kd's data model. Occasional cross-system moves exist, but they are deliberately thin: at the limit, a stub with a similar title and a backref to the original, not a faithful reproduction. kd is not a migration tool or a comprehensive import-export platform; it is a network-of-knowledge dispatcher that speaks YouTrack fluently and will, over time, speak other trackers through narrow domain protocols.

The primer (kd /primer) is the working illustration: a small set of pinned references plus curated notes, living in the workspace, sitting on top of live systems without replacing them. The rest of the tool extends that shape.

SDK-first: the Python library (kd.client) is the primary interface; CLI commands are thin wrappers over it. LLMs constructing commands programmatically are the primary consumer, so syntax clarity and structured output matter more than keystroke economy.

Install

# pipx (recommended)
pipx install kd

# or uv
uv tool install kd

Configure

# Scaffold a project-local config in the current directory.
kd init

# Or set via environment (overrides workspace + global config).
export KD_TOKEN=your_token
export KD_CONNECTION=main

Global config lives at ~/.config/kd/config.yaml; workspace config lives at .kd/config.yaml.

Usage

CLI

# Projects
kd /project list
kd /project show FB

# Issues
kd /issue list --project FB --query "#Unresolved"
kd /issue create "Fix router configuration" -p FB --type Task
kd /issue show FB-1

# Time tracking
kd /time log FB-1 45 --type Development --description "Router reconfiguration"

# Articles
kd /article list --project CMCSA
kd /article push guide.md --project CMCSA --title "Setup Guide" --tag "type:guide"
kd /article pull FB-A-42 > setup.md

# Tags
kd /tag list
kd /tag articles type:case --project CMCSA

# Saved queries
kd /query list
kd /query issues "Sprint 47" --project FB

# Primer (local knowledge, LLM context)
kd /primer/note add "Sprint field is called 'Board'"
kd /primer/article add FB-A-42 --summary "Architecture Overview"
kd /primer show

# Cross-entity search
kd /search "router" --types issue,article --project FB

# Output formats
kd /project list --output json | jq '.[].key'
kd /issue list --output yaml

Python SDK

from kd import YouTrackClient

client = YouTrackClient(
    url="https://your-instance.youtrack.cloud",
    token="your_token",
)

projects = client.projects.list()
issue = client.issues.create(project="FB", summary="Fix router config")
client.time.log(issue_id="FB-1", minutes=45, work_type="Development")
articles = client.tags.articles(["type:case"], project="CMCSA")
results = client.search.search("router", types=["issue", "article"])

What kd is not

  • Not a migration platform. Cross-system moves are lossy cherry-picks: a stub on the target side with a backref to the source, nothing more.
  • Not a faithful mirror. kd never claims to be a complete copy of upstream state; it reads what it needs and writes what changed.
  • Not a data warehouse. Data lives in the upstream tracker; kd sits on top.

If you need a migration tool or an import-export platform, kd is the wrong tool.

Development

pytest tests/ -v --tb=short

ruff format kd/ tests/
ruff check --fix kd/ tests/
mypy kd/

Updated: 2026-04-13

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

kd_cli-2.0.4.tar.gz (103.8 kB view details)

Uploaded Source

Built Distribution

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

kd_cli-2.0.4-py3-none-any.whl (125.1 kB view details)

Uploaded Python 3

File details

Details for the file kd_cli-2.0.4.tar.gz.

File metadata

  • Download URL: kd_cli-2.0.4.tar.gz
  • Upload date:
  • Size: 103.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kd_cli-2.0.4.tar.gz
Algorithm Hash digest
SHA256 e33f64680f1281829a5a91a3897aeda7883965739e39bce48ba27fc7a5cbcfa2
MD5 21c00c8e58e817f2bf52992ec33039eb
BLAKE2b-256 eeb5207a4f2a47ac35f4e86a88b21f99bd24f215713d48e4710db7dc0e58df72

See more details on using hashes here.

Provenance

The following attestation bundles were made for kd_cli-2.0.4.tar.gz:

Publisher: publish.yml on IntellectSolutionsCom/kd-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kd_cli-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: kd_cli-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 125.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kd_cli-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8b7e1020e40a7797d229bf86dd8d8172aaf417b53587afeb3fec18ee73e2e8ea
MD5 7191f35b25f9d383a56c8ca477d341db
BLAKE2b-256 f0e2db6fc84cc2e29416ba90cc8471a453c542d8ce554c730908432b316ba952

See more details on using hashes here.

Provenance

The following attestation bundles were made for kd_cli-2.0.4-py3-none-any.whl:

Publisher: publish.yml on IntellectSolutionsCom/kd-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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