WIP: A simple cli for daily tangled use cases and AI integration. This is for my personal use right now, but happy if others get mileage from it! :)
1#!/usr/bin/env node
2import { readFileSync } from 'node:fs';
3import { dirname, join } from 'node:path';
4import { fileURLToPath } from 'node:url';
5import { Command } from 'commander';
6import { createAuthCommand } from './commands/auth.js';
7import { createConfigCommand } from './commands/config.js';
8import { createContextCommand } from './commands/context.js';
9import { createIssueCommand } from './commands/issue.js';
10import { createSshKeyCommand } from './commands/ssh-key.js';
11
12// Get package.json for version
13const __filename = fileURLToPath(import.meta.url);
14const __dirname = dirname(__filename);
15const packageJson = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8'));
16
17const program = new Command();
18
19program
20 .name('tangled')
21 .description('A CLI for Tangled.org - AT Protocol-based Git hosting')
22 .version(packageJson.version, '-v, --version', 'Output the current version');
23
24// Register commands
25program.addCommand(createAuthCommand());
26program.addCommand(createSshKeyCommand());
27program.addCommand(createConfigCommand());
28program.addCommand(createContextCommand());
29program.addCommand(createIssueCommand());
30
31program.parse(process.argv);