We should probably be careful with terminology here, because extensions might come into play in our thinking.
The current situation is this: We hold a one-year team option for $2.3M.
If we do not pick up this option, Keon would be a free agent this summer, but we would have the ability to make a qualifying offer and make him a restricted free agent (we would certainly do this). Keon would be able to go out and determine his value in the free agent market, and assuming another team offers him a contract, we would have the option of matching that contract and keeping him. Since he has played with us for three seasons, we have full Bird rights on Keon and can match any offer. We could also offer him a contract on our own.
If we do pick up this option, Keon would be under contract next year for a very low salary, and then (likely) be an unrestricted free agent in the summer of 2026. We would not have the option of matching any contract, and Keon would be free to sign anywhere, including back in Sacramento, at his discretion. However, on or after the second anniversary of his signing of the current deal (that would be February 9th, 2026) we would be able to offer Keon an extension. If we offered him an extension, and he accepted it, he would obviously not go into free agency. However, the extension we offer has a maximum salary of about 120% of the MLE, which should come out to somewhere around $18.5M. Keon might think he can get more than that (or whatever extension we might offer) in free agency, so it's not a guarantee he would take it.
But those are the two options that are coming to a head with the Keon contract tomorrow.