MCPcopy
hub / github.com/obsidian-tasks-group/obsidian-tasks

github.com/obsidian-tasks-group/obsidian-tasks @8.2.2 sqlite

repository ↗ · DeepWiki ↗ · release 8.2.2 ↗
2,158 symbols 6,410 edges 413 files 422 documented · 20%
README

Obsidian Tasks

Task management for the Obsidian knowledge base.

User Guide - Contributing Guide - Roadmap

Track tasks across your entire vault. Query them and mark them as done wherever you want. Supports due dates, recurring tasks (repetition), done dates, sub-set of checklist items, and filtering.

You can toggle the task status in any view or query and it will update the source file.


For changes in each release, please check the releases page: https://github.com/obsidian-tasks-group/obsidian-tasks/releases


Screenshots

  • All screenshots assume the global filter #task which is not set by default (see also installation).
  • The theme is default Obsidian theme.

ACME Tasks The ACME note has some tasks.

Important Project Tasks The Important Project note also has some tasks.

Tasks Queries The Tasks note gathers all tasks from the vault and displays them using queries.

Create or Edit Modal The Tasks: Create or edit command helps you when editing a task.

Installation

Follow the steps below to install Tasks.

  1. Search for "Tasks" in Obsidian's community plugins browser
  2. Enable the plugin in your Obsidian settings (find "Tasks" under "Community plugins").
  3. Check the settings. It makes sense to set the global filter early on (if you want one).
  4. Replace the "Toggle checkbox status" hotkey with "Tasks: Toggle Done".
    • I recommend you remove the original toggle hotkey and set the "Tasks" toggle to Ctrl + Enter (or Cmd + Enter on a mac).

Getting Started

Write some tasks

Create a few tasks in a Markdown note in your vault. For example:

- [ ] Something non-important, with no date
- [ ] Remember to do that important thing - with a due date 📅 2022-12-17
- [ ] Send Kate a birthday card - with a scheduled date 🔁 every January on the 4th ⏳ 2023-01-04

Find out more in Getting Started, and its sub-sections.

Create your first Tasks search

And then write a Tasks search block somewhere in your Obsidian vault, to find the tasks that are interesting.

Here is an example that shows a few different features. View it in Reading or Live Preview modes to see the results.

```tasks
# Only tasks that are not done, that is, which begin like this (but without the quotes):
#   '- [ ] ' or
#   '* [ ] ' or
#   '1. [ ] '
# Indented tasks are supported, but only single-line tasks.
not done

# Tasks due today or earlier:
due before tomorrow

# Restrict to at most 100 tasks.
# If you ask Tasks to display many hundreds or thousands of tasks,
# Obsidian's editing performance really slows down.
limit 100

# Group and sort the output:
group by filename
sort by due reverse
sort by description

# Optionally, ask Tasks to explain how it interpreted this query:
explain
```

Find out more in Queries, and its sub-sections.

Documentation

For user documentation, please check https://publish.obsidian.md/tasks/.

Development

Clone the repository, run yarn to install the dependencies, and run yarn dev to compile the plugin and watch file changes.

Then see the Contributing Guide.

Donations

The plugin is completely free to use, and very willingly developed and supported by Clare Macrae since May 2022.

If you have particularly been helped by the Tasks plugin and wish to support it, please see the following link.

Donations will go towards my computing costs and licenses for development tools that I use for productivity.

Thank you 🙏.

Extension points exported contracts — how you extend this code

TaskEditingInstruction (Interface)
(no doc) [10 implementers]
src/ui/EditInstructions/TaskEditingInstruction.ts
LocalStorageProvider (Interface)
(no doc) [4 implementers]
src/Config/LocalStorageProvider.ts
TaskSerializer (Interface)
(no doc) [4 implementers]
src/TaskSerializer/index.ts
IQuery (Interface)
(no doc) [3 implementers]
src/IQuery.ts
TaskComponents (Interface)
* Storage for the task line, broken down in to sections. * See Task.extractTaskComponents for use.
src/Task/Task.ts
HTMLQueryRendererParameters (Interface)
(no doc)
src/Renderer/HtmlQueryResultsRenderer.ts
SuggestorParameters (Interface)
(no doc)
src/Suggestor/Suggestor.ts
ILogLevel (Interface)
(no doc)
src/lib/logging.ts

Core symbols most depended-on inside this repo

build
called by 346
tests/TestingTools/TaskBuilder.ts
fromLine
called by 298
tests/TestingTools/TestHelpers.ts
getInstance
called by 192
src/Config/GlobalQuery.ts
description
called by 116
tests/TestingTools/TaskBuilder.ts
set
called by 113
src/Config/GlobalQuery.ts
createTestTasksFile
called by 104
tests/TestingTools/TasksFileHelpers.ts
getSettings
called by 97
src/Config/Settings.ts
updateSettings
called by 79
src/Config/Settings.ts

Shape

Method 1,069
Function 714
Class 313
Interface 55
Enum 7

Languages

TypeScript100%
Python1%

Modules by API surface

src/Task/Task.ts50 symbols
tests/CustomMatchers/CustomMatchersForFilters.ts43 symbols
src/Query/Query.ts35 symbols
tests/__mocks__/obsidian.ts33 symbols
tests/TestingTools/TaskBuilder.ts31 symbols
src/lib/logging.ts30 symbols
src/Suggestor/Suggestor.ts29 symbols
src/Statuses/StatusRegistry.ts24 symbols
src/Renderer/HtmlQueryResultsRenderer.ts24 symbols
tests/TestingTools/SampleTasks.ts23 symbols
tests/CustomMatchers/CustomMatchersForRendering.ts22 symbols
src/Scripting/TasksFile.ts22 symbols

Dependencies from manifests, versioned

@codemirror/view6.2.0 · 1×
@eslint/js8.57.0 · 1×
@eslint/json0.14.0 · 1×
@evilmartians/lefthook1.7.2 · 1×
@floating-ui/dom1.7.6 · 1×
@testing-library/jest-dom6.5.0 · 1×
@tsconfig/svelte3.0.0 · 1×
@types/jest29.5.8 · 1×
@types/mustache4.2.5 · 1×
@types/prettier2.7.3 · 1×
@typescript-eslint/eslint-plugin8.0.0 · 1×

For agents

$ claude mcp add obsidian-tasks \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact