Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@glint/template

typed-ember218.6kMIT1.6.1TypeScript support: included

Type definitions to back typechecking for Glimmer templates

readme

Glint CI

TypeScript-powered tooling for Glimmer templates.

Glint 2 (Alpha)

This branch contains the code for Glint V2, which is currently in an alpha state. Glint V2 is a major refactor of Glint V1 to run atop the Volar.js language tooling framework, which powers the language tooling for Vue and many others.

See Glint V2 for information on how to try out Glint V2.

Glint 1 Docs

Please see the documentation for how to get set up with Glint V1.

Debugging Glint

See CONTRIBUTING.md for instructions on how to run and debug the Glint language server and VSCode extension locally.

changelog

Changelog

Release (2025-10-02)

  • @glint/ember-tsc 1.0.3 (patch)
  • @glint/tsserver-plugin 2.0.3 (patch)

:bug: Bug Fix

  • @glint/ember-tsc
    • #991 Add type annotations to fix embroider-vite builds (@machty)

Committers: 1

Release (2025-10-01)

  • @glint/ember-tsc 1.0.2 (patch)
  • @glint/tsserver-plugin 2.0.2 (patch)

:bug: Bug Fix

  • @glint/ember-tsc
    • #989 Allow V2 addons to get .d.ts declarations instead of .gts.d.ts (@BoussonKarel)

Committers: 1

Release (2025-10-01)

  • @glint/ember-tsc 1.0.1 (patch)
  • @glint/template 1.6.1 (patch)
  • @glint/tsserver-plugin 2.0.1 (patch)

:bug: Bug Fix

  • @glint/template
    • #986 Add missing "xmlns" attribut to SVGSVGElementAttributes (@bartocc)

:memo: Documentation

Committers: 3

Release (2025-09-30)

  • @glint/ember-tsc 1.0.0 (minor)
  • @glint/template 1.6.0 (minor)
  • @glint/tsserver-plugin 2.0.0 (minor)
  • @glint/type-test 2.0.0 (minor)

:rocket: Enhancement

  • @glint/ember-tsc, @glint/template, @glint/tsserver-plugin, @glint/type-test
    • #979 Split out ember-tsc and Glint 2 extension for hybrid upgrade strategy (@machty)

:house: Internal

  • @glint/ember-tsc, @glint/template, @glint/tsserver-plugin, @glint/type-test

Committers: 1

Release (2025-09-30)

  • @glint/core 2.0.0-alpha.12 (patch)
  • @glint/template 1.6.0-alpha.4 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.12 (patch)
  • @glint/type-test 2.0.0-alpha.5 (patch)

:bug: Bug Fix

  • @glint/core
    • #828 volar-service-typescript dep - replace NPM tag with version number (@bartocc)

:house: Internal

  • @glint/core, @glint/template, @glint/tsserver-plugin, @glint/type-test
    • #977 Revert "Remove release-plan alpha configuration for v2 prep (#975)" (@machty)
    • #975 Remove release-plan alpha configuration for v2 prep (@machty)

Committers: 2

Release (2025-09-29)

  • @glint/core 2.0.0-alpha.11 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.11 (patch)

:bug: Bug Fix

  • @glint/core

Committers: 1

Release (2025-09-27)

  • @glint/core 2.0.0-alpha.10 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.10 (patch)

:bug: Bug Fix

  • @glint/core
    • #969 Bugfix and test for additionalSpecialForms (@machty)

Committers: 1

Release (2025-09-26)

  • @glint/core 2.0.0-alpha.9 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.9 (patch)

:bug: Bug Fix

  • @glint/core

Committers: 1

Release (2025-09-26)

  • @glint/core 2.0.0-alpha.8 (patch)
  • @glint/template 1.6.0-alpha.3 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.8 (patch)

:bug: Bug Fix

  • @glint/core
    • #964 Export @glint/core/types for integration declarations (@machty)
    • #965 Fix occasional source mapping errors (@machty)
    • #955 Surface diagnostics due to attempting to assign attributes to default Element (@machty)
  • @glint/template

Committers: 2

Release (2025-09-15)

  • @glint/core 2.0.0-alpha.7 (minor)
  • @glint/tsserver-plugin 2.0.0-alpha.7 (minor)

:rocket: Enhancement

  • @glint/core, @glint/tsserver-plugin

