Changelog

Deployment Previews added

We're introducing Deployment Previews, which are ephemeral, fully isolated deployments that let you spin up temporary environments tied to your existing deployment configurations.

Whether you're validating a feature branch or sharing a working demo, previews give you a real, production-like environment without long-term infrastructure overhead.

Check out our Deployment Preview Guide to get started right away.

What you can do

  • Add a preview to any existing deployment configuration
  • Assign a unique subdomain for each preview
  • Access that subdomain inside the running container via an environment variable
  • Trigger a deployment run for a specific preview
  • Delete a preview when it's no longer needed
  • Automatically clean up infrastructure when a preview is deleted
  • Create and run previews from both the CLI and the UI

How it works

Previews inherit the base configuration of your deployment but run as isolated, ephemeral instances. Each preview:

  • Gets its own subdomain (e.g. feature-x-subdomain.yourapprul.com)
  • Receives that subdomain as an environment variable inside the container
  • Provisions its own infrastructure
  • Can be independently deployed, re-deployed, or removed

When a preview is deleted, all associated infrastructure is automatically cleaned up by the Hyphen Agent, no manual teardown required.

What this means for you

  • Safe testing without touching staging or production
  • Branch-based workflows with real infrastructure
  • Faster iteration cycles
  • No lingering preview environments
  • No paying for infrastructure you forgot to delete

Things to know

  • Previews are tied to an existing deployment configuration.
  • At least one app in the deployment must have a hostname and DNS zone configured to create a preview deployment
  • Each preview must use a unique subdomain within that configuration.
  • Infrastructure is fully torn down upon deletion.
  • Previews can be created, deployed, and deleted from both the Hyphen UI and CLI.
Deployment Policy Filters improved

Finding the right deployment policy is now faster and easier. You can now filter your list of deployment policies to quickly narrow results based on the project, app that gets deployed, or a search query. This makes it much easier to locate the exact policy you need, especially in organizations with many deployments.

What's new

  • Filter deployment policies by project
  • Filter policies by application
  • Use search to quickly locate a specific policy
  • Faster navigation through large policy lists

Why this matters

As your organization grows, deployment policies can accumulate across multiple projects and applications. These new filtering options help you quickly find and manage the policies that matter most.

Things to know

  • Filters can be combined to narrow results further
  • Search works across policy names for quick discovery
  • Available anywhere deployment policies are listed
Enhanced JSON Editing for Feature Flag Return Values improved

We've upgraded the editing and viewing experience for JSON-based feature flag return values in Toggle, making it easier to work with complex objects confidently and efficiently. Whether you're returning structured configuration, multi-variant payloads, or nested objects, the new editor experience is designed to reduce mistakes and improve clarity.

What's new

  • Syntax highlighting for improved readability
  • Line numbers for easier debugging and collaboration
  • Collapsible sections for navigating large or deeply nested JSON objects
  • Improved formatting and validation feedback

What this means for you

Feature flags are increasingly used to return structured data, not just booleans. With enhanced JSON editing:

  • Large payloads are easier to understand
  • Nested structures are easier to navigate
  • Debugging is faster with line references
  • Syntax errors are easier to spot before saving
  • Teams can collaborate more effectively with consistent formatting

Things to know

  • Applies to all JSON-based feature flag return values
  • Existing flags automatically benefit from the new experience
  • No configuration changes required

This update makes working with advanced feature flags feel less like editing raw text, and more like working in a modern development environment.

Automated Deployment Resource Cleanup added

Keeping your infrastructure tidy shouldn't require a weekly calendar reminder. We're introducing Automated Deployment Resource Cleanup, a new Hyphen Agent capability that detects and safely removes unused or stale cloud resources created during deployments.

Over time, environments accumulate:

  • Orphaned containers
  • Unused load balancers
  • Detached volumes
  • Expired preview environments
  • Outdated build artifacts

These resources quietly increase cloud spend, clutter your infrastructure, and add operational risk. Hyphen now automatically identifies deployment-created resources that are no longer in use and cleans them up according to your organizational, project, or deployment-level retention policies.

How it works

Hyphen tracks resources created during each deployment. When a deployment is archived or re-deployed, associated resources are evaluated. Resources that are no longer referenced by active services are automatically removed. Cleanup actions are logged and visible in the Agent Inbox for full transparency.

