{"exhaustive":{"nbHits":false,"typo":false},"exhaustiveNbHits":false,"exhaustiveTypo":false,"hits":[{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"ffin"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Castelion is raising a $350M Series B to scale hypersonic missile business"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://techcrunch.com/2025/07/03/castelion-raises-350m-series-b-to-scale-hypersonic-missile-business/"}},"_tags":["story","author_ffin","story_44463964"],"author":"ffin","children":[44464082],"created_at":"2025-07-04T12:34:03Z","created_at_i":1751632443,"num_comments":0,"objectID":"44463964","points":3,"story_id":44463964,"title":"Castelion is raising a $350M Series B to scale hypersonic missile business","updated_at":"2025-07-04T12:53:45Z","url":"https://techcrunch.com/2025/07/03/castelion-raises-350m-series-b-to-scale-hypersonic-missile-business/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"JumpCrisscross"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Startup Castelion Raises $100M for Hypersonic Strike Weapons"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.wsj.com/tech/startup-castelion-raises-100-million-for-hypersonic-strike-weapons-2362e7e4"}},"_tags":["story","author_JumpCrisscross","story_42866754"],"author":"JumpCrisscross","children":[42866978],"created_at":"2025-01-29T16:10:19Z","created_at_i":1738167019,"num_comments":1,"objectID":"42866754","points":2,"story_id":42866754,"title":"Startup Castelion Raises $100M for Hypersonic Strike Weapons","updated_at":"2025-01-30T02:45:50Z","url":"https://www.wsj.com/tech/startup-castelion-raises-100-million-for-hypersonic-strike-weapons-2362e7e4"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"ericmags"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Hey Hacker News! I'm Eric, the founder of Consus. We route all AI requests to ITAR restricted and controlled unclassified information (CUI) compliant infrastructure.\nConsus itself satisfies ITAR restrictions, and we recently completed our FedRAMP equivalency audit against the 410 FedRAMP High controls. FedRAMP High is the U.S. government\u2019s strictest security baseline for cloud services handling sensitive unclassified data. A breach of this data could cause severe or catastrophic harm. Achieving FedRAMP equivalency, or authorization, is required before processing CUI information.

Demo: https://youtu.be/6MYxJe6P4oY

Aerospace and defense is experiencing rapid growth. Unfortunately, most companies are struggling to use AI because of necessary data protections & compliance risk. These companies can move even faster if they could use the AI tools that most other industries take for granted.

I spent most of my career prior to Consus in aerospace & defense. I launched national security payloads at SpaceX, and was an early employee at Castelion. I\u2019ve watched first hand how compliance red-tape makes it difficult for companies to adopt new technologies and trust vendors that touch their sensitive data. For example, I worked with a satellite manufacturer that doesn\u2019t allow any AI tools, even for non-sensitive work.

Even as AI has become extremely useful over the past 9-12 months, I was surprised by how many aerospace & defense companies refused to touch it. They could see how it could be helpful, but they were scared about model providers training on their data, violating an ITAR rule, or risk losing new business because of a failed cyber assessment. These are all rational fears.

There were a lot of ways to solve some/all of these problems, but we focused on building a compliant AI inference layer that can "plug" into any AI tool or workflow. Just as OpenRouter integrates with most tools, Consus can connect to tools like ChatGPT or Claude, open source tools including the Pi coding agent or Open WebUI, or integrate with applications built and maintained by individual organizations.

Almost no aerospace & defense company lives in all three major GovClouds (AWS, Azure, Google). When I mapped where frontier models can legally run for ITAR and CUI work, each provider had some subset of models, and each model achieved varying levels of compliance. Our customers don\u2019t think in terms of cloud providers. They think about the data controls they require, and the model they want to use.\nThat is why we built the compliance suffix. Under the hood, every request hits a single OpenAI-compatible endpoint, where keys are verified and policy is enforced before anything touches inference. Every model name must carry a compliance suffix, such as gpt-5.6-sol:fedramp-high or claude-opus-5-5:itar, and any bare model name is rejected. We never proxy to the standard commercial endpoints.

Our customers are also able to build an allowlist of models, and assign spend & model restrictions to individual users in the organization. This is all handled through our Consus Portal where teams can manage spend, keys, and policies.

A typical question we hear is why not just use Bedrock in AWS GovCloud or Azure Government directly. For small teams, just getting access to these platforms is difficult. For larger organizations, GovCloud lets you inherit some but not all of the controls needed to handle sensitive data. Also, models are split across providers: GPT-5.6 Sol is only available in Azure Government, while Claude Opus 5.5 is served through Bedrock in AWS GovCloud. If you want both, you are standing up and securing two separate government cloud environments. We run all of them behind one endpoint so customers don\u2019t have to pick a cloud, and we handle the compliance work for each one.

Given the data sensitivities, Consus does not store any customer data at rest. All prompts and completions stay in memory only for the length of the request and are never logged or written to disk. Zero data retention is strictly enforced both on ourselves and the infrastructure/model providers. We do keep metadata on each request and response for billing and audit purposes.

Consus is not self-serve by design. ITAR requires us to know exactly who is on the other end of every key, so we verify every organization and put a contract in place before issuing API keys. We charge our customers a compliance fee starting at $40/mo/seat plus AI tokens at cost.

We are actively serving customers, and would love any feedback from security experts, or developers/engineers working in highly regulated industries!

References:\nAPI Documentation: https://gateway.consus.io/overview\nSecurity & Architecture: https://gateway.consus.io/security\nCompliance Details: https://consus.io/compliance"},"title":{"matchLevel":"none","matchedWords":[],"value":"Launch HN: Consus (YC F24) \u2013 LLM gateway for companies handling sensitive data"}},"_tags":["story","author_ericmags","story_50073471","launch_hn"],"author":"ericmags","children":[50073683,50073905,50074972,50075148,50075201,50076632,50078867,50079617,50082887,50083447,50083533,50108228,50139133,50178035,50179472,50190268],"created_at":"2026-10-13T15:41:00Z","created_at_i":1791906060,"num_comments":21,"objectID":"50073471","points":36,"story_id":50073471,"story_text":"Hey Hacker News! I'm Eric, the founder of Consus. We route all AI requests to ITAR restricted and controlled unclassified information (CUI) compliant infrastructure.\nConsus itself satisfies ITAR restrictions, and we recently completed our FedRAMP equivalency audit against the 410 FedRAMP High controls. FedRAMP High is the U.S. government\u2019s strictest security baseline for cloud services handling sensitive unclassified data. A breach of this data could cause severe or catastrophic harm. Achieving FedRAMP equivalency, or authorization, is required before processing CUI information.

Demo: https://youtu.be/6MYxJe6P4oY

Aerospace and defense is experiencing rapid growth. Unfortunately, most companies are struggling to use AI because of necessary data protections & compliance risk. These companies can move even faster if they could use the AI tools that most other industries take for granted.

I spent most of my career prior to Consus in aerospace & defense. I launched national security payloads at SpaceX, and was an early employee at Castelion. I\u2019ve watched first hand how compliance red-tape makes it difficult for companies to adopt new technologies and trust vendors that touch their sensitive data. For example, I worked with a satellite manufacturer that doesn\u2019t allow any AI tools, even for non-sensitive work.

Even as AI has become extremely useful over the past 9-12 months, I was surprised by how many aerospace & defense companies refused to touch it. They could see how it could be helpful, but they were scared about model providers training on their data, violating an ITAR rule, or risk losing new business because of a failed cyber assessment. These are all rational fears.

There were a lot of ways to solve some/all of these problems, but we focused on building a compliant AI inference layer that can "plug" into any AI tool or workflow. Just as OpenRouter integrates with most tools, Consus can connect to tools like ChatGPT or Claude, open source tools including the Pi coding agent or Open WebUI, or integrate with applications built and maintained by individual organizations.

Almost no aerospace & defense company lives in all three major GovClouds (AWS, Azure, Google). When I mapped where frontier models can legally run for ITAR and CUI work, each provider had some subset of models, and each model achieved varying levels of compliance. Our customers don\u2019t think in terms of cloud providers. They think about the data controls they require, and the model they want to use.\nThat is why we built the compliance suffix. Under the hood, every request hits a single OpenAI-compatible endpoint, where keys are verified and policy is enforced before anything touches inference. Every model name must carry a compliance suffix, such as gpt-5.6-sol:fedramp-high or claude-opus-5-5:itar, and any bare model name is rejected. We never proxy to the standard commercial endpoints.

Our customers are also able to build an allowlist of models, and assign spend & model restrictions to individual users in the organization. This is all handled through our Consus Portal where teams can manage spend, keys, and policies.

A typical question we hear is why not just use Bedrock in AWS GovCloud or Azure Government directly. For small teams, just getting access to these platforms is difficult. For larger organizations, GovCloud lets you inherit some but not all of the controls needed to handle sensitive data. Also, models are split across providers: GPT-5.6 Sol is only available in Azure Government, while Claude Opus 5.5 is served through Bedrock in AWS GovCloud. If you want both, you are standing up and securing two separate government cloud environments. We run all of them behind one endpoint so customers don\u2019t have to pick a cloud, and we handle the compliance work for each one.

Given the data sensitivities, Consus does not store any customer data at rest. All prompts and completions stay in memory only for the length of the request and are never logged or written to disk. Zero data retention is strictly enforced both on ourselves and the infrastructure/model providers. We do keep metadata on each request and response for billing and audit purposes.

Consus is not self-serve by design. ITAR requires us to know exactly who is on the other end of every key, so we verify every organization and put a contract in place before issuing API keys. We charge our customers a compliance fee starting at $40/mo/seat plus AI tokens at cost.

We are actively serving customers, and would love any feedback from security experts, or developers/engineers working in highly regulated industries!

References:\nAPI Documentation: https://gateway.consus.io/overview\nSecurity & Architecture: https://gateway.consus.io/security\nCompliance Details: https://consus.io/compliance","title":"Launch HN: Consus (YC F24) \u2013 LLM gateway for companies handling sensitive data","updated_at":"2026-10-22T23:57:23Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"hggh"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Why Switzerland has again slammed the door on Spanish judge Garc\u00eda-Castell\u00f3n"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.elnacional.cat/en/politics/why-switzerland-slams-door-spanish-judge-garcia-castellon_1235613_102.html"}},"_tags":["story","author_hggh","story_40689016"],"author":"hggh","children":[40689345],"created_at":"2024-06-15T11:17:25Z","created_at_i":1718450245,"num_comments":8,"objectID":"40689016","points":8,"story_id":40689016,"title":"Why Switzerland has again slammed the door on Spanish judge Garc\u00eda-Castell\u00f3n","updated_at":"2024-09-20T17:19:14Z","url":"https://www.elnacional.cat/en/politics/why-switzerland-slams-door-spanish-judge-garcia-castellon_1235613_102.html"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"stretchwithme"},"title":{"matchLevel":"none","matchedWords":[],"value":"Spain\u2019s phantom airports | PRI's The World"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.theworld.org/2011/04/spain-castellon-airport/"}},"_tags":["story","author_stretchwithme","story_2473067"],"author":"stretchwithme","children":[2473069],"created_at":"2011-04-22T02:06:37Z","created_at_i":1303437997,"num_comments":1,"objectID":"2473067","points":2,"story_id":2473067,"title":"Spain\u2019s phantom airports | PRI's The World","updated_at":"2024-09-19T17:43:12Z","url":"http://www.theworld.org/2011/04/spain-castellon-airport/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"Tomte"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Collections: Fortification, Part III: Castling"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://acoup.blog/2021/12/10/collections-fortification-part-iii-castling/"}},"_tags":["story","author_Tomte","story_29506897"],"author":"Tomte","created_at":"2021-12-10T06:06:14Z","created_at_i":1639116374,"num_comments":0,"objectID":"29506897","points":4,"story_id":29506897,"title":"Collections: Fortification, Part III: Castling","updated_at":"2024-09-20T09:58:13Z","url":"https://acoup.blog/2021/12/10/collections-fortification-part-iii-castling/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"DonCopal"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Vladimir Kramnik proposes no-castling chess to make the game more dynamic"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.chess.com/article/view/no-castling-chess-kramnik-alphazero"}},"_tags":["story","author_DonCopal","story_21684118"],"author":"DonCopal","created_at":"2019-12-02T16:48:40Z","created_at_i":1575305320,"num_comments":0,"objectID":"21684118","points":4,"story_id":21684118,"title":"Vladimir Kramnik proposes no-castling chess to make the game more dynamic","updated_at":"2024-09-20T05:23:33Z","url":"https://www.chess.com/article/view/no-castling-chess-kramnik-alphazero"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"showwebgl"},"story_text":{"matchLevel":"none","matchedWords":[],"value":""},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Castelnaud, UAV-3Dscanned"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://sketchfab.com/show/f9fe5987848741c693059e3fb0246f7f"}},"_tags":["story","author_showwebgl","story_7104828"],"author":"showwebgl","created_at":"2014-01-22T19:36:46Z","created_at_i":1390419406,"num_comments":0,"objectID":"7104828","points":2,"story_id":7104828,"story_text":"","title":"Castelnaud, UAV-3Dscanned","updated_at":"2023-09-06T21:59:11Z","url":"https://sketchfab.com/show/f9fe5987848741c693059e3fb0246f7f"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"shinobu_miya"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"I built Catelingo, a small constraint-based checker that flags semantically impossible LLM outputs, independent of likelihood, retrieval, or chain-of-thought.\nMany failures (temporal inconsistencies, numeric impossibilities, semantic type clashes) are fluent and high-likelihood. Catelingo reframes \u201csemantic validity\u201d as constraint satisfiability, not plausibility.\nIntentionally minimal & deterministic:\n- small sense-level lexicon\n- explicit constraint propagation (dependency-local)\n- verdict: SAT / UNSAT / UNKNOWN\n- optional degeneration rules for metaphor / domain adaptation

Paper (Zenodo): https://doi.org/10.5281/zenodo.18148498"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Show HN: Catelingo \u2013 Constraint-Based Semantic Validity Checker for LLM Outputs"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://github.com/ShinobuMiya/Catelingo"}},"_tags":["story","author_shinobu_miya","story_46500322","show_hn"],"author":"shinobu_miya","created_at":"2026-01-05T15:57:20Z","created_at_i":1767628640,"num_comments":0,"objectID":"46500322","points":2,"story_id":46500322,"story_text":"I built Catelingo, a small constraint-based checker that flags semantically impossible LLM outputs, independent of likelihood, retrieval, or chain-of-thought.\nMany failures (temporal inconsistencies, numeric impossibilities, semantic type clashes) are fluent and high-likelihood. Catelingo reframes \u201csemantic validity\u201d as constraint satisfiability, not plausibility.\nIntentionally minimal & deterministic:\n- small sense-level lexicon\n- explicit constraint propagation (dependency-local)\n- verdict: SAT / UNSAT / UNKNOWN\n- optional degeneration rules for metaphor / domain adaptation

Paper (Zenodo): https://doi.org/10.5281/zenodo.18148498","title":"Show HN: Catelingo \u2013 Constraint-Based Semantic Validity Checker for LLM Outputs","updated_at":"2026-03-05T23:16:13Z","url":"https://github.com/ShinobuMiya/Catelingo"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"diodorus"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"An Unusual Roman Fettered Burial from Great Casterton, Rutland"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.cambridge.org/core/journals/britannia/article/an-unusual-roman-fettered-burial-from-great-casterton-rutland/1C2ECF53B1B14CEB0790E170FD5AE442#"}},"_tags":["story","author_diodorus","story_27444106"],"author":"diodorus","created_at":"2021-06-09T04:03:35Z","created_at_i":1623211415,"num_comments":0,"objectID":"27444106","points":2,"story_id":27444106,"title":"An Unusual Roman Fettered Burial from Great Casterton, Rutland","updated_at":"2024-09-20T08:44:11Z","url":"https://www.cambridge.org/core/journals/britannia/article/an-unusual-roman-fettered-burial-from-great-casterton-rutland/1C2ECF53B1B14CEB0790E170FD5AE442#"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"krm01"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Giant of Castelnau"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://en.wikipedia.org/wiki/Giant_of_Castelnau"}},"_tags":["story","author_krm01","story_22359426"],"author":"krm01","created_at":"2020-02-18T19:28:45Z","created_at_i":1582054125,"num_comments":0,"objectID":"22359426","points":2,"story_id":22359426,"title":"Giant of Castelnau","updated_at":"2024-09-20T05:42:38Z","url":"https://en.wikipedia.org/wiki/Giant_of_Castelnau"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"hggh"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"30 a\u00f1os de Monkey Island [castilian]"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.vidaextra.com/cultura/30-anos-monkey-island-como-piratas-lucasarts-revolucionaron-videojuegos-a-base-vudu-grog-batallas-insultos"}},"_tags":["story","author_hggh","story_22390614"],"author":"hggh","created_at":"2020-02-22T12:13:40Z","created_at_i":1582373620,"num_comments":0,"objectID":"22390614","points":1,"story_id":22390614,"title":"30 a\u00f1os de Monkey Island [castilian]","updated_at":"2024-09-20T05:45:43Z","url":"https://www.vidaextra.com/cultura/30-anos-monkey-island-como-piratas-lucasarts-revolucionaron-videojuegos-a-base-vudu-grog-batallas-insultos"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"creolabs"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Hi, I am Marco and I live in a small town in Italy called Viadana (in Lombardy to be more precise). The exact location is: https://goo.gl/maps/UsUKshzvHGwVZ4nL6

In Lombardy, we are all following the same strict rules and we are forced to spend most of our time inside our house.

What I am unable to understand is why my small town has so many contagious, much more than a bigger city like Mantova.

The following is a table with all the nearby towns, with number of citizens and official contagious count:

Name # Population # Contagious\n======= ============ ============\nMantova 49400 32\nCastiglione 23700 29\nSuzzara 21300 4\nViadana* 20150 64\nPorto M. 16000 9\nCurtatone 14900 11

Further details about surface and density can be found here:\nhttps://www.tuttitalia.it/lombardia/provincia-di-mantova/50-comuni/popolazione/

Up-to-date contagious count:\nhttp://www.altramantova.it/it/cronacaam/mantova-am/24775-emergenza-coronavirus-aggiornamento-i-contagi-salgono-a-456-in-provincia-di-mantova-impennata-di-casi-a-viadana-ora-sono-64-cresce-anche-mantova-che-arriva-a-32.html

Is there any explanation?\nIf not, which kind of data I should collect in order to be able to find out an answer?"},"title":{"matchLevel":"none","matchedWords":[],"value":"Ask HN: Why so many contagious in my small town?"}},"_tags":["story","author_creolabs","story_22607872","ask_hn"],"author":"creolabs","children":[22608098,22608504,22609537],"created_at":"2020-03-17T17:55:57Z","created_at_i":1584467757,"num_comments":4,"objectID":"22607872","points":4,"story_id":22607872,"story_text":"Hi, I am Marco and I live in a small town in Italy called Viadana (in Lombardy to be more precise). The exact location is: https://goo.gl/maps/UsUKshzvHGwVZ4nL6

In Lombardy, we are all following the same strict rules and we are forced to spend most of our time inside our house.

What I am unable to understand is why my small town has so many contagious, much more than a bigger city like Mantova.

The following is a table with all the nearby towns, with number of citizens and official contagious count:

Name # Population # Contagious\n======= ============ ============\nMantova 49400 32\nCastiglione 23700 29\nSuzzara 21300 4\nViadana* 20150 64\nPorto M. 16000 9\nCurtatone 14900 11

Further details about surface and density can be found here:\nhttps://www.tuttitalia.it/lombardia/provincia-di-mantova/50-comuni/popolazione/

Up-to-date contagious count:\nhttp://www.altramantova.it/it/cronacaam/mantova-am/24775-emergenza-coronavirus-aggiornamento-i-contagi-salgono-a-456-in-provincia-di-mantova-impennata-di-casi-a-viadana-ora-sono-64-cresce-anche-mantova-che-arriva-a-32.html

Is there any explanation?\nIf not, which kind of data I should collect in order to be able to find out an answer?","title":"Ask HN: Why so many contagious in my small town?","updated_at":"2024-09-20T05:48:01Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"vigrant"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Built this mostly with AI assistance (vibe-coded). Stockfish 16 runs in the browser via WASM. Constraints are parsed in two layers: a hand-written rule parser handles common patterns (no captures, piece restrictions, no castling, etc.), and anything it can't match falls through to Claude Haiku, which generates a JavaScript matches(uciMove, chess) function on the fly. That function runs client-side and filters the list of legal UCI moves before being passed to Stockfish's searchmoves parameter, so Stockfish's skill level, depth, and randomness all still apply correctly within the allowed set.

Constraints can target the engine, the player, or both. Shareable via URL (FEN + constraints + ELO encoded as query params).

Pre-loaded challenge if you want to skip setup:

https://constrainedchess.vercel.app/?skill=5&c=player%7Ccan%..."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Constrained Chess, Play Stockfish with custom natural-language rules"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://constrainedchess.vercel.app/"}},"_tags":["story","author_vigrant","story_47200982","show_hn"],"author":"vigrant","children":[47201113],"created_at":"2026-02-28T22:27:57Z","created_at_i":1772317677,"num_comments":8,"objectID":"47200982","points":2,"story_id":47200982,"story_text":"Built this mostly with AI assistance (vibe-coded). Stockfish 16 runs in the browser via WASM. Constraints are parsed in two layers: a hand-written rule parser handles common patterns (no captures, piece restrictions, no castling, etc.), and anything it can't match falls through to Claude Haiku, which generates a JavaScript matches(uciMove, chess) function on the fly. That function runs client-side and filters the list of legal UCI moves before being passed to Stockfish's searchmoves parameter, so Stockfish's skill level, depth, and randomness all still apply correctly within the allowed set.

Constraints can target the engine, the player, or both. Shareable via URL (FEN + constraints + ELO encoded as query params).

Pre-loaded challenge if you want to skip setup:

https://constrainedchess.vercel.app/?skill=5&c=player%7Ccan%...","title":"Show HN: Constrained Chess, Play Stockfish with custom natural-language rules","updated_at":"2026-03-05T23:38:24Z","url":"https://constrainedchess.vercel.app/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"the_law"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"Hi HN!

I've been wanting to work with data, and I've also been in (yet another) chess era. So I started working on (yet another!) chess programming project.

You enter your chess.com username, a date range, and a max number of games. The tool fetches your games via the public chess.com API, identifies the ~10-15 most critical positions per game (captures, promotions, large clock drops, pre-checkmate sequences) and runs Stockfish at low depth on each of those positions in a Web Worker right there in the browser.

From that it builds a profile across all your games:\n- Which piece type you blunder with most\n- Which openings give you the most trouble\n- How your avg clock usage correlates with winrate\n- Endgame performance broken down by material configuration\n- Piece activity in wins vs losses\n- Castling timing and its correlation with results\n- and more, in varying degrees of usefulness

Stack: Vue 3 + TypeScript, chess.js for PGN parsing, Stockfish WASM in a Web Worker.

No backend, no login, no data leaves your browser. Built this for myself but figured others might find it useful. Would especially love feedback from stronger players on whether the insights are actually useful or just noise.\nSo far, even though some stats are obvious (my winrate improves when I think longer, interesting!), it helps to visualise it.

Information/disclaimer:\nAs this web tool runs only in the browser, I have made performance concessions to keep it as light and fast as possible. For this reason, some of the statistics may not be 100% accurate. It's more of a proof-of-concept/experiment. However, if you found it fun, interesting, or you have feedback or feature requests, let me know and I'll be happy to chat.\nIt also uses somewhat experimental features (WASM/service workers) and is prone to some unexplainable bugs sadly. \nThanks for reading!!"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: A chess.com profiler that runs Stockfish in the browser"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://the-law-1.github.io/chess-insights/"}},"_tags":["story","author_the_law","story_48160433","show_hn"],"author":"the_law","created_at":"2026-05-16T14:11:42Z","created_at_i":1778940702,"num_comments":0,"objectID":"48160433","points":1,"story_id":48160433,"story_text":"Hi HN!

I've been wanting to work with data, and I've also been in (yet another) chess era. So I started working on (yet another!) chess programming project.

You enter your chess.com username, a date range, and a max number of games. The tool fetches your games via the public chess.com API, identifies the ~10-15 most critical positions per game (captures, promotions, large clock drops, pre-checkmate sequences) and runs Stockfish at low depth on each of those positions in a Web Worker right there in the browser.

From that it builds a profile across all your games:\n- Which piece type you blunder with most\n- Which openings give you the most trouble\n- How your avg clock usage correlates with winrate\n- Endgame performance broken down by material configuration\n- Piece activity in wins vs losses\n- Castling timing and its correlation with results\n- and more, in varying degrees of usefulness

Stack: Vue 3 + TypeScript, chess.js for PGN parsing, Stockfish WASM in a Web Worker.

No backend, no login, no data leaves your browser. Built this for myself but figured others might find it useful. Would especially love feedback from stronger players on whether the insights are actually useful or just noise.\nSo far, even though some stats are obvious (my winrate improves when I think longer, interesting!), it helps to visualise it.

Information/disclaimer:\nAs this web tool runs only in the browser, I have made performance concessions to keep it as light and fast as possible. For this reason, some of the statistics may not be 100% accurate. It's more of a proof-of-concept/experiment. However, if you found it fun, interesting, or you have feedback or feature requests, let me know and I'll be happy to chat.\nIt also uses somewhat experimental features (WASM/service workers) and is prone to some unexplainable bugs sadly. \nThanks for reading!!","title":"Show HN: A chess.com profiler that runs Stockfish in the browser","updated_at":"2026-05-16T14:12:47Z","url":"https://the-law-1.github.io/chess-insights/"},{"_highlightResult":{"author":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"CastleOneX"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"I\u2019ve been working in ML software for 4 years, and I quickly ran into a recurring problem: I kept asking myself, "Why did I write this function this way?" or "Why is this block here?"

I tried to organize my thoughts with Obsidian and other note-taking apps, but let\u2019s be honest, documenting for yourself feels like a chore. Documentation always feels like it's meant for "someone else."

So, I decided to build a VS Code extension to save my reasoning and contextual memory directly linked to snippets, tags, and more. I even added a prioritized task list so I\u2019d know exactly what was pending the next day.

And what happened? I never used it.

Months later, I felt disappointed. I felt like I had wasted all that time on something even I didn't find useful.

Then, agents arrived.

Working with AI agents has been a mind-opening experience, but I hit a wall: the "Cold Start" problem. Every new session required me to explain everything from scratch. I tried MEMORIES.md, AGENTS.md, and Claude\u2019s project rules. Ironically, the cold start didn't improve as much as promised. Some benchmarks even show that agents perform worse when forced to parse too many static skill files, while others only show a marginal 10% improvement.

Out of curiosity, I decided to implement a local MCP so my agents could use Neurotrace autonomously.

The result was startling. I didn't think the agents would actually use the tool, but they are. I don't have formal benchmarks yet, but I can say with confidence that the cold start has drastically decreased. Since I use different agents from different providers, the "next" agent now knows exactly where we left off yesterday. They decide what contextual memories to save, and they do it surprisingly well. My workflow has improved significantly.

I'd love to hear your thoughts on agentic memory or if you've found better ways to handle context hand-off.

Cheers,

Irwing Castro (CastleOneX)

You can find it on the marketplaces here:

    VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=BlackIronTechnologies.neurotrace\n\n    Open VSX: https://open-vsx.org/extension/BlackIronTechnologies/neurotrace
"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Neurotrace \u2013 The extension I built but never used"}},"_tags":["story","author_CastleOneX","story_47475876","show_hn"],"author":"CastleOneX","created_at":"2026-03-22T09:42:22Z","created_at_i":1774172542,"num_comments":0,"objectID":"47475876","points":1,"story_id":47475876,"story_text":"I\u2019ve been working in ML software for 4 years, and I quickly ran into a recurring problem: I kept asking myself, "Why did I write this function this way?" or "Why is this block here?"

I tried to organize my thoughts with Obsidian and other note-taking apps, but let\u2019s be honest, documenting for yourself feels like a chore. Documentation always feels like it's meant for "someone else."

So, I decided to build a VS Code extension to save my reasoning and contextual memory directly linked to snippets, tags, and more. I even added a prioritized task list so I\u2019d know exactly what was pending the next day.

And what happened? I never used it.

Months later, I felt disappointed. I felt like I had wasted all that time on something even I didn't find useful.

Then, agents arrived.

Working with AI agents has been a mind-opening experience, but I hit a wall: the "Cold Start" problem. Every new session required me to explain everything from scratch. I tried MEMORIES.md, AGENTS.md, and Claude\u2019s project rules. Ironically, the cold start didn't improve as much as promised. Some benchmarks even show that agents perform worse when forced to parse too many static skill files, while others only show a marginal 10% improvement.

Out of curiosity, I decided to implement a local MCP so my agents could use Neurotrace autonomously.

The result was startling. I didn't think the agents would actually use the tool, but they are. I don't have formal benchmarks yet, but I can say with confidence that the cold start has drastically decreased. Since I use different agents from different providers, the "next" agent now knows exactly where we left off yesterday. They decide what contextual memories to save, and they do it surprisingly well. My workflow has improved significantly.

