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_id →
parentListId for compatibility with Connect/Protobuf JSON mapping).
RPCs
Version
Returns server version and build info.
| Procedure | Version |
|---|---|
Request |
|
Response |
|
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 |
|
Response |
|
InitResponse
| Field | Type | Description |
|---|---|---|
wallpaper |
string |
Wallpaper path or identifier |
GetLists
Returns all lists.
| Procedure | GetLists |
|---|---|
Request |
|
Response |
|
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 |
|
Response |
|
ListTasksRequest
| Field | Type | Description |
|---|---|---|
parent_id |
string |
List ID (for root tasks) or task ID (for subtasks) |
parent_type |
string |
|
ListTasksResponse
| Field | Type | Description |
|---|---|---|
tasks |
Task[] |
Tasks for the requested parent |
tree |
map<string, TaskIdList> |
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 |
|
Response |
|
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 |
|
Response |
|
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 |
|
Response |
|
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 |
|
Response |
|
DoneTaskRequest
| Field | Type | Description |
|---|---|---|
id |
string |
Task ID to mark done |
MoveTask
Moves a task to another list.
| Procedure | MoveTask |
|---|---|
Request |
|
Response |
|
MoveTaskRequest
| Field | Type | Description |
|---|---|---|
task_id |
string |
Task ID |
target_list_id |
string |
Destination list ID |
CreateList
Creates a new list.
| Procedure | CreateList |
|---|---|
Request |
|
Response |
|
CreateListRequest
| Field | Type | Description |
|---|---|---|
title |
string |
List title |
UpdateList
Updates a list’s title.
| Procedure | UpdateList |
|---|---|
Request |
|
Response |
|
UpdateListRequest
| Field | Type | Description |
|---|---|---|
id |
string |
List ID |
title |
string |
New title |
DeleteList
Deletes a list.
| Procedure | DeleteList |
|---|---|
Request |
|
Response |
|
DeleteListRequest
| Field | Type | Description |
|---|---|---|
id |
string |
List ID |
GetTags
Returns all tags (for UI/autocomplete). Behavior may vary by backend.
| Procedure | GetTags |
|---|---|
Request |
|
Response |
|
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 |
|
Response |
|
RepoStatusResponse
| Field | Type | Description |
|---|---|---|
output |
string |
Git status output, or error message if not a git repo / git unavailable |
RepoSync
Runs a conservative git add, git commit, and git push for the
todo.txt data directory (todo.txt backend). The operation aborts without
modifying the repository when merge conflicts, an in-progress
merge/rebase/cherry-pick, detached HEAD, missing upstream, or being
behind the remote is detected.
| Procedure | RepoSync |
|---|---|
Request |
|
Response |
|
RepoSyncRequest
| Field | Type | Description |
|---|---|---|
server_name |
string |
Optional label included in the git commit
message ( |
RepoSyncResponse
| Field | Type | Description |
|---|---|---|
success |
bool |
Whether the sync completed successfully |
message |
string |
Summary message or error reason |
steps |
string[] |
Completed steps (e.g. validated, staged, committed, pushed) |
GetSavedSearches
Returns the user’s saved searches (names and queries).
| Procedure | GetSavedSearches |
|---|---|
Request |
|
Response |
|
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 |
|
Response |
|
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 |
|
Response |
|
GetTaskMetadataRequest
| Field | Type | Description |
|---|---|---|
task_id |
string |
Task ID |
GetTaskMetadataResponse
| Field | Type | Description |
|---|---|---|
fields |
map<string, string> |
Field name → value (e.g. |
SetTaskMetadata
Sets a single metadata field for a task (e.g. notes, priority, wait, due).
| Procedure | SetTaskMetadata |
|---|---|
Request |
|
Response |
|
SetTaskMetadataRequest
| Field | Type | Description |
|---|---|---|
task_id |
string |
Task ID |
field |
string |
Field name (e.g. |
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 |
|
Response |
|
GetTaskPropertyPropertiesResponse
| Field | Type | Description |
|---|---|---|
tag_properties |
map<string, TaskPropertyProps> |
Tag name → props |
context_properties |
map<string, TaskPropertyProps> |
Context name → props |
TaskPropertyProps
| Field | Type | Description |
|---|---|---|
props |
map<string, string> |
Key → value. Supported keys: |
SetTaskPropertyProperty
Sets one TPP key for a tag or context (e.g. css or hide-at-times).
| Procedure | SetTaskPropertyProperty |
|---|---|
Request |
|
Response |
|
SetTaskPropertyPropertyRequest
| Field | Type | Description |
|---|---|---|
property_type |
string |
|
property_name |
string |
Tag or context name |
key |
string |
Prop key (e.g. |
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 |
|
Response |
|
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 |
|
Response |
|
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 |
Shared message types
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 |
|
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 |