Thunder Client cost vs Bruno and Hoppscotch

Thunder Client cost depends on seats, editions and the work to move collections. Bruno's free edition and a self-hosted Hoppscotch Community Edition trade subscription fees for hosting, setup and staff time, so the answer depends on your own counts.

On this page

Does moving from Thunder Client to Bruno or Hoppscotch cost less?

The answer depends on three things: how many seats you need, which edition each seat requires, and what one-time migration and server work you take on. Bruno's free Open Source edition carries no per-seat fee, while its Pro and Ultimate editions list at $6 and $11 per user per month, billed annually. Hoppscotch Community Edition is free to license, but it is not free to run: you host it, provide PostgreSQL through DATABASE_URL, configure SMTP for email, and appoint an administrator who installs, updates and maintains it. Before you compare, confirm current Thunder Client seat prices and free-tier limits directly with the vendor, because the numbers that matter for your renewal are the ones in your quote, not the ones on a page that may have changed.

Start by counting the seats that need features the free tiers do not cover. For Bruno, the Open Source edition limits you to 2 workspaces and 5 OpenAPI syncs per month, and Git push, branch operations, remote connections and merge conflict resolution inside the app sit behind the paid editions. Git itself still works outside the app on any edition, so a team can keep collections in a repository and use the command line for those operations. For Hoppscotch, the Community Edition has no per-seat fee, but SSO beyond the built-in providers, SCIM provisioning and audit logs belong to the Enterprise Edition, which is priced per user on the Hoppscotch pricing page. Ask your vendor for a written quote that lists each seat type and the edition each seat needs.

The recurring costs are the seat fees, if any, plus the hosting, database, mail and staff time you carry for a self-hosted server. The one-time costs are the migration itself: exporting Thunder Client collections, importing them, and rewriting scripts and variables. Bruno imports Postman Collection v2 and v2.1 JSON, and Hoppscotch imports Postman collections and environments, so a clean export reduces rework. Bulk import of a full Postman data dump is limited to Bruno Ultimate, which matters only if you are also moving from Postman. Ask any implementation partner to price the migration from a sample of your real collections, and confirm the hosting size with Hoppscotch's prerequisites page before you budget for infrastructure.

Which cost components change when a team leaves Thunder Client

This table lists each cost component that changes when a team moves API collections from Thunder Client to Bruno or a self-hosted Hoppscotch server. Read each row as who is paid for the work and whether the cost is one-time or recurring. The main takeaway is that the license line is only one part of the comparison, since Hoppscotch self-hosting adds recurring hosting, sign-in and administration work.

Cost componentThunder ClientBruno or self-hosted HoppscotchOne-time or recurring
Subscription or licensePer-seat plans; confirm current seat prices and plan limits with Thunder ClientBruno Open Source is $0; Pro and Ultimate are $6 and $11 per user per month, billed annually. Hoppscotch Community Edition is freeRecurring for paid seats; none for Community Edition
InfrastructureNone; the client runs inside the editorBruno runs on each device. Hoppscotch needs container hosts, PostgreSQL and SMTPRecurring
ImplementationInstall the extension and sign inBruno: install from a package manager. Hoppscotch: deploy containers, set DATABASE_URL and configure OAuth and SMTPOne-time
Migration of collections and environmentsExport collections; confirm export format and options with the vendorImport Postman v2 or v2.1 JSON into Bruno or Hoppscotch. Review scripts and variables by handOne-time
SupportSupport tier included in your plan; confirm terms with the vendorBruno: paid editions include support through their license portal. Hoppscotch: forum support on Community, priority support on EnterpriseRecurring
UpgradesDelivered by the vendor within the extensionBruno: update desktop builds. Hoppscotch Community: your team applies quarterly releasesRecurring
Internal skillsLittle new training; team already works in VS CodeBruno: Git workflow for collection files. Hoppscotch: Docker, PostgreSQL and SMTP administrationOne-time to learn; recurring for Hoppscotch administration

What each edition charges per user, and what it leaves out

Bruno's desktop client is MIT-licensed, and its Open Source edition costs $0. The paid editions are priced per user and billed annually, so the recurring cost depends on how many people need the features they unlock. The Bruno pricing page is the place to confirm current tiers and limits.

  • Open Source ($0): Includes clone, initialize, diffs, pull and commit in the Git UI, with a limit of 2 workspaces and 5 OpenAPI syncs per month.
  • Pro ($6 per user per month): Adds the paid Git UI operations, including push, branch operations, remote connections and merge conflict resolution.
  • Bruno's highest-priced edition ($11 per user per month): Adds bulk import of a Postman data dump containing all collections and environments.
  • SSO and provisioning: SAML single sign-on and SCIM provisioning are tied to the paid editions, with license keys managed in a license portal.
  • Git outside the app: Git still works from the terminal or any other tool on every edition, so teams can keep using their existing version control workflow.

