roguelike-cli 1.3.2 → 1.3.4

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
@@ -24,11 +24,7 @@
24
24
  - **RPG Engine** — Tasks are quests. Completing them earns XP, unlocks achievements, and levels you up.
25
25
  - **AI Game Master** — Integrated AI helps decompose complex tasks and generates structured plans.
26
26
  - **Local-First** — Your data stays on your machine in simple folders and JSON files.
27
- - **Themeable** — Choose your adventure style: Fantasy, Space Opera, Star Wars, Cyberpunk, and more.
28
-
29
- ## Why Roguelike CLI?
30
-
31
- Most task managers are boring. We make deep work addictive by applying proven RPG mechanics to your daily workflow.
27
+ - **Customizable Rules** — Choose adventure style: Fantasy, Space Opera, Star Wars, Cyberpunk, and more.
32
28
 
33
29
  ## Install
34
30
 
@@ -37,27 +33,6 @@ npm i -g roguelike-cli
37
33
  rlc
38
34
  ```
39
35
 
40
- ## Folder Structure
41
-
42
- Every task is a folder. You can drop files directly into task folders — designs, docs, code, anything. Your file manager becomes your task manager.
43
-
44
- ```
45
- my-startup/
46
- ├── research/
47
- │ ├── market-analysis/
48
- │ │ └── competitors.xlsx <- attached file
49
- │ └── user-interviews/
50
- │ └── notes.md <- attached file
51
- ├── development/
52
- │ ├── backend-api/
53
- │ │ └── spec.yaml <- attached file
54
- │ └── frontend-ui/
55
- └── launch/
56
- └── marketing/
57
- ```
58
-
59
- Navigate with `cd`, view with `tree`, open in Finder with `open`. It's just folders.
60
-
61
36
  ## Quick Start
62
37
 
63
38
  ```
@@ -88,41 +63,33 @@ Created: launch-my-startup/
88
63
  [x] Boss Slayer: Defeat a boss
89
64
  ```
90
65
 
91
- ## Configuration
66
+ ## Folder Structure
92
67
 
93
- Run `init` to set up, or use `config` flags:
68
+ Every task is a folder. You can drop files directly into task folders — designs, docs, code, anything. Your file manager becomes your task manager.
94
69
 
95
70
  ```
96
- > config
97
-
98
- Provider: claude
99
- Model: claude-sonnet-4-20250514
100
- API Key: sk-ant-a...xxxx
101
- Storage: /Users/you/.rlc/workspace
102
- Theme: Fantasy RPG
103
- Rules: Use fantasy RPG language...
104
-
105
- Set with flags:
106
- config -k=<key> Set API key
107
- config -m=<model> Set model
108
- config -t=<theme> Set theme
109
- config -r="<rules>" Set custom rules
71
+ my-startup/
72
+ ├── research/
73
+ │ ├── market-analysis/
74
+ │ │ └── competitors.xlsx <- attached file
75
+ │ └── user-interviews/
76
+ │ └── notes.md <- attached file
77
+ ├── development/
78
+ │ ├── backend-api/
79
+ │ │ └── spec.yaml <- attached file
80
+ │ └── frontend-ui/
81
+ └── launch/
82
+ └── marketing/
110
83
  ```
111
84
 
112
- ### Default Settings
113
-
114
- | Setting | Default |
115
- |---------|---------|
116
- | Provider | Claude Sonnet 4.5 |
117
- | Storage | `~/.rlc/workspace` |
118
- | Theme | Default (no theme) |
85
+ Navigate with `cd`, view with `tree`, open in Finder with `open`. It's just folders.
119
86
 
120
- ## Themes (Rules)
87
+ ## Rules
121
88
 
122
- Themes change how the AI speaks. Set with `config -t=<theme>` or during `init`.
89
+ Rules change how the AI speaks. Set during `init` or with `config -R="<rules>"`.
123
90
 
124
- | Theme | Style |
125
- |-------|-------|
91
+ | Preset | Style |
92
+ |--------|-------|
126
93
  | `default` | Standard task manager language |
127
94
  | `fantasy` | Quests, dungeons, dragons, loot |
128
95
  | `space` | Missions, starships, commanders |
@@ -134,11 +101,38 @@ Themes change how the AI speaks. Set with `config -t=<theme>` or during `init`.
134
101
  ### Custom Rules
135
102
 
136
103
  ```
