CrofAI is an OpenRouter wrapper

CrofAI accepts the openrouter:advisor tool, completely unexpected for an independent inference provider. Recording the results of using this tool across every model shows CrofAI is an OpenRouter wrapper that silently routes to cheaper or weaker models than what you request, explaining its low prices. Proof that this was true at the time of writing follows later.

These models are routed to DeepSeek V4 Flash 0731:

These models are routed to GLM 5.3 Flash:

These models are routed to Kimi K2.7 Code:

These models are routed to Qwen3.7 Flash:

These models are routed to GLM 5.2:

These models are routed to GLM 4.7 Flash:

These models are routed to Qwen3.5 9B:

These models aren't swapped out, but aren't self hosted either:

Since CrofAI is working on patching the fingerprints mentioned here, our claims come with independently verifiable attestations published on GitHub: one from the morning of September 13 (run 34768920690), one from that night, after CrofAI's fixes (run 34804687001), and one after CrofAI's last deploy (run 34824987757), all on 1ec3ef0. The most common result for every model above is the same in all three. You're encouraged to ask your agent to use gh to verify it. If that's not enough, we have more reasons to be suspicious:

I gave CrofAI 5 shots to fix it, it still routed to OpenRouter

ktibow

i'm seeing crof falling back to openrouter on many models. i tried to debug this by using :consistent, like the playground does, but it's 404ing, is :consistent deprecated or smth? (to be fair it was one of the first ever features announced lol)

CROF_OWNER

What do you mean falling back to openrouter?

ktibow

it seems to not be going through crof's own inference - various things that only work on openrouter are working on crof

CROF_OWNER

interesting, I'll take a look at it

what are some of the things that typically only work on openrouter?

(it's possible some of it is from kimi or claude since I can't remember when I did this but a while back I was annoyed with some things people were saying were off about the API so I told whichever one I was using at the time to do it's best implementing a perfect OpenAI chat completions API and I said it should look to openrouter for examples but I'm not sure)

ktibow

i think the big one i noticed was that server tools were implemented

eg if i passed in type datetime instead of type function it could find the current date and time

but there's a lot more that just looks like a full fallback

hence me trying to use :consistent to see what happens when fallbacks are disabled

CROF_OWNER

huh, I mean I have some openrouter usage for comparison but it doesn't seem like GPUs are off necessarily so maybe it's just really frequent but honestly I'm not sure, I'll make some updates for better monitoring and ensure openrouter isn't anywhere it shouldn't be, I have tested our API with openrouter and I've set them as an all hell breaks loose fallback so I'll go through it myself and have a couple agents check me

thank you

CROF_OWNER

everyone should be invited to deepseek-v4.1-flash-lightning, and there's a new version that should properly apply the max output length as well as hopefully fixing some weird behavior that @KTibow noticed (sorry for the ping)

let me know if you have any issues with anything