What this means for you

  • Reduced cloud spend from unused infrastructure
  • Lower operational risk from forgotten resources
  • Cleaner deployment environments
  • Zero manual cleanup scripts required

Things to know

  • Cleanup only applies to resources provisioned through Hyphen-managed deployments.
  • Active environments are never impacted.
  • Retention policies can be configured at the organization, project, or individual deployment level.
  • The feature is enabled automatically.
Stale feature flag removal via Agent added

Today we're introducing the first of many Hyphen Agent capabilities: automated stale feature flag detection and removal.

Feature flags are powerful — but over time, unused and long-running flags accumulate, adding technical debt and increase release risk. Hyphen Agent analyzes flag activity and identifies flags with no recent usage or unchanged return values over a 90-day period. Once identified, the Agent marks them as stale.

If your apps' GitHub repository is connected, Hyphen Agent automatically generates a pull request to safely remove the flag from your codebase — keeping your system clean, maintainable, and production-ready.

This is the beginning of a broader vision: autonomous infrastructure and code hygiene that improves continuously in the background.

Things to know

  • Only apps with connected Github repos will be analyzed for stale feature flags
  • Feature flags that have been marked as perpetual are excluded from becoming stale
  • The service is enabled by default — no configuration required
  • All changes are delivered via pull request for review before merge
  • When the agent issues a new pull request for stale feature flags, the previous pull request will be closed
  • Stale feature flags highlighted in the Hyphen app, as well as the pull request opened by Hyphen Agent to remove those stale feature flags from a connected Github repository
Deployment Container Registry Validation improved

While creating a deployment policy, we validate that the parent project has a container registry available for your target cloud, or that a new one will be created. Previously deployment policies could be created without a container registry connected to the parent project, which would result in an error when trying to run the deployment.

Improved payment notifications improved

Added clearer messaging for failed payment and subscription cancellation emails.

Python SDK 0.5.0 added

The Hyphen Python SDK is now feature complete and stable, providing full programmatic access to:

  • Toggle – evaluate feature toggles with targeting
  • NetInfo – look up IP geolocation data
  • Link – create branded short URLs and QR codes

Installation

pip install hyphen

Use it in your Python applications to power feature flags, geolocation lookups, and branded link generation. The code is available in our GitHub repository and pull requests are welcome!

Resillency Updates with Deploy improved

Hyphen Deploy now features seamless restarts and enhanced workflow tracking, making deployments more reliable and observable.

Better walkthrough experience for users on mobile devices improved

Better walkthrough experience for users on mobile devices. Users are now required to confirm project or app deletion by entering its name.

React SDK better for Next.js fixed

The React SDK no longer depends on the browser SDK, improving SSR compatibility. Added CommonJS support to the React SDK to avoid requiring Next.js package transpilation.

https://npmjs.com/package/@hyphen/react-sdk

Hyphen CLI v0.21.0 fixed

Big updates / fixes with our CLI today.

  • Fix: return non-zero error code when there are errors
  • Feat: allow custom docker file path when building
  • Fix: an issue where refresh tokens were not used and thus needing to log in frequently
  • Fix: pull and push of env with deleted environments
  • Fix: added documentation to enpty env files
  • Fix: made hx init respect the global project parameter
  • Feat: handle CI environments better by not using TUI when CI is detected
  • Fix: switched to better websocket service for more reliability

To update to the latest version just do: hx update

Platform Improvements improved

Every December we focus on bug fixes and improvements to make it easier for our customers to get things done! This week released the following:

  • Hyphen CLI (hx) - We have been doing some big updates on hx to make it more robust with deploy and how it interacts with the core system via socket updates.
  • AWS Integration - A massive amount of bug / resiliency fixes are being done this month to make it much more reliable deploying to AWS infrastructure.
  • Billing - New billing features are coming live in January to bill on the same day every month!
Organization Project Collaborator added

You now can set a user at the organization level to Project Collaborator giving them the ability to interact with all projects at the organization level.

Deploy with Better Messaging improved

Deploy uses messaging between your cloud provider and Hx (CLI) or Hyphen App to update you on how your deployment is going. With this latest update we have added better socket support for that messaging to make it more resilient.

Perpetual Feature Flag added

Toggle now supports perpetual feature flags so you can specify if this feature flag will most likely evaluate the same all the time. This is great for circuit-breaker type flags where only occasionally would you change it.

React SDK v1.0.0 added