:bug: Bug Fix

  • @glint/core, @glint/tsserver-plugin

Committers: 1

Release (2025-09-09)

  • @glint/core 2.0.0-alpha.6 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.6 (patch)

:bug: Bug Fix

  • @glint/core
    • #950 Reinstate types for LinkTo, TextArea, and Input (@machty)

:memo: Documentation

Committers: 1

Release (2025-09-02)

  • @glint/core 2.0.0-alpha.5 (major)
  • @glint/tsserver-plugin 2.0.0-alpha.5 (major)
  • @glint/type-test 2.0.0-alpha.4 (major)
  • VSCode extension 1.4.17 (pre-release)

:boom: Breaking Change

  • @glint/core, @glint/tsserver-plugin, @glint/type-test
    • #939 Absorb @glint/environment-ember-template-imports into @glint/core (@machty)
  • @glint/core, @glint/type-test
    • #933 Remove ember-loose environment + handlebars support (@machty)
Simplified Dependencies

As of this release, you only need two dependencies in your Ember apps (the versions provided are up-to-date at the time of writing but please check the latest versions on NPM):

    "@glint/core": "2.0.0-alpha.5",
    "@glint/template": "1.6.0-alpha.2",

(You will want to use the pre-release VSCode extension v1.4.17 in conjunction with these dependencies!)

Notably absent are the @glint/environment-ember-template-imports and @glint/environment-ember-loose packages:

There is no longer any concept of "environments" in Glint v2, which going forward will only support features previously covered/provided by the @glint/environment-ember-template-imports environment, which provides typechecking for .gts/.gjs files (aka the Template Tag Format). Furthermore, the functionality previously provided by glint/environment-ember-loose (namely support for type-checking classic Ember components consisting of a .ts/.js file with .hbs template) has been entirely removed. If type-checking support for .hbs files is still a requirement, you may want to consider continuing to use an older version of Glint.

Simplified Configuration

It is now no longer a requirement to specify a "glint": { ... } configuration in your tsconfig.json files; going forward, you need only specify the @glint/core and @glint/template dependencies (see above) in your package.json file.

The only reason to continue specifying a "glint" configuration object in tsconfig.json is if you need to specify options that applied to the (now-absorbed / obsolete) @glint/environment-ember-template-imports environment, e.g. "additionalGlobals", in which case you would move that configuration to the top-level "namespace", e.g.

{
  "compilerOptions": { ... },
  "glint": {
    "additionalGlobals": ["t"]
  }
}

For the time being, Glint V2 will continue to support the old style of configuration to ease the transition to Glint V2, but app maintainers are encouraged to upgrade to the above style (or in many cases just completely remove the "glint" config entirely) as soon as possible.

:house: Internal

Committers: 1

Release (2025-08-13)

  • @glint/core 2.0.0-alpha.4 (minor)
  • @glint/tsserver-plugin 2.0.0-alpha.4 (minor)

:rocket: Enhancement

  • @glint/core
    • #932 More precise diagnostics for parse/compiler errors (@machty)
  • @glint/core, @glint/tsserver-plugin
    • #931 Raise diagnostic errors due to syntax errors in .gts/.gjs template tags (@machty)

:bug: Bug Fix

  • @glint/core
    • #928 Fix diagnostics for modifiers and other cases (@machty)
    • #927 Fix broken directives that reference suppressed attr name (@machty)

:house: Internal

Committers: 1

Release (2025-07-15)

  • @glint/core 2.0.0-alpha.3 (patch)
  • @glint/environment-ember-loose 2.0.0-alpha.3 (patch)
  • @glint/environment-ember-template-imports 2.0.0-alpha.3 (patch)
  • @glint/template 1.6.0-alpha.2 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.3 (patch)
  • @glint/type-test 2.0.0-alpha.3 (patch)

:bug: Bug Fix

  • @glint/core
    • #910 Fix glimmer/syntax deprecation (@ef4)
  • @glint/core, @glint/tsserver-plugin
    • #912 Reinstate directives in a way that works with tsc (glint binary) (@machty)

:house: Internal

  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports, @glint/template, @glint/type-test

Committers: 2

Release (2025-06-17)

  • @glint/core 2.0.0-alpha.2 (patch)
  • @glint/environment-ember-loose 2.0.0-alpha.2 (patch)
  • @glint/environment-ember-template-imports 2.0.0-alpha.2 (patch)
  • @glint/template 1.6.0-alpha.1 (patch)
  • @glint/tsserver-plugin 2.0.0-alpha.2 (patch)
  • @glint/type-test 2.0.0-alpha.2 (patch)

