Athenode

Athenode CLI reference

The Athenode CLI reference lists every command of athenode, with its synopsis, its options, what it prints and an example, for use in a terminal or in a script. The athenode command comes with the athenode package, which also holds the athenode daemon: the local Athenode server that keeps your projects on your machine and serves the web UI and the Athenode MCP server at http://127.0.0.1:3717. Install Athenode sets both up.

How the Athenode CLI runs

The Athenode CLI requires Node.js 22.16 or later. It runs on macOS, Linux and Windows. Install it with the athenode package:

npm i -g athenode

@athenode/cli is an alias package of the same version, so npx @athenode/cli <command> runs any command below without a global install. athenode service install is the exception: it needs the global athenode package. Install one of the two packages globally, not both, because both provide the athenode command. The package also has the command athenode-server, which takes the daemon commands only.

The commands fall into two sets:

Set Commands What they work on
Client commands init, sync, use, service, backup, restore, project, logout Your repository, the service, the data folder and project archives
Daemon commands start, stop, status, doctor, mcp-config, library, version, help The daemon itself

init, sync, use and project read and write .athenode/config.json in the current directory, the file that records which server and project the directory is bound to. Run them in the directory where you ran init, which is normally the root of your repository.

Output and errors

A command prints its result on standard output. Warnings start with "Warning:" and notes with "Note:", and both go to standard error. A client command that fails prints one line starting with "Error:" on standard error, followed by the reason and, where there is one, the command or option that fixes it. A daemon command used wrongly, such as with an unknown option, prints the problem followed by the list of daemon commands and their options.

Global options

Option Description
-h, --help athenode --help, athenode -h and athenode help print the client commands and then, under "Daemon commands:", the daemon commands. athenode <command> --help prints the options of one client command. After a daemon command, --help prints the list of daemon commands.
-v, --version athenode --version, athenode -v and athenode version print the installed version, such as 0.12.1.
--data-dir <dir> The data folder of the daemon the command works with. The default is ATHENODE_DATA_DIR, else ~/.athenode. Every daemon command takes it, and so do the client commands that use the local daemon.
--port <n> The port of the daemon, from 1 to 65535. The default is ATHENODE_PORT, else port in the data folder's config.json, else 3717. Every daemon command takes it, and so do init, service and project. A daemon that is running is found through its data folder, whatever port it uses.

Commands without a terminal

In a script, in CI or in any run without a terminal, the CLI asks nothing. A command that would need an answer either takes it from an option or from the last install, or stops with an error that names the option.

Situation What the CLI does
init or use would ask about the project, the plugin, the AI tools, .gitignore or the MCP modules Takes the stored answer, else the default. Run init without questions lists the defaults.
A plan is ready to apply Stops with "Confirmation required but stdin is not a TTY. Re-run with --yes to apply the plan, or --dry-run to only print it." unless you passed --yes.
The daemon is not running when init starts Stops with a message that names athenode service install and athenode start. It does not offer to install the service.
Claude Code has the public Athenode plugin package enabled Stops before the plan and names --public-plugin replace and --public-plugin keep.
use would replace a plugin installed with init Stops and names --force.
A command needs a sign-in to an Athenode Pro server and has none Fails, because the sign-in opens a browser. Sign in once in a terminal on the same machine, or set ATHENODE_PRO_TOKEN to a personal access token.

--yes and --dry-run make init and use behave the same way in a terminal. sync, backup, restore, project, logout, service and the daemon commands never ask a question.

Exit codes of the Athenode CLI

Exit code Meaning
0 The command succeeded. athenode stop also exits with 0 when no daemon runs.
1 The command failed: an error, an unknown option or a missing argument of a client command, a question left with Ctrl+C, a check of athenode doctor that failed, or a daemon that could not start or stop.
2 A daemon command was used wrongly: an unknown command, an unknown option or an invalid value. athenode service with an unknown action also exits with 2.
3 athenode status: the daemon is not running. athenode service status: the service is not installed, the Node.js binary it runs is missing, or the daemon is not running.

The new-version notice

After every client command except service, the CLI checks npm for a newer athenode at most once every 24 hours. When there is one, it prints on standard error "A new version of athenode is available:", the new version and the one you run, and the commands that update: npm i -g athenode, then athenode service restart. The check never runs when ATHENODE_NO_UPDATE_CHECK is 1, true or yes, or when the variable CI is set. A failed check prints nothing. Update Athenode describes the update.

