{% extends "base.html" %} {% block title %}Agent Workspace Prompt — {{ config.INSTANCE_NAME }}{% endblock %} {% block content %}

Agent Workspace Prompt

Customize the CLAUDE.md Claude Code reads when it opens the analyst workspace.

{% if is_override %} Override active {% else %} Using default {% endif %}

Default: a rich markdown briefing about Agnes commands, registered tables (RBAC-filtered for the calling analyst), available metrics, and marketplace plugins. Written to CLAUDE.md in the analyst workspace at da analyst setup time. Use --no-claude-md to skip writing it.

Template engine: Jinja2 with StrictUndefined — unknown placeholders raise an error at save time. Use {{ "{% if user.is_admin %}" }}…{{ "{% endif %}" }} to guard admin-only context.

Available Jinja2 placeholders
{{ "{{ instance.name }}" }} — instance display name {{ "{{ instance.subtitle }}" }} — operator / org name {{ "{{ server.url }}" }} — full server URL {{ "{{ server.hostname }}" }} — host part only {{ "{{ sync_interval }}" }} — e.g. "1h" {{ "{{ data_source.type }}" }} — keboola | bigquery | local {{ "{{ tables }}" }} — list of {name, description, query_mode} {{ "{% for t in tables %}" }} {{ "{{ t.name }}" }}, {{ "{{ t.description }}" }}, {{ "{{ t.query_mode }}" }} {{ "{% endfor %}" }} {{ "{{ metrics.count }}" }} — total number of metrics {{ "{{ metrics.categories }}" }} — list of category names {{ "{{ marketplaces }}" }} — list of {slug, name, plugins:[{name}]} {{ "{% for mp in marketplaces %}" }} {{ "{{ mp.name }}" }}, {{ "{{ mp.slug }}" }}, {{ "{{ mp.plugins }}" }} {{ "{% endfor %}" }} {{ "{{ user.id }}" }}, {{ "{{ user.email }}" }}, {{ "{{ user.name }}" }} {{ "{{ user.is_admin }}" }}, {{ "{{ user.groups }}" }} {{ "{{ now }}" }} — tz-aware UTC datetime {{ "{{ today }}" }} — ISO date string e.g. "2026-01-01"
{% if legacy_strings_detected %} {% endif %}

Editor

Live preview

(rendering…)
{% endblock %}