Configure a Senso organization's brand kit (voice, tone, persona, writing rules) and content type templates. Use when the user wants to set up or update their brand identity, create content output formats, or prepare for content generation.
npx @senso-ai/shipables install senso-ai/senso-brand-setupConfigure the brand kit and content type templates that drive Senso's AI content generation. The brand kit defines who your organization is; content types define what formats you produce.
npm install -g @senso-ai/cli
export SENSO_API_KEY=<your-key>
Every senso command must include --output json --quiet.
The brand kit is an org-wide identity document that informs all AI content generation. It lives under a guidelines object with these canonical fields:
| Field | Type | Purpose |
|---|---|---|
brand_name | string | Your organization's name |
brand_domain | string | Primary website domain |
brand_description | string | What your organization does |
voice_and_tone | string | How your brand communicates |
author_persona | string | Who the content is written as |
global_writing_rules | string[] | Array of rules applied to all generated content |
Always read before writing to understand what's already configured:
senso brand-kit get --output json --quiet
Use set for first-time setup or when you want to replace everything. This overwrites all existing fields — always get first to avoid losing data.
senso brand-kit set --data '{
"guidelines": {
"brand_name": "Acme Corp",
"brand_domain": "acme.com",
"brand_description": "Enterprise SaaS platform for project management",
"voice_and_tone": "Professional yet approachable. We explain complex topics simply without being condescending.",
"author_persona": "Senior product expert with 10+ years of industry experience",
"global_writing_rules": [
"Use active voice",
"Keep sentences under 25 words",
"Always include specific examples",
"Avoid jargon without explanation"
]
}
}' --output json --quiet
Use patch to update specific fields without touching others. This is the safer choice for targeted updates.
senso brand-kit patch --data '{
"guidelines": {
"voice_and_tone": "Casual and direct. Use contractions freely."
}
}' --output json --quiet
Only the fields you include are changed — all other fields are preserved.
| Scenario | Command | Why |
|---|---|---|
| First-time brand kit setup | set | No existing data to preserve |
| Update one or two fields | patch | Preserves everything else |
| Complete brand refresh | get → modify → set | Read first, then full replacement |
| Add a writing rule | get → append to array → set | Arrays must be sent in full |
Important: The guidelines field is a free-form JSON object. The six fields above are canonical (the content engine uses them), but you can add custom fields too — they'll be stored but may not affect generation.
Content types define the output format and structure for generated content. Each content type has a name and a configuration object.
senso content-types list --output json --quiet
senso content-types create --data '{
"name": "Blog Post",
"config": {
"template": "Write a comprehensive, SEO-optimized blog post that directly answers the question. Include an introduction, 3-5 subheadings with detailed sections, and a conclusion with a call to action.",
"cta_text": "Start your free trial",
"cta_destination": "https://acme.com/trial",
"writing_rules": [
"Target 800-1200 words",
"Include at least one bulleted list",
"End each section with a transition to the next"
]
}
}' --output json --quiet
| Field | Purpose |
|---|---|
template | Most important. The instruction that tells the AI what to generate. Be specific about format, length, and structure. |
cta_text | Call-to-action button text |
cta_destination | CTA target URL |
writing_rules | Array of rules specific to this content type (applied on top of global writing rules) |
senso content-types get <content_type_id> --output json --quiet
Both name and config are required — read first to preserve existing values:
senso content-types update <content_type_id> --data '{
"name": "Blog Post",
"config": {
"template": "Updated template instruction...",
"cta_text": "Learn more",
"cta_destination": "https://acme.com/learn",
"writing_rules": ["Updated rule 1", "Updated rule 2"]
}
}' --output json --quiet
Update only specific fields:
senso content-types patch <content_type_id> --data '{
"config": {
"template": "New template instruction only"
}
}' --output json --quiet
senso content-types delete <content_type_id> --output json --quiet
This cannot be undone.
When the user asks to "set up my brand" or similar, gather this information conversationally:
Then assemble the JSON and call senso brand-kit set.
Here are starting points for common content types:
FAQ Page:
Answer the question directly in 2-3 sentences, then expand with supporting details. Use a Q&A format with the original question as the heading.
Product Comparison:
Create a comparison page with an overview section, a feature-by-feature comparison table, pros and cons for each option, and a recommendation.
How-To Guide:
Write a step-by-step guide. Start with what the reader will accomplish, list prerequisites, then provide numbered steps with explanations. End with troubleshooting tips.
Landing Page Copy:
Write persuasive landing page copy with a headline, value proposition, 3 key benefits with supporting details, social proof section, and a strong call to action.
| HTTP Status | Meaning | Action |
|---|---|---|
| 401 | Invalid or missing API key | Check SENSO_API_KEY |
| 400 | Validation error | Check the JSON structure — guidelines must be an object, name is required for content types |
| 404 | Content type not found | Verify the ID with senso content-types list |
SENSO_API_KEYSenso API key for authenticating CLI commands