> ## Documentation Index
> Fetch the complete documentation index at: https://noorle.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI Workflows

> Common noorle CLI workflows for plugin development, login and token management, agent creation, version rollback, and CI/CD pipeline scripting

Common workflows using the Noorle CLI.

## Plugin Development Workflow

```bash theme={null}
# 1. Create project
noorle plugin new my-awesome-plugin --lang rust

# 2. Develop locally
cd my-awesome-plugin
# Edit src/lib.rs, noorle.yaml, etc.

# 3. Build
noorle plugin build
# Creates my-awesome-plugin.npack

# 4. Test locally
# (run tests, etc.)

# 5. Upload
noorle plugin push
# Version 1 created and active

# 6. Iterate
# Make changes
noorle plugin build
noorle plugin push
# Version 2 created

# 7. Manage versions
noorle plugin versions my-awesome-plugin
noorle plugin activate my-awesome-plugin --version 1
# Rollback if needed
```

## Authentication Workflow

```bash theme={null}
# First time - interactive login
noorle login
# Opens browser, user approves
# Token saved to ~/.noorle/token

# Check current token
noorle token show

# Logout when done
noorle logout

# Or use API key for scripts
export NOORLE_API_KEY=ak-...
noorle plugin list  # Uses API key

# Check current config
noorle config show
```

## Agent Creation Workflow

```bash theme={null}
# 1. List available plugins
noorle plugin list

# 2. Create agent
noorle agent create chatbot

# 3. Configure with plugins
noorle agent update chatbot --plugin my-plugin

# 4. Check agent
noorle agent info chatbot

# 5. List all agents
noorle agent list

# 6. Delete when done
noorle agent delete chatbot
```

## CI/CD Workflow

```bash theme={null}
#!/bin/bash

# CI pipeline for plugin
set -e

# 1. Build
noorle plugin build

# 2. Test
cargo test  # or pytest, npm test, etc.

# 3. Check size
ls -lh *.npack

# 4. Upload (only on release branch)
if [ "$GITHUB_REF" = "refs/heads/main" ]; then
  noorle plugin push --api-key $NOORLE_API_KEY
fi
```

## Backup and Recovery

```bash theme={null}
# 1. List all plugins
noorle plugin list --json > plugins_backup.json

# 2. List all agents
noorle agent list --json > agents_backup.json

# 3. Export plugin details
noorle plugin info my-plugin --json > my-plugin-details.json

# 4. For recovery, recreate from backup
# (manual process based on exported data)
```

## Automation

```bash theme={null}
# Upload multiple plugins
for plugin in plugin-*; do
  noorle plugin push -d $plugin
done

# Monitor plugin versions
watch -n 5 'noorle plugin list'

# Daily backup
0 2 * * * noorle plugin list --json > /backups/plugins-$(date +\%Y\%m\%d).json
```