Environment variables the CLI reads

Variable What it sets
ATHENODE_DATA_DIR The data folder, when --data-dir is not given.
ATHENODE_PORT The daemon's port, when --port is not given. It wins over port in the data folder's config.json.
ATHENODE_NO_UPDATE_CHECK With 1, true or yes, turns off the new-version notice of the CLI and the version check of the daemon.
CI When set to any value, turns off the new-version notice of the CLI.
ATHENODE_PRO_TOKEN A personal access token, created on the Account page of an Athenode Pro server, that the CLI sends to that server in place of its stored sign-in, for example in CI.
ATHENODE_CREDENTIALS_STORE With file, the CLI keeps its Pro sign-ins in ~/.athenode/credentials.json and not in the system's keychain.
ATHENODE_MASTER_KEY, ATHENODE_MASTER_KEY_FILE The master key, or the file that holds it. backup puts the key in effect into the archive, and restore prints a note when one of them overrides the restored key.

The variables of the daemon itself, with their precedence, are in Configuration. ATHENODE_PRO_TOKEN and ATHENODE_CREDENTIALS_STORE are described with the sign-in in Connect to Athenode Pro.

athenode init and athenode sync: install a plugin

A plugin is a named bundle of what your AI coding tools work with: skills, agents, rules, MCP servers and plugin files. init binds a directory to a project and installs one of its plugins, and sync brings the installed files up to date after the plugin changes. Install a plugin describes the questions, the plan and the files both commands write.

athenode init

athenode init binds the current directory to a project of the local daemon or of an Athenode Pro server, and installs a plugin of that project for the AI tools you choose. athenode i is the same command.

athenode init [--server <url>] [--project <id>] [--name <name>] [--plugin <id-or-slug>]
              [--targets <ids>] [--gitignore | --no-gitignore] [--modules <ids>]
              [--public-plugin <replace|keep>] [--data-dir <dir>] [--port <n>]
              [-y | --yes] [--dry-run]
Option Description
--server <url> Bind a project of the Athenode Pro server at this http or https address, in place of the local daemon. The CLI signs you in through the browser the first time. Later runs in the directory use the bound server without the option.
--project <id> Bind this project. A project the server does not have stops init. Without it, init uses the bound project; else it asks you to choose a project or create one, and without a terminal it creates one.
--name <name> The name of a project that init creates. The default is the directory's name.
--plugin <id-or-slug> Install this plugin of the project. Without it, init asks when the project has more than one plugin, and otherwise installs the installed plugin, else your project's copy of the standard plugin.
--targets <ids> Install for these AI tools, as a comma-separated list of the ids on the supported AI tools page. The selection is stored. Without it, init asks; without a terminal it uses the stored selection, else claudecode,codexcli.
--gitignore List the installed files in .gitignore without asking. The answer is stored. Excludes --no-gitignore.
--no-gitignore Leave the installed files out of .gitignore without asking, and remove a list an earlier run added. The answer is stored. Excludes --gitignore.
--modules <ids> Give your AI tools the MCP tools of these modules, as a comma-separated list of plugins, specs and gateway. The tools that read the project and the server's status are always included. The choice is stored. Without it, init asks; without a terminal it uses the stored choice, else every module of the server.
--public-plugin <replace|keep> Answer the question about the public Athenode plugin package in Claude Code: replace installs your plugin in its place, keep installs the rules only. Not stored. On an Athenode Pro server, keep is refused.
--data-dir <dir> The data folder of the local daemon.
--port <n> The port of the local daemon. When init installs the service, it stores this port.
-y, --yes Apply the plan without the confirmation and without the other questions.
--dry-run Print the plan and write nothing. No question is asked and no project is created, so an unbound directory needs --project.

A plugin package is the package that seven AI tools load a plugin from, named after the plugin's slug. The public Athenode plugin package is the standard plugin as published in the Claude Code marketplace.

When the local daemon is not running, init asks "The Athenode daemon is not running. Install it as a service for your user and start it now (athenode service install)?" and waits for the daemon after you confirm. init refuses a server of another major version and prints a warning for one of another minor version.

init prints these results:

