Commands

Tana's command line gives you access to every possible action at your fingertips.

Overview

Tana has a command line that gives you access to all actions you can take in Tana. The command line is accessible via Cmd/Ctrl+K

If you're looking for a modular system for creating and assembling custom commands, see command nodes.

Documentation

Command line

The command line can be launched from any node using the shortcut Cmd/Ctrl+K

A modal pops up which you type into to search for available commands.

Essential commands

Remind meSends your node to a date of your choice, like tomorrow or a specific date
Find nodes Gives you the possibility to set up list or tables based on time created, dates, information in fields and much more
View asShow you quickly the different views from the command line
Move toWhen you have a shared workspace, you can move a node there

A Tana backbone function: Find nodes

The Find nodes command gives every user the magical powers of developers, allowing you to create what would have been complex database queries, lightning fast and easy in one command:

  • find nodes with a specific tag, and view them in a list or table, like "Find nodes with tag #todo as list"
  • find nodes created within a certain timeframe "Find nodes created last 7 days as list"
  • or combine them with "Find nodes with tag #todo created last 7 days as list"
  • find nodes with specific fields, and the values in these fields "Find nodes with tag #todo created last 7 days with field Owner=John Doe as list"

Custom Keyboard Shortcuts

You can define custom shortcuts for any command in the command line, all the way down to setting specific tags or field values. To trigger shortcut recording, open the command line, find the command you want to set a shortcut for, and hit Cmd/Ctrl+Shift+K.

To remove custom keyboard shortcuts, go to Settings in the Home node or Cmd/Ctrl+K > Open Settings, and look under "Private keyboard shortcuts" for the custom shortcut you want to delete.

All commands

Calendar

COMMANDDESCRIPTION
Remind me A reference of the selected node will be sent to daily page of choice
Open calendar for → Open a daily page
Show today node Opens today node in full page layout
Set up day tag for this workspaceOnly runs on workspace node. Creates the journal tags and nodes on the workspace root.

Collaboration

COMMANDDESCRIPTION
Notify @ → Sends a notification to target user's Notification menu

Export

COMMANDDESCRIPTION
Get html link to node Copies URL of node along with node contents
Export plain html Opens a new browser html page of the selected node and contents

Fields

COMMANDDESCRIPTION
Show [Field] → Switch on chosen hidden field
Set Optional → Toggle whether the field is Optional or not (Yes/No)
Set Cardinality → Toggle what Cardinality a field is (single value/list of values)
Set Datatype → Set the type of data the field can contain
Set Autocollect options → Toggle whether a field will autocollect values to populate options
Set Hide field conditions → Toggle Hide state of a field
Set Source supertag → Set Source supertag for all field values
Create field Creates a field node

Filter

COMMANDDESCRIPTION
Sort by Not Done → Done Changes sorting of search results
Sort by date created, Old → New Changes sorting of search results
Sort by date created, New → Old Changes sorting of search results
Sort by name, A → Z Changes sorting of search results
Sort by name, Z → A Changes sorting of search results
Show completed items In a list of checkbox nodes, show checked items
Hide completed items In a list of checkbox nodes, hide checked items

Global Interface

COMMANDDESCRIPTION
Join collaborative space → Add workspaces you've been invited to
Open sidebar node Open the node that drives the sidebar content
Open layout node Open the node that saves all layouts (Tana Labs savedLayout)
Open in new browser Opens node in a new browser instance
Go back Goes back to previous location navigated from
Open workspace → Open the home node of chosen workspace
Open quick add Open quick add
Hide sidebar Hides the left sidebar
Toggle sidebar
Set theme to dark mode Toggles dark mode theme on
Set theme to light mode Toggles light mode theme on
COMMANDDESCRIPTION
Open trash (deleted) Opens node where all deleted items go
Open library Open your Library page
Open settings Open your Settings page
Open home node of current workspace Open your home node
Open schema Open your schema, where definitions for supertags and fields live by default
Create keyboard shortcut Dumps keyboard shortcut nodes for manual input (do same while navigating to command line option you want, then hit Cmd+Shift+K to auto-record a shortcut which gets saved in Settings)

Nodes and references

