Human-facing MCP client (CLI) for a running cobalt-grinding MCP server. Equivalent in role to Claude Desktop / Claude Code — one MCP client among many.
Project description
cogrind-workshop
Human-facing MCP client for a running cobalt-grinding daemon. One-shot subcommands (ingest, ask, search) and an interactive REPL (chat). Equivalent in role to Claude Desktop or Claude Code — just one MCP client among many; no privileged side-door into the cognitive system.
Status
Implemented. One-shot flags (--ingest, --ask, --search, --status, …) and an interactive REPL (--chat, with slash commands) drive a running cobalt-grinding daemon over MCP. Originally Track C of M2.7 in the CoGrind plan — see cobalt-grinding/docs/plan.md for the full design.
Releasing
Tag-driven via the release workflow on push of a v* tag. Use the ParkviewLab/dev-tools helpers — they enforce the SSOT-tag-CI loop (pyproject.toml is the only place the version lives; CI verifies the pushed tag matches before publishing).
git bump patch # 0.1.5 → 0.1.6, committed
git release # annotated tag v0.1.6 from pyproject.toml
git push --follow-tags # CI fires
Don't have the helpers? Install once: git clone https://github.com/ParkviewLab/dev-tools.git ~/dev-tools && cd ~/dev-tools && ./install.sh.
The workflow runs three jobs: a gate (tag matches pyproject.toml; tag reachable from origin/main) gates the pypi publish (wheel + sdist via trusted publishing — no Docker image, since this is a CLI client, not a server). After the publish, a changelog job generates the new CHANGELOG.md section (LLM-written "Highlights" paragraph + a git-cliff categorized commit list), commits it back to main, and creates the GitHub Release with the same content as its body.
Commit message convention
The changelog job categorizes commits using Conventional Commits prefixes (see cliff.toml):
| Prefix | Section | Notes |
|---|---|---|
feat: |
Features | user-visible |
fix: |
Bug fixes | user-visible |
perf: |
Performance | user-visible |
refactor: |
Refactor | |
docs: |
Docs | |
test: |
Tests | |
chore: / ci: / build: / style: |
(dropped) | not surfaced in CHANGELOG |
Squash-merge PRs use the PR title as the commit subject — so the PR title is what needs the prefix. Commits without a recognised prefix are silently dropped from the CHANGELOG (still in git history). The "Highlights" paragraph requires the ANTHROPIC_API_KEY org-level secret; if the LLM call fails, a placeholder lands and the release still ships.
License
cogrind-workshop is dual-licensed. By default it is free software under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later); see LICENSE for the full text. A separate commercial license is available from the copyright holder for use that cannot comply with the AGPL (e.g. embedding in a closed-source product). See LICENSING.md for details.
Copyright © 2026 Gary Frattarola.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cogrind_workshop-0.1.0.tar.gz.
File metadata
- Download URL: cogrind_workshop-0.1.0.tar.gz
- Upload date:
- Size: 87.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1cc81a7182abd7fb98cc5b2d97b2e8ebee5526c5314bff5832b1e046804c7b
|
|
| MD5 |
c6f77918845fc0f9f275dae4d6d138c5
|
|
| BLAKE2b-256 |
fd264701e7ca2ea0bee78816ac77e47171b3e3eacd1d9bc938ee8e776da2cf87
|
Provenance
The following attestation bundles were made for cogrind_workshop-0.1.0.tar.gz:
Publisher:
release.yml on ParkviewLab/cogrind-workshop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cogrind_workshop-0.1.0.tar.gz -
Subject digest:
db1cc81a7182abd7fb98cc5b2d97b2e8ebee5526c5314bff5832b1e046804c7b - Sigstore transparency entry: 2045492668
- Sigstore integration time:
-
Permalink:
ParkviewLab/cogrind-workshop@3adf8afacb4ab65d87ba966ffb003c67a79e402f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ParkviewLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3adf8afacb4ab65d87ba966ffb003c67a79e402f -
Trigger Event:
push
-
Statement type:
File details
Details for the file cogrind_workshop-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cogrind_workshop-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a713e86dfb1fd181a23ef33ee1c86f14350716bd931f583373703a9da738d3ba
|
|
| MD5 |
5bf167bdc3021ca80d4f4c2399fc7496
|
|
| BLAKE2b-256 |
af900ce0524b399492f1ddf7cbc35c6807cf5131dc2a95a08778c140e7ed62cd
|
Provenance
The following attestation bundles were made for cogrind_workshop-0.1.0-py3-none-any.whl:
Publisher:
release.yml on ParkviewLab/cogrind-workshop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cogrind_workshop-0.1.0-py3-none-any.whl -
Subject digest:
a713e86dfb1fd181a23ef33ee1c86f14350716bd931f583373703a9da738d3ba - Sigstore transparency entry: 2045492765
- Sigstore integration time:
-
Permalink:
ParkviewLab/cogrind-workshop@3adf8afacb4ab65d87ba966ffb003c67a79e402f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ParkviewLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3adf8afacb4ab65d87ba966ffb003c67a79e402f -
Trigger Event:
push
-
Statement type: