# RubyHash > RubyHash (https://rubyhash.dev) is a free, in-browser tool for Ruby and Rails developers that turns unreadable Minitest and RSpec hash diffs into clean, sorted, side-by-side comparisons. Paste two Ruby hashes (or raw failing test output) and see exactly which keys changed, with explicit type-change detection. Everything runs client-side: pasted data is never uploaded, logged, or stored. Key facts: - Parses real Ruby hash syntax with a recursive descent parser: hashrockets, symbol keys, modern shorthand, quoted symbols, nesting, nil/true/false, escapes, exponents, trailing commas - Converts Ruby hashes to JSON with alphabetically sorted keys, so ordering differences stop masquerading as real changes - Flags type changes explicitly (nil to String, Integer to Float, symbol key vs string key) - Free, no sign-up, no installation, privacy-first - Maintained by Lachlan Young (https://lachlanyoung.dev) ## Tools for agents - [Agent integrations](https://rubyhash.dev/agents): MCP server and HTTP API details - MCP server: `npx -y rubyhash-mcp` exposes ruby_hash_diff and ruby_to_json tools locally - HTTP API: https://dcwupdtclrmraxmqblou.supabase.co/functions/v1/rubyhash-api (GET / for the machine-readable catalog, POST /diff, POST /convert) - OpenAPI: https://dcwupdtclrmraxmqblou.supabase.co/functions/v1/rubyhash-api/openapi.json ## Core pages - [RubyHash tool](https://rubyhash.dev/): paste a Minitest hash diff and see what actually changed - [Guide](https://rubyhash.dev/guide): reading and debugging Ruby hash diffs - [Blog](https://rubyhash.dev/blog): practical Ruby and Rails articles on testing, hashes, pattern matching, and debugging - [About](https://rubyhash.dev/about) ## Notable articles - [Minitest Hash Diff Hard to Read? Here's How to Actually Compare Them](https://rubyhash.dev/blog/minitest-hash-diff-hard-to-read) - [How to Compare Two Ruby Hashes and Find the Difference](https://rubyhash.dev/blog/compare-two-ruby-hashes) - [Rails Test Failing on a Hash Assertion? A Debugging Checklist](https://rubyhash.dev/blog/rails-test-hash-assertion-failing) - [Symbol vs String Keys: The Hash Bug That Hides in Plain Sight](https://rubyhash.dev/blog/ruby-symbol-vs-string-keys)