COMMANDDESCRIPTION
Move to → Brings up a list of predetermined locations to move a node to. Defaults are Home, Library and Today.
Delete node Deletes selected node and sub-nodes in trash
Clone Reference Convert a Reference node into a non-referenced node with all contents cloned
Duplicate node Duplicates selected node
Hard delete including references Deletes a node and all References. Inline refs and refs in other workspaces stay, but with trash icon.
Show edit attribution Show Edit Attribution of node
Hide edit attribution Hide Edit Attribution of node
Hoist children to siblings Move child nodes to the same level as selected node
Configure node Opens configuration for selected node
Configure node (legacy) Opens legacy configuration for selected node
Create URL node Creates a node that receives and specially formats URLs
Lock node Locks a node from being edited
Unlock node Unlocks a locked node
Paste as code Pastes contents in a special formatting code node
Add descriptionOpens the description of the selected node
Set move target Adds selected node to list of places when using Move command
Select node Selects the whole node
Copy full content to clipboard Copies all contents of selected node as indented plain text
Select children Selects child nodes of selected node
Iterate and convert URLs to URL nodes Finds nodes that are just URLs and converts them to Tana URL nodes
Add contextual content Creates contextual content (child node, field, column) that only appears in this specific context; doesn't add data to the node generally
Remove Reference Remove a reference node
Get link to node Retrieves reference link to node. Same as Cmd+C in an open node

Outline editing

COMMANDDESCRIPTION
Indent nodes below Indents nodes below selected node
Expand Expands the selected node's child nodes
Expand all Expands the selected node's child nodes and all their ancestors
Collapse Collapses the selected node's child nodes
Collapse all Collapses the selected node's child nodes and all their ancestors
Move up Moves selected node up
Move down Moves selected node down
Insert after Insert new node after selected node
Insert before Insert new node before selected node

Panels and Layout

COMMANDDESCRIPTION
Zoom full page Selected node opens to full page layout
Zoom in panel Selected node is opened within the current panel layout
Open in new panel Selected node is opened in new panel
Close this panel Close panel that your cursor is in
Close panel Closes the active panel (when multiple panels are open)
COMMANDDESCRIPTION
Find nodes Starts query builder
Find todos within Retrieves todos from within the parent node
Search within Searches within the contents of selected node via main search bar
Create search node Create an empty search node. Also invoked by typing "?" on an empty node
Open search Puts cursor in main search bar at top

Supertags

COMMANDDESCRIPTION
Add tag # Starts searching for existing supertags to add to active node
Remove tag # Removes selected supertag from node
Create supertag Convert the contents of a node to a supertag definition
Insert current date and time Adds text of current date and time (YY-MM-DD hh:mm)
Insert current time Adds text of current time (hh:mm)
Create supertag based on content Use node and contents (nodes, fields) to create a supertag
Edit supertag definition for [supertag] Opens supertag configuration
Set default tag for childrenChoose which supertag gets applied to all new child nodes of selected node

Views

COMMANDDESCRIPTION
View as list Set view of child nodes as list
View as cards Set view of child nodes as cards
View as table Set view of child nodes as table
Show view options Make view options bar appear
Remove all view options Removes view settings from a node (if they exist). Also accessible via Configure Node (legacy)
Add column Table view only: Creates column which will appear as a field within nodes listed in the table
Add contextual column Table view only: Creates contextual column/field for nodes listed in the table
Show column → Table view only: Switch on chosen hidden column
Hide column Table view only: Switch off column
Move right Table view only: Move column to right
Move left Table view only: Move column to left
Delete column and values Table view only: Delete column/field and its values
Add calculation → Table view only: On a numeric field, add a calculation type
Set [Field] → Table view only: Set a field option on one or more selected nodes with the same field

AI

COMMANDDESCRIPTION
Ask AIAsk AI anything. Write your prompt in the node and run this command. Accesses default GPT model.
Ask AI to →Ask AI to do a task, which will run on the node you are on, looking at both the node and context. Node must have content.
Ask AI (creative)Same as Ask AI, but with higher temperature.
Run AI fieldsRuns all AI-enhanced fields on a node.
Generate image(s) with DALL-EReturns an AI-generated image using DALL-E.


Related release notes

  • fixedFixed bug where Fetch Youtube Transcript command node was not working. ()
  • improvedUnified the implementation of the command nodes "Set field values" and "Set field values for all children", adding the "Append" parameter to "Set field values for all children" as well, and fixing a bug where it did not work with an empty field value. ()
  • improvedInsert relative date now supports system date fields in the prompt, such as ${sys:dateFromDayNode} ()
  • improvedSlash in the beginning of node filter no longer triggers the slash menu (making it easier to enter a regular expression) ()
  • improvedAny fields inserted from command nodes, which are optional fields, will now be inserted at top of the node. ()