The react sdk for using Toggle is now v1.0.0 and available for download: https://www.npmjs.com/package/@hyphen/react-sdk

Installation

npm install @hyphen/react-sdk

Higher-Order Component (HOC) Pattern

import { withToggleProvider } from '@hyphen/react-sdk';
import App from './App';

export default withToggleProvider({
  publicApiKey: 'public_...',
  applicationId: 'my-app',
  environment: 'production',
  defaultContext: {
    user: { id: 'user-123', email: '[email protected]' }
  }
})(App);

Provider Component Pattern

import { ToggleProvider } from '@hyphen/react-sdk';
import App from './App';

function Root() {
  return (
    <ToggleProvider
      publicApiKey="public_..."
      applicationId="my-app"
      environment="production"
      defaultContext={{
        user: { id: 'user-123', email: 'user@example.com' }
      }}
    >
      <App />
    ToggleProvider>
  );
}

Using the useToggle Hook

import { useToggle } from '@hyphen/react-sdk';

function MyComponent() {
  const toggle = useToggle();

  // Get boolean feature flag
  const isNewFeatureEnabled = toggle.getBoolean('new-feature', false);

  // Get string feature flag
  const theme = toggle.getString('theme', 'light');

  // Get number feature flag
  const maxItems = toggle.getNumber('max-items', 10);

  // Get object feature flag
  const config = toggle.getObject('ui-config', { layout: 'grid' });

  return (
    <div>
      {isNewFeatureEnabled && <NewFeature />}
      <p>Theme: {theme}p>
      <p>Max Items: {maxItems}p>
    div>
  );
}
Resiliency Updates with Deploy improved

Hyphen Deploy has been updated with two more stabilization features to make building to cloud even more resilient:

  • We now have built in more socket streaming support to make live updating easier.
  • Our system now handles when you retry it understands how to re-apply the naming of systems.
Billing Usage Metrics Now Available! added

You can now access your usage by billing cycle for active users, seats, env, toggle, and more. Simply go to https://app.hyphen.ai and then Settings > Billing.

AWS Resource Cleanup with Deploy! added

We now support cleaning up any unused resources in AWS when using Hyphen Deploy! Simply go to integrations from Hyphen AI and click "Connect to Amazon Web Services". Yes, cleanup is that easy.

Hyphen Deploy! added

Forget YAML files, Docker configs, Terraform, and Helm charts. With Hyphen Deploy, you define your target SLA, scale, and performance, and Deploy AI generates your cloud infrastructure automatically.

https://hyphen.ai/deploy

Nodejs SDK v2.0.0 improved

Our Nodejs SDK has been released with better Toggle capabilities and enhanced caching!

Breaking Changes (v2.0)

The Toggle API has been simplified in v2.0. Please review the changes below:

  • setContext(context) - Use property setter instead: toggle.defaultContext = context
  • setPublicApiKey(key) - Use property setter instead: toggle.publicApiKey = key
  • getClient() - No longer needed, use the Toggle instance directly
  • throwErrors - Errors are now always emitted via events and default values are returned
  • Hooks removed from convenience methods (getBoolean, getString, etc.)
  • Hooks now only available via event system (toggle.on('error', ...))
  • All toggle methods now return default values on error instead of throwing

To learn more about these changes go to: https://www.npmjs.com/package/@hyphen/sdk#toggle---feature-flag-service

Docker Hub Integration added

Docker Hub integration is now live! With this new integration Hyphen will automatically manage your teams access management! To set this up go to https://app.hyphen.ai and go to integrations.

Firewall, Logout, Azure, and More! fixed

We have released a number of fixes today:

  • We saw issues with ipv6 and ipv4 compatibility on firewall rules. This has been updated to make it easier
  • Logout now works much better across all of our systems.
  • Update to Azure to make it more stable when working with it.
  • We also added some performance improvements on the ENV homepage in Hyphen App.
Segments Documentation! added

New segments documentation is live here: https://docs.hyphen.ai/docs/segments#/

A segment is a reusable set of targeting rules. Segments are useful because they let you define a common audience once and then reuse that audience across many feature flags without duplicating logic. For example, "beta testers," "premium customers," or "users in Mexico".

A segment is scoped to the project it is created in. Segment rules are based on context properties and can be used across the environments within a project.

Hyphen Browser SDK for Toggle v1 added

