wordlift-cli
Version:
WordLift CLI - Your AI SEO Assistant powered by Google Gemini. Agentic SEO workflows with Agent Skills support, WordLift MCP integration, knowledge graphs, and intelligent content optimization for modern content creators.
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();