Related FAQs

Examples

  • How does the "Set view definition" command work?
    Sep 26, 2024

    There is a command called Set view definition. It can set the Group, Sort and Display settings of a node view.

    There is no good UX for this at the moment, so the instructions are not conventional nor friendly for beginners. But right now, this is one way of doing it:

    • Mock up a node that will have sample child nodes representing the data you'll be applying this command on
    • Then, create the exact view settings you want with Group, Sort and Display.
    • Go Cmd/Ctrl+K > Debug Node on the parent node and look at Views for node:
    • Clone the fields over to the command node so it looks like this:

    When you run this command on a node, this should change the view settings according to your configuration.

  • How can I extract the start date of a range using Commands?
    Sep 26, 2024

    Use Insert relative date command, here's an example:

  • How do I use the Autofill command to enrich URL nodes?
    Sep 26, 2024

    The Autofill command can generate a new node title and description based on the URL.

    To set up the command

    • Create a new command node
    • Add the Autofill fields command
    • Add and check off Autofill title and Autofill description parameters to change both
    • Add Model to use to control which model you prefer. If left empty, Tana will pick the one that returns the answer with best quality and consistency

    To run the command

    • Run the command on a URL node using the command line
    • Put this command node in the Commands section of a supertag you use for URLs. Press the button to run the command.
  • How can I add supertags on things that I send from Tana Capture?
    Sep 26, 2024

    While it isn't possible to tag things when you're sending things from Tana Capture, you can have Tana do some post-processing magic to convert written-out tags to real tags once they arrive the Inbox—no AI needed!

    1. This method uses a simple Tana Paste command that you can run on the Inbox node, which targets all new children that have "#" in them.
    2. Once you've created the command, you must add it to the On child added section of the Inbox node. You can find it by running the command Debug node on the title of the Inbox.

    Here's Theo describing the command:

    "All it does is paste the nodes that have # in them and that are not tagged, using Tana Paste.

    Say we add this through Tana Capture:

    buy milk #todo

    The command will paste that exact text back in with Tana Paste, where ${name} is buy milk #todo and ${sys:content} are any child notes that are present. Using Tana Paste, #todo will be added as a tag.

    Note: this creates a new node, so the created date will change, meaning you’ll lose the time that the node was captured through Tana Capture."

Question

  • In the command line, Set [field] -> [value] doesn't show all my fields, why?
    Sep 26, 2024

    Set [field] command only works on field types Option, Instance, User and Checkbox.

  • How do I share a supertag from my private workspace to a shared one?
    Sep 26, 2024
    Currently, the easiest and most foolproof way to do this is to not share it but instead build the supertag, with its fields and anything else necessary for the supertag to work, from the ground up in the new space.

    That said, if you still want to move a supertag over that exists only in your private workspace, the main work is to ensure that there's nothing in the supertag that references something in your private workspace, otherwise it will appear as broken to others once it's moved.

    It's like packaging up a zip file. You can't just zip up a bunch of shortcuts, you need the real files in there or the recipient will only see broken shortcuts.

    You'll also have to remember to move over other things like field options, commands, and ensure that no saved view options contain elements from your workspace. Basically, you must ensure that nothing you're moving over from your workspace contains references from your workspace.

    To bring all nodes (except system nodes) into the supertags, fields and commands you want to move, use the command "Bring referenced node here". Alternatively, you can move each necessary node separately too if you for example want the field definition to exist outside the supertag. But the key is that everything that is connected to what you're sending over gets sent over too, otherwise there will be missing pieces.

  • Can a command move the current node to a field of a new node?
    Sep 26, 2024

    Yes, you can. Make a new command node, and use the command Insert Tana Paste with the following prompt:

    - ${name} #note
    - Based on:: [[^${sys:nodeId}]]

    The first line is the new node. It uses the name of the current node to inform the name of the new node by using the title expression ${name}. The supertag #note can be enough for Tana to find the right tag to use, but you can specify it more precisely by adding the ^nodeID to it. See the Tana Paste doc for more info on this convention. To retrieve the nodeID of a supertag, run the command Copy link (HTML formatted) on a supertag definition and paste the results. It will paste with the nodeID written out:

    The second line is the field. After the name of the field and the double-colon :: is a reference to the current node that the command is being run on, which it is able to target by retrieving the nodeID of the current node using the title expression ${sys:nodeId}.

    This is what the command node should look like:

    Special thanks to Navigator Emmanuel Galanos for this clever solution!