prohui319 downloadsMap user journeys and plan releases with user story mapping. Keep local maps alongside project notes so humans and file-capable agents can work from the same plan.
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español
User story mapping for humans and agents, inside Obsidian.
Build a shared product plan: map the user journey, break it into activities and tasks, and organize user stories into release milestones. People work visually; agents with access to your vault can read and edit the underlying map files alongside your project notes.
Download 1.5.1 · Report an issue · MIT License
User story mapping connects the work you plan to the journey a user takes. Activities and tasks run horizontally across the map; stories sit beneath them in milestone lanes, making the scope of each release visible.
Obsidian puts this plan in the same workspace as your requirements, research, and implementation notes. Each map is a local .storymap file containing JSON. The visual interface and a file-capable agent can work with the same plan, without copying it into a separate planning tool.
The integration is file-based. Bring your own agent and give it access to the relevant map and notes; Story Map does not include an AI agent, an agent API, or an MCP server.
A suggested workflow:
For example, start with a read-only request:
Read
Projects/Website/Website journey.storymapand its linked requirements notes. Identify missing stories in the sign-up journey and propose acceptance criteria. Do not change any files yet.
Save your edits before handing the file to an agent, and avoid editing the same map simultaneously. The plugin detects external changes to open .storymap files and reloads them when there are no local changes or active detail editors. If edits conflict or a detail editor is open, it stops saving and offers a backup-and-reload flow; it does not automatically merge concurrent edits. This workflow depends on your agent's file access and ability to preserve the map format.
Plan on the map and edit details in a compact side panel. The screenshots show the current interface and the instructions below explain how to create a map in your project folder.

Actual Obsidian 1.13.7 screenshot with sample data. The file sidebar is hidden to keep the focus on the map.
Right-click a folder in Obsidian's file explorer and choose New story map. Enter a name and choose a starter template or sample. The plugin creates an independent .storymap file in that folder. Open it from the file explorer like other vault files.
1. Right-click the destination folder → New story map. You can create a map in any vault folder.

2. Enter a map name, choose a starter template or sample, and click Create. The map is saved inside the selected folder—for example, Projects/Website/Website journey.storymap.

Captured in an English-language demo vault.
Name the map, add activities for journey stages, break each activity into tasks, and add stories within milestone lanes. Click a Story for its details; click a Task or Activity title to open its editor. Manage roles and milestones from the toolbar. Milestones containing stories cannot be deleted; empty tasks and activities can be deleted from their context menus.
.storymap files in any vault folder; older map formats remain supported.Requires Obsidian 1.8.10 or newer.
main.js, manifest.json, and styles.css from Releases..obsidian/plugins/story-map/ inside your vault.To update, replace those three files, then disable and re-enable the plugin. Map data is stored outside the plugin folder. The Obsidian community page provides the community listing entry point.
Stories: click a card to edit its compact details. Use the + below the description to import a file from your computer or select an existing vault file. Use the small Story color swatches or expand Custom color for a picker and HEX input.
Tasks and Activities: click the title to open the description editor. Use basic formatting and inline images to explain the work and its references. Paste or drag in images and files, or use + to add an attachment. Click Save, or press Cmd/Ctrl + Enter. Task colors are available in the Task editor; choose from eight presets or enter a custom HEX color.
Imported Task and Activity attachments are saved immediately using Obsidian's attachment-location settings. Cancelling editing or removing a reference does not delete an imported file. Story imports are written when saved. Back up attachment files along with your maps: JSON and XMind exports contain references, not copies of the attached files.
Use the toolbar language menu; look for the icon and visible Language label. Choose Follow Obsidian or select a language manually. Changes apply immediately and persist across reloads.
Interface labels change, while existing titles, descriptions, role names, and other user content keep their original language. Fresh sample maps use the selected language. Unsupported host languages fall back to English; Traditional Chinese locales are detected separately.
Click the export icon, choose a format, then select the filename and location in the system Save As dialog.
| Format | Output |
|---|---|
| PNG | Full-map image in a clean light layout, without controls or the details panel. |
| The full-map image on one page; text is not searchable. | |
| XMind | Editable User journey, Release plan, and Roles branches, with descriptions and file references in topic notes. |
| JSON | Map data backup, including descriptions and attachment references; there is no JSON import interface yet. |
Search, filters, and zoom do not limit the exported data. Very large maps beyond the visual export limit can use XMind or JSON. Cancelling the Save As dialog writes nothing. If the system picker is unavailable, exports go to a localized vault folder such as Story Map Exports/, using numbered filenames to preserve existing files. Failed exports can be retried.
.storymap file contains JSON and can live anywhere in the vault. Legacy .story-map.json and .story-maps/ maps remain supported.With Node.js 22:
npm ci
npm test
Tests include Obsidian lint rules, TypeScript checks, production bundling, persistence, localization, colors, rich-text editing, attachments, and exports. npm run dev watches for changes. Copy the built plugin files into a test vault to run it.
Interface translations are in src/i18n.ts and src/locales.ts; editor translations are in src/editor-labels.ts and src/editor-locales.ts. Sample content is localized separately in src/sample.ts. Use this English README.md as the documentation reference and keep README.en.md identical. When features change, update the corresponding sections in all eight language editions. Each language edition uses screenshots of the matching Obsidian interface, plugin interface, and sample map content. Keep screenshots and captions in sync when the interface changes.
Contributions and translations are welcome. When reporting an issue, include your Obsidian version, reproduction steps, and an example without private data.
If Story Map helps you plan your projects, you can buy me a coffee to support maintenance, bug fixes, and improvements. Support is entirely optional and does not unlock or restrict any features.
MIT © 2026 Dahui. Not affiliated with Obsidian, Miro, or XMind.