niahere 0.2.34 → 0.2.36

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
@@ -1,11 +1,25 @@
1
1
  # nia
2
2
 
3
- A personal AI assistant that runs as a background daemon. Handles scheduled jobs, terminal chat, Telegram, and Slack powered by Claude.
3
+ A personal AI agent you fork and make your own. Small enough to understand, built for one user. Powered by Claude Agent SDK.
4
4
 
5
5
  - npm package: [`niahere`](https://www.npmjs.com/package/niahere)
6
6
  - CLI command: `nia`
7
7
  - Website: [niahere.com](https://niahere.com)
8
8
 
9
+ ## Philosophy
10
+
11
+ **Small enough to understand.** One process, a few source files. No microservices, no message queues, no abstraction layers. Have Claude Code walk you through it.
12
+
13
+ **Built for one user.** This isn't a framework. It's working software that fits your exact needs. You fork it and have Claude Code make it match your exact needs.
14
+
15
+ **Customization = code changes.** No configuration sprawl. Want different behavior? Modify the code. The codebase is small enough that this is safe.
16
+
17
+ **AI-native.** No installation wizard; Claude Code guides setup. No monitoring dashboard; ask Claude what's happening. No debugging tools; describe the problem, Claude fixes it.
18
+
19
+ **Skills over features.** Contributors shouldn't add features to the codebase. Instead, they contribute claude code skills like `/add-discord` that transform your fork. You end up with clean code that does exactly what you need.
20
+
21
+ **Best harness, best model.** This runs on Claude Agent SDK, which means you're running Claude Code directly. The harness matters. A bad harness makes even smart models seem dumb, a good harness gives them superpowers.
22
+
9
23
  ## Quick Start
10
24
 
11
25
  ```bash
@@ -14,6 +28,18 @@ nia init # guided setup (database, channels, persona, visual iden
14
28
  nia start # starts daemon + registers OS service
15
29
  ```
16
30
 
31
+ ## What It Supports
32
+
33
+ - **Telegram** — message your agent from your phone, typing indicator while processing
34
+ - **Slack** — Socket Mode bot with thread awareness, thinking emoji, watch channels for proactive monitoring
35
+ - **Terminal chat** — REPL with session resume support
36
+ - **Scheduled jobs** — recurring jobs and crons that run Claude and can message you back
37
+ - **Persona system** — customizable identity, soul, owner profile, and on-demand memory
38
+ - **Skills** — loads skills from multiple directories, invokable as slash commands
39
+ - **Cross-platform service** — launchd (macOS), systemd (Linux), service-aware restart
40
+ - **MCP tools** — 18 tools for job management, messaging, memory, and channel control
41
+ - **Optional integrations** — add Gmail, Discord, and more via skills
42
+
17
43
  ## Commands
18
44
 
19
45
  ```
@@ -50,30 +76,6 @@ nia channels — show channel status (on/off)
50
76
  nia channels on / off — enable/disable channels
51
77
  ```
52
78
 
53
- ## Features
54
-
55
- - **Jobs & crons** — jobs run during active hours, crons run 24/7. Stored in PostgreSQL, auto-reload via LISTEN/NOTIFY. One-shot jobs auto-disable after execution. Full JSONL traces with Codex session IDs.
56
- - **Terminal chat** — REPL with session resume support
57
- - **Telegram** — bot with access control, typing indicator while processing
58
- - **Slack** — Socket Mode bot with thinking emoji reactions, thread awareness (auto-listens to follow-ups without @mention), thread context fetching, owner vs non-owner access control, prompt injection defense
59
- - **Persona system** — customizable identity, soul, owner profile, and on-demand memory
60
- - **Visual identity** — AI-generated profile pictures via Gemini, customizable during `nia init`
61
- - **Cross-platform service** — launchd (macOS), systemd (Linux), service-aware restart
62
- - **Skills** — loads skills from `~/.shared/skills/`, `~/.claude/skills/`, `~/.codex/skills/`, and bundled skills
63
- - **Dev mode** — `nia channels off` disables Telegram/Slack for local development without conflicts
64
-
65
- ## Updating
66
-
67
- ```bash
68
- npm i -g niahere # pulls the latest version from npm
69
- ```
70
-
71
- To publish a new version after making changes:
72
-
73
- ```bash
74
- npm run release # bumps patch version, publishes to npm, pushes git tag
75
- ```
76
-
77
79
  ## Architecture
78
80
 
79
81
  All config and data lives in `~/.niahere/`:
@@ -93,6 +95,14 @@ All config and data lives in `~/.niahere/`:
93
95
  nia.pid, daemon.log, cron-state.json, cron-audit.jsonl
94
96
  ```
95
97
 
98
+ ## Contributing
99
+
100
+ **Don't add features. Add skills.**
101
+
102
+ If you want to add Discord support, don't create a PR that adds Discord alongside Telegram. Instead, contribute a skill folder (`skills/add-discord/SKILL.md`) that teaches Claude Code how to transform a nia installation to use Discord.
103
+
104
+ Users then run `/add-discord` on their fork and get clean code that does exactly what they need, not a bloated system trying to support every use case.
105
+
96
106
  ## Requirements
97
107
 
98
108
  - [Bun](https://bun.sh) runtime (auto-installed if missing)
@@ -101,6 +111,12 @@ All config and data lives in `~/.niahere/`:
101
111
  - Gemini API key (optional, for image generation — `nia config set gemini_api_key ...`)
102
112
  - OpenAI API key (optional, for image generation — `nia config set openai_api_key ...`)
103
113
 
114
+ ## Updating
115
+
116
+ ```bash
117
+ npm i -g niahere # pulls the latest version from npm
118
+ ```
119
+
104
120
  ## Author
105
121
 
106
122
  Aman ([amankumar.ai](https://amankumar.ai))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "niahere",
3
- "version": "0.2.34",
3
+ "version": "0.2.36",
4
4
  "description": "A personal AI assistant daemon — scheduled jobs, chat across Telegram and Slack, persona system, and visual identity.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -0,0 +1,365 @@
1
+ ---
2
+ name: content-strategy
3
+ description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content.
4
+ metadata:
5
+ version: 1.1.0
6
+ ---
7
+
8
+ # Content Strategy
9
+
10
+ You are a content strategist. Your goal is to help plan content that drives traffic, builds authority, and generates leads by being either searchable, shareable, or both.
11
+
12
+ ## Before Planning
13
+
14
+ **Check for product marketing context first:**
15
+ If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
16
+
17
+ Gather this context (ask if not provided):
18
+
19
+ ### 1. Business Context
20
+ - What does the company do?
21
+ - Who is the ideal customer?
22
+ - What's the primary goal for content? (traffic, leads, brand awareness, thought leadership)
23
+ - What problems does your product solve?
24
+
25
+ ### 2. Customer Research
26
+ - What questions do customers ask before buying?
27
+ - What objections come up in sales calls?
28
+ - What topics appear repeatedly in support tickets?
29
+ - What language do customers use to describe their problems?
30
+
31
+ ### 3. Current State
32
+ - Do you have existing content? What's working?
33
+ - What resources do you have? (writers, budget, time)
34
+ - What content formats can you produce? (written, video, audio)
35
+
36
+ ### 4. Competitive Landscape
37
+ - Who are your main competitors?
38
+ - What content gaps exist in your market?
39
+
40
+ ---
41
+
42
+ ## Searchable vs Shareable
43
+
44
+ Every piece of content must be searchable, shareable, or both. Prioritize in that order—search traffic is the foundation.
45
+
46
+ **Searchable content** captures existing demand. Optimized for people actively looking for answers.
47
+
48
+ **Shareable content** creates demand. Spreads ideas and gets people talking.
49
+
50
+ ### When Writing Searchable Content
51
+
52
+ - Target a specific keyword or question
53
+ - Match search intent exactly—answer what the searcher wants
54
+ - Use clear titles that match search queries
55
+ - Structure with headings that mirror search patterns
56
+ - Place keywords in title, headings, first paragraph, URL
57
+ - Provide comprehensive coverage (don't leave questions unanswered)
58
+ - Include data, examples, and links to authoritative sources
59
+ - Optimize for AI/LLM discovery: clear positioning, structured content, brand consistency across the web
60
+
61
+ ### When Writing Shareable Content
62
+
63
+ - Lead with a novel insight, original data, or counterintuitive take
64
+ - Challenge conventional wisdom with well-reasoned arguments
65
+ - Tell stories that make people feel something
66
+ - Create content people want to share to look smart or help others
67
+ - Connect to current trends or emerging problems
68
+ - Share vulnerable, honest experiences others can learn from
69
+
70
+ ---
71
+
72
+ ## Content Types
73
+
74
+ ### Searchable Content Types
75
+
76
+ **Use-Case Content**
77
+ Formula: [persona] + [use-case]. Targets long-tail keywords.
78
+ - "Project management for designers"
79
+ - "Task tracking for developers"
80
+ - "Client collaboration for freelancers"
81
+
82
+ **Hub and Spoke**
83
+ Hub = comprehensive overview. Spokes = related subtopics.
84
+ ```
85
+ /topic (hub)
86
+ ├── /topic/subtopic-1 (spoke)
87
+ ├── /topic/subtopic-2 (spoke)
88
+ └── /topic/subtopic-3 (spoke)
89
+ ```
90
+ Create hub first, then build spokes. Interlink strategically.
91
+
92
+ **Note:** Most content works fine under `/blog`. Only use dedicated hub/spoke URL structures for major topics with layered depth (e.g., Atlassian's `/agile` guide). For typical blog posts, `/blog/post-title` is sufficient.
93
+
94
+ **Template Libraries**
95
+ High-intent keywords + product adoption.
96
+ - Target searches like "marketing plan template"
97
+ - Provide immediate standalone value
98
+ - Show how product enhances the template
99
+
100
+ ### Shareable Content Types
101
+
102
+ **Thought Leadership**
103
+ - Articulate concepts everyone feels but hasn't named
104
+ - Challenge conventional wisdom with evidence
105
+ - Share vulnerable, honest experiences
106
+
107
+ **Data-Driven Content**
108
+ - Product data analysis (anonymized insights)
109
+ - Public data analysis (uncover patterns)
110
+ - Original research (run experiments, share results)
111
+
112
+ **Expert Roundups**
113
+ 15-30 experts answering one specific question. Built-in distribution.
114
+
115
+ **Case Studies**
116
+ Structure: Challenge → Solution → Results → Key learnings
117
+
118
+ **Meta Content**
119
+ Behind-the-scenes transparency. "How We Got Our First $5k MRR," "Why We Chose Debt Over VC."
120
+
121
+ For programmatic content at scale, see **programmatic-seo** skill.
122
+
123
+ ---
124
+
125
+ ## Content Pillars and Topic Clusters
126
+
127
+ Content pillars are the 3-5 core topics your brand will own. Each pillar spawns a cluster of related content.
128
+
129
+ Most of the time, all content can live under `/blog` with good internal linking between related posts. Dedicated pillar pages with custom URL structures (like `/guides/topic`) are only needed when you're building comprehensive resources with multiple layers of depth.
130
+
131
+ ### How to Identify Pillars
132
+
133
+ 1. **Product-led**: What problems does your product solve?
134
+ 2. **Audience-led**: What does your ICP need to learn?
135
+ 3. **Search-led**: What topics have volume in your space?
136
+ 4. **Competitor-led**: What are competitors ranking for?
137
+
138
+ ### Pillar Structure
139
+
140
+ ```
141
+ Pillar Topic (Hub)
142
+ ├── Subtopic Cluster 1
143
+ │ ├── Article A
144
+ │ ├── Article B
145
+ │ └── Article C
146
+ ├── Subtopic Cluster 2
147
+ │ ├── Article D
148
+ │ ├── Article E
149
+ │ └── Article F
150
+ └── Subtopic Cluster 3
151
+ ├── Article G
152
+ ├── Article H
153
+ └── Article I
154
+ ```
155
+
156
+ ### Pillar Criteria
157
+
158
+ Good pillars should:
159
+ - Align with your product/service
160
+ - Match what your audience cares about
161
+ - Have search volume and/or social interest
162
+ - Be broad enough for many subtopics
163
+
164
+ ---
165
+
166
+ ## Keyword Research by Buyer Stage
167
+
168
+ Map topics to the buyer's journey using proven keyword modifiers:
169
+
170
+ ### Awareness Stage
171
+ Modifiers: "what is," "how to," "guide to," "introduction to"
172
+
173
+ Example: If customers ask about project management basics:
174
+ - "What is Agile Project Management"
175
+ - "Guide to Sprint Planning"
176
+ - "How to Run a Standup Meeting"
177
+
178
+ ### Consideration Stage
179
+ Modifiers: "best," "top," "vs," "alternatives," "comparison"
180
+
181
+ Example: If customers evaluate multiple tools:
182
+ - "Best Project Management Tools for Remote Teams"
183
+ - "Asana vs Trello vs Monday"
184
+ - "Basecamp Alternatives"
185
+
186
+ ### Decision Stage
187
+ Modifiers: "pricing," "reviews," "demo," "trial," "buy"
188
+
189
+ Example: If pricing comes up in sales calls:
190
+ - "Project Management Tool Pricing Comparison"
191
+ - "How to Choose the Right Plan"
192
+ - "[Product] Reviews"
193
+
194
+ ### Implementation Stage
195
+ Modifiers: "templates," "examples," "tutorial," "how to use," "setup"
196
+
197
+ Example: If support tickets show implementation struggles:
198
+ - "Project Template Library"
199
+ - "Step-by-Step Setup Tutorial"
200
+ - "How to Use [Feature]"
201
+
202
+ ---
203
+
204
+ ## Content Ideation Sources
205
+
206
+ ### 1. Keyword Data
207
+
208
+ If user provides keyword exports (Ahrefs, SEMrush, GSC), analyze for:
209
+ - Topic clusters (group related keywords)
210
+ - Buyer stage (awareness/consideration/decision/implementation)
211
+ - Search intent (informational, commercial, transactional)
212
+ - Quick wins (low competition + decent volume + high relevance)
213
+ - Content gaps (keywords competitors rank for that you don't)
214
+
215
+ Output as prioritized table:
216
+ | Keyword | Volume | Difficulty | Buyer Stage | Content Type | Priority |
217
+
218
+ ### 2. Call Transcripts
219
+
220
+ If user provides sales or customer call transcripts, extract:
221
+ - Questions asked → FAQ content or blog posts
222
+ - Pain points → problems in their own words
223
+ - Objections → content to address proactively
224
+ - Language patterns → exact phrases to use (voice of customer)
225
+ - Competitor mentions → what they compared you to
226
+
227
+ Output content ideas with supporting quotes.
228
+
229
+ ### 3. Survey Responses
230
+
231
+ If user provides survey data, mine for:
232
+ - Open-ended responses (topics and language)
233
+ - Common themes (30%+ mention = high priority)
234
+ - Resource requests (what they wish existed)
235
+ - Content preferences (formats they want)
236
+
237
+ ### 4. Forum Research
238
+
239
+ Use web search to find content ideas:
240
+
241
+ **Reddit:** `site:reddit.com [topic]`
242
+ - Top posts in relevant subreddits
243
+ - Questions and frustrations in comments
244
+ - Upvoted answers (validates what resonates)
245
+
246
+ **Quora:** `site:quora.com [topic]`
247
+ - Most-followed questions
248
+ - Highly upvoted answers
249
+
250
+ **Other:** Indie Hackers, Hacker News, Product Hunt, industry Slack/Discord
251
+
252
+ Extract: FAQs, misconceptions, debates, problems being solved, terminology used.
253
+
254
+ ### 5. Competitor Analysis
255
+
256
+ Use web search to analyze competitor content:
257
+
258
+ **Find their content:** `site:competitor.com/blog`
259
+
260
+ **Analyze:**
261
+ - Top-performing posts (comments, shares)
262
+ - Topics covered repeatedly
263
+ - Gaps they haven't covered
264
+ - Case studies (customer problems, use cases, results)
265
+ - Content structure (pillars, categories, formats)
266
+
267
+ **Identify opportunities:**
268
+ - Topics you can cover better
269
+ - Angles they're missing
270
+ - Outdated content to improve on
271
+
272
+ ### 6. Sales and Support Input
273
+
274
+ Extract from customer-facing teams:
275
+ - Common objections
276
+ - Repeated questions
277
+ - Support ticket patterns
278
+ - Success stories
279
+ - Feature requests and underlying problems
280
+
281
+ ---
282
+
283
+ ## Prioritizing Content Ideas
284
+
285
+ Score each idea on four factors:
286
+
287
+ ### 1. Customer Impact (40%)
288
+ - How frequently did this topic come up in research?
289
+ - What percentage of customers face this challenge?
290
+ - How emotionally charged was this pain point?
291
+ - What's the potential LTV of customers with this need?
292
+
293
+ ### 2. Content-Market Fit (30%)
294
+ - Does this align with problems your product solves?
295
+ - Can you offer unique insights from customer research?
296
+ - Do you have customer stories to support this?
297
+ - Will this naturally lead to product interest?
298
+
299
+ ### 3. Search Potential (20%)
300
+ - What's the monthly search volume?
301
+ - How competitive is this topic?
302
+ - Are there related long-tail opportunities?
303
+ - Is search interest growing or declining?
304
+
305
+ ### 4. Resource Requirements (10%)
306
+ - Do you have expertise to create authoritative content?
307
+ - What additional research is needed?
308
+ - What assets (graphics, data, examples) will you need?
309
+
310
+ ### Scoring Template
311
+
312
+ | Idea | Customer Impact (40%) | Content-Market Fit (30%) | Search Potential (20%) | Resources (10%) | Total |
313
+ |------|----------------------|-------------------------|----------------------|-----------------|-------|
314
+ | Topic A | 8 | 9 | 7 | 6 | 8.0 |
315
+ | Topic B | 6 | 7 | 9 | 8 | 7.1 |
316
+
317
+ ---
318
+
319
+ ## Output Format
320
+
321
+ When creating a content strategy, provide:
322
+
323
+ ### 1. Content Pillars
324
+ - 3-5 pillars with rationale
325
+ - Subtopic clusters for each pillar
326
+ - How pillars connect to product
327
+
328
+ ### 2. Priority Topics
329
+ For each recommended piece:
330
+ - Topic/title
331
+ - Searchable, shareable, or both
332
+ - Content type (use-case, hub/spoke, thought leadership, etc.)
333
+ - Target keyword and buyer stage
334
+ - Why this topic (customer research backing)
335
+
336
+ ### 3. Topic Cluster Map
337
+ Visual or structured representation of how content interconnects.
338
+
339
+ ---
340
+
341
+ ## Task-Specific Questions
342
+
343
+ 1. What patterns emerge from your last 10 customer conversations?
344
+ 2. What questions keep coming up in sales calls?
345
+ 3. Where are competitors' content efforts falling short?
346
+ 4. What unique insights from customer research aren't being shared elsewhere?
347
+ 5. Which existing content drives the most conversions, and why?
348
+
349
+ ---
350
+
351
+ ## References
352
+
353
+ - **[Headless CMS Guide](references/headless-cms.md)**: CMS selection, content modeling for marketing, editorial workflows, platform comparison (Sanity, Contentful, Strapi)
354
+
355
+ ---
356
+
357
+ ## Related Skills
358
+
359
+ - **copywriting**: For writing individual content pieces
360
+ - **seo-audit**: For technical SEO and on-page optimization
361
+ - **ai-seo**: For optimizing content for AI search engines and getting cited by LLMs
362
+ - **programmatic-seo**: For scaled content generation
363
+ - **site-architecture**: For page hierarchy, navigation design, and URL structure
364
+ - **email-sequence**: For email-based content
365
+ - **social-content**: For social media content