Skip to content

API reference

Service: WackyTrackyClientService Package: wackytracky.clientapi.v1

Base path for all procedures:

POST /api/wackytracky.clientapi.v1.WackyTrackyClientService/<MethodName>

Request and response bodies are JSON with the field names as in the tables below (camelCase in JSON: e.g. parent_list_idparentListId for compatibility with Connect/Protobuf JSON mapping).


RPCs

Version

Returns server version and build info.

Procedure Version
Request VersionRequest (empty)
Response VersionResponse

VersionResponse

Field Type Description
version string Version string
commit string Git commit
date string Build date (ISO8601)

Init

Returns app init data (e.g. wallpaper path).

Procedure Init
Request InitRequest (empty)
Response InitResponse

InitResponse

Field Type Description
wallpaper string Wallpaper path or identifier

GetLists

Returns all lists.

Procedure GetLists
Request GetListsRequest (empty)
Response GetListsResponse

GetListsResponse

Field Type Description
lists List[] All lists

ListTasks

Returns tasks for a list or for a parent task (children). Used to load a list view or a subtree.

Procedure ListTasks
Request ListTasksRequest
Response ListTasksResponse

ListTasksRequest

Field Type Description
parent_id string List ID (for root tasks) or task ID (for subtasks)
parent_type string "list" or "task"

ListTasksResponse

Field Type Description
tasks Task[] Tasks for the requested parent
tree map Parent ID → ordered child task IDs (for hierarchy)
hidden_tag_names string[] Tags currently hidden by hide-at-times rules
hidden_context_names string[] Contexts currently hidden by hide-at-times rules

TaskIdList

Field Type Description
ids string[] Ordered task IDs

SearchTasks

