This is a Neovim plugin for the SM (Santa Monica) task management tool. The plugin uses the local Santa Monica CLI and LSP so task creation and editing stay aligned with the main project.
- Create a task with a Neovim command:
SMCreateTask-> allow to input for title, due date, tags - List tasks leveraging Telescope as the fuzzy finder with a Neovim comman:
SMListTasks-> allow to filter by title, tags, project, goal or sprint- After selecting a task, it will open a buffer to allow the person to edit the task in Neovim
- Enable the Santa Monica LSP with
SMEnableLspor fromsetup()
- Neovim 0.10+
- Santa Monica available either as
smon$PATHor at/home/bret/repos/santa-monica - Telescope for the best task picker experience
Using lazy.nvim:
{
"bab014/sm.nvim",
dependencies = {
"nvim-telescope/telescope.nvim",
},
opts = {
enable_lsp = true,
},
}require("sm").setup({
santa_monica_root = "/home/bret/repos/santa-monica",
config_path = vim.fs.joinpath(vim.fn.expand("~"), ".config", "sm", ".sm.yaml"),
enable_lsp = true,
})Options:
santa_monica_root: fallback repo used whensmis not on$PATHconfig_path: string or function returning the global Santa Monica config file, defaults to~/.config/sm/.sm.yamltasks_root: optional string or function returning the Santa Monica tasks directory; this overridestasks_rootfrom the config filesm_command: override command as a list, string, function, or{ cmd = {...}, cwd = ... }enable_lsp: auto-start the Santa Monica LSP for markdown files undertasks_root
Task root resolution order:
setup({ tasks_root = ... })tasks_rootfrom the global config filecwd/tasksas a fallback
Example global config:
tasks_root: /home/bret/tasks:SMCreateTask:SMListTasks:SMListTasks billing:SMEnableLsp
SMCreateTask prompts for title, due date, and tags, creates the task through the Santa Monica CLI using the resolved global config and tasks directory, and opens the created markdown file in the current Neovim instance.
SMListTasks scans the resolved shared tasks directory, parses Santa Monica task frontmatter, and opens a Telescope picker. Fuzzy matching works across title, status, priority, tags, project, goal, sprint, and due date.