Skip to main content

miseenplace

Every ask, in its place. An agent-native CLI and set of skills that lay out the asks, promises and nudges from your chat before the day starts: a chef's mise en place for your workday, for Claude Code, Codex, Gemini CLI and Cursor.

Docs PyPI CI License Python

Docs · Quickstart · CLI · Changelog

mep demo: inbox, triage, a draft, a refused send of free text, and a stand-up

Paste this into your agent

Install miseenplace with `uv tool install miseenplace-cli`, run `miseenplace skills --install DIR`
with the skills directory for your tool, then run the setup skill and follow it. Ask me only for things you cannot find out yourself.

No account? uvx --from miseenplace-cli mep demo runs a two-minute tour on fictional data.

Where the skills go

Tool Skills directory (user level) Project level
Claude Code ~/.claude/skills/ .claude/skills/
Codex ~/.agents/skills/ .agents/skills/
Gemini CLI ~/.gemini/skills/ (alias ~/.agents/skills/) .gemini/skills/
Cursor ~/.cursor/skills/ (also reads ~/.agents/skills/) .cursor/skills/

Paths are from each tool's documentation at the time of writing; if your version differs, check your tool's docs. Copy the bundled skills with the directory for your tool (Claude Code shown). mep remembers the directory and refreshes the copies when it updates:

mep skills --install ~/.claude/skills

Claude Code can also install it as a plugin, with no copying:

/plugin marketplace add ankitkpandey1/miseenplace
/plugin install miseenplace@miseenplace

Why

Chat is where work is asked for and promised, and it scrolls away. To-do apps start empty and trust you to copy things in. miseenplace reads your chat, keeps only what needs you, and turns it into an audit-logged action list your agent can drive.

  • One line per ask. mep inbox shows id · who · where · ask · action, nothing else. Your own earlier answers hide the asks you already handled. Real output from mep demo:

    3 · Rowan Hale · DM: Rowan Hale · Could you review the parser PR when you get a chance? It blocks the beta. · todo
    4 · Sam Okafor · #platform > incident follow… · @Jordan Rivers can you write up the retro for yesterday's outage by Friday? · todo
    5 · Alex Chen · #platform > release 2.4 · Changelog still pending, ETA? · reply
    
  • One call per decision. mep triage 12 --todo files the item with link, topic and context filled in.

  • Agents cannot post free text. draft stores the exact words; send takes only a draft id, after you said yes to that text.

  • Cheap to run. The CLI does the deterministic work, so a small model can drive it. A tested output budget keeps a ten-message loop near 500 tokens.

  • Your data, your storage. Local files, a private git repository, or a backend you write in 30 minutes.

  • Stdlib only. No runtime dependencies. Python 3.11 to 3.14.

Plain to-do app miseenplace
Captures asks from chat you copy them in reads the chat
Remembers you already answered no hides answered asks
History edits overwrite append-only audit log, replay-validated
Agent can drive it via a UI or an API terse CLI plus short skills
Agent can post for you n/a only a stored draft you approved
Where data lives the vendor files you own, optionally in git

How it works

flowchart LR
    chat["Chat<br/>(Zulip, demo)"] --> mep["mep<br/>inbox, triage"]
    mep --> journal[("Journal<br/>append-only audit log")]
    journal --> agent["Your agent"]
    agent -- "draft (exact words)" --> yes{"Your yes"}
    yes -- "send DRAFT_ID" --> chat

The CLI reads the chat and does the bookkeeping. The agent reads the short list and writes to the journal. A reply is only a stored draft until you say yes to that exact text.

Daily use

mep inbox                               # only what needs you
mep triage 12 --todo --eta fri          # journal it
mep triage 13 --reply-draft "Thursday"  # stores the text, posts nothing
mep send d1a2b3c4e                      # after your yes on that exact text
mep today                               # the day's threads that involve you, awaiting-you first
mep top                                 # what first
mep standup --since yesterday           # Did / Next / Waiting on
mep watch                               # block until something needs you