Searches tasks across lists. Query syntax is backend-dependent (todo.txt: plain terms, #tag, @context, -term to exclude).

Procedure SearchTasks
Request SearchTasksRequest
Response SearchTasksResponse

SearchTasksRequest

Field Type Description
query string Search query (freetext; backends may support structured syntax)

SearchTasksResponse

Field Type Description
tasks Task[] Matching tasks

CreateTask

Creates a new task, optionally in a list or as a subtask.

Procedure CreateTask
Request CreateTaskRequest
Response CreateTaskResponse

CreateTaskRequest

Field Type Description
content string Task content (todo.txt line: text, +projects, @contexts, #tags)
parent_list_id string Optional. List ID to add the task to
parent_task_id string Optional. Task ID to create this as a subtask of

CreateTaskResponse

Field Type Description
task Task Created task

UpdateTask

Updates a task’s content.

Procedure UpdateTask
Request UpdateTaskRequest
Response UpdateTaskResponse

UpdateTaskRequest

Field Type Description
id string Task ID
content string New content (full todo.txt-style line)

UpdateTaskResponse

Field Type Description
task Task Updated task

DoneTask

Marks a task as done (moves to done.txt in todo.txt backend).

Procedure DoneTask
Request DoneTaskRequest
Response DoneTaskResponse (empty)

DoneTaskRequest

Field Type Description
id string Task ID to mark done

MoveTask

Moves a task to another list.

Procedure MoveTask
Request MoveTaskRequest
Response MoveTaskResponse (empty)

MoveTaskRequest

Field Type Description
task_id string Task ID
target_list_id string Destination list ID

CreateList

Creates a new list.

Procedure CreateList
Request CreateListRequest
Response CreateListResponse (empty)

CreateListRequest

Field Type Description
title string List title

UpdateList

Updates a list’s title.

Procedure UpdateList
Request UpdateListRequest
Response UpdateListResponse (empty)

UpdateListRequest

Field Type Description
id string List ID
title string New title

DeleteList

Deletes a list.

Procedure DeleteList
Request DeleteListRequest
Response DeleteListResponse (empty)

DeleteListRequest

Field Type Description
id string List ID

GetTags

Returns all tags (for UI/autocomplete). Behavior may vary by backend.

Procedure GetTags
Request GetTagsRequest (empty)
Response GetTagsResponse

GetTagsResponse

Field Type Description
tags Tag[] Tags

Tag

Field Type Description
id string Tag ID
title string Tag label

RepoStatus

Returns git status output for the todo.txt data directory (todo.txt backend). Useful for power users who version their data with Git.

Procedure RepoStatus
Request RepoStatusRequest (empty)
Response RepoStatusResponse

RepoStatusResponse

Field Type Description
output string Git status output, or error message if not a git repo / git unavailable

GetSavedSearches

Returns the user’s saved searches (names and queries).

Procedure GetSavedSearches
Request GetSavedSearchesRequest (empty)
Response GetSavedSearchesResponse

GetSavedSearchesResponse

Field Type Description
saved_searches SavedSearch[] Saved searches

SavedSearch

Field Type Description
id string Unique ID
name string Display name
query string Search query

SetSavedSearches

Replaces the user’s saved searches. Persistence is backend-dependent (e.g. stored in browser and/or synced to server).

Procedure SetSavedSearches
Request SetSavedSearchesRequest
Response SetSavedSearchesResponse (empty)

SetSavedSearchesRequest

Field Type Description
saved_searches SavedSearch[] Full list of saved searches to store

GetTaskMetadata

Returns metadata fields for a task (e.g. notes, priority). Optional per backend.

Procedure GetTaskMetadata
Request GetTaskMetadataRequest
Response GetTaskMetadataResponse

GetTaskMetadataRequest

Field Type Description
task_id string Task ID

GetTaskMetadataResponse

Field Type Description
fields map Field name → value (e.g. notes, priority, wait, due)

SetTaskMetadata

Sets a single metadata field for a task (e.g. notes, priority, wait, due).

Procedure SetTaskMetadata
Request SetTaskMetadataRequest
Response SetTaskMetadataResponse (empty)

SetTaskMetadataRequest

Field Type Description
task_id string Task ID
field string Field name (e.g. notes, priority, wait, due)
value string Field value

GetTaskPropertyProperties

Returns Task Property Properties (TPPs): per-tag and per-context settings (e.g. CSS, hide-at-times rules).

Procedure GetTaskPropertyProperties
Request GetTaskPropertyPropertiesRequest (empty)
Response GetTaskPropertyPropertiesResponse

GetTaskPropertyPropertiesResponse

Field Type Description
tag_properties map Tag name → props
context_properties map Context name → props

TaskPropertyProps

Field Type Description
props map Key → value. Supported keys: css, hide-at-times (expr expression)

SetTaskPropertyProperty

Sets one TPP key for a tag or context (e.g. css or hide-at-times).

Procedure SetTaskPropertyProperty
Request SetTaskPropertyPropertyRequest
Response SetTaskPropertyPropertyResponse (empty)

SetTaskPropertyPropertyRequest

Field Type Description
property_type string "tag" or "context"
property_name string Tag or context name
key string Prop key (e.g. css, hide-at-times)
value string Prop value

RuleStatus

Returns current date/time components for building hide-at-times expressions (D = weekday short name, H = hour, M = minute).

Procedure RuleStatus
Request RuleStatusRequest (empty)
Response RuleStatusResponse

RuleStatusResponse

Field Type Description
D string Short day: Mon, Tue, …, Sun
H int32 Hour 0–23
M int32 Minute 0–59

RuleTest

Compiles and evaluates a hide-at-times expression. Use to validate or preview rules (e.g. “hide @work on weekends”).

Procedure RuleTest
Request RuleTestRequest
Response RuleTestResponse

RuleTestRequest

Field Type Description
expression string Expr expression (can use D, H, M)

RuleTestResponse

Field Type Description
compiles bool Whether the expression compiled
compile_error string Set when compiles is false
result bool Eval result when compiles is true
eval_error string Set when compile ok but eval failed

Tag

Reserved RPC (Tag). Behavior is implementation-specific; may be used for tag-related actions.

Procedure Tag
Request TagRequest (empty)
Response TagResponse (empty)

Shared message types

List

Field Type Description
id string List ID
title string List title
count_items int32 Item count

Task

Field Type Description
id string Task ID
content string Full content (todo.txt-style line)
parent_id string Parent list or task ID
parent_type string "list" or "task"
count_subitems int32 Number of direct children
tags string[] Parsed #tags
contexts string[] Parsed @contexts
wait_until string Optional ISO date-time; task hidden until this time
priority string Optional single letter A–Z
due_date string Optional ISO date YYYY-MM-DD