We now provide a javascript framework for frameworks such as react, svelte, and more. This new sdk is now downloadable from the web. You can read more about it here: https://www.jsdelivr.com/package/npm/@hyphen/browser-sdk

Here is an example on how it works:

import { Toggle } from '@hyphen/browser-sdk';

// Initialize the Toggle client
const toggle = new Toggle({
  publicApiKey: 'public_your-api-key-here',
  applicationId: 'your-app-id',
  environment: 'production', // or 'development'
  defaultContext: {
    targetingKey: 'user-123',
    user: {
      id: 'user-123',
      email: '[email protected]',
      name: 'John Doe'
    }
  }
});

const welcomeMessage = await toggle.getString('welcome-message', 'Hello World');
document.getElementById('welcome').textContent = welcomeMessage;
ENV Access via Projects with Filtering added
  • View ENV access events for a project environment, filtering by project or event type
  • View ENV access events for default secrets, filtering by project or event type
  • Navigate to these views by clicking the project environment or "default secrets" links on the project overview view
Horizon now with ENV! added

We now support Toggle and ENV read requests to build resiliency and performance for your production environments when using the Horizon self-hosted option. In addition, we have drastically improved the caching capabilities for horizon.

Nodejs SDK with QR Codes! improved

You can create a QR code via the SDK from a short code easily:

import { Link } from '@hyphen/sdk';

const link = new Link({
  organizationId: 'your_organization_id',
  apiKey: 'your_api_key',
});

const code = 'code_1234567890'; // It is the code identifier for the short code you want to create a QR code for
const response = await link.createQrCode(code);
console.log('Create QR Code Response:', response);
AWS Integration Even Easier! improved

We have now reduced the steps down dramatically so that you can get your connection to AWS setup in minutes!

Net Info UX with Infinite Scrolling improved

You now in the Hyphen App can look at your events on net.info and keep on scrolling. Just making it a bit easier for all of us...

Hyphen App Updates! improved

There are some amazing updates to make it easier to use:

  • Now in the dashboard you can see your ENV access locations
  • There is a + button at the top that allow you to create a project, feature flag, segment, short link, team, and even invite a new team member!
  • Finally, the dashboard side navigation collapses to make it easier to view!
Nodejs SDK with Link Support! added

Our Node.js SDK @hyphen/sdk has been updated with the ability to generate short codes via Link. Here is how easy it is:

import { Hyphen } from '@hyphen/sdk';

const hyphen = new Hyphen({
  apiKey: 'your_api_key',
});

const longUrl = 'https://hyphen.ai';
const domain = 'test.h4n.link';
const options = {
  tags: ['sdk-test', 'unit-test'],
};

const response = await hyphen.link.createShortCode(longUrl, domain, options);
console.log('Short Code Response:', response);
See where your secrets are being accessed added

Now you can log into Hyphen and see where your secrets are being access!

Supporting Domain Restriction in Google Cloud improved

We have been working hard to make Google Cloud integration secure and easy to use. With this latest update our integration will set the Domain Restriction Policy to enable the users we grant access too.

Google Workspace Integration Updated improved

We added in some more error handling and also the access permissions you need to complete the task.

Horizon Self Hosting added

Horizon is what we run at the edge of our global network to enable high availability and uptime for accessing Toggle evaluations at scale. Now with self hosting you can build more resiliency and performance by adding Horizon to your local clusters. That means that your local horizon instances are your primary lookup for Toggles and we become the secondary layer.

You can read more about it here: https://docs.hyphen.ai/docs/horizon#/

New Events View! improved

The new events view shows you where the event took place and also the details in an easy to read view.

Bulk Geo IP Lookup via Node.js SDK added

@hyphen/sdk has been released (v1.8.0) with the ability to do bulk geo ip address lookups. Here is an example:

import { NetInfo } from '@hyphen/sdk';

const netInfo = new NetInfo({
  apiKey: 'your_api_key',
});

const ips = ['8.8.8.8', '1.1.1.1'];
const ipInfos = await netInfo.getIpInfos(ips);
console.log('IP Infos:', ipInfos);
Faster Toggle Updates on Edge improved

We've enhanced our edge nodes to respond more intelligently to Toggle configuration updates. Previously, we cached configurations at the edge for performance. While that remains true, our edge nodes are now instantly notified when a toggle changes—ensuring they update only what's needed in near real time.