🔧 CLI Tools¶
Powerful command-line interface for automation, CI/CD integration, and advanced LookAtni workflows.
Installation¶
Global Installation¶
# Install via npm
npm install -g lookatni-cli
# Install via yarn
yarn global add lookatni-cli
# Install via pnpm
pnpm add -g lookatni-cli
Local Project Installation¶
# Install as dev dependency
npm install --save-dev lookatni-cli
# Use with npx
npx lookatni-cli --help
Core Commands¶
Generate Markers¶
Create marker files from project directories:
# Basic generation
lookatni generate --source ./my-project --output project-markers.txt
# With filters
lookatni generate \
--source ./my-project \
--output markers.txt \
--include "src/**/*.ts,*.json" \
--exclude "node_modules/**,*.log"
# Advanced options
lookatni generate \
--source ./my-project \
--output markers.txt \
--preserve-structure \
--include-metadata \
--compress \
--verbose
Extract Files¶
Restore projects from marker files:
# Basic extraction
lookatni extract --input project-markers.txt --output ./restored
# Selective extraction
lookatni extract \
--input project-markers.txt \
--output ./components-only \
--filter "src/components/**"
# With conflict resolution
lookatni extract \
--input project-markers.txt \
--output ./project \
--overwrite \
--backup
Validate Markers¶
Verify marker file integrity:
# Quick validation
lookatni validate project-markers.txt
# Detailed validation
lookatni validate project-markers.txt \
--detailed \
--fix-suggestions \
--output-report validation-report.json
# Batch validation
lookatni validate *.txt --parallel=4
Advanced Commands¶
Project Analysis¶
Analyze project structure and dependencies:
# Analyze project
lookatni analyze --source ./my-project --output analysis.json
# Dependency graph
lookatni analyze --source ./my-project --graph-output deps.dot
# Size analysis
lookatni analyze --source ./my-project --size-breakdown
Comparison Tools¶
Compare projects and marker files:
# Compare two marker files
lookatni diff markers-v1.txt markers-v2.txt
# Compare marker file with directory
lookatni diff markers.txt ./project-directory
# Generate change report
lookatni diff markers-v1.txt markers-v2.txt --report changes.json
Transformation Tools¶
Convert and transform marker files:
# Convert to different format
lookatni convert markers.txt --format json --output project.json
# Merge multiple marker files
lookatni merge markers-1.txt markers-2.txt --output combined.txt
# Split large marker file
lookatni split large-markers.txt --by-directory --output-dir ./split
Configuration¶
Global Configuration¶
# Set global defaults
lookatni config set default.output ./markers
lookatni config set default.include "src/**,docs/**"
lookatni config set default.exclude "node_modules/**,*.log"
# View current config
lookatni config list
# Reset to defaults
lookatni config reset
Project Configuration¶
Create .lookatni.json in your project:
{
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"*.json",
"*.md"
],
"exclude": [
"node_modules/**",
"dist/**",
"*.log",
".git/**"
],
"output": {
"directory": "./markers",
"filename": "{{project}}-{{timestamp}}.txt",
"compress": true
},
"validation": {
"strict": true,
"maxFileSize": "10MB",
"allowedExtensions": [".ts", ".tsx", ".js", ".jsx", ".json", ".md"]
}
}
Automation Examples¶
Build Scripts¶
Add to your package.json:
{
"scripts": {
"markers:generate": "lookatni generate --source src --output dist/markers.txt",
"markers:validate": "lookatni validate dist/markers.txt --strict",
"markers:extract": "lookatni extract --input markers.txt --output temp/project",
"markers:all": "npm run markers:generate && npm run markers:validate"
}
}
CI/CD Integration¶
GitHub Actions¶
name: Generate and Validate Markers
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
markers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install LookAtni CLI
run: npm install -g lookatni-cli
- name: Generate markers
run: lookatni generate --source . --output project-markers.txt
- name: Validate markers
run: lookatni validate project-markers.txt --strict
- name: Upload markers artifact
uses: actions/upload-artifact@v3
with:
name: project-markers
path: project-markers.txt
GitLab CI¶
stages:
- build
- validate
- deploy
generate_markers:
stage: build
script:
- npm install -g lookatni-cli
- lookatni generate --source . --output project-markers.txt
artifacts:
paths:
- project-markers.txt
expire_in: 1 week
validate_markers:
stage: validate
dependencies:
- generate_markers
script:
- npm install -g lookatni-cli
- lookatni validate project-markers.txt --strict --output-report validation.json
artifacts:
reports:
junit: validation.json
Docker Integration¶
FROM node:18-alpine
# Install LookAtni CLI
RUN npm install -g lookatni-cli
# Copy project
COPY . /app
WORKDIR /app
# Generate markers
RUN lookatni generate --source . --output /output/project-markers.txt
# Validate
RUN lookatni validate /output/project-markers.txt --strict
# Set output volume
VOLUME ["/output"]
Scripting Examples¶
Bash Automation¶
#!/bin/bash
# Project backup script
PROJECT_NAME=$(basename "$PWD")
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
OUTPUT_FILE="${PROJECT_NAME}_${TIMESTAMP}.txt"
echo "Creating project markers for $PROJECT_NAME..."
# Generate markers
lookatni generate \
--source . \
--output "$OUTPUT_FILE" \
--include "src/**,docs/**,*.json,*.md" \
--exclude "node_modules/**,dist/**,*.log" \
--compress \
--verbose
# Validate
if lookatni validate "$OUTPUT_FILE" --strict; then
echo "✅ Markers created successfully: $OUTPUT_FILE"
# Upload to cloud storage (example)
# aws s3 cp "$OUTPUT_FILE" "s3://my-backups/projects/"
else
echo "❌ Validation failed"
exit 1
fi
PowerShell Automation¶
# Project deployment script
param(
[string]$MarkerFile,
[string]$DeploymentPath = "./deployment",
[switch]$Backup
)
# Extract project
Write-Host "Extracting project from $MarkerFile..."
$extractArgs = @(
"extract"
"--input", $MarkerFile
"--output", $DeploymentPath
)
if ($Backup) {
$extractArgs += "--backup"
}
& lookatni @extractArgs
# Validate extraction
if (lookatni validate $MarkerFile --extracted $DeploymentPath) {
Write-Host "✅ Deployment successful"
} else {
Write-Host "❌ Deployment validation failed"
exit 1
}
API Integration¶
Node.js Module¶
const { LookAtniCLI } = require('lookatni-cli');
// Programmatic usage
async function createProjectBackup(projectPath) {
const cli = new LookAtniCLI();
// Generate markers
const result = await cli.generate({
source: projectPath,
output: `backup-${Date.now()}.txt`,
include: ['src/**', 'docs/**'],
exclude: ['node_modules/**']
});
// Validate
const validation = await cli.validate(result.outputFile);
if (validation.isValid) {
console.log('✅ Backup created successfully');
return result.outputFile;
} else {
throw new Error('Validation failed');
}
}
Python Integration¶
import subprocess
import json
def generate_markers(source_dir, output_file):
"""Generate markers using LookAtni CLI"""
cmd = [
'lookatni', 'generate',
'--source', source_dir,
'--output', output_file,
'--format', 'json'
]
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode == 0:
return json.loads(result.stdout)
else:
raise Exception(f"Generation failed: {result.stderr}")
def validate_markers(marker_file):
"""Validate marker file"""
cmd = ['lookatni', 'validate', marker_file, '--json']
result = subprocess.run(cmd, capture_output=True, text=True)
return json.loads(result.stdout)
Performance Tips¶
Large Projects¶
# Use parallel processing
lookatni generate --source . --output markers.txt --parallel=8
# Stream large files
lookatni generate --source . --output markers.txt --stream
# Compress output
lookatni generate --source . --output markers.txt --compress
Memory Optimization¶
# Limit memory usage
lookatni generate --source . --output markers.txt --max-memory=2GB
# Use temporary files for large projects
lookatni generate --source . --output markers.txt --use-temp
Next: Explore Configuration Guide for detailed setup options.