(new version is here https://67.nahcrof.com/, I didn't pick the name because I'm brainrotted though I still am, I picked it because the local ip is .67)

Shot 1. I reported that CrofAI seemed to be "falling back" to OpenRouter, and that :consistent 404s. CrofAI said OpenRouter was only an "all hell breaks loose" fallback, and suggested the similarities could come from an AI told to look to OpenRouter when implementing the API (copying an API's shape doesn't make OpenRouter's server tools actually run, though). A few hours later, CrofAI shared a beta deploy with me.

ktibow

concerningly, 67.nahcrof.com is still falling back to openrouter

CROF_OWNER

What in the world

What all is happening?

ktibow

i can't say much - you'll need to check your code and run a debug request and see where it goes yourself

CROF_OWNER

I’ll set up some logging and a new version when I get home

Thank you for helping

Holy shit you’re right, I thought you weren’t because I signed into openrouter with the wrong email but there’s a not insignificant amount of traffic going to openrouter and from what I can tell on my phone it’s because I configured my gpu router to avoid high priced pro 6000s and vast isn’t playing nicely, I’m assuming I forgot to plug in my runpod fallback and instead it’s going to openrouter, I’ll push an update to the .67 server when I get home from work in a few hours and let you know, thank you so much

CROF_OWNER

alright, update is there, same url

Shot 2. The next morning, the new version was still routing to OpenRouter (as attested), just blocking non-function tools. CrofAI confirmed "a not insignificant amount of traffic" was going to OpenRouter, blamed a GPU router avoiding expensive RTX PRO 6000s (to be fair, their price went up recently as of writing), and pushed an update to the beta deploy.

ktibow

you definitely deployed the update but fallbacks are still being used

CROF_OWNER

Why do you say that?

If it’s consistent being broken I think one of the clankers broke it

I can fix that too and let you know so you can retest

ktibow

i can't say much - it's pretty consistent tho

you'll need to trace where each request is going and ensure your gpu fleets are running

since crof's codebase is private i can't do that on my own

CROF_OWNER

They are, I have the requests being tracked and none of them hit the fallback

I have openrouter set as a shit hit the fan fallback and none of them went there, how come you can’t say much?

ktibow

i would like to say more, but i can't since there's a chance you're acting in bad faith. if you were acting in bad faith, then i would just be giving you hints about how to fake not being openrouter.

what models say and how they say it looks like openrouter in multiple ways tho

CROF_OWNER

That’s sort of what I figured but I can assure you no requests are going to openrouter, the old api is but I’m tracking all requests actively

Is the concern that it’s not hitting GPUs or that the models are incorrect

ktibow

and :consistent ("Allow fallback servers" toggle in playground) is still broken, might be worth removing from the playground if it's no longer implemented

CROF_OWNER

I’ll try fixing that

Thank you

Shot 3. CrofAI denies anything going to OpenRouter now, but all models still had OpenRouter fingerprints, just with certain metadata masked.

CROF_OWNER

I’ll spin up another update with an experiment in a sec, can you do what you did for the last couple?

ktibow

i can, can you share more about the experiment?

*will

CROF_OWNER

If it’s alright I will but after the experiment, I want to try just running it and see if it feels better, I’ll share regardless afterwards

It might take a bit (like an hour or so) so I do apologize

ktibow

alright let me know when it's live

you could preregister an explanation about the experiment by using a cryptographic time lock service - encrypt now, send now, i decrypt only when time comes

ktibow

deployed yet?

CROF_OWNER

I can try that out

Not quite

ktibow

would appreciate if you sent the encrypted version

CROF_OWNER

sorry, just got back to my computer, I'll send that and then get the deployment finished

forgive me if this is silly but do I just send you the ciphertext?

ktibow

yeah

i won't be able to decrypt it until the time you set

CROF_OWNER

-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHRsb2NrIDMyMTg1MTUyIDUyZGI5YmE3
MGUwY2MwZjZlYWY3ODAzZGQwNzQ0N2ExZjU0Nzc3MzVmZDNmNjYxNzkyYmE5NDYw
MGM4NGU5NzEKc1NKbllJbUVjc1dUSnhhQUlrdFBwZ01KcWkwd3JReW8xMys5Z2tz
VkplMUZpSklWbVZXakhyNzI5SWUvamRYMgpHUDVra09YSlVXYjZ5QmUyTzQ3QXFx
YVZYVkRLV0tJbXQ5MkYzWUNNUlJUUU02MlU2UndBczdFK1cwTDBWSll3CjRpMEp2
ME5rVjdWNThmTXUzaDZxdmpWTmdhMVBQTmdkVHVxRUdWdzdzbUkKLS0tIG8vYVJr
Mjh3NldxYXZZUStzNThSV1RGUWRxVkJLcFp3OHZjNEtjSnhtY00Kv7Bcyia3gy7X
+tk1gNGyJ9qlKVtlgKSRd3i3a/WKGHeqwNLUn6wsxvTznYOtXXnPnnE0wnslCjRf
x7oKDiXL8IvRiIB0EnQ+wtKlw8YyNyUtF4CUmHx+azTfXltzbq9iIXxIGW1LTeQo
eelHcIYivr5LaQj7/f0beskS5pisRziQIcuwTc+3S+QdHhMcQTYbJQmi5qqY/cUx
skQC9sFaqo06WuN/mK4ifXq2UD8z2MLIeCrAWBCWKKRUaygMnCE8ro/cLXHDUSPL
ZYgImnzZmrwlqr5pbb/poJPmzQrFe551zMD0QXM2RVgaBjvsLcu7Fs2s1g3pq1VF
UnrC53QpT1uzYid9ZPyA1fcK6oCCy5slxp5QiV0vuonnvm6CqHZsdv15qHpNH8YM
CJkEfbrjoXSpROpmM0Xk7/KcSVtcUn5e64NpkxL0itIpkTukQvVfphSMelYOjEqQ
/6SPa3VUWmpfPf6pMO7JNG4Thl4ckWnbw8h3ZuJUHHZR6gu0QeMWsX6mpIk9oYlc
fXRYlaqKmtNq8H6D7lH5sH6PO4NfVsTgzmqxDK8Q277/0maEy2ttybOLvzikoflT
QNNWqW/eG7b+TZ6o/Wfn0NOspfVSF+NqAP2/w7gO
-----END AGE ENCRYPTED FILE-----

I set it for 23:07 my time

it's 22:10

CROF_OWNER

should be good

although I broke deepseek-v4-flash-0731 but I'll redeploy to the test here in a sec and it should be good

ktibow

ok back, looking now

CROF_OWNER

looks like my kimi-k3 deployment I set up for this broke so I apologize for that

I disabled all fallbacks to ensure we don't hit openrouter under any condition so perhaps that was going wrong and my fallback code once we fail to hit any GPUs is absolute spaghetti so perhaps that was part of it, I'm having kimi (on moonshot because I like their sub) look through it and I'm gonna be working on it and I'll have my junior audit my code and I'll audit the results he pushes

ktibow

to give some feedback before the answer about what changed is disclosed: most models look better, i'm still running tests to verify completely correct behavior rn

CROF_OWNER

basically I tried to avoid any inconsistencies that could come from my routing and fallbacks

ktibow

0731 seems still broken

CROF_OWNER

updated it just now

ktibow

ok yeah that fixed it

ill lyk when im done testing

Shot 4. CrofAI announced an "experiment", disabled "all fallbacks to ensure we don't hit openrouter under any condition", and time-locked an explanation that unlocked at 9:07 PM. Here's its decryption:

I'm deploying a separate version of the website, the deployments behind the backend will consist of two types, pretty much all models will go to a set of rented boxes that I hand configured and routed myself, they will not scale up or down traditionally (I anticipate that for this test it will cost a few hundred -- approximately). The only model that won't fit this is deepseek-v4-flash-0731 which will be deployed to my local dgx spark.

With "all fallbacks" disabled, the experiment still went to OpenRouter. From the attestation taken half an hour after it went live:

The other models just got new paint. Compared to the morning attestation, their gen- IDs became hex IDs, and the Kimi, GLM, and Gemma models that had been counting tokens like another model family started counting them like their own. The DeepSeek and Gemma models still downloaded images the same way as on crof.ai, from Huawei Cloud with browser User-Agents and from the same Cogent /24.

And crof.ai itself didn't change at all: every model gave the same advisor result 5 out of 5 times.

CROF_OWNER

Hey, I saw your blog, you said 4 tries but in your experience are you finding the new version to still be routed somehow? It feels a little like you exploited my confusion with time, I understand the concern but I don’t see what could be wrong with this latest version and you ended the story short I feel like but it could be my biased opinion

ktibow

yes, i waited for the latest 67.nahcrof.com deploy to be up before running audits that show it being routed to openrouter

CROF_OWNER

Then your latest audit is entirely false, your prior audits are correct in my finding, GPUs were scaling worse than poorly, they weren’t set up properly at all and that’s far from acceptable but in the latest update there’s no openrouter fallback, I did set up different versions of the models and invited specifically your account and mine since others use the .67 version so perhaps you used a different account and that’s the issues

?*

ktibow

you invited KTibow?

CROF_OWNER

Yes

Your latest audit is either false or done on a different account because the custom config contains no links to openrouter

ktibow

that's the account i was using - i'll test again to clear up any doubts

CROF_OWNER

I’ll deploy it to the whole site just in case, one sec

ktibow

okay, i'll hold off until you confirm then

CROF_OWNER

alright, once it starts try again

should be ready, as far as I see it there's a literal zero percent chance this somehow routes to openrouter

ktibow

will do

CROF_OWNER

this explains the easy scaling, I should've taken a more hands on approach and not gotten so lazy and just assumed it wasn't hitting backups

for transparency, I do route qwen3.5-9b to openrouter because I'm happy to eat the cost on that one

I'll check if there are others like that real quick

deepseek-v4-flash-vision-exp will still fallback and it's fallback is configured incorrectly, mimo-v2.5-pro is incorrect

ktibow

is that all?

CROF_OWNER

yes

I removed backups entirely, the config does not contain the option to backup for any of the models I didn't list unless I'm reading it wrong

openrouter does not exist in the config for any of the models I didn't list, fallback or primary

ktibow

so the rest

(excluding deepseek-v4-flash-vision-exp, qwen3.5-9b, mimo-v2.5-pro)

should all be running on crof infra now?

CROF_OWNER

the greg models I believe point to openrouter, in all honesty, my goal with greg was to experiment with increasing benchmark performance with a custom mcp thing, in my testing it did work but it was marginal at best and UI was better but that's about all

so greg models are openrouter re-routes

but otherwise yse

yes*

some of those are deprecated so they'll reroute though

ktibow

but reroute to another model running on crof infra?

CROF_OWNER

yes

ktibow

both crof.ai and 67.nahcrof.com are still routing to openrouter

CROF_OWNER

can you give me any examples? I know it feels like I'm fishing for ways to hide it but I seriously can't find any physical way that it's possible

crof.ai yes

but not the 67 domain

ktibow

i'm seeing various outside inference providers like fireworks have access to strings i only gave 67.nahcrof.com

CROF_OWNER

what in the world

do you mind if I try something else? And can you check deepseek-v4-flash-0731, because as far as I'm aware I'm literally just pointing that at my spark

perhaps I just royally fucked my codebase

Shot 5. CrofAI said it would deploy "to the whole site", then that outside the models it admitted, there was "a literal zero percent chance" of routing to OpenRouter. The attestation from a minute later shows crof.ai didn't change at all, and on 67.nahcrof.com, models CrofAI says it runs itself had their images downloaded by inference providers just like last time.

A real fallback would act much differently

The claims are questionable in the first place

Asked directly what K3 runs on, the answer was the same hardware as everything else:

Unravel

what you running kimi on now @CROF_OWNER?

CROF_OWNER

still pro 6000s like usual

their a great price per GB of vram

wait no, they're*

An RTX PRO 6000 has 96 GB, and the largest RTX PRO 6000 machine on Vast only has 8, making 765 GiB. CrofAI's K3 is 1,454 GiB at mxfp4 and ~802 GiB at Q2_K. Both quantizations would need to be split across two machines.

That's before the rest of the list. DeepSeek V4 Pro 0813 is 1.65 trillion parameters, which at the Q8_0 it advertises is 1,633 GiB: three machines. MiMo V2.5 Pro needs two. And if you add every model advertised as open weight in /v1/models, you get 8,716 GiB of weights running across 15 machines and 120 GPUs.

CrofAI's dedicated instance charges price VRAM at $0.0096 to $0.0112 per GiB-hour. Using the average of $0.01037 (which implies CrofAI charges $7.93 per box, while the cheapest 8 RTX PRO 6000 Vast box has been getting as expensive as $8.00/hr), the catalog comes to $2,170 a day.

If you switch to Vast's pricing - at least $8/hour for 8 Pro 6000s (as of writing) - you get a floor of $2,880 a day instead.

In May, CrofAI published that daily costs above $1,000, against revenue between $500 and $1,000, killed their subscription offering. Since then, prices have gone down.

It's implausible, not impossible. kimi-k3, kimi-k3-eco, deepseek-v4-pro-0813, and mimo-v2.5-pro just have to handle many expert all-to-all communication rounds per token (92 for K3) without any NVLink or fabric between the multiple machines they run on. This would be really interesting and novel if true, but CrofAI never claims, let alone provides evidence, that it is.

Disclosures

I have helped CrofAI before by promoting it, debugging it, and noting when it isn't the lowest price. CrofAI has helped me before by giving me unlimited tokens. I currently buy tokens on competitors Surplus Intelligence and Inferhub and sell tokens on competitor Surplus Intelligence. I currently use a free Claude subscription. However, nobody paid for this post.

I'm stopping use of CrofAI and I recommend others do the same. I don't condone targeting CrofAI's owner as a person - they're just young and made a mistake.

More posts