Skip to main content

Customizing Templates

Templates are starting points, not constraints. After deploying a workspace from any template, every aspect of your AI OS is fully editable — the agent personality, operational rules, installed skills, model routing, integrations, and heartbeat cycle. This guide walks through each customization area and how to make changes.

1. Agent Personality (SOUL.md)

SOUL.md defines who your agent is. It controls tone, priorities, communication style, values, and decision-making tendencies. Every agent reads this file at the start of every conversation.

How to Edit

  • Dashboard: Open your workspace at yourname.hubify.com and navigate to the SOUL.md editor
  • File: Edit directly at /data/SOUL.md on your workspace volume
  • CLI: hubify connect syncs local changes to cloud

Example SOUL.md

# Soul

You are Houston's AI chief of staff. You operate with high autonomy on
routine tasks and escalate only when a decision has irreversible consequences.

## Tone
- Direct, no filler. Say what matters.
- Default to action. Suggest a plan, don't ask what to do.
- Use technical language when appropriate — don't dumb things down.

## Priorities
1. Protect the founder's time above all else
2. Ship working output, not plans about output
3. Flag risks early — don't wait until things break

## Values
- Honesty over comfort. Surface bad news immediately.
- Ownership. If you start something, finish it.
- Learning. Extract a lesson from every failure.

## Communication
- Slack: concise, use threads
- Email drafts: professional but warm
- Internal notes: raw and direct

Tips for Writing Good SOUL.md Files

A strong SOUL.md is specific, not generic. “Be helpful and professional” tells the agent nothing useful. Instead, describe how your agent should behave differently from a default assistant — what it prioritizes, what tone it uses, what it should never do.
  • Be concrete about tone. “Direct, no filler” is better than “professional.”
  • Define priorities explicitly. Numbered lists force you to rank what matters.
  • Include anti-patterns. Tell the agent what NOT to do: “Never send a follow-up email without checking the CRM first.”
  • Keep it under 500 words. Agents process shorter, focused instructions more reliably than long documents.

2. Agent Instructions (AGENTS.md)

AGENTS.md defines operational rules for all connected agents in your workspace. While SOUL.md is about identity, AGENTS.md is about behavior — when to ask versus act autonomously, which tools to use, how to handle specific situations.

How to Edit

  • Dashboard: AGENTS.md editor in your workspace settings
  • File: Edit at /data/AGENTS.md
  • CLI: Local edits sync via hubify connect

Example AGENTS.md

# Agent Instructions

## Autonomy Rules
- Tasks under 15 minutes of effort: execute without asking
- Tasks that modify external systems (deploy, publish, send): draft first, wait for approval
- If you're unsure about scope: ask before starting

## Tool Usage
- Use GitHub API for all code operations (never shell git commands)
- Use Telegram for urgent notifications only
- Log all external API calls to memory

## Communication Channels
- Telegram: urgent alerts and quick questions
- Email: client-facing communication (always draft-only)
- Slack: internal team updates

## Memory Rules
- Write a daily summary to memory/ at end of each work session
- Extract learnings from any failed task
- Never store API keys or credentials in memory files

## Heartbeat Behavior
- On each heartbeat cycle, check HEARTBEAT.md for pending items
- Prioritize items marked as "blocking"
- Skip items marked as "low priority" if there's active work
AGENTS.md applies to all agents connected to your workspace — cloud agents, local agents, and any platform-specific agents (Claude Code, Cursor, etc.). Write instructions that are platform-agnostic.

3. Skills (skills/ directory)

Skills are the capabilities your agent has access to. Each template comes with pre-installed skills, but you can add, remove, and browse skills freely.

Adding Skills

# Install a skill from the registry
hubify install strava-sync

# Search for skills by keyword
hubify search "code review"

# Install a specific version
hubify install github-pr-reviewer@2.1.0

Removing Skills

# Uninstall a skill
hubify uninstall strava-sync

Browsing Available Skills

# Search by keyword
hubify search "fitness tracking"

# Browse via the web registry
# Visit hubify.com/skills
Skills are stored in the /data/skills/ directory. Each skill has its own subdirectory containing a SKILL.md file that describes what it does, its inputs, outputs, and execution instructions.
skills/
  strava-sync/
    SKILL.md
  github-pr-reviewer/
    SKILL.md
  telegram-topics/
    SKILL.md
You can also add and remove skills from the web dashboard. Navigate to the Skills section of your workspace to manage installed skills without the CLI.

4. Model Routing

Model routing lets you assign different AI models to different task types within your workspace. This allows you to optimize for cost and quality — use a powerful model for complex reasoning and a fast model for routine automation.

How to Configure

