Token导航 LogoToken导航TokenDH.com
待分类敏感数据github未标认证来源可访问许可证需确认审计提醒

atmos-templates大气模板

Agent Skill

atmos-templates 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

196

周安装

8

GitHub Stars

1,264

下载量

63
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:atmos-templates(大气模板)
来源仓库:https://github.com/cloudposse/atmos
仓库路径:skills/atmos-templates
安装命令:
npx skills add https://github.com/cloudposse/atmos --skill atmos-templates
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cloudposse/atmos --skill atmos-templates

简介

atmos-templates 启用 Go 模板预处理,支持复杂逻辑、循环与动态键生成,突破 YAML 函数限制。

  • 适用于需要在配置中实现条件分支、迭代操作或高级字符串处理的用例。
  • 模板使用 {{ }} 分隔符,优先于 YAML 解析执行,可与 Sprig/Gomplate 函数库配合。
  • 开启模板需设置 settings.enabled: true,并谨慎控制 evaluations 次数以防性能问题。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Atmos Go Templates

Overview

Go templates use {{}} delimiters and are processed before YAML parsing. They support the full Go text/template syntax plus Sprig and Gomplate function libraries.

Go templates are an escape hatch for complex conditional logic, loops, dynamic key generation, or advanced string manipulation that YAML functions cannot handle. For most use cases, prefer YAML functions (see the atmos-yaml-functions skill).

Enabling Go Templates

# atmos.yaml
templates:
  settings:
    enabled: true
    evaluations: 1      # Number of processing passes
    delimiters: ["{{", "}}"]  # Default delimiters
    sprig:
      enabled: true     # Enable Sprig functions
    gomplate:
      enabled: true     # Enable Gomplate functions and datasources
      timeout: 5        # Datasource timeout in seconds

Template Context Variables

In Go templates, you can reference any value from the component's configuration (as returned by atmos describe component):

VariableDescription
.atmos_componentThe Atmos component name
.atmos_stackThe Atmos stack name
.stackAlias for .atmos_stack
.atmos_stack_fileThe stack manifest file path
.workspaceThe Terraform workspace name
.vars.*Component variables
.settings.*Component settings
.env.*Environment variables
.metadata.*Component metadata
.providers.*Provider configuration
.backend.*Backend configuration
.backend_typeBackend type string

Template Examples

components:
  terraform:
    vpc:
      vars:
        tags:
          atmos_component: "{{ .atmos_component }}"
          atmos_stack: "{{ .atmos_stack }}"
          terraform_workspace: "{{ .workspace }}"
          # Sprig function
          provisioned_by: '{{ env "USER" }}'
          # Gomplate function
          description: "{{ strings.Title .atmos_component }} in {{ .atmos_stack }}"

atmos.Component Template Function

Reads any section or attribute from another component's configuration, including Terraform outputs:

vars:
  # Read outputs (remote state)
  vpc_id: '{{ (atmos.Component "vpc" .stack).outputs.vpc_id }}'

  # Read variables from another component
  vpc_name: '{{ (atmos.Component "vpc" .stack).vars.name }}'

  # Read settings
  test_setting: '{{ (atmos.Component "test" .stack).settings.test }}'

  # Read metadata
  component_name: '{{ (atmos.Component "test" .stack).metadata.component }}'

  # Complex outputs require !template + toJson
  subnet_ids: !template '{{ toJson (atmos.Component "vpc" .stack).outputs.private_subnet_ids }}'

atmos.GomplateDatasource Template Function

Fetches external data with automatic caching:

settings:
  templates:
    settings:
      gomplate:
        datasources:
          ip:
            url: "https://api.ipify.org?format=json"
          secret:
            url: "aws+smp:///path/to/secret"

vars:
  public_ip: '{{ (atmos.GomplateDatasource "ip").ip }}'
  db_password: '{{ (atmos.GomplateDatasource "secret").password }}'

The function caches results per execution -- multiple references to the same datasource make only one external call.

atmos.Store Template Function

Reads from stores using Go template syntax (same as !store YAML function but in template form):