Confirm on the pricing page which edition each feature belongs to, and ask how seats are counted for people who only read collections or run them in CI.

What moves the total: seats, sign-in, CI runs and data volume

Six drivers decide whether a move from Thunder Client to Bruno or Hoppscotch lowers total cost. Each one changes a per-seat fee, a platform workload or the migration effort, so price them together before comparing list prices. Check each driver against your own team size, pipelines and collection files, and ask for written terms for any tier you may need.

Editor users who share collections

Per-user pricing is the largest recurring line when many people share collections. Bruno's Pro edition lists $6 per user per month and its top paid edition $11, both billed annually, while its Open Source edition is limited to 2 workspaces. Hoppscotch Business lists $6 and Enterprise $11 per user per month on its pricing page, and Community Edition has no seat fee. Count people who edit shared collections, not only those who run them, and ask Thunder Client how its plans count seats.

Single sign-on and user provisioning

Sign-in requirements decide whether a free tier is enough. Bruno's paid editions add SAML single sign-on and SCIM provisioning through a license portal, while the Open Source edition needs no license management. Hoppscotch Community Edition signs users in with Email, GitHub, Google or Microsoft OAuth and needs SMTP settings for email. SAML SSO, OpenID Connect and SCIM user and group provisioning come with Hoppscotch Enterprise, which requires a license key. If your identity provider must enforce SSO and remove leavers automatically, price that tier before comparing seat totals.

Collections that run in CI

Every collection run in a pipeline adds CI minutes and a command line tool your team must maintain. Bruno's bru run command produces test reports. The Hoppscotch CLI runs hopp test and writes JUnit XML reports, but it is described as alpha and needs Node.js 22 or later. Count the pipelines and the collections each one calls, then confirm that your CI system reads the report format you choose. Thunder Client places its CLI behind paid plans, so compare CI terms on the same list of requirements.

Size of imported collections

Large Postman or OpenAPI imports set how much migration work lands on your team. Hoppscotch's importer accepts Postman and Insomnia collections and environments and OpenAPI collections, with a size limit that is lower on Hoppscotch Cloud than on self-hosted editions. Bruno imports Postman Collection v2 and v2.1 JSON, and bulk import of a full Postman data dump is included in Bruno's highest paid edition. Measure your export files before choosing a path, split oversized collections, and budget time to review scripts that import with warnings.

Data residency and stored credentials

Where collections live decides who can read the credentials embedded in requests. Offline Bruno keeps collections as files in a folder you choose, and self-hosted Hoppscotch keeps team workspaces in a PostgreSQL database on infrastructure you run. Postman's EU Data Residency instance is limited to Enterprise customers. Control of stored credentials moves cost onto your side, including storage, backups and access reviews. Ask each option to document where secrets are stored, who can export them and how they are protected at rest.

In-house platform skills

Self-hosting Hoppscotch adds a platform workload to your team. Community Edition runs as Docker containers or through a Helm chart on Kubernetes, stores data in PostgreSQL set through DATABASE_URL, and needs SMTP settings. The prerequisites list 4 CPU cores and 4 GB of RAM to build the image and 1 CPU core and 2 GB of RAM to host it. Staff time for upgrades, backups and quarterly releases recurs, while the Bruno desktop app needs installation and basic Git knowledge. Confirm who owns the server before you choose Hoppscotch.

What running a self-hosted Hoppscotch server actually costs

A self-hosted Hoppscotch server replaces a per-seat subscription with infrastructure and staff time, and the cost sits in the components you run. The Community Edition ships as Docker containers, either as separate frontend, backend and admin images or as one all-in-one container. Data lives in a PostgreSQL database that you point to with DATABASE_URL, so you need a database to back up, patch and monitor. Email sign-in and invitations need SMTP settings, and you choose the sign-in methods (Email, GitHub, Google or Microsoft OAuth), each of which you register and maintain with the provider. Ask your platform team which of these already has an owner and an operating standard.

The stated sizing is 4 CPU cores and 4 GB of RAM to generate the build image, and as little as 1 CPU core and 2 GB of RAM to host the output. Build capacity is needed for installation and upgrades, not for steady use, so a short-lived build host or CI runner may be enough, but you should confirm that with the install documentation for the version you deploy. Hosting cost is the part that recurs. Multiply the host and database resources by your cloud or data center rate, and add backup storage and monitoring. Use the buyer's own environment to set the hourly or monthly rate, and do not rely on a figure from this page.