Message When
"Created the project", followed by the project's name and id init created a project.
"Applied. Plugin 'atn' is installed.", with the plugin's slug The plan was applied. "Still to do in your tools:" follows, with the steps each AI tool needs.
"Already up to date (plugin 'atn')." The installed files match the plugin.
"Cancelled. Nothing was changed." You answered no to "Apply this plan?".
"Dry run: nothing was written." --dry-run was given.
"Warning: the installed plugin", followed by both plugins' names init is about to replace the installed plugin with another one.
"Warning: the bound project", followed by its id and "no longer exists" The bound project was deleted. Choose another project.

init stops with an error, and changes nothing, in these cases:

Error What to do
"--server must be a URL such as https://athenode.example.com" Give the server's full address.
"The server at", the address, "has no project", the id Check the id in the project's settings in the web UI, or run init without --project.
"Unknown agent id(s):", followed by "Valid ids:" and the list Correct --targets.
"Unknown module(s) for --modules:", followed by "Modules of this server:" and the list Correct --modules.
"Unknown --public-plugin value:" Pass replace or keep.
The project has no copy of the standard plugin, and the message names athenode service restart and --plugin Restart the daemon, which gives the project its copy, or name a plugin with --plugin.
--dry-run in a directory that is bound to no project, because a dry run creates none Pass --project, or run init without --dry-run.
The server runs another major version Install the same major version of the CLI and the daemon, then run athenode service restart.

After the plan, and also after a dry run, init lists on standard error the environment variables that the installed MCP servers refer to and that are not set, under "Missing MCP environment variables (not set in this shell):".

athenode init --project <project-id> --plugin atn --targets claudecode,cursor --yes

Install a plugin explains each question and the plan. Connect to Athenode Pro covers --server and the sign-in.

athenode sync

athenode sync installs the plugin again from the bound server, with the plugin, the AI tools, the MCP modules and the .gitignore answer of the last init, and asks no question.

athenode sync [--dry-run]
Option Description
--dry-run Print the plan and write nothing.

sync applies its plan without a confirmation. It prints "Already up to date" with the plugin's slug when nothing differs, and otherwise the plan, "Applied." and "Still to do in your tools:", as init does. On an Athenode Pro server it replaces the public Athenode plugin package in Claude Code and prints a note that says so.

sync stops with an error and tells you to run athenode init when the directory is not bound to a server ("This repository is not bound to an Athenode server: run athenode init."), when nothing has been installed from the bound server, or when the last install came from athenode use. When the directory is bound to the local daemon and the daemon is not running, sync names the commands that start it.

athenode sync

Sync after the plugin changes says when to run it.

athenode use: install a library entry

The plugin library is the shared catalogue of plugins that projects have published. use installs one of its entries without a project and without an account.

athenode use

athenode use installs the latest version of a library entry whose public display is on into the current directory, for the AI tools you choose.

athenode use <entry-slug> [--targets <ids>] [--gitignore | --no-gitignore]
             [--public-plugin <replace|keep>] [--force] [-y | --yes] [--dry-run]
Option Description
<entry-slug> (required) The slug of the entry, as in its address on lib.athenode.com.
--targets <ids> Install for these AI tools, as for init. The selection is stored.
--gitignore List the installed files in .gitignore without asking. Excludes --no-gitignore.
--no-gitignore Leave the installed files out of .gitignore without asking, and remove a list an earlier run added. Excludes --gitignore.
--public-plugin <replace|keep> Answer the question about the public Athenode plugin package, as for init. Not stored.
--force Replace a plugin that athenode init installed in the directory without asking.
-y, --yes Apply the plan without the confirmation and without the other questions.
--dry-run Print the plan and write nothing.

use asks no question about a project or MCP modules and needs no daemon. Running it again updates the install to the entry's latest version, or prints "Already up to date (library entry 'web-shop-review', version 3)." with the entry's slug and version. When the directory holds a plugin installed with init, use asks whether to replace it, with no as the suggested answer.

Error What to do
"Library entry 'web-shop-review' is not available: it does not exist or is no longer shown publicly. Nothing was changed." Check the slug on the library site.
"Too many installs from this network for now (429).", followed by the time to wait Try again after that time.
"Re-run with --force to replace it with the library entry" Pass --force, or run use in a terminal to be asked.
The CLI says that its version is not supported and names the minimum version Update with npm i -g athenode and run the command again.
athenode use web-shop-review --targets claudecode,codexcli

Install with the CLI describes use, its limits and what it records.

athenode service: run the daemon as a service

