typewriter icon indicating copy to clipboard operation
typewriter copied to clipboard

Type safety + intellisense for your Segment analytics



Typewriter logo



CircleCI Status NPM Version License Known Vulnerabilities


Typewriter GIF Example

  • 💪 Strongly Typed Analytics: Generates strongly-typed Segment analytics clients that provide compile-time errors, along with intellisense for event/property names, types and descriptions.

  • 👮 Analytics Testing: Validate your instrumentation matches your spec before deploying to production, so you can fail your CI builds without a manual analytics QA process.

  • 🌐 Cross-Language Support: Supports native clients for analytics.js, analytics-node, analytics-android and analytics-ios.

  • Segment Protocols: Built-in support to sync your typewriter clients with your centralized Segment Tracking Plans.

Get Started

# Walks you through setting up a `typewriter.yml` and generating your first client.
$ npx typewriter init

For more instructions on setting up your typewriter client, such as adding it to your CI, see our documentation.

Contributing

  • To submit a bug report or feature request, file an issue here.
  • To develop on typewriter or propose support for a new language, see our contributors documentation.

Migrating from v7

Check the instructions on our documentation

  • You'll need to change your Segment Config API Token for a Public API Token
  • v8 doesn't support Analytics-iOS nor Analytics-Android. We recommend using Analytics-Swift and Analytics-Kotlin instead which are supported. If you need to use these libraries you can run v7 specifying the version with your commands:
$ npx typewriter@7 build