Staff time is the largest and least predictable line. Hoppscotch's Community Edition is installed, administered and updated by you, with quarterly releases, and support comes from the community forum. Someone must plan each upgrade, test collections against the new build, and roll back if needed. Estimate those hours from your own change process, and include on-call coverage for sign-in or database failures that block the whole team. The Enterprise Edition moves SAML-based SSO, OpenID Connect, SCIM provisioning and audit logs into a licensed tier with a license key, and guaranteed quarterly updates and priority support are part of that tier. Ask Hoppscotch for the current Enterprise price in writing, and compare it with the hours your team would otherwise spend on identity integration and audit evidence.

How to build the Thunder Client cost model with your own numbers

This sequence turns the published plan prices into a cost model for your own team, covering seats, features, migration effort and recurring running costs. The result is a comparison over a horizon you choose, backed by measured migration time and written quotes.

  1. Count active editor users and seats

    Start by listing everyone who opens Thunder Client in Visual Studio Code in a normal month, not only the people on the current invoice. Separate the people who only send requests from those who maintain shared collections, because they drive different plan needs. Confirm the seat count with the team leads and with whoever administers your Thunder Client account. The step is done when you have one agreed headcount per group and a short note of who maintains shared collections.

  2. List Thunder Client features in use

    Write down which Thunder Client capabilities your team relies on, such as the number of collections, imports, exports, environments, scripts, team sharing and the CLI for CI runs. For each feature, check the current Thunder Client plan page to see which tier includes it, and confirm the free plan limits in the vendor's documentation. The output is a feature-to-plan map that shows which seats must be paid and which work could stay on a free tier.

  3. Price Bruno and Hoppscotch per user

    Use the published rates to price each option per user. Bruno's pricing page lists the Open Source edition at $0, Pro at $6 per user per month and Ultimate at $11 per user per month, both billed annually, with Open Source limited to 2 workspaces and 5 OpenAPI syncs per month. Hoppscotch's pricing page lists Business at $6 and Enterprise at $11 per user per month, billed annually. Check which Git, SSO, SCIM and bulk import features each edition includes against the features your team needs. Note that Community Edition of Hoppscotch is free but is run by your own staff.

  4. Estimate one-time migration and server setup

    Add the one-time work for each collection set. For Bruno, this covers exporting Thunder Client collections in a Postman-compatible format, importing them, and fixing scripts and variables. For a self-hosted Hoppscotch server, it covers the build, the PostgreSQL database, OAuth and SMTP configuration, and the first user onboarding. Ask your staff or a partner for effort estimates in writing for each item, and record them separately from licence costs. The output is a one-time cost table, one row per collection group.

  5. Add recurring hosting, upgrades and staff time

    Model the costs that repeat each year. For Bruno Open Source and Community Edition Hoppscotch there is no licence fee, so the recurring costs are hosting for Hoppscotch, time to apply quarterly releases, backups, and support time from your own staff or a retainer. Bruno paid editions and Hoppscotch Business or Enterprise add per-user licences on top. Ask for quotes that show the licence, implementation and support lines separately, so you can compare the recurring parts fairly. The output is an annual running cost per option.

  6. Run a pilot on one collection group

    Choose one representative collection group, such as a service with scripts, environments and a CI run, and migrate it to Bruno and to a test Hoppscotch instance. Record the actual minutes spent on export, import, script fixes and verification, and note every feature that did not translate. Confirm that Bruno's Postman script translation and Hoppscotch's importer handle your scripts, and check any packages flagged as unsupported. The pilot is complete when you have measured migration time for one group and a list of manual fixes you can extrapolate from.

  7. Compare totals over your chosen horizon

    Set the comparison horizon yourself, for example three or five years, and apply the same seat count, growth assumption and discount terms to every option. Add the one-time costs from the pilot to the recurring costs, then show the total for each option side by side. Test the result against the sensitivity of seat count and migration time, because those drive most of the difference. Request written quotes that separate license, implementation and support before you decide, and treat any figure without a written source as an assumption to be confirmed.

Costs teams forget on each side of the comparison

Seat prices are the number most teams compare first, but migration and operating costs often decide the total. The cards below cover work that is easy to miss on the Thunder Client side and on the Bruno or Hoppscotch side, and mark which costs are paid once and which recur.

Rewriting Postman-specific scripts

Pre-request and test scripts written against Postman APIs need review after import. Bruno translates common functions such as pm.test, pm.environment and pm.response, but it flags postman-collection and newman as unsupported, so any script that depends on them must be rewritten by hand. This is a one-time cost that grows with the number of scripts that use those packages. Ask your team to count such scripts before setting a migration date.