137
- > config -r="Speak like a medieval knight. Tasks are 'duties'. Use 'huzzah' for success."
104
+ > config -R="Speak like a medieval knight. Tasks are 'duties'. Use 'huzzah' for success."
138
105
  ```
139
106
 
140
107
  Or select "Custom" during `init` to enter your own rules.
141
108
 
109
+ ## Dungeon Map
110
+
111
+ ```
112
+ > map
113
+
114
+ #########################################
115
+ # # #
116
+ # [Research] # [Development] #
117
+ # x Analysis +---* Backend #
118
+ # x Interviews # * Frontend #
119
+ # # #
120
+ ##########+###########+#################
121
+ | |
122
+ ##########+###########+#################
123
+ # #
124
+ # [Launch] #
125
+ # * Marketing #
126
+ # @ SHIP IT! [BOSS] #
127
+ # #
128
+ #########################################
129
+
130
+ Legend: * Task x Done @ Boss + Door
131
+
132
+ > map --ai
133
+ (AI generates creative dungeon layout based on your tasks)
134
+ ```
135
+
142
136
  ## Commands
143
137
 
144
138
  ### Navigation
@@ -158,7 +152,7 @@ Or select "Custom" during `init` to enter your own rules.
158
152
  |---------|-------------|
159
153
  | `done` | Complete task (earns XP) |
160
154
  | `undo` | Undo last done |
161
- | `deadline <date>` | Set deadline |
155
+ | `dl <date>` | Set deadline (dl +3d, dl Jan 15) |
162
156
  | `boss` | Toggle boss (3x XP) |
163
157
  | `block [node]` | Block by task |
164
158
  | `unblock` | Remove block |
@@ -169,7 +163,8 @@ Or select "Custom" during `init` to enter your own rules.
169
163
  | Command | Description |
170
164
  |---------|-------------|
171
165
  | `stats` | XP, level, streaks |
172
- | `achievements` | Achievement list |
166
+ | `achievements` | Achievement list (infinite) |
167
+ | `inventory` | Loot collection |
173
168
  | `map` | Dungeon map |
174
169
  | `map --ai` | AI-generated map |
175
170
 
@@ -186,18 +181,24 @@ Or select "Custom" during `init` to enter your own rules.
186
181
  |---------|-------------|
187
182
  | `init` | Setup wizard |
188
183
  | `config` | View settings |
189
- | `config -k=<key>` | Set API key |
190
- | `config -m=<model>` | Set model |
191
- | `config -t=<theme>` | Set theme |
192
- | `config -r="<rules>"` | Custom rules |
184
+ | `config -K=<key>` | or `--key=<key>` |
185
+ | `config -M=<model>` | or `--model=<model>` |
186
+ | `config -R="<rules>"` | or `--rules="<rules>"` |
187
+
188
+ ### Clipboard
189
+
190
+ | Command | Description |
191
+ |---------|-------------|
192
+ | `<cmd> \| pbcopy` | Copy to clipboard (macOS) |
193
+ | `<cmd> \| clip` | Copy to clipboard (Windows) |
193
194
 
194
195
  ## Deadlines
195
196
 
196
197
  ```
197
- > deadline today # Due today
198
- > deadline tomorrow # Due tomorrow
199
- > deadline +3d # In 3 days
200
- > deadline Jan 15 # Specific date
198
+ > dl today # Due today
199
+ > dl tomorrow # Due tomorrow
200
+ > dl +3d # In 3 days
201
+ > deadline Jan 15 # Specific date
201
202
  ```
202
203
 
203
204
  Tree shows deadlines:
@@ -218,41 +219,70 @@ Tree shows deadlines:
218
219
 
219
220
  ## Achievements
220
221
 
221
- | Achievement | How to unlock |
222
- |-------------|---------------|
223
- | First Blood | Complete first task |
224
- | Getting Started | Complete 10 tasks |
225
- | Centurion | Complete 100 tasks |
226
- | Deep Diver | Task at depth 5+ |
227
- | Boss Slayer | Complete a boss |
228
- | Speedrunner | Same-day completion |
229
- | Streak Master | 7 day streak |
222
+ Achievements are infinite and level-based. Keep progressing to unlock more!
230
223
 
231
- ## Dungeon Map
224
+ | Category | Milestones |
225
+ |----------|------------|
226
+ | Tasks | 1, 10, 50, 100, 500, 1000, 2500, 5000... |
227
+ | Bosses | 1, 5, 10, 25, 50, 100... |
228
+ | Streaks | 3, 7, 14, 30, 60, 90, 180, 365 days |
229
+ | Depth | 3, 5, 7, 10, 15, 20 levels |
230
+ | Special | Speedrunner, Night Owl, Early Bird |
231
+
232
+ ## Loot System
233
+
234
+ Complete tasks to find loot! Higher level = rarer drops.
235
+
236
+ | Rarity | Drop Rate | Symbol |
237
+ |--------|-----------|--------|
238
+ | Common | ~25% | [.] |
239
+ | Uncommon | ~15% | [+] |
240
+ | Rare | ~8% | [*] |
241
+ | Epic | ~3% | [#] |
242
+ | Legendary | ~1% | [!] |
243
+
244
+ Bonus drops on:
245
+ - Level up: 3x chance
246
+ - Achievement: 2.5x chance
247
+ - Boss completion: 2x chance
232
248
 
233
249
  ```
