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
JavaScript
/**
* 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();