Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
A calendar and to-do list for macOS that Claude Code, Codex and MCP apps can use: a CLI and an MCP server, Markdown day pages with tables and mermaid diagrams, undo. No account, no cloud, no model inside the app.
翻訳待ち
Loading the full README.
Read the full README ↗ASMO is a quiet month calendar. Each day holds a list of things to do, with times, subtasks and repeating routines, and a free page of notes underneath. You can use it by hand like any calendar.
What makes it different is the asmo command. Any agent that can run a shell command (Claude Code, Codex) can read your days and change them: add and move items, check things off, and write a day's page in Markdown with pictures, tables and diagrams. Apps without a shell, such as the Claude desktop app, get the same thing through an MCP server. The app itself runs no language model: the agent you already use does the thinking, and ASMO stores exactly what it is told.
asmo command: everything above from the command line, with JSON answers. Open windows update while the agent works.asmo undo takes back the last change an agent made, and the one before it, until the app is restarted.You need a Mac with Apple silicon and macOS 15 or later.
ASMO-v….zip from Releases, unzip it and move ASMO to Applications. It is signed with a Developer ID and notarized by Apple.When it opens, ASMO connects the assistants on your Mac by itself: it puts the asmo command in ~/.local/bin, gives Claude Code and Codex the skill (when they are installed), and registers its MCP server with the Claude desktop app (when it is installed; restart that app once to load it). Settings ▸ AI assistants shows what is connected.
ASMO checks GitHub Releases shortly after it opens and once a day. When a newer version is out, it asks. Update Now downloads it, checks that it is signed by the same developer, replaces the app and reopens it; Later asks again next time. Settings ▸ Updates has Check for Updates. Your data stays in ~/Library/Application Support/ASMO and is not touched by an update.
With Xcode 26:
git clone https://github.com/realAllenSong/ASMO.git
cd ASMO
script/install.sh # builds, replaces /Applications/ASMO.app, installs asmo, the skill and the MCP entry
script/release.sh builds the signed, notarized zip (it needs a Developer ID certificate and a notarytool profile). An iPhone app builds from the same source (script/install-iphone.sh, with your own Apple developer team), but the agent features are Mac-only for now, and the two do not sync yet.
After installing, open a new Claude Code or Codex session anywhere and say what you want:
I'm running from 9 to 10 tonight, and tomorrow at 3 I have a call with Li about the lease. Put the lease questions on tomorrow's page as a checklist.
The agent finds the asmo skill, reads the days involved, and writes the changes. You can also run the command yourself:
asmo today # tasks with subtasks, routines, dates and the page
asmo add "Call Li about the lease" --day tomorrow --time 15:00 --end 15:30
asmo set 3f9a --time 16:00 # ids can be shortened to 4+ characters
asmo done 3f9a
asmo list today +7 --open # what is still open this week
asmo undo
Several items at once, with subtasks, as JSON on stdin:
asmo add --json --day today <<'EOF'
[{"title": "Ship the release", "time": "10:00", "end": "12:00",
"subtasks": [{"title": "Run the tests"}, {"title": "Write the notes"}]},
{"title": "Gym", "time": "18:30"}]
EOF
A day's page, in Markdown:
asmo page write today <<'MD'
## Release plan
Shipping **v1.0** today.
```mermaid
graph LR
Tests --> Changelog --> Tag --> Ship
```
| Step | Owner |
| --- | --- |
| Tests | Mei |

MD
asmo page today # the page as blocks b1, b2, … each with its Markdown
asmo page set today b2 <<< "Shipping **v1.0** on Monday."
asmo attach ~/Desktop/photo.jpg --day today --caption "whiteboard"
asmo help lists everything, including routines and important dates.
asmo mcp is an MCP server on stdin and stdout with the same abilities as tools (day, add_tasks, update_task, write_page, undo and others). The install script registers it with the Claude desktop app; for any other MCP client, add:
{ "mcpServers": { "asmo": { "command": "/Users/you/.local/bin/asmo", "args": ["mcp"] } } }
~/Library/Application Support/ASMO. asmo sends one JSON request and prints the JSON answer; if the app isn't running, it is started in the background first.ASMO_BUNDLE_ID=com.you.asmo.ASMO makes two kinds of network requests of its own: the update check to GitHub Releases, and a preview when you paste a link. Pictures referenced by URL in a page are downloaded by the asmo command on your Mac. Whatever your agent sends to its own provider is between you and that agent; ASMO only receives the commands.
swift test # the date, parsing and planning rules
script/demo-gif.sh # records assets/demo.gif from the demo store
script/build_and_run.sh # Debug build
script/run_test_store.sh # Debug build on a separate test store
asmo ping --test # talk to the test store instead of your real data
The app is Swift, SwiftUI and SwiftData, with an AppKit text view for the day page. The command in CLI/ has no dependencies. See CONTRIBUTING.md.
MIT.
Diagrams are drawn with mermaid (MIT), which ships inside the app.