The service runs the daemon as a service of your user, which starts it at every login without administrator rights: a systemd user unit on Linux, a launchd agent on macOS and a Startup entry on Windows. Every action takes --data-dir <dir>, and install takes --port <n>. An unknown action prints "Error: unknown service action" with the list of actions and exits with 2. On another operating system, the command stops and names athenode start. Run the daemon as a service describes the service on each operating system.

athenode service install

athenode service install registers the service and starts the daemon.

athenode service install [--data-dir <dir>] [--port <n>]
Option Description
--data-dir <dir> The data folder of the daemon the service runs. The service passes it on to the daemon.
--port <n> Store this port as port in the data folder's config.json. The CLI prints "Stored port", the port and the file.

install refuses to run from a temporary install, such as a run through npx, and from any install outside the global npm folder, and tells you to install the package globally with npm i -g athenode. It writes the service entry again on every run, so run it again after you switch to another Node.js version. It then waits up to 20 seconds and prints "The daemon is running at", followed by the daemon's address. When the daemon does not answer in that time, it tells you to check athenode service status and the logs. On Linux it also prints the command loginctl enable-linger, which keeps the daemon running without a login session, and it stops with a message when the system has no systemd user instance, as in WSL without systemd and in containers. When a daemon of the ssh-gateway package holds the data folder, install stops and asks you to stop that daemon first.

athenode service install

athenode service uninstall

athenode service uninstall stops the daemon and removes the service entry.

