Pinned Tweet
We submitted a pull request to remove Basilisk from the Python typing repo. Many of the conformance tests were depending on pattern matching text in the PEP tests. We're working on fixing this and we will update the website ASAP. Read about it here
github.com/python/typing/pul…
⚡ Cold `basilisk check` got cheaper: a precomputed `builtins.pyi` index, lazy off-thread typeshed activation, zero-copy stub decode — and no Python spawn for auto-discovered interpreters, whose `sys.platform` and `site-packages` are already knowable. (#375)
🔍 Basilisk now recognises methods defined inside if, try, with and match blocks in a class body — so classes that build their methods conditionally, like under if TYPE_CHECKING:, check cleanly. (#366)
🙈 Inlay hints, twice fixed: the internal `Unknown` sentinel no longer leaks out as `list[Unknown]`. Display keeps the last good parse; diagnostics deliberately don't. (#392)
⌨️ Dot-completion now resolves loop variables, inferred literals, subscripted generics and expressions. A string-literal receiver even selects the PEP 675 `LiteralString` overloads now. (#392)
🚀 Basilisk 0.39.0 is here. Dot-completion wakes up on receivers that offered nothing, inlay hints stop leaking `Unknown` and stop vanishing mid-keystroke, and `basilisk check` cold-starts faster. Release notes thread 👇 🧵
📥 New rule: `imports_missing_name` flags `from M import X` when workspace module M defines no X. Deliberately conservative: a module-level `__getattr__`, a star-import, or an unreadable target all keep it quiet. (#362)
🧵
🐛 `str.join` arguments are now judged by their resolved TYPE instead of the syntactic shape of the expression. That one change closed 4 false positives and caught 1 error we were missing. (#357)
🧵
💾 Caching is now a property of your project, not of the command line you happened to type: `[tool.basilisk] cache` and `cache-dir`, surfaced in the VS Code configuration editor. `--no-cache` beats `--cache` when both appear. (#364)
🧵
🔗 Share any snippet by URL: the source is compressed into the hash fragment, so no server ever stores your code. Every diagnostic deep-links to its own /errors/BSK-XXXX/ page, so the playground teaches like every other surface. (#364)
🧵
🔌 And it's honest about what it is. Every import search root is empty, so it can never read your disk. The stdlib comes from the embedded typeshed snapshot, so `import typing` resolves in the browser exactly like it does locally. (#364)
🧵
🎮 The real checker, compiled to WebAssembly, running in your browser. Same parse → resolve → check pipeline `basilisk check` runs, not a reimplementation, so every rule fix reaches it for free. Zero server.
Try it: basilisk-python.dev/playgrou… (#364)
🧵
🚀 Basilisk 0.38.0 is here, and the headline is a big one: the checker now runs in your browser. Release notes thread 👇
🧵
✅ Through all of it: 100% conformance with the Python typing spec, 0 false positives — straight from the unmodified python/typing harness. That's the whole game. 🐍
🛡️ `basilisk fix` will never rewrite your virtualenv again (detected via pyvenv.cfg), and a bare `fix` now touches only your configured include roots — never the whole working dir. (#347)
🧵
