UNPKG

wordlift-cli

Version:

WordLift CLI - A customized CLI for WordLift SEO workflows with agent memory system and smart project directory detection

101 lines (83 loc) • 2.79 kB
#!/usr/bin/env node /** * Setup script for WordLift CLI */ const fs = require('fs'); const path = require('path'); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); console.log('šŸš€ Setting up WordLift CLI...\n'); function askQuestion(question) { return new Promise((resolve) => { rl.question(question, resolve); }); } async function setup() { try { // Check if .env file exists const envPath = path.join(__dirname, '.env'); let apiKey = ''; if (fs.existsSync(envPath)) { const envContent = fs.readFileSync(envPath, 'utf8'); const match = envContent.match(/GEMINI_API_KEY=(.+)/); if (match) { apiKey = match[1]; console.log('āœ… Found existing Gemini API key in .env file'); } } if (!apiKey) { console.log('šŸ”‘ Please provide your Gemini API key:'); console.log(' Get one at: https://aistudio.google.com/app/apikey\n'); apiKey = await askQuestion('Enter your Gemini API key: '); if (!apiKey.trim()) { console.error('āŒ API key is required'); process.exit(1); } // Write to .env file fs.writeFileSync(envPath, `GEMINI_API_KEY=${apiKey.trim()}\n`); console.log('āœ… API key saved to .env file'); } // Check if .gemini directory exists const geminiDir = path.join(__dirname, '.gemini'); if (!fs.existsSync(geminiDir)) { fs.mkdirSync(geminiDir, { recursive: true }); console.log('āœ… Created .gemini configuration directory'); } // Check if settings.json exists const settingsPath = path.join(geminiDir, 'settings.json'); if (!fs.existsSync(settingsPath)) { const defaultSettings = { "mcpServers": { "wordlift": { "command": "npx", "args": [ "mcp-remote@latest", "https://mcp.wordlift.io/sse" ], "timeout": 60000 } }, "contextFileName": "WORDLIFT.md", "autoAccept": true, "usageStatisticsEnabled": true }; fs.writeFileSync(settingsPath, JSON.stringify(defaultSettings, null, 2)); console.log('āœ… Created WordLift configuration file'); } console.log('\nāœ… WordLift CLI is ready to use!'); console.log('\nUsage:'); console.log(' wordlift-cli --help # Show help'); console.log(' wordlift-cli chat # Start chat session'); console.log(' wordlift-cli generate "text" # Generate content'); console.log('\nFor more information, check the WORDLIFT.md file.'); } catch (error) { console.error('āŒ Setup failed:', error.message); process.exit(1); } finally { rl.close(); } } setup();