athenode service uninstall [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the daemon.

The CLI prints "Uninstalled the service; the daemon no longer starts at login.", or "The service is not installed." when there was none. The data folder is left as it is.

athenode service uninstall

athenode service restart

athenode service restart restarts the daemon through the service, for example after an update.

athenode service restart [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the daemon.

The CLI waits up to 20 seconds and prints "Restarted: the daemon is running at", followed by the address. It stops with "The service is not installed: run athenode service install." when there is no service, and tells you to run athenode service install again when the Node.js binary the service runs no longer exists.

athenode service restart

athenode service status

athenode service status shows whether the service is installed, which Node.js binary it runs and whether the daemon is running.

athenode service status [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the daemon.

The output has a "Service:" line with the service file and its state, a "Node:" line with the path of the Node.js binary, and a "Daemon:" line with the address, the process id and the data folder. The command exits with 0 when all three are in order and with 3 otherwise.

athenode service status

athenode backup and athenode restore: back up the data folder

A backup archive is a copy of the daemon's whole data folder: the database with every project, the master key and the data folder's config.json. Backup and restore describes when to make one and how to restore it on another machine.

athenode backup

athenode backup writes the data folder into one archive that only you can read, with the daemon running or stopped.

athenode backup [--output <path>] [--data-dir <dir>]
Option Description
--output <path> The archive file, or a folder to write it into. The default is athenode-backup-<version>-<time>.tar.gz in the current directory.
--data-dir <dir> The data folder to back up.

The CLI prints "Backed up the data folder to", the archive's path and "(readable only by you; it holds the master key: keep it safe).". It stops without writing a file when the data folder holds no database, and when a daemon of the ssh-gateway package holds the data folder.

athenode backup --output ~/backups

athenode restore

athenode restore puts a backup archive back into the data folder.

athenode restore <archive> [--force] [--data-dir <dir>]
Option Description
<archive> (required) A file written by athenode backup.
--force Move the data folder's database, master key and config.json into backups/pre-restore-<time>/ in the data folder, then restore.
--data-dir <dir> The data folder to restore into.

The CLI prints "Restored the backup of", the version and the data folder, and the commands that start the daemon. With --force it first prints where it moved the previous files. When ATHENODE_MASTER_KEY or ATHENODE_MASTER_KEY_FILE is set, a note says that it overrides the restored key at the next start.

restore refuses, and changes nothing, while a daemon runs on the data folder, for a backup of a newer version or one with data the installed version does not know, for an archive that does not exist, and for a data folder that holds a database or a master key unless you pass --force.

Warning

Restoring replaces every project of the daemon with the projects in the archive. With --force, the previous data is kept only in backups/pre-restore-<time>/.

athenode restore athenode-backup-0.12.1-20261029080000.tar.gz --force

athenode project: move a project with an archive

A project archive is a file that carries one project, with its specifications, ToDo cards and plugins, to any daemon or Athenode Pro server as a new project. Athenode Pro is the Athenode server a team runs itself, with accounts, project roles and a licence. Both commands work on the server the current directory is bound to, else on the local daemon, and on Athenode Pro they use the CLI's sign-in. Move a project to another server gives the steps, and Projects describes what an archive holds.

athenode project export

athenode project export writes the archive of one project, readable only by you.

athenode project export [--project <id>] [--output <path>] [--data-dir <dir>] [--port <n>]
Option Description
--project <id> The project to export. The default is the project the current directory is bound to. Outside a bound directory the option is required.
--output <path> The archive file, or a folder to write it into. The default is <name>.athenode-project.tgz in the current directory, after the project's name.
--data-dir <dir> The data folder of the local daemon.
--port <n> The port of the local daemon.

The CLI prints "Exported the project", the project's name and id, and the archive's path. A project id the server does not have stops the command with "The server has no project", followed by the id.

athenode project export --project <project-id> --output ~/archives

athenode project import

athenode project import creates a new project, with new ids, from a project archive.

athenode project import <file> [--name <name>] [--data-dir <dir>] [--port <n>]
Option Description
<file> (required) An archive written by athenode project export or by Export project in the web UI.
--name <name> The new project's name. The default is the name in the archive, with " (imported)" added when a project of that name exists.
--data-dir <dir> The data folder of the local daemon.
--port <n> The port of the local daemon.

The CLI prints "Imported the archive as the project", the new project's name and id, then the number of warnings and each warning as [part] message, and finally the athenode init --project command that binds a repository to the new project. A path with no file stops the command with "No archive at", followed by the path.

athenode project import web-shop.athenode-project.tgz --name "Web shop"

athenode logout: sign out of Athenode Pro

The Athenode CLI signs in to an Athenode Pro server through the browser and keeps its sign-in in the system's keychain, or in ~/.athenode/credentials.json where there is none. The local daemon needs no sign-in.

athenode logout

athenode logout forgets the CLI's sign-in to an Athenode Pro server and ends it on the server when the server can be reached.

athenode logout [--server <url>]
Option Description
--server <url> The Pro server to sign out of. The default is the server the current directory is bound to.

The CLI prints "Signed out of", or "Not signed in to", followed by the server's address. Outside a directory bound to a Pro server and without --server, it stops with "This repository is bound to no Pro server" and asks you to name the server with --server. When ATHENODE_PRO_TOKEN is set, a note says that the CLI goes on sending the token of that variable.

athenode logout --server https://athenode.example.com

Connect to Athenode Pro describes the sign-in.

Daemon commands: run and check the daemon

The daemon commands start, stop and inspect the daemon of one data folder. One daemon runs per data folder. athenode with no command runs start.

athenode start

athenode start runs the daemon in the foreground of the terminal until you stop it with Ctrl+C or athenode stop.

athenode start [--open] [--port <n>] [--data-dir <dir>]
Option Description
--open Open the web UI in your browser once the daemon runs. When a daemon already runs on the data folder, open its web UI and exit with 0.
--port <n> The port of the web UI and the MCP server.
--data-dir <dir> The data folder. The daemon creates it when it does not exist.

The daemon prints "Athenode 0.12.1 is running." with its version, then the address of the web UI, the address of the MCP server and the data folder, followed by "Connect an MCP client: athenode mcp-config" and "Stop: Ctrl-C here, or athenode stop". The first start in a data folder also prints "Created a new master key:" with the path of the key file and asks you to back it up separately from your data.

When a daemon already runs on the data folder, start without --open prints its address and exits with 1. A value in the data folder's config.json or in the environment that the daemon cannot use stops it with "Athenode cannot start:" and the reason. On Linux and macOS, a data folder that other users can read prints a warning with the chmod command that fixes it.

athenode start --open

Run the daemon in a terminal and Configuration describe the daemon's settings.

athenode stop

athenode stop stops the daemon of the data folder.

athenode stop [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the daemon to stop.

The CLI prints "Stopping athenode" with the process id and then "athenode stopped". It asks the daemon to shut down and, when the daemon has not stopped after 15 seconds, ends the process. When no daemon runs, it prints "athenode is not running" with the data folder and exits with 0. A process that cannot be ended prints "Could not stop athenode" and exits with 1.

athenode stop

athenode status

athenode status tells whether the daemon of the data folder is running.

athenode status [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the daemon.

A running daemon prints "athenode 0.12.1 is running at http://127.0.0.1:3717", with the process id, then the address of the MCP server with (add ?project=<PROJECT_ID>) and where to copy a project's id, the data folder and the time it started. The command then exits with 0. Otherwise it prints "athenode is not running" with the data folder, or the other program that holds the data folder, and exits with 3.

athenode status

athenode doctor

athenode doctor checks the installation and the data folder, and changes nothing.

athenode doctor [--data-dir <dir>] [--port <n>]
Option Description
--data-dir <dir> The data folder to check.
--port <n> The port to check.

Each line is one check, marked [ok], [warn], [FAIL] or [info], with its detail:

Check What it reports
Node.js The version you run and the versions Athenode requires.
config.json, Configuration Keys the daemon does not know, and values it cannot use.
Data folder Permissions that let other users read the data folder or its files.
Master key, Master key check Where the master key comes from, and whether it matches your data.
Database, pg_trgm, Migrations Whether the database opens, and whether it needs converting at the next start, reported as "pending (applied with a backup at the next start)". A database written by a newer version is a [FAIL].
Port Whether the daemon answers on its port, or whether the port is free. A port another program uses is a [FAIL] that names --port <n>.
ssh-agent, SSH The parts the SSH gateway needs on your machine. The SSH gateway is the part of Athenode through which your AI agent runs commands and transfers files on your SSH hosts.

While the daemon runs, doctor skips the database checks and says so under [info]. It ends with "No problems found." and exits with 0, or with the number of failed checks and exit code 1.

athenode doctor

athenode mcp-config

athenode mcp-config prints how to add the Athenode MCP server of the daemon to an MCP client by hand, and writes nothing.

athenode mcp-config [--client <name>] [--project <id>] [--port <n>] [--data-dir <dir>]
Option Description
--client <name> Print the snippet of one client only: claude-code (or claude), cursor, vscode or json. Without it, all four are printed.
--project <id> The project the MCP address names. Without it, the address holds the placeholder <PROJECT_ID>, and the CLI says where to copy a project's id.
--port <n> The port in the address. The default is ATHENODE_PORT, else port in config.json, else the port of the running daemon, else 3717.
--data-dir <dir> The data folder whose config.json and running daemon are read.

The output holds a claude mcp add --transport http athenode command for Claude Code, a snippet for Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project), a snippet for VS Code (.vscode/mcp.json) and a generic snippet for other clients, each with the address http://127.0.0.1:3717/api/mcp?project=<id>, or with the daemon's public URL in place of http://127.0.0.1:3717 when config.json sets one, as requests from other machines and containers describes. athenode init writes these entries for the AI tools it installs for, so mcp-config is for a client that init does not configure.

athenode mcp-config --client cursor --project <project-id>

Add the Athenode MCP server to an AI tool by hand describes the address and its parameters.

athenode version and athenode help

athenode version prints the installed version, as --version and -v do. athenode help prints the client commands and the daemon commands, as --help and -h do. Neither takes an option.

athenode version

athenode library: sign the daemon in to Athenode

The daemon signs in to your Athenode account to publish plugins to the plugin library and to manage your entries. The three commands need a running daemon, and each takes --data-dir <dir>. Without a running daemon they print "The daemon is not running", with the data folder, and exit with 1. library-login, library-logout and library-status are aliases of the three commands.

athenode library login

athenode library login signs the daemon in to your Athenode account.

athenode library login [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the running daemon.

The CLI prints "Open", an address, "and enter the code", the code and "to sign this daemon in to Athenode.". It waits until you confirm the code on that page, then prints "Signed in to Athenode as" with your name. When the code expires or the sign-in is refused, it prints the reason and exits with 1.

athenode library login

athenode library logout

athenode library logout signs the daemon out of your Athenode account and prints "Signed out of Athenode.".

athenode library logout [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the running daemon.
athenode library logout

athenode library status

athenode library status prints the account the daemon publishes with, "Signed in to Athenode as" with the account's name, or "Not signed in to Athenode.".

athenode library status [--data-dir <dir>]
Option Description
--data-dir <dir> The data folder of the running daemon.
athenode library status

The Athenode account panel of the Plugin library page does the same in the web UI, as Sign the daemon in to your Athenode account describes. On Athenode Pro, each user signs in in that panel, and the library commands do not apply.

Commands of Athenode Pro

An Athenode Pro server has its own command, athenode-pro, from the @athenode/athenode-pro package. Its commands are documented with the tasks they serve: start, stop, status and doctor in Install Athenode Pro, license activate, license import and license status in The Pro licence, recover in Users and sign-in, mcp-config in Connect to Athenode Pro, and the options and variables in Configure Athenode Pro.