I'd love to hear your thoughts on agentic memory or if you've found better ways to handle context hand-off.

Cheers,

Irwing Castro (CastleOneX)

You can find it on the marketplaces here:

    VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=BlackIronTechnologies.neurotrace\n\n    Open VSX: https://open-vsx.org/extension/BlackIronTechnologies/neurotrace
","title":"Show HN: Neurotrace \u2013 The extension I built but never used","updated_at":"2026-03-22T09:45:31Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"lawrenceyan"},"title":{"matchLevel":"none","matchedWords":[],"value":"Kramnik and AlphaZero: How to Rethink Chess\u200e"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.chess.com/article/view/no-castling-chess-kramnik-alphazero"}},"_tags":["story","author_lawrenceyan","story_21789224"],"author":"lawrenceyan","children":[21812197,21812289,21812379,21812414,21812443,21812590,21812638,21813014,21813324,21813470,21813645,21813969,21814450,21815294,21815969,21816340,21816642,21817312,21818265],"created_at":"2019-12-14T12:40:56Z","created_at_i":1576327256,"num_comments":85,"objectID":"21789224","points":138,"story_id":21789224,"title":"Kramnik and AlphaZero: How to Rethink Chess\u200e","updated_at":"2024-09-20T05:24:04Z","url":"https://www.chess.com/article/view/no-castling-chess-kramnik-alphazero"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"endswapper"},"title":{"matchLevel":"none","matchedWords":[],"value":"Cow Dung Goes High Design"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.nytimes.com/2016/08/29/t-magazine/cow-poop-design-museum-castelbosco-farm.html"}},"_tags":["story","author_endswapper","story_12424184"],"author":"endswapper","children":[12426055],"created_at":"2016-09-04T13:20:31Z","created_at_i":1472995231,"num_comments":3,"objectID":"12424184","points":34,"story_id":12424184,"title":"Cow Dung Goes High Design","updated_at":"2024-09-19T23:38:25Z","url":"http://www.nytimes.com/2016/08/29/t-magazine/cow-poop-design-museum-castelbosco-farm.html"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"printerman"},"title":{"matchLevel":"none","matchedWords":[],"value":"89% of HP inkjets we checked can block third-party ink cartridges"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://castleink.com/blogs/printer-help/state-of-home-printing"}},"_tags":["story","author_printerman","story_50093393"],"author":"printerman","created_at":"2026-10-14T19:16:47Z","created_at_i":1792005407,"num_comments":0,"objectID":"50093393","points":5,"story_id":50093393,"title":"89% of HP inkjets we checked can block third-party ink cartridges","updated_at":"2026-10-14T21:33:45Z","url":"https://castleink.com/blogs/printer-help/state-of-home-printing"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"kervokian"},"title":{"matchLevel":"none","matchedWords":[],"value":"The language of marketing is so imprecise as to be almost meaningless"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.marketingweek.com/jp-castlin-language-marketing/"}},"_tags":["story","author_kervokian","story_28442530"],"author":"kervokian","created_at":"2021-09-07T08:54:54Z","created_at_i":1631004894,"num_comments":0,"objectID":"28442530","points":4,"story_id":28442530,"title":"The language of marketing is so imprecise as to be almost meaningless","updated_at":"2024-09-20T09:18:57Z","url":"https://www.marketingweek.com/jp-castlin-language-marketing/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"Brajeshwar"},"title":{"matchLevel":"none","matchedWords":[],"value":"New York City Map Is Full of Dutch Secrets"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.atlasobscura.com/articles/castello-plan-map-new-york-history"}},"_tags":["story","author_Brajeshwar","story_39792036"],"author":"Brajeshwar","children":[39795922],"created_at":"2024-03-22T16:06:13Z","created_at_i":1711123573,"num_comments":1,"objectID":"39792036","points":2,"story_id":39792036,"title":"New York City Map Is Full of Dutch Secrets","updated_at":"2024-09-20T16:42:36Z","url":"https://www.atlasobscura.com/articles/castello-plan-map-new-york-history"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"jseliger"},"title":{"matchLevel":"none","matchedWords":[],"value":"In a Global First, Shenzhen Steers Toward 100% Electric Bus Fleet"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://thecityfix.com/blog/in-a-global-first-shenzhen-steers-toward-100-electric-bus-fleet-xiangyi-li-sebastian-castellanos-schuyler-null/?utm_source=twitter.com&utm_medium=wricities&utm_campaign=socialmedia"}},"_tags":["story","author_jseliger","story_15856097"],"author":"jseliger","created_at":"2017-12-05T21:19:27Z","created_at_i":1512508767,"num_comments":0,"objectID":"15856097","points":2,"story_id":15856097,"title":"In a Global First, Shenzhen Steers Toward 100% Electric Bus Fleet","updated_at":"2024-09-20T01:43:07Z","url":"http://thecityfix.com/blog/in-a-global-first-shenzhen-steers-toward-100-electric-bus-fleet-xiangyi-li-sebastian-castellanos-schuyler-null/?utm_source=twitter.com&utm_medium=wricities&utm_campaign=socialmedia"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"castig"},"title":{"matchLevel":"none","matchedWords":[],"value":"Redesigning New Year's Resolutions"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.huffingtonpost.com/chris-castiglione/redesigning-new-years-resolutions_b_8851400.html"}},"_tags":["story","author_castig","story_10867200"],"author":"castig","created_at":"2016-01-08T18:50:35Z","created_at_i":1452279035,"num_comments":0,"objectID":"10867200","points":2,"story_id":10867200,"title":"Redesigning New Year's Resolutions","updated_at":"2024-09-19T22:43:42Z","url":"http://www.huffingtonpost.com/chris-castiglione/redesigning-new-years-resolutions_b_8851400.html"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"mcyger"},"title":{"matchLevel":"none","matchedWords":[],"value":"How PalmSprings.com Was Built into a $1MM+ Destination Website"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.domainsherpa.com/michael-castello-ccin-interview/#.TicFZFI_ZMQ.hackernews"}},"_tags":["story","author_mcyger","story_2786381"],"author":"mcyger","created_at":"2011-07-20T16:42:53Z","created_at_i":1311180173,"num_comments":0,"objectID":"2786381","points":1,"story_id":2786381,"title":"How PalmSprings.com Was Built into a $1MM+ Destination Website","updated_at":"2024-09-19T17:54:35Z","url":"http://www.domainsherpa.com/michael-castello-ccin-interview/#.TicFZFI_ZMQ.hackernews"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"ohjeez"},"title":{"matchLevel":"none","matchedWords":[],"value":"Rock Has a Voice and You Can Listen to It"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"https://www.outsideonline.com/2401508/castleton-tower-moab-vibrations-sound"}},"_tags":["story","author_ohjeez","story_20841603"],"author":"ohjeez","created_at":"2019-08-30T19:09:30Z","created_at_i":1567192170,"num_comments":0,"objectID":"20841603","points":1,"story_id":20841603,"title":"Rock Has a Voice and You Can Listen to It","updated_at":"2024-09-20T04:47:58Z","url":"https://www.outsideonline.com/2401508/castleton-tower-moab-vibrations-sound"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"Osiris30"},"title":{"matchLevel":"none","matchedWords":[],"value":"In a Global First, Shenzhen Aims to 100% Electrify Its Bus Fleet by End 2017"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://thecityfix.com/blog/in-a-global-first-shenzhen-steers-toward-100-electric-bus-fleet-xiangyi-li-sebastian-castellanos-schuyler-null/"}},"_tags":["story","author_Osiris30","story_15861547"],"author":"Osiris30","created_at":"2017-12-06T15:08:21Z","created_at_i":1512572901,"num_comments":0,"objectID":"15861547","points":1,"story_id":15861547,"title":"In a Global First, Shenzhen Aims to 100% Electrify Its Bus Fleet by End 2017","updated_at":"2024-09-20T01:43:36Z","url":"http://thecityfix.com/blog/in-a-global-first-shenzhen-steers-toward-100-electric-bus-fleet-xiangyi-li-sebastian-castellanos-schuyler-null/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"castig"},"title":{"matchLevel":"none","matchedWords":[],"value":"On Leaving the World Better Than How I Found It"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.huffingtonpost.com/chris-castiglione/on-leaving-the-world-bett_b_10058422.html"}},"_tags":["story","author_castig","story_11770413"],"author":"castig","created_at":"2016-05-25T15:22:15Z","created_at_i":1464189735,"num_comments":0,"objectID":"11770413","points":1,"story_id":11770413,"title":"On Leaving the World Better Than How I Found It","updated_at":"2024-09-19T23:17:00Z","url":"http://www.huffingtonpost.com/chris-castiglione/on-leaving-the-world-bett_b_10058422.html"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"castig"},"title":{"matchLevel":"none","matchedWords":[],"value":"On Solving Bigger Problems in Life"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["castelion"],"value":"http://www.huffingtonpost.com/chris-castiglione/on-solving-bigger-problem_b_8920038.html"}},"_tags":["story","author_castig","story_10859555"],"author":"castig","created_at":"2016-01-07T18:05:14Z","created_at_i":1452189914,"num_comments":0,"objectID":"10859555","points":1,"story_id":10859555,"title":"On Solving Bigger Problems in Life","updated_at":"2024-09-19T22:42:59Z","url":"http://www.huffingtonpost.com/chris-castiglione/on-solving-bigger-problem_b_8920038.html"},{"_highlightResult":{"author":{"fullyHighlighted":true,"matchLevel":"full","matchedWords":["castelion"],"value":"castalian"},"title":{"matchLevel":"none","matchedWords":[],"value":"YouTube blocked videos for Russian draft dodgers on request from Roskomnadzor"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://ovd.info/express-news/2024/05/20/youtube-po-trebovaniyu-roskomnadzora-zablokiroval-videoinstrukcii-dlya"}},"_tags":["story","author_castalian","story_40415565"],"author":"castalian","children":[40416371,40416403,40416451,40416686,40416953,40417352],"created_at":"2024-05-20T14:02:12Z","created_at_i":1716213732,"num_comments":20,"objectID":"40415565","points":50,"story_id":40415565,"title":"YouTube blocked videos for Russian draft dodgers on request from Roskomnadzor","updated_at":"2025-08-14T22:38:55Z","url":"https://ovd.info/express-news/2024/05/20/youtube-po-trebovaniyu-roskomnadzora-zablokiroval-videoinstrukcii-dlya"},{"_highlightResult":{"author":{"fullyHighlighted":true,"matchLevel":"full","matchedWords":["castelion"],"value":"castalian"},"title":{"matchLevel":"none","matchedWords":[],"value":"Epstein Science: the people Epstein discussed scientific topics with"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://edge.dog/templates/cml9p8slu0009gdj2p0l8xf4r"}},"_tags":["story","author_castalian","story_46932909"],"author":"castalian","created_at":"2026-02-08T09:58:11Z","created_at_i":1770544691,"num_comments":0,"objectID":"46932909","points":2,"story_id":46932909,"title":"Epstein Science: the people Epstein discussed scientific topics with","updated_at":"2026-03-05T23:32:26Z","url":"https://edge.dog/templates/cml9p8slu0009gdj2p0l8xf4r"},{"_highlightResult":{"author":{"fullyHighlighted":true,"matchLevel":"full","matchedWords":["castelion"],"value":"castello"},"title":{"matchLevel":"none","matchedWords":[],"value":"Ku Klux Klan \u2013 Hacked by Anonymous? [kkk.com]"},"url":{"matchLevel":"none","matchedWords":[],"value":"http://kkk.com"}},"_tags":["story","author_castello","story_11178511"],"author":"castello","created_at":"2016-02-25T22:55:01Z","created_at_i":1456440901,"num_comments":0,"objectID":"11178511","points":2,"story_id":11178511,"title":"Ku Klux Klan \u2013 Hacked by Anonymous? [kkk.com]","updated_at":"2024-09-19T22:55:22Z","url":"http://kkk.com"},{"_highlightResult":{"author":{"fullyHighlighted":true,"matchLevel":"full","matchedWords":["castelion"],"value":"castalian"},"title":{"matchLevel":"none","matchedWords":[],"value":"AI Zettelkasten Builder"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://edge.dog/docs"}},"_tags":["story","author_castalian","story_46664126"],"author":"castalian","created_at":"2026-01-18T02:04:30Z","created_at_i":1768701870,"num_comments":0,"objectID":"46664126","points":1,"story_id":46664126,"title":"AI Zettelkasten Builder","updated_at":"2026-03-05T23:27:07Z","url":"https://edge.dog/docs"}],"hitsPerPage":50,"nbHits":32,"nbPages":1,"page":0,"params":"query=Castelion&tags=story&hitsPerPage=50&advancedSyntax=true&analyticsTags=backend","processingTimeMS":9,"processingTimingsMS":{"_request":{"roundTrip":23},"afterFetch":{"format":{"highlighting":1,"total":1},"merge":{"mergeLoop":{"prepareNextHit":1,"total":1},"total":1},"total":1},"fetch":{"query":6,"total":7},"total":9},"query":"Castelion","serverTimeMS":11}