Model routing is defined in your HUB.yaml manifest:
models:
  default: "anthropic/claude-sonnet-4-6"
  routing:
    orchestrator: "anthropic/claude-sonnet-4-6"
    coder: "anthropic/claude-opus-4-6"
    reviewer: "anthropic/claude-sonnet-4-6"
    automation: "anthropic/claude-haiku-4-5"

When to Use Different Models

RoleRecommended ModelWhy
OrchestratorClaude SonnetBalances reasoning quality with speed for planning and coordination
CoderClaude OpusHighest quality for complex code generation and architecture decisions
ReviewerClaude SonnetGood enough for code review, PR summaries, and quality checks
AutomationClaude HaikuFast and cheap for high-volume routine tasks (notifications, formatting, data transforms)
ResearcherLarge-context modelUse models with large context windows for research and synthesis tasks

Cost vs. Quality Tradeoffs

  • Opus-tier models deliver the highest quality output but cost more per token. Use them for tasks where mistakes are expensive (code that ships to production, client-facing content).
  • Sonnet-tier models are the best general-purpose option. Default to these unless you have a specific reason to go higher or lower.
  • Haiku-tier models are fast and affordable. Use them for tasks that are repetitive, low-stakes, or high-volume (tagging, formatting, simple classifications).
Start with Sonnet as your default for everything. After a week of use, identify which tasks would benefit from Opus quality or Haiku speed, and adjust routing accordingly.

5. Integrations

Integrations connect your workspace to external services — Telegram, GitHub, Slack, LinkedIn, Gmail, and more. Each template comes with integrations pre-configured, but you can add new ones or modify existing ones.

Adding Integrations

Integrations are managed in HUB.yaml:
integrations:
  - id: telegram
    status: connected
    mode: auto
  - id: github
    status: connected
    mode: auto
  - id: linkedin
    status: pending
    mode: draft-only
  - id: slack
    status: connected
    mode: draft-only

Integration Statuses

StatusMeaning
pendingIntegration configured but not yet authenticated
connectedAuthenticated and ready to use
activeConnected and currently being used by agents

Draft-Only Mode

For sensitive channels (email, social media, client communications), set mode: draft-only. In this mode, your agent creates drafts that you review and approve before they are sent. See the Guardrails & Safety guide for details.
Integration credentials are stored in your encrypted vault, not in HUB.yaml. The YAML file only tracks which integrations exist and their mode — never API keys or tokens.

6. Heartbeat Configuration (HEARTBEAT.md)

The heartbeat is your agent’s proactive check-in cycle. On a configurable interval, your agent reviews the HEARTBEAT.md checklist and takes action on pending items without waiting for you to ask.

How to Configure the Interval

Set the heartbeat interval in HUB.yaml:
agent:
  heartbeat: "30m"   # Check every 30 minutes
Common intervals:
  • 15m — aggressive, for high-activity workspaces
  • 30m — balanced default
  • 1h — relaxed, for workspaces with less urgency
  • 4h — minimal, for low-priority background workspaces

Writing Good Heartbeat Checklists

Edit /data/HEARTBEAT.md to define what your agent checks on each cycle:
# Heartbeat Checklist

## Blocking
- [ ] Check for unreviewed PR drafts in GitHub
- [ ] Check Telegram for unanswered messages older than 2 hours

## Standard
- [ ] Sync daily memory log if not written yet today
- [ ] Review task list for anything due today
- [ ] Check email drafts queue for items awaiting approval

## Low Priority
- [ ] Update LEARNINGS.md with any new insights from today
- [ ] Review knowledge/ directory for stale entries
Use priority levels (Blocking, Standard, Low Priority) in your heartbeat checklist. Your agent will process blocking items first and skip low-priority items when there is active work in progress.

7. Dashboard Layout

You can customize workspace behavior through HUB.yaml — model routing, skills, integrations, heartbeat, and agent personality are all editable. Dashboard layout is determined by the template you selected at deployment.
Visual dashboard layout customization (rearranging sections, adding custom pages, configuring widgets) is planned for a future update. For now, if you need a different dashboard layout, deploy a new workspace with a different template.
Each template ships a purpose-built dashboard:
TemplateDashboard Layout
MyOSFull OS: You, Projects, Team, Memory, Fitness
Dev OSCode-focused: PRs, Deployments, Tech Debt, Logs
Founder OSGTM: Pipeline, Content, Comms, Analytics
Research OSResearch: Papers, Synthesis, Notes, Knowledge
Client OSClient: Projects, Deliverables, Communication
MinimalBlank slate

Next Steps

Guardrails & Safety

Control what your agent can and cannot do autonomously

Hub Files & Structure

Deep dive into every file in your workspace

Sharing Templates

Publish your customized workspace as a community template

Multiple Workspaces

Run different templates for different use cases