Re-creating environments and secrets

Environment variables, collection variables and credentials do not always move cleanly with requests. Each environment must be checked after import, and secrets must be re-entered in the new tool's storage. Thunder Client users often keep tokens in local environments, so confirm which values are shared and which belong to one person. This is a one-time cost, but errors here can cause failed test runs that look like API faults.

Moving CI runs to a new command line

Thunder Client runs in the editor, so pipelines that call its command line will not work after the switch. Bruno runs collections through bru run, and the Hoppscotch CLI runs them with hopp test. The Hoppscotch CLI is marked alpha and needs Node.js 22 or later on the runner. Budget time for pipeline changes, and ask whether the runner image must be updated. Maintaining runner images is a recurring cost.

Git hosting and review for Bruno

Bruno stores collections as files in a local folder, so teams that want shared, reviewed changes need a Git repository and a review process. Git itself is free, but the hosting platform, access control and merge reviews are not. Bruno's paid editions add Git push, branch operations and merge conflict resolution inside the app, while the open-source edition covers clone, pull, commit and diffs. Check whether your team will use Git outside the app. This cost recurs through hosting and review time.

Running the Hoppscotch database

A self-hosted Hoppscotch Community Edition stores team workspaces in PostgreSQL set through DATABASE_URL. Your team owns the database, its backups, restore tests, upgrades and patching. The Community Edition is installed and updated by the user, so the operating effort never ends. Confirm who holds the database role, how often restores are tested and how the quarterly releases will be applied. This is a recurring cost that is often assigned to nobody.

Retraining users and sign-in changes

Shortcuts, sharing habits and sign-in flows change when a team moves clients. Hoppscotch Community Edition signs users in through email, GitHub, Google or Microsoft OAuth providers that the administrator configures, and it needs SMTP settings for email. Bruno's paid editions add SAML single sign-on and SCIM provisioning through a license portal. Plan short training sessions, a sign-in test for every group and a single point of contact for the first two weeks. Training is one-time, but sign-in support can recur until the setup settles.

How long migrating collections takes and what it depends on

The supplied facts do not give a migration duration for moving from Thunder Client to Bruno or Hoppscotch, so the buyer has to measure it on their own collections before planning the cutover. The work has a fixed shape: export each collection and its environments in Postman Collection v2 or v2.1 JSON, import them into Bruno or Hoppscotch, then check each request by hand. Bruno imports Postman collections in either format, and Hoppscotch's importer accepts Postman collections and environments, so the export step is common to both targets. Ask the migration partner to confirm which export path Thunder Client supports in your installed version, because the exact menu steps are not covered by the facts here.

Most of the effort after import goes into verification rather than file conversion. Check authentication settings such as bearer tokens, API keys and OAuth configuration, because these often carry credentials that must be moved to a secure store instead of a shared file. Check variables in each environment, since a request that resolves a variable differently after import will fail silently in a test run. Review every test and pre-request script: Bruno translates common Postman script APIs such as pm.test and pm.environment but flags packages such as postman-collection and newman as unsupported, so scripts that use them need rewriting. Confirm that OpenAPI-based requests generated by Bruno's bru import command or Hoppscotch's importer match the endpoints you expect.

The main drivers of duration are the number of collections, the number of requests in each, and how much script logic sits inside them. A small set of simple collections is a matter of hours for one person in a test environment, while a large team library with custom scripts and many environments takes longer, and that estimate is illustrative only. Bulk import of a full Postman data dump of all collections and environments is a paid feature in Bruno Ultimate, so decide early whether you need it or whether per-collection import is enough. Request a written estimate from the vendor and from a migration partner based on a sample export of your largest collection, and require the estimate to list the scripts, auth methods and environments it assumed.

What buyers ask before they cost out a move from Thunder Client

How much effort does a move from Thunder Client take?

Effort depends mostly on how many collections, environments and scripts the team has, and on how many scripts use client-specific APIs. Exporting and importing is usually the smaller step. Bruno imports Postman Collection v2 and v2.1 JSON and translates common calls such as pm.test, pm.environment, pm.globals, pm.collectionVariables and pm.response. It flags postman-collection and newman as unsupported, so those scripts need hand rework. Start by inventorying a sample of collections, count the scripts that rely on unsupported packages, and confirm the export options in Thunder Client's current documentation before you plan the work.

Can our team migrate collections without outside help?

A small team can move Bruno collections alone, because Bruno is a desktop application and its collections are plain files in a folder. The team still needs one person who can review translated scripts and variables. A self-hosted Hoppscotch server needs more: someone must deploy Docker containers or the Helm chart, set the PostgreSQL connection through DATABASE_URL, configure SMTP and sign-in providers, and run upgrades. DeployOpen can plan, implement, harden, back up and document that setup in your own infrastructure under a written, fixed scope if your team lacks capacity.

How long do migration and cutover take for a team?

No supplied source gives a migration duration, so treat any figure you see as a claim to verify. The drivers are the number of collections and environments, how many scripts need rewriting, how many CI pipelines call the old runner, and how many people must be retrained. Cutover is quicker when both clients run side by side for a short period and when someone owns a list of collections still pending. Ask any implementation partner for a written timeline tied to a defined scope, and ask Thunder Client's vendor for current export and support terms.

Does Bruno's free edition include SSO and user provisioning?

No. According to Bruno's documentation, SAML single sign-on and SCIM provisioning belong to the paid editions, which use license keys managed in a license portal. The Open Source edition is listed at $0, is limited to 2 workspaces and 5 OpenAPI syncs per month, and covers clone, initialize, diffs, pull and commit in the Git UI. Push, branch operations, remote connections and merge conflict resolution are paid features in the app, although Git still works outside it. The Pro edition is listed at $6 per user per month, billed annually. Confirm current terms on Bruno's pricing page before you budget.

What does a self-hosted Hoppscotch server need from our team?

The Community Edition is free and MIT-licensed, but your team installs, administers and updates it, with quarterly releases and community forum support. The build step needs 4 CPU cores and 4 GB of RAM, and hosting the output needs as little as 1 CPU core and 2 GB of RAM. Plan for a PostgreSQL database, SMTP settings for email, and OAuth providers for Email, GitHub, Google or Microsoft sign-in. The Enterprise Edition adds SAML SSO, OpenID Connect, SCIM, audit logs and priority support, and it requires a license key. Ask for those terms in writing, since Hoppscotch's pricing page lists per-user rates that you should verify.

Can our CI runs move from the Thunder Client CLI?

Yes, but the replacement depends on what your pipelines do. Bruno provides bru run, which runs collections from the command line and produces test reports. The Hoppscotch CLI, installed from npm as @hoppscotch/cli, runs hopp test against a file or a self-hosted instance and can write JUnit XML reports. The Hoppscotch CLI is described as alpha and needs Node.js 22 or later. Before cutover, confirm how your current CLI usage is licensed in Thunder Client, port one pipeline first, compare its results with the old run, and then change the rest of the pipelines.

Which Thunder Client costs should we confirm before comparing?

Confirm Thunder Client's current free limits, paid plan prices, billing period and which features sit behind paid plans, including imports and the CLI. Ask whether seat counts include read-only users and how team workspaces are billed. Those are the Thunder Client terms that determine your baseline, and they are not in the sources used for this comparison, so request them from the vendor in writing. On the other side of the comparison, the cost components are Bruno seats if you choose a paid edition, Hoppscotch server hosting and database, your team's migration hours, and any outside implementation under a written scope.

How DeployOpen scopes a fixed-price migration and what it hands over

DeployOpen plans and implements self-hosted open-source platforms inside your own infrastructure, and most engagements are fixed-scope with the scope, deliverables and timelines agreed in writing before work starts. For Thunder Client cost vs Bruno and Hoppscotch, that means a written scope that separates the Bruno desktop move from any self-hosted Hoppscotch server work.

How we scope

  • Inventory every Thunder Client collection, environment and CI run so the written scope reflects what your team actually uses.
  • Record which collections hold embedded credentials and where your devices or servers should keep them.
  • Agree in writing whether the work covers Bruno on laptops, a self-hosted Hoppscotch instance, or both before any work starts.

How we build

  • Convert exported collections and environments, then review and fix scripts and variables that do not carry over cleanly.
  • Set up the Bruno folder layout for Git collaboration, or install and configure a Hoppscotch Community Edition instance in your environment.
  • Move CI runs from the Thunder Client CLI to the bru run or hopp test commands and check the test reports they produce.

How we hand over

  • Provide a written migration record listing each collection moved, what was changed by hand and what was left out.
  • Document the install, upgrade and backup steps for any self-hosted Hoppscotch instance in your own environment.
  • Deliver a short guide for developers covering where collections live, how to share them through Git and how to run tests in CI.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after the fixed-scope work ends.
  • Ask any provider to confirm which editions, features and licenses your team needs before the quote is finalized.
  • Confirm with your own security and compliance teams how collection data and credentials will be governed after handover.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.