devpulse
Version:
A powerful terminal-based focus timer with enhanced notifications
52 lines (39 loc) ⢠1.43 kB
text/typescript
import chalk from "chalk";
import ora from "ora";
console.log(chalk.blue("š§ DevPulse Starting..."));
// CLI Args
const args = process.argv.slice(2);
const command = args[0];
const minutes = parseFloat(args[1] ?? "") || 25;
console.log(`Command: ${command}, Minutes: ${minutes}`);
if (command === "focus") {
console.log(chalk.green(`šÆ Starting ${minutes}-minute focus session...`));
const spinner = ora(`ā³ FOCUS for ${minutes} min`).start();
let seconds = Math.floor(minutes * 60);
const interval = setInterval(() => {
seconds--;
const m = Math.floor(seconds / 60);
const s = seconds % 60;
spinner.text = `ā³ ${chalk.green(m)}:${chalk.yellow(s < 10 ? '0' + s : s)}`;
if (seconds <= 0) {
clearInterval(interval);
spinner.succeed(`ā
Focus session complete! (${minutes} min)`);
// Simple notifications
console.log(chalk.bgRed.white.bold(" šØ TIMER COMPLETE! šØ "));
// Terminal bells
process.stdout.write("\x07\x07\x07");
process.exit(0);
}
}, 1000);
} else {
console.log(`
š§ DevPulse ā Terminal Focus Tracker (Bun)
Usage:
bun run src/index.ts focus [minutes] Start a focus session
bun run src/index.ts break [minutes] Start a break session
Examples:
bun run src/index.ts focus 1 # 1-minute test
bun run src/index.ts focus 25 # 25-minute session
`);
}