Markdown Pipeline
Your team's tools as clean Markdown files, kept current for your AI agents. Early access: Jira Cloud and folders on your computer, on Linux.
- Local. It runs on your computer. Your files go to a folder you choose, or to a GitHub repo you choose.
- We only read. We never change anything in Jira or in your source folders.
- Raw layer only. It does not summarize or analyze anything. Your agent (Claude Code, Codex) does that, from the files.
- It sees what you see. It reads Jira with your own account's API token, so the files hold only the issues your account can read. The token never appears in the files, the logs or your agent's answers. Anyone who can open the folder or repo you choose can read the files, so choose it the way you'd choose who sees those issues.
- Open source. Apache-2.0. The code that reads your Jira is in this repository.
Install
Linux (tested). One command. It installs uv if you don't have it (a Python tool manager), then the app, all under your home folder, with no administrator rights:
curl -fsSL https://raw.githubusercontent.com/markdown-pipeline/markdown-pipeline/main/install.sh | sh
It installs the latest release from GitHub Releases. No GitHub account, token or sign-in is needed. Then type mdpipeline: your browser opens the app. If your shell says mdpipeline: command not found, open a new terminal (or run uv tool update-shell) and try again.
Run the same command again any time to move to the newest release; your settings and pipelines are kept.
Platforms: Linux (tested). macOS is untested. On Windows, use WSL 2 (Ubuntu) and run the command inside it. On a server or in WSL 2, background sync stops when you log out unless you run loginctl enable-linger $USER once; after a reboot, logging in or running any mdpipeline command starts it again.
Use it from your agent (MCP)
The app includes a local MCP server, so Claude Code or Codex can search and read the files.
mdpipeline connect --agent claude # or: --agent codex
It prints the exact command (Claude Code) or config block (Codex) for your setup. Your agent starts the server itself when it needs it; nothing extra runs in the background. Tools: search, read, list, recent_changes ("what changed since yesterday?"), sync_status and sync. No tool writes or edits your files. The server reads only the Markdown files the app wrote (and your raw/ and wiki/ folders), on your computer.
If you already have uv (Linux, tested), your agent can start the server with uvx mdpipeline mcp; the first time, it tells you the one step to finish: uvx mdpipeline start.
What we send
Usage data only if you choose to share it, and the words you type in a feedback or source request when you press Send.
The full list, in plain words: what-we-send. Turn it off any time: mdpipeline usage off.
Feedback and problems
Open an issue on this repository: Issues. Tell us what you tried, what you expected and what happened.
Uninstall
mdpipeline uninstall turns background sync off and prints the one command that removes the program. The Markdown files it wrote stay where they are. If you ran it with uvx, run uvx mdpipeline uninstall to turn background sync off (it is on after your first sync), then uv cache clean mdpipeline to remove the program.
Full reference (commands, settings, safety rules): docs/reference.md.
License
Apache-2.0. See LICENSE.
Metadata
Release files for mdpipeline 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mdpipeline-0.1.15.tar.gz | 307.6 kB | Without provenance | Details for mdpipeline-0.1.15.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mdpipeline-0.1.15-py3-none-any.whl | Python 3 | none | any | Details for mdpipeline-0.1.15-py3-none-any.whl |
Total release size: 671.7 kB
Release files / mdpipeline-0.1.15.tar.gz
| Download URL | mdpipeline-0.1.15.tar.gz |
|---|---|
| Size | 307.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93d04cecf103546bb44d4335c13bcc35cab4a2407fd40da1f6f297098cf0e160
|
|
BLAKE2b-256 checksum How to use checksums |
9b23e26bdeb1f805d3a621b4e2478dba33f5d101ddfbbc94082870666dc089f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / mdpipeline-0.1.15-py3-none-any.whl
| Download URL | mdpipeline-0.1.15-py3-none-any.whl |
|---|---|
| Size | 364.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e3ae7188606844453b36e4ac08f3d8d8af6b7567a81a12bc17ab7ac18778c06a
|
|
BLAKE2b-256 checksum How to use checksums |
5aa9866f3b9ee9f6c72f3c87f7f0ab0bdd4a059eca240ac0aa60196ccca0df32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for mdpipeline 0.1.15
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.