This is a WorkFlowy client for Deno and Node. The goal of this library is to enable WorkFlowy power users to access WorkFlowy lists programatically and perhaps create some new automations and integrations.
- Reading and updating WorkFlowy lists
- Export of lists to JSON or formatted plain text
- Basic search of items in lists
- Support for live copies (mirrors)
In order to access WorkFlowy content, you need to provide your WorkFlowy username and password. Authentication via one-time code or two-factor authentication are not supported because of technical limitations of WorkFlowy API.
import { WorkFlowy } from "workflowy";
// Log in with your username and password
const workflowy = new WorkFlowy("[email protected]", "your-password");
// Load WorkFlowy outline into an interactive document structure
const document = await workflowy.getDocument();
const rootList = document.root;
const topLevelLists = document.items; // array of lists in the root
const myList = topLevelLists[0];
myList.findOne(/^Needle/); // Finds a sublist using a RegExp
myList.findAll(/^Needle/); // Finds all sublists using a RegExp
const rootList = document.root;
const myList = document.items[0];
myList.name; // name of the list
myList.note; // note of the list
myList.isCompleted; // whether or not the list or item is completed
myList.items; // items and sublists
myList.setName("New name").setNote("New note"); // sets a name and a note
const sublist = myList.createList(); // Creates a sublist
const subitem = myList.createItem(); // Alias for createList
myList.move(targetList); // moves a list or item to a different list
myList.delete(); // deletes the list
if (document.isDirty()) {
// Saves the changes if there are any
await document.save();
}
npm install workflowy # npm
yarn add workflowy # yarn
bun add workflowy # bun
pnpm add workflowy # pnpm
Unlike Node, Deno relies on direct URL imports instead of a package manager like NPM. The latest Deno version can be imported like so:
import { WorkFlowy } from "https://deno.land/x/workflowy/mod.ts";
Big thanks to Mike Robertson for providing the
workflowy
NPM package name!
MIT