Hallmark Skill Dependencies in Nutlope/hallmark: A Complete Guide

The Hallmark design skill ships with zero runtime npm dependencies and instead detects optional motion libraries from your host project to determine its design stack.

The Nutlope/hallmark repository provides an AI-driven design skill that adapts to your project's existing animation capabilities. Unlike traditional npm packages that bundle their requirements, Hallmark implements a dependency-free architecture that inspects your codebase to toggle between "motion-on" and "motion-cut" modes.

Runtime Dependencies in package.json

Hallmark itself declares no direct npm dependencies. In the root package.json, the dependencies field remains empty, with only a serve script defined for local development.

// package.json - dependencies section is empty
{
  "name": "hallmark",
  "version": "1.0.0",
  "dependencies": {},
  "scripts": {
    "serve": "..."
  }
}

This design choice keeps the skill lightweight and prevents version conflicts with your existing animation libraries. As implemented in Nutlope/hallmark, the skill relies entirely on the host project's node_modules rather than bundling its own.

Optional Motion Dependencies Detected by Hallmark

Instead of shipping with fixed requirements, Hallmark scans your project's package.json for specific animation libraries. When any of the following dependencies appear in your host project, Hallmark treats the codebase as a "motion-on" project; otherwise, it assumes a "motion-cut" configuration:

  • framer-motion – Enables declarative motion-enabled components and layout animations
  • gsap – Provides advanced timeline-based animations and scroll triggers
  • motion – Supplies lightweight, performant motion utilities for modern React apps
  • lenis – Adds smooth scrolling effects with inertia and dampening
  • lottie-react – Allows embedding of After Effects vector animations as JSON
  • @react-spring/* – Supplies physics-based spring animations for React components
  • auto-animate – Offers zero-configuration auto-animations for DOM mutations

According to the skill documentation in skills/hallmark/SKILL.md, this detection mechanism determines whether Hallmark generates animation-heavy components or static, performance-optimized designs.

External AI Service Requirements

While Hallmark avoids npm dependencies, it requires access to the Together AI API for its core generative capabilities. This external service dependency is documented in the skill description and handles the AI-driven design logic, component generation, and layout decisions.

Unlike the motion libraries, Together AI is not an installable package—you must configure API access separately through environment variables or configuration files.

How Hallmark Detects Project Dependencies

The detection logic resides in the skill's runtime rather than its manifest. When Hallmark initializes, it performs the following checks:

  1. Scans the host package.json for the optional motion libraries listed above
  2. Sets the motion flag to true if any are found (triggering "motion-on" mode)
  3. Adjusts component generation to either include animation props or static alternatives
  4. Validates Together AI connectivity before executing design commands

This approach allows Hallmark to remain dependency-free while still leveraging your existing animation stack. The skill adapts its output based on your project's actual capabilities rather than forcing you to adopt specific versions of animation libraries.

Summary

  • Hallmark declares zero runtime npm dependencies in its package.json, keeping the package lightweight
  • The skill detects seven optional motion libraries (framer-motion, gsap, motion, lenis, lottie-react, @react-spring/*, and auto-animate) from your host project
  • Detection of these libraries triggers "motion-on" mode; absence triggers "motion-cut" mode
  • Together AI provides the external API dependency required for AI-driven design generation
  • File paths skills/hallmark/SKILL.md and package.json contain the authoritative configuration for this behavior

Frequently Asked Questions

Does Hallmark require framer-motion to work?

No. Hallmark does not require framer-motion or any other animation library to function. The skill operates in "motion-cut" mode when no animation dependencies are detected, generating static, high-performance components instead of animated ones.

What happens if I install gsap after setting up Hallmark?

If you add gsap (or any supported motion library) to your project's package.json after initial setup, Hallmark will detect it on the next run and switch to "motion-on" mode. The skill dynamically adapts to your dependency changes without requiring updates to Hallmark itself.

Is Together AI included as an npm dependency?

No. Together AI is an external API service, not an npm package. While Hallmark's code interacts with this service for AI capabilities, you must configure API access separately—it is not installed via npm install or listed in the package.json dependencies.

Why does Hallmark avoid shipping its own animation dependencies?

Hallmark avoids bundling animation libraries to prevent version conflicts and bloat. By detecting your existing stack, the skill ensures compatibility with your current animation versions and keeps bundle sizes minimal, only leveraging motion capabilities when your project already supports them.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →