Facter
puppet.com
What it is
Facter is a free command-line tool that gathers system information such as hardware details, network settings, and operating system type and version. Puppet uses it to collect information before requesting a catalog or compiling one with puppet apply. Its built-in core facts include legacy and structured facts, though some facts do not apply to every system. Users can add custom facts in Ruby, with multiple resolutions available for determining a value, or external facts that return static data or output from a script or program. Facts can be hashes or arrays, and Boolean, numeric, and structured values retain their types. Configuration can block fact groups or cache results with time-to-live settings. Facts are available in Puppet manifests, while the --puppet option loads Puppet-specific facts from the command line. PuppetDB's API can support exploration, search, and reporting on infrastructure facts. Facter runs on Linux, macOS, and Windows and can be self-hosted. Legacy facts are omitted from default command-line output unless --show-legacy is used. Puppet's custom-fact examples require some Ruby familiarity, and facter.conf must be created manually or managed with a module.
Spec sheet
- What it does
- Facter is Puppet’s cross-platform system-profiling library that discovers per-node facts and exposes them as variables in Puppet manifests.Read 14 Oct 2026 · help.puppet.com
- Purpose
- Facter is a command-line tool that gathers facts about systems, including hardware details, network settings, and operating system type and version.Read 4 Oct 2026 · help.puppet.com
- License
- Facter is open source and the repository identifies the Apache-2.0 license.Read 14 Oct 2026 · github.com
- Acquisition news
- Perforce announced completion of its Puppet acquisition on May 18, 2022, with financial terms undisclosed.Read 14 Oct 2026 · perforce.com
- API extensibility
- Resolvers gather data from commands, files or other system sources, while the framework formats and exposes those values through Facter’s Ruby APIs.Read 14 Oct 2026 · github.com
- Built-in facts
- Facter ships with built-in core facts, including legacy and structured facts, though not all facts apply to every system.Read 4 Oct 2026 · help.puppet.com
- Collected data
- The command-line tool gathers hardware details, network settings, operating-system type and version, hostname, IP address and other system information.Read 14 Oct 2026 · github.com
- Command line
- Facter can be installed as a Ruby gem with the command gem install facter.Read 14 Oct 2026 · help.puppet.com
- Company headquarters and size
- LinkedIn lists Perforce Puppet headquarters in Minneapolis, Minnesota and company size of 501–1,000 employees.Read 14 Oct 2026 · linkedin.com
- Company identity
- Puppet was created in 2005 by Luke Kanies and has been owned by Perforce since 2022.Read 14 Oct 2026 · puppet.com
- Configuration
- Facter can be configured to block fact groups or cache facts with time-to-live settings; this can help when fact collection is slow.Read 4 Oct 2026 · help.puppet.com
- Configuration file limit
- Facter does not create facter.conf automatically, so users must create it manually or manage it with a module.Read 4 Oct 2026 · help.puppet.com
- Custom facts
- Users can add custom facts with Ruby snippets on the primary Puppet server, distributed to clients through module plug-ins.Read 14 Oct 2026 · help.puppet.com
- Documentation depth
- Official documentation covers CLI use, core facts, custom and external facts, structured facts and facter.conf configuration.Read 14 Oct 2026 · help.puppet.com
- Enterprise trial allowance
- Puppet Enterprise can be run on 10 nodes at no charge with no stated time limit.Read 14 Oct 2026 · puppet.com
- External facts
- External facts may come from arbitrary executables, scripts or static structured-data files, allowing facts to be written in languages such as Perl, C or plain text.Read 14 Oct 2026 · help.puppet.com
- Fact configuration
- The facter.conf file can cache or block fact groups and individual facts and controls global and command-line behavior.Read 14 Oct 2026 · help.puppet.com
- Fact groups
- Facter 4 supports user-defined fact groups and dot notation for custom and external fact hierarchies.Read 14 Oct 2026 · puppet.com
- Free node allowance
- Puppet Core has a free developer or user license for testing or development on a maximum of 25 nodes.Read 14 Oct 2026 · help.puppet.com
- Granular caching
- Facter 4 supports blocking and caching at any level of a fact hierarchy, including individual nested values.Read 14 Oct 2026 · puppet.com
- Independent pricing perception
- G2’s review summary places Puppet Enterprise’s perceived cost at the highest category, shown as four dollar signs, and reports an average implementation time of four months.Read 14 Oct 2026 · g2.com
- Latest release
- Facter 4.22.0 was released in September 2026 and constrains its JSON dependency to versions from 2.0 up to but excluding 4.Read 14 Oct 2026 · help.puppet.com
- Legacy fact behavior
- Legacy facts are excluded from default command-line output and can be included with the --show-legacy option.Read 4 Oct 2026 · help.puppet.com
- Limit: Capterra complexity
- Capterra reviewers repeatedly cite a steep learning curve and the complexity of Ruby-based development as drawbacks.Read 14 Oct 2026 · capterra.com
- Limit: G2 learning curve and cost
- G2 reviewers repeatedly describe Ruby or Puppet coding and initial setup as difficult, and some call Puppet Enterprise expensive versus alternatives.Read 14 Oct 2026 · g2.com
- Limit: Gartner unresolved issues
- A Gartner reviewer reports bumps and unresolved issues that are not always obvious and may require product changes.Read 14 Oct 2026 · gartner.com
- Limit: TrustRadius support scope
- A TrustRadius reviewer says open-source use has limited business support compared with the closed-source counterpart.Read 14 Oct 2026 · trustradius.com
- Maker history
- Puppet says it was founded in 2005 and acquired by Perforce in 2022.Read 4 Oct 2026 · puppet.com
- Praise: Capterra deployment automation
- Capterra reviewers praise deployment automation, reusable modules, integration with Docker and broad configuration-management capability.Read 14 Oct 2026 · capterra.com
- Praise: G2 automation and modules
- G2 reviewers repeatedly praise automation that reduces deployment work, extensive community support and modules, cross-platform operation, and scalability to very large server fleets.Read 14 Oct 2026 · g2.com
- Praise: TrustRadius reliability
- TrustRadius summarizes reviewers as valuing dependable infrastructure-as-code deployment, configuration-drift control and automation of repetitive operations.Read 14 Oct 2026 · trustradius.com
- Puppet integration
- Facter facts are available in Puppet manifests, and Puppet-specific facts can be loaded from the CLI with the --puppet option.Read 4 Oct 2026 · help.puppet.com
- Puppet use
- Puppet uses Facter to collect system information before requesting a catalog or compiling one with puppet apply.Read 4 Oct 2026 · help.puppet.com
- PuppetDB integration
- PuppetDB's API can be used to explore or build tools to search and report on infrastructure facts.Read 4 Oct 2026 · help.puppet.com
- Rating on Capterra
- Puppet Enterprise is rated 4.4 out of 5 from 24 reviews.Read 14 Oct 2026 · capterra.com
- Rating on G2
- Puppet Enterprise is rated 4.2 out of 5 from 43 reviews.Read 14 Oct 2026 · g2.com
- Rating on Gartner Peer Insights
- Puppet Enterprise is rated 4.1 out of 5 from 47 ratings.Read 14 Oct 2026 · gartner.com
- Rating on Software Advice
- Puppet Enterprise is rated 4.4 out of 5 from 24 reviews.Read 14 Oct 2026 · softwareadvice.com
- Rating on TrustRadius
- Perforce Puppet scores 8.5 out of 10 from 58 reviews and ratings.Read 14 Oct 2026 · trustradius.com
- Recent compatibility change
- Facter 4.16.0 raised the minimum Ruby version from 2.5 to 3.1 to reduce security risk.Read 14 Oct 2026 · help.puppet.com
- Recent feature
- Facter 4.21.0, released in August 2026, added native Windows disk and partition facts using WMI.Read 14 Oct 2026 · help.puppet.com
- Ruby integration
- The project is implemented in Ruby and is designed for native integration with Ruby-based Puppet and Bolt projects.Read 14 Oct 2026 · github.com
- Ruby knowledge
- Puppet's custom-fact examples require some familiarity with Ruby.Read 4 Oct 2026 · help.puppet.com
- Runtime requirements
- The repository lists Ruby 2.5 or newer and the FFI gem as requirements, with FFI used for facts such as mountpoints.Read 14 Oct 2026 · github.com
- Security compliance
- Puppet’s Security Compliance Enforcement modules apply CIS Benchmark and DISA STIG controls to Puppet Core or Puppet Enterprise environments.Read 14 Oct 2026 · help.puppet.com
- Structured data
- Facts can be structured as hashes or arrays, and Puppet preserves Boolean, numeric, and structured fact values without converting them to strings.Read 4 Oct 2026 · help.puppet.com
- Structured facts
- Facts can return hashes or arrays and Facter automatically treats those return values as structured data.Read 14 Oct 2026 · help.puppet.com
- Supported operating systems
- The project README lists Linux, macOS, Windows, Solaris and AIX as supported platforms.Read 14 Oct 2026 · github.com
- Timing diagnostics
- Facter 4 adds a --timing command-line option for profiling fact collection.Read 14 Oct 2026 · puppet.com
- Windows support
- Facter 4.21 added built-in disk and partition facts for Windows, using Windows Management Instrumentation to retrieve the information.Read 4 Oct 2026 · help.puppet.com
Plans and prices
Strong points and limits
Strong points
- Collects hardware, network, and operating system facts.
- Supports custom and external facts.
- Preserves Boolean, numeric, and structured values.
- Can cache facts with time-to-live settings.
- Runs on Linux, macOS, and Windows.
Limits
- Some built-in facts do not apply to every system.
- Custom facts require Ruby familiarity.
- Legacy facts are hidden by default.
- facter.conf must be created manually or managed.
Who it suits
Facter suits system administrators and Puppet users who need to gather and use machine facts in manifests or reporting workflows. Custom-fact authors should be comfortable with Ruby.
Facter in depth
Read the full write-up
Overview
Facter is a command-line utility for collecting hardware, network, and operating-system information from machines. It is best suited to administrators whose inventory feeds Puppet or other infrastructure workflows rather than people wanting a visual, one-off system report. The free price and extensible fact model are compelling, provided you can work with command-line configuration and, for custom facts, Ruby.
Key features
Facter's built-in core facts cover common system properties, with both legacy and structured forms. Coverage depends on the operating system, so a fact available on one machine is not necessarily present on another. Legacy facts are omitted from normal command-line output and require --show-legacy, keeping routine output focused while preserving access to older fields.
Extension options are broad. Custom facts are written in Ruby, and multiple resolutions can determine a value when different systems need different methods. External facts can instead return fixed data or the output of an executable script or program. That makes Facter adaptable to local conventions, but Ruby knowledge becomes part of the maintenance burden for teams building more than simple external scripts.
Facts may be hashes or arrays, and Puppet keeps Boolean, numeric, and structured values in those types rather than converting everything to text. You can block fact groups and apply time-to-live caching, useful when collection is slow or when repeated runs should avoid unnecessary work. Facter does not create facter.conf itself, so configuration requires a manually created file or module-managed setup.
Puppet collects Facter information before requesting a catalog or compiling one with puppet apply. The resulting facts are usable in manifests, and --puppet loads Puppet-specific facts from the command line. PuppetDB's API can support tools that search or report on infrastructure facts, extending Facter's value beyond an individual host.
Windows support includes built-in disk and partition facts in Facter 4.21, retrieved through Windows Management Instrumentation. That is a meaningful improvement for mixed-platform estates, while Linux and macOS remain supported alongside self-hosted deployments.
Pricing
Facter itself is free. The related Puppet Core Developer plan costs nothing for fewer than 25 nodes, making it the natural fit for small development or evaluation environments. Puppet Core Commercial is custom-priced for 25 or more nodes, while Puppet Enterprise and Puppet Enterprise Advanced are also custom-priced and require contacting sales. The free tier's node ceiling matters as an estate grows; larger deployments should budget for a commercial agreement rather than assume the developer terms continue.
Platforms
Facter runs on Linux, macOS, Windows, and self-hosted environments. Its command-line form suits servers and automation, while the Windows disk and partition facts use Windows Management Instrumentation.
Who it's for
Choose Facter when machine facts need to drive Puppet catalogs, manifests, inventory, or infrastructure reporting. It also fits technically capable operators who need structured output, selective collection, caching, or custom resolutions. It is a weaker choice for casual desktop diagnosis, users who expect automatic configuration, or teams unwilling to maintain Ruby-based extensions.
Pros and cons
Pros
Free core tool: There is no software charge, with a free Puppet Core Developer tier for environments under 25 nodes.
Extensible collection: Ruby custom facts, multiple resolutions, and executable external facts accommodate organization-specific data.
Automation-friendly types: Hashes, arrays, Booleans, and numbers remain structured for Puppet consumers.
Collection controls: Fact-group blocking and time-to-live caching can reduce the cost of slow collection.
Puppet alignment: Facts flow directly into manifests and can feed PuppetDB search and reporting tools.
Cons
Manual configuration: Users must create or module-manage facter.conf; it is not generated automatically.
Ruby requirement: Custom-fact work favors teams already comfortable with Ruby.
System-dependent coverage: Not every built-in fact applies on every operating system.
Commercial scaling: Beyond the under-25-node developer tier, Puppet plans move to custom pricing.
Alternatives
For a broad directory of system-information tools, see System Information Software.
BelManage is a paid, cross-platform asset and configuration-management option with a 10.00 USD yearly on-premises computer plan and a free trial; pick it when managed asset records matter more than Puppet-native facts.
HWMonitor is a free Windows and Android sensor monitor, with a 19.95 USD one-time Pro Standard option; choose it for live hardware-sensor monitoring rather than infrastructure fact collection.
SIW targets Windows system information and offers a free viewer plus a free 14-day trial version; it suits desktop inspection.
Fastfetch is a free MIT-licensed command-line tool with more than 75 system-information modules across Android, Linux, macOS, and Windows; choose it for readable local summaries without Puppet integration.
ASTRA32 is a Windows freemium utility, free for non-commercial use.
hw-probe is a free Linux and self-hosted project for anonymous hardware collection and collaborative troubleshooting.
AIDA64 is a paid diagnostic suite for Android, iOS, and Windows, with free trials and licensed editions.
EtreCheckPro is a macOS freemium diagnostic tool with a free command-line-capable download and a one-time Power User upgrade.
Verdict
Facter is the right choice for Puppet-oriented administrators who need extensible, structured facts across Linux, macOS, Windows, or self-hosted systems at no software cost. Choose something else when you need a polished desktop report, live sensor monitoring, or configuration that works without Ruby and manual file setup.
Verdict
Facter provides system facts for command-line use and Puppet workflows, with options for custom facts and collection configuration. Users should note the Ruby requirement for custom facts and the manual configuration-file setup.
Where Specifiction places it
- System Information Software#2 of 348.8