234
- > map
250
+ > inventory
251
+
252
+ === Inventory (5 items) ===
253
+
254
+ Legendary:
255
+ [!] Excalibur
235
256
 
236
- ###########################################
237
- # # #
238
- # [Research] # [Development] #
239
- # x Analysis +---* Backend #
240
- # x Interviews # @ Deploy BOSS #
241
- # # #
242
- ##########+###########+###################
257
+ Rare:
258
+ [*] Ring of Protection
259
+ [*] Boots of Speed
260
+
261
+ Common:
262
+ [.] Health Potion
263
+ [.] Torch
243
264
  ```
244
265
 
245
- ## Clipboard
266
+ ## Supported Models
246
267
 
247
268
  ```
248
- > tree | pbcopy # macOS
249
- > tree | clip # Windows
269
+ claude-sonnet-4-20250514 (default)
270
+ claude-opus-4-20250514
271
+ gpt-4o
272
+ gpt-4-turbo
273
+ gemini-3-pro
274
+ gemini-2.0-flash
275
+ grok-beta
250
276
  ```
251
277
 
252
278
  ## Website
253
279
 
254
280
  **https://www.rlc.rocks**
255
281
 
282
+ **Open Source:** [GitHub](https://github.com/creative-ventures/roguelike-cli) | [npm](https://www.npmjs.com/package/roguelike-cli)
283
+
284
+ Designed by [Creative Ventures](https://www.cv.rocks)
285
+
256
286
  ## License
257
287
 
258
288
  MIT
@@ -128,7 +128,7 @@ async function initCommand(existingRl) {
128
128
  const apiKeyInput = await question(rl, keyPrompt);
129
129
  const apiKey = apiKeyInput.trim() || existingApiKey;
130
130
  if (!apiKey) {
131
- console.log('Warning: API key not set. You can set it later with: config -k <key>');
131
+ console.log('Warning: API key not set. You can set it later with: config -K=<key>');
132
132
  }
133
133
  else if (apiKeyInput.trim()) {
134
134
  console.log('API key saved');
@@ -136,8 +136,8 @@ async function initCommand(existingRl) {
136
136
  else {
137
137
  console.log('Using existing API key');
138
138
  }
139
- // 4. Theme/Rules selection
140
- console.log('\nSelect AI Theme (affects language style):');
139
+ // 4. Rules preset selection
140
+ console.log('\nSelect AI Rules (affects language style):');
141
141
  const presetKeys = Object.keys(config_1.RULES_PRESETS);
142
142
  presetKeys.forEach((key, index) => {
143
143
  console.log(` ${index + 1}. ${config_1.RULES_PRESETS[key].name}`);
@@ -190,7 +190,7 @@ async function initCommand(existingRl) {
190
190
  console.log(`Root directory: ${rootDir}`);
191
191
  console.log(`AI Provider: ${selectedProvider.name}`);
192
192
  console.log(`Model: ${selectedProvider.model}`);
193
- console.log(`Theme: ${config_1.RULES_PRESETS[selectedPreset]?.name || 'Custom'}\n`);
193
+ console.log(`Rules: ${config_1.RULES_PRESETS[selectedPreset]?.name || 'Custom'}\n`);
194
194
  }
195
195
  finally {
196
196
  if (shouldCloseRl) {
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RULES_PRESETS = void 0;
36
+ exports.RULES_PRESETS = exports.SUPPORTED_MODELS = void 0;
37
37
  exports.initConfig = initConfig;
38
38
  exports.saveConfig = saveConfig;
39
39
  exports.getConfig = getConfig;
@@ -41,7 +41,17 @@ exports.updateConfig = updateConfig;
41
41
  const fs = __importStar(require("fs"));
42
42
  const path = __importStar(require("path"));
43
43
  const os = __importStar(require("os"));
44
- // Preset rules for different themes
44
+ // Supported models for validation
45
+ exports.SUPPORTED_MODELS = [
46
+ 'claude-sonnet-4-20250514',
47
+ 'claude-opus-4-20250514',
48
+ 'gpt-4o',
49
+ 'gpt-4-turbo',
50
+ 'gemini-3-pro',
51
+ 'gemini-2.0-flash',
52
+ 'grok-beta',
53
+ ];
54
+ // Preset rules
45
55
  exports.RULES_PRESETS = {
46
56
  default: {
47
57
  name: 'Default (No theme)',