:bug: Bug Fix

  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports, @glint/template, @glint/tsserver-plugin, @glint/type-test

Committers: 1

Release (2025-06-16)

  • @glint/core 2.0.0-alpha.1 (major)
  • @glint/environment-ember-loose 2.0.0-alpha.1 (major)
  • @glint/environment-ember-template-imports 2.0.0-alpha.1 (major)
  • @glint/template 1.6.0-alpha.0 (major)
  • @glint/tsserver-plugin 2.0.0-alpha.1 (major)
  • @glint/type-test 2.0.0-alpha.1 (patch)

:boom: Breaking Change

  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports, @glint/template
  • @glint/core, @glint/tsserver-plugin
    • #811 Migrate tests to TS Plugin mode, remove option for old LS mode (@machty)
  • Other
    • #790 Re-write extension to use reactive-vscode, align with Vue extension (@machty)
  • @glint/core
  • @glint/environment-ember-loose
    • #721 feat: drop support for classic component layout (@aklkv)
  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports
    • #726 Re-write using Volar: initially only supporting .gts (@machty)
  • @glint/core, @glint/template

:rocket: Enhancement

  • Other
    • #895 VSCode: Add activationEvents for glimmer-ts/js file types (@machty)
    • #803 Use jiti for sync loading from TS Plugin (@machty)
    • #791 Monkeypatch remaining TS features within .gts files (@machty)
  • @glint/core, @glint/tsserver-plugin
    • #890 Move .gts/.gjs import hacks to TS Plugin (@machty)
    • #877 Reinstate GJS Support (@machty)
    • #873 Disregard semantic classification tokens from <template> portions of .gts files (@machty)
  • @glint/core
    • #888 Restore previous approach to glint-* directives atop new TS Plugin architecture (@machty)
    • #876 Support for Symbols, Outline, Code Folding in .gts files (@machty)
    • #874 Fix organize imports (@machty)
    • #856 Support (neo)vim filetypes for gts and gjs (@NullVoxPopuli)
    • #854 Loose mode: only parse .ts in components/ folder (@machty)
    • #838 Support extending multiple config files (@mogstad)
    • #839 use more specific nodes for open tag (@patricklx)
    • #813 Cleanup old LS remainders, disable CLI tests for now, rm ephemeral tests (@machty)
    • #749 Primitives for supporting ember-loose mode (.ts + .hbs) (@machty)
    • #747 volar-2.4.0-alpha.14 (@machty)
    • #713 check if template is in heritage clause (@patricklx)
  • @glint/core, @glint/template, @glint/tsserver-plugin
  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports, @glint/template
    • #753 TS Plugin: basic diagnostics and functionality for .gts files (@machty)
  • @glint/core, @glint/environment-ember-loose, @glint/environment-ember-template-imports
    • #726 Re-write using Volar: initially only supporting .gts (@machty)

:bug: Bug Fix

  • @glint/template
  • @glint/core, @glint/tsserver-plugin
    • #889 Reinstate "unused @glint-expect-error directive" (@machty)
  • @glint/core
    • #865 Prefer variables in scope over global variables (@mogstad)
    • #861 Inject hidden imports to fix .gts/.gjs extensions (@machty)
    • #851 Refrain creating ember-loose virtual code in non ember-loose environment (@mogstad)
    • #809 Bump volar to 2.4.12, fix caching issue w loose mode (@machty)
    • #799 Reinstate glint-expect-error (and other directives) for tsc and TS Plugin using Vue's approach (@machty)
    • #795 Restore "unused glint-expect-error" diagnostic (@machty)
    • #794 Reinstate expect-error directives for .gts (@machty)
    • #783 Suppress exception thrown by require.resolve if the file does not exist (@iarroyo)
    • #782 Typed ember/resolve config from extends package (@iarroyo)
    • #779 Closes #778 - add missing dependency to @glint/core (@NullVoxPopuli)
  • Other
  • @glint/environment-ember-template-imports
  • @glint/core, @glint/environment-ember-template-imports
  • @glint/tsserver-plugin
  • @glint/environment-ember-loose

:memo: Documentation

:house: Internal

Committers: 12