Naptha CLI Usage
Here's a list of commands you can use with the Naptha CLI.
Basic Usage
naptha [command] [options]
Available Commands
| Command | Description |
|---|---|
signup | Sign up a new user |
agents | List available agents |
tools | List available tools |
kbs | List available knowledge bases |
memories | List available memoriy modules |
personas | List available personas |
orchestrators | List available orchestrators |
environments | List available environments |
nodes | List available nodes |
create | Create a new module deployment |
run | Execute run command |
inference | Run model inference |
storage | Interact with storage |
publish | Publish agents |
Global Options
-h, --help Show help message and exit
User Management
Create a private key (for interacting with Naptha Nodes) and a username and password (for interacting with the Naptha Hub):
naptha signup # Create new account and generate a private key
This command will prompt you to create an account by entering a username and password. It also automatically generates a private key and stores it in your .env file.
The HUB_USERNAME and HUB_PASSWORD will be automatically stored in your .env file, and the PRIVATE_KEY in a .pem file.
Command to interact with the Naptha Hub
The HUB_URL should be set in your .env file e.g. HUB_URL=wss://hub.naptha.ai/rpc, along with your HUB_USERNAME and HUB_PASSWORD.
Agents
Explore available agents that you can run on a node:
naptha agents
For each agent, you will see a url where you can check out the code.
Register an agent:
naptha agents agent_name -p "description='about' parameters='{tool_name: str, tool_input_data: str}' module_url='https://github.com/NapthaAI/<agent_name>'"
Update an agent:
naptha agents agent_name -u "module_version='v0.2'"
Delete an agent:
naptha agents -d agent_name
Tools
Explore available tools that you can use with agents:
naptha tools
For each tool, you will see a url where you can check out the code.
Register a New Tool
naptha tools tool_name -p "description='Tool description' parameters='{tool_input_1: str, tool_input_2: str}' module_url='ipfs://QmNer9SRKmJPv4Ae3vdVYo6eFjPcyJ8uZ2rRSYd3koT6jg'"
Update a Tool
naptha tools tool_name -u "module_version='v0.2'"
Delete a Tool
naptha tools -d tool_name
Knowledge Bases
You can explore available knowledge bases that you can use with agents:
naptha kbs
Register a New Knowledge Base Module on the Hub
naptha kbs kb_name -p "description='Knowledge Base description' parameters='{input_parameter_1: str, input_parameter_2: int}' module_url='ipfs://QmNer9SRKmJPv4Ae3vdVYo6eFjPcyJ8uZ2rRSYd3koT6jg'"
Update a Knowledge Base Module
naptha kbs kb_name -u "module_version='v0.2'"
Delete a Knowledge Base Module
naptha kbs -d kb_name
Memories
You can explore available memories that you can use with agents:
naptha memories
For each memory, you will see a url where you can check out the code.
Register a New Memory Module
naptha memories memory_name -p "description='Memory description' parameters='{input_parameter_1: str, input_parameter_2: int}' module_url='ipfs://folder_id'"
Update a Memory Module
naptha memories memory_name -u "module_version='v0.2'"
Delete a Memory Module
naptha memories -d memory_name
Personas
You can explore available personas that you can use with agents:
naptha personas # list all persona modules
For each persona, you will see a url where you can check out the data.
Register a New Persona
naptha personas persona_name -p "description='Persona description' module_url='ipfs://folder_id'"
Update a Persona
naptha personas persona_name -u "module_version='v0.2'"
Delete a Persona
naptha personas -d persona_name
Orchestrators
You can explore available agent orchestrators that you can run on a network of nodes:
naptha orchestrators
For each orchestrator, you will see a url where you can check out the code.
Register a New Agent Orchestrator
naptha orchestrators orchestrator_name -p "description='Orchestrator description' parameters='{input_parameter_1: str, input_parameter_2: int}' module_url='ipfs://folder_id'"
Update an Agent Orchestrator
naptha orchestrators orchestrator_name -u "module_version='v0.2'"
Delete an Agent Orchestrator
naptha orchestrators -d orchestrator_name
Environments
You can explore available environments that you can use with environments:
naptha environments # list all environment modules
Register a New Environment Module
naptha environments environment_name -p "description='Environment description' parameters='{input_parameter_1: str, input_parameter_2: int}' module_url='ipfs://folder_id'"
Update an Environment Module
naptha environments environment_name -u "module_version='v0.2'"
Delete an Environment Module
naptha environments -d environment_name
Nodes
See a list of available nodes on the network:
naptha nodes
Make note of a Node ID for running a workflow below.
Commands to interact with Naptha Nodes
The NODE_URL should be set in your .env file e.g. NODE_URL=https://node2.naptha.ai or NODE_URL=http://localhost:7001.
Create a module deployment on a Naptha Node
Create allows you to download and install the modules for a moudle without running first.
For simple modules, you can create a new module deployment on a node:
# usage: naptha create <module_type>:<module_name>
naptha create <module_type>:<module_name>
For example, to create a new knowledge base on a node:
naptha create kb:wikipedia_kb
For more complex modules like orchestrators, you can download and install the modules:
# usage: naptha create <module_type>:<module_name> --agent_modules "<agent_modules>" --worker_node_urls "<worker_node_urls>" --environment_modules "<environment_modules>" --environment_node_urls "<environment_node_urls>"
naptha create orchestrator:multiagent_chat --agent_modules "agent:simple_chat_agent,agent:simple_chat_agent" --worker_node_urls "node.naptha.ai,node1.naptha.ai" --environment_modules "environment:groupchat_environment" --environment_node_urls "node.naptha.ai"
You can modify the max_rounds of the orchestrator run from the default value of 10 by passing in a config object in the command line: --config '{"max_rounds": 5}'
Run a module on a Naptha Node
Run allows you to run a module on a node.
Run an Agent Module
Now you've found a node and a agent you'd like to run, so let's run it locally! You can use the commandline tool to connect with the node and run the workflow.
# usage: naptha run <agent_name> <agent args>
naptha run agent:hello_world_agent -p "firstname=sam surname=altman"
Try an agent that uses the local LLM running on your node:
naptha run agent:simple_chat_agent -p "tool_name='chat' tool_input_data='what is an ai agent?'"
Run a Tool Module
Now you've found a node and a tool you'd like to run, so let's run it locally! You can use the commandline tool to connect with the node and run the workflow.
# usage: naptha run <tool_name> -p "<tool args>"
naptha run tool:generate_image_tool -p "tool_name='generate_image_tool' tool_input_data='A beautiful image of a cat'"
Run an Agent that interacts with a Tool Module
# usage: naptha run <agent_name> -p "<agent args>" --tool_nodes "<tool_node_ips>"
naptha run agent:generate_image_agent -p "tool_name='generate_image_tool' prompt='A beautiful image of a cat'" --tool_nodes "node.naptha.ai"
Run a Knowledge Base Module
Initialize the content in the Knowledge Base:
naptha run kb:wikipedia_kb -p "func_name='init'"
Query the Knowledge Base Module:
naptha run kb:wikipedia_kb -p '{
"func_name": "run_query",
"func_input_data": {
"query": "Elon Musk"
}
}'
Run an Agent that interacts with a Knowledge Base
# usage: naptha run <agent_name> -p "<agent args>" --kb_nodes "<kb_node_ips>"
naptha run agent:wikipedia_agent -p "func_name='run_query' query='Elon Musk' question='Who is Elon Musk?'" --kb_nodes "node.naptha.ai"
Run a Memory Module
naptha run memory:cognitive_memory -p "func_name='init'"
Run an Agent Orchestrator Module
You can run the orchestrator module on hosted nodes using:
naptha run orchestrator:multiagent_chat -p "prompt='i would like to count up to ten, one number at a time. ill start. one.'" --worker_node_urls "node.naptha.ai,node1.naptha.ai" --environment_node_urls "node.naptha.ai"
Or on local nodes:
naptha run orchestrator:multiagent_chat -p "prompt='i would like to count up to ten, one number at a time. ill start. one.'" --worker_node_urls "localhost,localhost" --environment_node_urls "localhost"
Run an Environment Module
naptha run environment:groupchat_environment -p "function_name='get_global_state'"
Inference
The NODE_URL should be set in your .env file e.g. NODE_URL=https://node2.naptha.ai or NODE_URL=http://localhost:7001.
You can run inference on a node using the inference command:
naptha inference completions "How can we create scaling laws for multi-agent systems?" -m "hermes3:8b"
Storage Operations
The NODE_URL should be set in your .env file e.g. NODE_URL=https://node2.naptha.ai or NODE_URL=http://localhost:7001.
You can interact with storage quickly via the CLI using the naptha storage series of commands, followed by the storage provider type (e.g. db fs, ipfs).
For more comprehensive examples on quickly interacting with storage via the CLI, see the database, filesystem, and IPFS storage sections.
Database Storage
You can create a table in the database using:
naptha storage db create test_embeddings -d '{
"schema": {
"id": {"type": "TEXT", "primary_key": true},
"text": {"type": "TEXT", "required": true},
"embedding": {"type": "vector", "dimension": 3}
}
}'
You can create a row in the database using:
naptha storage db create test_embeddings -d '{
"data": {
"id": "1",
"text": "This is a test document",
"embedding": [0.1, 0.1, 0.1]
}
}'
You can read from the database using:
naptha storage db read test_embeddings -o '{
"columns": ["text", "id"]
}'
File System Storage
You can write to file storage using:
naptha storage fs create test_upload -f README.md
You can read from file storage using:
naptha storage fs read <agent_run_id>
Interact with IPFS through Node:
You can write to IPFS using:
naptha storage ipfs create test -f README.md
You can read from IPFS using:
naptha storage ipfs read <IPFS_HASH>
Need Help?
Community
🌐 naptha.ai - Check out our Website
💻 naptha/naptha - Contribute on GitHub
🤗 naptha/naptha - Join our HuggingFace Community
X @naptha_ai - Follow us on Twitter
⚡ @naptha_ai - Connect on Farcaster
📺 naptha.ai - Subscribe to our YouTube channel