@elnora-ai/cli 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,6 +39,50 @@ npm install -g @elnora-ai/cli
39
39
  brew install elnora-ai/cli/elnora
40
40
  ```
41
41
 
42
+ ## Skills & Setup
43
+
44
+ After installing the CLI, configure your AI coding tools:
45
+
46
+ ```bash
47
+ elnora setup
48
+ ```
49
+
50
+ This auto-detects which tools you have installed and configures them:
51
+
52
+ - **Claude Code** — registers the `elnora-plugins` marketplace and enables 9 skills (`elnora-tasks`, `elnora-projects`, `elnora-files`, etc.) so you can use natural language.
53
+ - **Cursor / VS Code / Codex** — writes an MCP server config pointing at `https://mcp.elnora.ai/mcp` with your API key.
54
+
55
+ Target a specific tool: `elnora setup claude` · `elnora setup cursor` · `elnora setup vscode` · `elnora setup codex`.
56
+
57
+ ### What You Get in Claude Code
58
+
59
+ Once configured, restart Claude Code and try any natural-language request:
60
+
61
+ > "Use Elnora to generate a PCR protocol for BRCA1 exon 11"
62
+ > "Use Elnora to list my projects"
63
+ > "Use Elnora to optimize the protocol in task abc-123"
64
+
65
+ Claude will invoke the `elnora` CLI under the hood using the bundled skills. No need to memorize command syntax.
66
+
67
+ ### Where Everything Lives
68
+
69
+ | What | Where |
70
+ |------|-------|
71
+ | CLI binary (macOS/Linux) | `~/.local/bin/elnora` |
72
+ | CLI binary (Windows) | `%USERPROFILE%\.elnora\bin\elnora.exe` |
73
+ | Auth / profiles | `~/.elnora/profiles.toml` (mode 0600) |
74
+ | Claude Code skills | `~/.claude/plugins/marketplaces/elnora-plugins/elnora/skills/` (auto-updated) |
75
+ | Claude Code settings | `~/.claude/settings.json` — look for `elnora@elnora-plugins: true` |
76
+
77
+ ### Manual Plugin Setup
78
+
79
+ If `elnora setup claude` doesn't work for some reason, you can install the plugin manually:
80
+
81
+ 1. In Claude Code, run `/plugin`
82
+ 2. Choose "Add marketplace"
83
+ 3. Enter: `Elnora-AI/elnora-plugins`
84
+ 4. Run `/plugin` again → Plugins → Enable `elnora`
85
+
42
86
  ## Quick Start
43
87
 
44
88
  ```bash
package/dist/cli.js CHANGED
@@ -25,7 +25,7 @@ var VERSION, PRODUCTION_BASE_URL, BASE_URL, AI_SERVER_URL, ENDPOINTS, DEFAULT_HE
25
25
  var init_config = __esm({
26
26
  "src/lib/config.ts"() {
27
27
  "use strict";
28
- VERSION = true ? "1.3.3" : process.env.npm_package_version ?? "0.0.0-dev";
28
+ VERSION = true ? "1.3.5" : process.env.npm_package_version ?? "0.0.0-dev";
29
29
  PRODUCTION_BASE_URL = "https://platform.elnora.ai/api/v1";
30
30
  BASE_URL = process.env.ELNORA_API_URL ?? PRODUCTION_BASE_URL;
31
31
  AI_SERVER_URL = process.env.ELNORA_AI_SERVER_URL ?? "https://platform.elnora.ai/ai-server";
@@ -4147,11 +4147,11 @@ var CURSOR_DIR = join3(HOME, ".cursor");
4147
4147
  var CURSOR_MCP_GLOBAL = join3(HOME, ".cursor", "mcp.json");
4148
4148
  var VSCODE_DIR = join3(HOME, ".vscode");
4149
4149
  var CODEX_DIR = join3(HOME, ".codex");
4150
- var MARKETPLACE_NAME = "elnora-ai";
4150
+ var MARKETPLACE_NAME = "elnora-plugins";
4151
4151
  var MARKETPLACE_REPO = "Elnora-AI/elnora-plugins";
4152
4152
  var PLUGIN_ID = `elnora@${MARKETPLACE_NAME}`;
4153
- var LEGACY_PLUGIN_IDS = ["elnora@elnora-local"];
4154
- var LEGACY_MARKETPLACE_NAMES = ["elnora-local"];
4153
+ var LEGACY_PLUGIN_IDS = ["elnora@elnora-local", "elnora@elnora-ai"];
4154
+ var LEGACY_MARKETPLACE_NAMES = ["elnora-local", "elnora-ai"];
4155
4155
  function readJsonFile(path) {
4156
4156
  try {
4157
4157
  return JSON.parse(readFileSync5(path, "utf-8"));
@@ -4384,6 +4384,10 @@ function addSetupCommand(program2) {
4384
4384
  const platforms = installed.map((p) => p.name);
4385
4385
  runSetup(platforms, opts.profile);
4386
4386
  });
4387
+ program2.command("setup-claude").description("Set up Claude Code (alias for 'setup claude')").option("--profile <name>", "API key profile to use", "default").action((opts) => {
4388
+ console.error("");
4389
+ runSetup(["claude"], opts.profile);
4390
+ });
4387
4391
  }
4388
4392
 
4389
4393
  // src/commands/tasks/archive.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elnora-ai/cli",
3
- "version": "1.3.3",
3
+ "version": "1.3.5",
4
4
  "description": "Elnora AI Platform CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,6 +9,7 @@
9
9
  "main": "dist/cli.js",
10
10
  "files": [
11
11
  "dist/",
12
+ "scripts/postinstall.mjs",
12
13
  "README.md",
13
14
  "LICENSE"
14
15
  ],
@@ -53,6 +54,7 @@
53
54
  "vitest": "^4.1.2"
54
55
  },
55
56
  "scripts": {
57
+ "postinstall": "node scripts/postinstall.mjs",
56
58
  "build": "node scripts/build-npm.mjs",
57
59
  "build:binary": "node scripts/build.mjs --pkg",
58
60
  "dev": "tsx src/cli.ts",
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * npm postinstall — show setup instructions after `npm install -g @elnora-ai/cli`.
5
+ *
6
+ * Intentionally non-interactive: npm postinstall runs in contexts where stdin
7
+ * may not be available (CI, Docker, scripts). Interactive prompts belong in
8
+ * `elnora auth login` which the user runs manually after install.
9
+ */
10
+
11
+ // Skip in CI or when output is suppressed
12
+ if (process.env.CI || process.env.GITHUB_ACTIONS || !process.stderr.isTTY) {
13
+ process.exit(0);
14
+ }
15
+
16
+ const msg = `
17
+ ┌──────────────────────────────────────────────────────────────┐
18
+ │ │
19
+ │ Elnora CLI installed successfully! │
20
+ │ │
21
+ │ To get started, run: │
22
+ │ elnora auth login │
23
+ │ │
24
+ │ Set up your AI coding tools: │
25
+ │ elnora setup │
26
+ │ │
27
+ │ Documentation: │
28
+ │ https://github.com/Elnora-AI/elnora-cli │
29
+ │ │
30
+ └──────────────────────────────────────────────────────────────┘
31
+ `;
32
+
33
+ console.error(msg);