vars:
  vpc_id: '{{ atmos.Store "prod/ssm" .stack "vpc" "vpc_id" }}'
  config: !template '{{ (atmos.Store "redis" .stack "config" "config_map").defaults | toJSON }}'

Template Evaluations (Processing Pipelines)

Atmos supports multiple evaluation passes for template processing:

# atmos.yaml
templates:
  settings:
    enabled: true
    evaluations: 2  # Two passes

With multiple evaluations, output from the first pass becomes input to the second pass. This is useful for:

  • Combining templates from different sections
  • Using templates in datasource URLs
  • Multi-stage template resolution

Excluding Templates from Processing

Passing Templates to External Tools

Use the backtick escape or !literal to prevent Atmos from processing templates intended for external systems (ArgoCD, Helm, Datadog):

# Using !literal (recommended, see atmos-yaml-functions skill)
annotation: !literal "{{ .Values.ingress.class }}"

# Using backtick escape
annotation: "{{`{{ .Values.ingress.class }}`}}"

# Using printf
annotation: '{{ printf "{{ .Values.ingress.class }}" }}'

Templates in Imports

When using Go templates in both imports and stack manifests, templates intended for the second pass (stack processing) must be escaped in the import file:

# stacks/catalog/eks/eks_cluster.tmpl
components:
  terraform:
    eks/cluster:
      vars:
        # First pass: resolved from import context
        enabled: "{{ .enabled }}"
        name: "{{ .name }}"
        tags:
          # Second pass: escaped for stack processing
          atmos_component: "{{`{{ .atmos_component }}`}}"
          atmos_stack: "{{`{{ .atmos_stack }}`}}"

Template Configuration in Stack Manifests

Template settings can be defined in settings.templates.settings in stack manifests, which deep-merges with templates.settings in atmos.yaml. Stack manifest settings take precedence.

# stacks/orgs/acme/_defaults.yaml
settings:
  templates:
    settings:
      env:
        AWS_PROFILE: "my-profile"
      gomplate:
        timeout: 7
        datasources:
          config:
            url: "./my-config.json"

Note: enabled, sprig.enabled, gomplate.enabled, evaluations, and delimiters settings are not supported in stack manifests (only in atmos.yaml).

When to Use Go Templates vs. YAML Functions

ScenarioUse
Reading Terraform outputsYAML functions: !terraform.state or !terraform.output
Reading store valuesYAML functions: !store or !store.get
Environment variablesYAML function: !env
Including filesYAML function: !include
Complex outputs (lists/maps)!template with toJson
Conditional logic (if/else)Go templates
Loops and iterationGo templates
Dynamic key generationGo templates
External API dataatmos.GomplateDatasource
Advanced string manipulationGo templates with Sprig/Gomplate

Performance Best Practices

  1. Prefer YAML functions over Go templates -- Type-safe, cannot break YAML
  2. Prefer !store over atmos.Component for outputs -- Avoids Terraform initialization
  3. Use atmos.GomplateDatasource instead of datasource -- Built-in caching prevents redundant API calls
  4. Minimize atmos.Component usage -- Each call may initialize Terraform
  5. All template functions cache results per execution for repeated calls

Common Pitfalls

  1. Go templates break YAML -- Unquoted {{}} can cause YAML parse errors. Always quote template expressions.
  2. Type confusion -- Go templates always return strings. Use !template with toJson for complex types.
  3. Indentation issues -- Multi-line template output can break YAML indentation.
  4. Sprig/Gomplate conflicts -- The env function exists in both libraries with different syntax. Use getenv for Gomplate's version when both are enabled.
  5. Performance degradation -- Overuse of atmos.Component or !terraform.output across many stacks can dramatically slow atmos describe stacks and atmos describe affected.

Additional Resources

  • For complete Go template context variables and functions, see references/go-templates.md
  • For YAML functions (!terraform.state, !store, !env, etc.), see the atmos-yaml-functions skill

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.51%
按下载量换算21

Claude

29.17%
按下载量换算18

Cursor

21.1%
按下载量换算13

Gemini CLI

8.92%
按下载量换算6

安全审计

Gen Agent Trust Hub

可疑

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills