Skip to main content

A corporate-friendly Markdown notes engine that makes your AI happy.

Project description

endpaper

⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣤⣤⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣠⣶⣾⡿⠿⢛⣛⣛⣛⡛⠻⠿⣿⣷⣦⡀⠀⠀⠀⠀⠀
⠀⠀⢀⣴⣿⡿⠛⠁⠀⣴⣿⣿⣿⣿⣿⣷⡄⠀⠉⠻⣿⣷⡀⠀⠀⠀
⠀⢀⣾⡿⠋⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⡧⠀⠀⠀⠈⠻⣿⣦⠀⠀
⢀⣿⡿⢁⣠⣤⣤⣤⣈⢿⣿⣿⣿⣿⣿⣿⠇⣠⣤⣤⣤⣀⠹⣿⣧⠀
⣼⣿⢳⣿⣿⣿⣿⣿⣿⣧⠙⢻⣿⣿⠛⢡⣾⣿⣿⣿⣿⣿⣷⣻⣿⡀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⣿⣿⠘⣿⣿⣿⣿⣿⣿⣿⡀⢸⣿⣿⠀⣸⣿⣿⣿⣿⣿⣿⡿⢹⣿⡇
⢿⣿⡄⠈⠙⠛⠟⠛⠙⢿⣿⣾⣿⣿⣾⣿⠟⠙⠛⠟⠛⠉⠀⣸⣿⠁
⠈⣿⣷⡀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⡟⠃⠀⠀⠀⠀⠀⠀⣰⣿⡟⠀
⠀⠘⢿⣷⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⢀⣴⣿⠟⠀⠀
⠀⠀⠈⠻⣿⣷⣄⡀⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀⢀⣴⣿⡿⠃⠀⠀⠀
⠀⠀⠀⠀⠈⠙⠿⣿⣷⣶⣤⣼⣛⣻⣤⣤⣶⣾⡿⠟⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠛⠛⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀
KEEP YOUR CORPO OVERLORDS HAPPY, FEED YOUR AI

A corporate-friendly Markdown notes engine that makes your AI happy.

A local-only, terminal-based tool for capturing and organizing meeting notes, general notes, and tasks as plain markdown files — structured enough for a human to navigate through a TUI, and legible enough that an AI assistant can search and edit the vault through a CLI without any integration work.

Why

Markdown is the native format of AI assistants — they read it, write it, diff it, and reason over it without an adapter layer. Almost nobody at a large company can actually work that way, because the sanctioned note-taking tools (OneNote, Confluence, SharePoint) lock notes behind proprietary formats and authenticated APIs, and markdown-first apps like Obsidian or Logseq are rarely on the approved-software list.

endpaper installs without admin rights, stores nothing outside a directory you already have, and needs no server or account — just a folder.

The tool disappears into the twenty seconds before a meeting starts. You type /meeting.standup Q3 planning #platform, a file exists with correct frontmatter and a date-stamped name, and you're typing notes before anyone has finished joining the call. You never decide where a file goes or what to call it.

Usage

Install

uv tool install endpaper

Create a workspace

mkdir notes && cd notes
endpaper init

This creates .endpaper/config.toml, AGENTS.md, and meetings/ in the current directory. This directory is now your workspace root — every command below runs from inside it.

Capture a meeting

endpaper meeting new "Q3 planning" --type standup --tag platform

Prints the path to the new file: meetings/2026-07-28-standup-q3-planning.md, already stamped with frontmatter (id, type, title, tags, created, updated).

Browse and list

endpaper meeting list --json
endpaper meeting list --type standup --since 2026-07-01

Or launch the TUI with no arguments:

endpaper

Meetings list and rendered preview

/ opens a combined filter/command bar — type to filter the list live, or type meeting.standup <description> and hit enter to create one without leaving the screen. Arrow keys move, enter opens the selected meeting in a rendered markdown preview, e drops into a raw editor, ctrl+o/ctrl+x save, esc backs out.

Raw markdown editor with line numbers and frontmatter

For AI assistants

An assistant working in an endpaper workspace reads AGENTS.md at the root and takes it from there — non-interactive, --json-capable, and scriptable by design. Nothing opens an editor or blocks on a prompt.

Below, an assistant is asked to pull up a vendor sync meeting, research the competitor options it calls for, and write up its findings — reading and writing the vault the same way it reads and writes a codebase:

AI assistant reading meeting notes, researching, and writing a new note via the CLI

The note it produced shows up like any other — because it is:

The assistant's research note, rendered back in the TUI

See REQUIREMENTS.md for the full CLI reference, frontmatter schema, and exit codes.

Features (v0.0.1)

  • Meeting notes/meeting.standup Q3 planning #platform creates a dated, frontmatter-tagged file and drops you straight into it. Browse with /meetings, filter live, open with enter.
  • General notes/note opens (or creates) today's daily note; /note.research vendor landscape #procurement creates a typed note. Browse with /notes.
  • Tasks/task.followup send the vendor comparison #procurement appends a checkbox line to tasks.md. /tasks lists open items; space toggles done. The file stays hand-editable plain markdown — no database.
  • Workspace initendpaper init sets up a workspace (config, AGENTS.md, meetings/, notes/daily/, tasks.md) in the current directory. Multi-user shared workspaces are planned but not in v0.0.1 — see Roadmap.
  • View and edit — every note or meeting opens in a rendered markdown preview (enter), switches to a raw editor (e) with line numbers and soft wrap, and saves with ctrl+o (stay) or ctrl+x (save and return). esc discards, but only prompts when there's something to lose. ctrl+s is also bound as a save alias, but ctrl+o is the canonical key: some terminals treat ctrl+s as the legacy XOFF flow-control signal and swallow it before it ever reaches endpaper. If saves with ctrl+s seem to do nothing, run stty -ixon in that shell (or use ctrl+o instead).
  • AI-friendly CLI — every TUI action has a non-interactive CLI equivalent backed by the same core library: endpaper find, read, write, append, --json on every read command, meaningful exit codes, nothing that opens an editor or blocks on input.
  • No index, no database — the markdown files are the only state. endpaper globs and parses the workspace in memory on launch; nothing to corrupt, nothing to reindex.
  • AGENTS.md — generated at init, under ~60 lines, so an assistant landing in the workspace is productive immediately.

See REQUIREMENTS.md for the full v0.0.1 specification, including CLI syntax, frontmatter schema, and acceptance criteria. Not everything above has landed on main yet — check CHANGELOG.md for what's actually shipped so far.

Roadmap

Planned for a future release, tracked in REQUIREMENTS.md §6:

  • Multi-user shared workspacesendpaper init <name> inside a shared root (e.g. a OneDrive folder), /workspace switching, and cross-workspace search, so a team can share one root without a server.

Considered and explicitly out of scope for v0.0.1 (see REQUIREMENTS.md §5):

  • AI invocation from inside endpaper (/claude markers, SDK integration)
  • Webcam or image capture (/pic)
  • Embeddings, vector search, semantic retrieval
  • Tasks created inline from inside a note or meeting
  • Backlinks, wikilinks, graph views
  • Syntax highlighting in the editor

Status

Draft / pre-release. v0.0.1 targets Python 3.11+, installable via uv tool install or pipx, on Windows, macOS, and Linux with no network access required.

License

See LICENSE.

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

endpaper-0.0.1.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

endpaper-0.0.1-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file endpaper-0.0.1.tar.gz.

File metadata

  • Download URL: endpaper-0.0.1.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}

File hashes

Hashes for endpaper-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c5361aaef47daf70d3c7ff167fce786b63aa9aaee8da6b2cd8e8153d8cc0f028
MD5 0bf3c4223669a8f68cc691f23b7613ac
BLAKE2b-256 88f373dd9f96a26fae363e574ff81bfd2bcc78d6894036c7668acb185f69e1f1

See more details on using hashes here.

File details

Details for the file endpaper-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: endpaper-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","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}

File hashes

Hashes for endpaper-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d393fee58692ccfc4fd7667347d44148673be219b1a73b71bac901a141094b7b
MD5 ceaf9eabe3a7b853cc6e5435abf76b27
BLAKE2b-256 2861c0f7b4cb831760c31f396e80641589c5d8bc743bcc59417e59fe3b1577cf

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