Skills

skills/ follows the Agent Skills standard and also installs as a Claude Code plugin (.claude-plugin/).

Skill Does
setup install, connect a source, verify
journal keep items and the work diary
inbox-triage inbox into journal items and drafted replies
inbox-watch background watcher; wakes the agent on new asks
learn-style learns how you write so drafts sound like you

Storage

# config.toml in the data root
[storage]
backend = "git"      # local (default) | git | "package.module:ClassName"
remote = "git@host:me/my-data.git"

The git backend pulls before reads and commits and pushes after writes; a failed push is an error. See writing a storage backend.

Sources

Zulip and a demo source ship today. A new one takes about 30 minutes: writing a source.

Status and roadmap

Alpha. The commands and file formats can still change between 0.x releases; the changelog says when.

  • Ships today: Zulip and the demo source, local and git storage, six skills.
  • Wanted: Slack, GitHub notifications and email as sources. Start with writing a source and CONTRIBUTING.md, and open an issue with the new-source template first if you want feedback on the design.

Updates

mep checks PyPI at most once an hour, in a background process that never delays your command. If a newer version exists and it was installed with uv tool or pipx, it upgrades itself; the new version applies on the next run, and skills copied with mep skills --install are refreshed on an auto-update or mep update. Any other install (a virtual environment, system Python, a checkout) only gets a notice: one line to stderr, once a day and only on a terminal: miseenplace X.Y.Z is available: <upgrade command>.

  • Check and upgrade now: mep update. If you upgrade by hand (uv tool upgrade miseenplace-cli), run mep skills --refresh afterwards to refresh the copied skills.
  • Turn it off: MISEENPLACE_DISABLE_AUTOUPDATE=1, or auto_update = false in config.toml.
  • It does not run when stderr is not a terminal, when CI is set, or for mep send.

Uninstall

uv tool uninstall miseenplace-cli       # or: pipx uninstall miseenplace-cli
rm -r ~/.claude/skills/{setup,journal,inbox-triage,inbox-watch,learn-style,eod-review}   # skills you copied

Your data root ($MISEENPLACE_DIR, else ~/.local/share/miseenplace) holds your journal, drafts and style file. It is yours: keep it, or delete it. Uninstalling never touches it. The update state lives in ~/.cache/miseenplace and is safe to delete.

Your data is personal

The journal, your sent-message archive, your style file and a verbatim log of your requests live in your data root, never in this repository. Read security, especially what the consent gate does not guarantee.

Docs

Quickstart · Concepts · CLI · Data model · Sources · Agent cost · Security · Contributing

Apache-2.0.

Metadata

Release files for miseenplace-cli 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miseenplace-cli 0.4.1
File Size Uploaded Provenance
miseenplace_cli-0.4.1.tar.gz 478.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for miseenplace-cli 0.4.1
File Interpreter ABI Platform
miseenplace_cli-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 590.0 kB

Release files / miseenplace_cli-0.4.1.tar.gz

Download URL miseenplace_cli-0.4.1.tar.gz
Size 478.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5db055ce09fe2588ccf2f94fcf9806370eff45fa8fbb00da18d80e41d2341e9d
BLAKE2b-256 checksum
How to use checksums
692b25876a9afed77091fea298c1e0f5967eb9904e5b334c04894c5fb239fb03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / miseenplace_cli-0.4.1-py3-none-any.whl

Download URL miseenplace_cli-0.4.1-py3-none-any.whl
Size 111.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2a1f191dabddbbf1d7538ca295068395641bc3032a376345ebb8a4dca7cdbdb
BLAKE2b-256 checksum
How to use checksums
2ed791df590751d402c92093dd0812ed1424f6d69a54873318db1b1255987866
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for miseenplace-cli 0.4.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for miseenplace_cli-0.4.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page