twinBASIC Update: June 9, 2026
Highlights include the release of a standalone "Import/Export" tool to zip/unzip .twinproj files and an automated "Discord Knowledge Harvester" code-named, 'Wisdom.'
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. (And I was oh so close...) With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.
Every Sunday Monday week, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, please leave a comment below.
Here are some links to get involved with the project:
- Custom twinBASIC IDE Installation Guide
- twinBASIC Discord Server (chat about the project)
- twinBASIC Documentation (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
Highlights
'Wisdom' Tool Surfaces Insights from twinBASIC Discord
Public information about twinBASIC has largely lived in four five places since Wayne released the first beta back in 2021:
- GitHub Issues Tracker and Release Notes
- My twinBASIC Articles and twinBASIC Weekly Updates
- VB6 Forums
- The twinBASIC Discord Chat Server
- docs.twinbasic.com (especially following its recent renaissance under okaso's special mix of dedication, determination, and development ability)
In terms of raw volume, the Discord Chat Server is far and away the best source of information on twinBASIC. twinBASIC creator and lead developer, Wayne Phillips, frequently answers questions and breaks news on the Discord Server.
The problem with the Discord Server has always been one of signal vs. noise. There's lots of great information; if you are willing to wade through it. My weekly AI recap (as seen in the "Discord Chat Summary" below) has been my attempt to help solve that problem.
okaso took that approach to a whole new level.
Code-named Wisdom, okaso's "Discord Knowledge Harvester" tool systematically extracts the entire corpus of the twinBASIC Discord Server for automated AI analysis and classification.
Wisdom: Three-phase tool that extracts technical knowledge from the twinBASIC Discord server and drafts documentation additions for human review.
Here's the release announcement from okaso in the #docs channel:
The Wisdom tool is now merged. It has created a fairly large file of annotations for either existing documentation pages, or "unrelated". This will need to be triaged over time and incorporated into documentation pages. The tool allows incremental updates, so every month or two we can re-run it to gather any new findings.
'Import-Export' Tool
okaso has been very busy.
The (current) file format of the binary .twinproj files is now documented at the File Format page. Presumably, the file format itself is an implementation detail that is subject to change. In other words, future twinBASIC beta releases could theoretically change the file format without it being considered a "breaking" change at the language level.
Here's the post in Discord from okaso:
The twinpack/twinproj file format is now documented(-ish): https://docs.twinbasic.com/Features/Packages/File-Format It's enough to parse it and round trip it, not necessarily to generate a valid project from scratch. Promoting interoperability was my goal.
The natural follow-on to that work is a standalone utility that can import and export files into and out of that binary format.
Here's the follow-up post from okaso:
There is now an impexp tool available in the documentation which can import/export twinproj/twinpack packages from/to a folder tree. There's a Python version and a node.js version, per user's pleasure. It's a small self-contained tool.Discord Chat Summary
* Auto-generated via Claude Sonnet 4.6
Overview
This week's community activity spanned two main themes: a significant leap forward in documentation infrastructure, and a series of technical discussions around AI-assisted development workflows and VB6 migration strategies. The documentation team delivered two major tooling milestones, while the General channel explored multithreading migration challenges and a notable user control feature request. Community engagement was warm and supportive throughout.
Documentation Infrastructure: Major Tooling Advances
- okas_o merged the Wisdom tool, which processed approximately 30 million tokens across all public twinBASIC Discord channels to surface documentation-relevant insights from community conversations. The output is a large staging file of annotations now publicly available in the documentation repository, to be triaged and incorporated into documentation pages over time. The tool supports incremental updates and can be re-run every month or two to capture new findings.
- A complementary Indexer tool (likely to be renamed
PackageDocsUpdater) was also completed, automating the process of downloading the latest twinBASIC release and TWINSERV package versions, then comparing them against what has been formally documented. Documentation pages now include anindexed_from:metadata entry in their front matter for traceability, and existing pages lacking this entry are being audited for conformance. - Together, these tools allowed okas_o to automatically draft documentation for all contributed packages, with deployment expected shortly. waynephillipsea recognized the effort directly, calling it "awesome work."
AI Tools in the Development Workflow
- AI tooling continues to be deeply embedded in core contributor workflows. wqweto shared a Claude-generated summary of findings related to the
Ctlsuffix on typelib names, prompting a brief exchange with waynephillipsea about Claude's use of the mathematical shorthand "iff" (if and only if) in a coding context. - wqweto also noted he is experimenting with AI assistance to write ActiveX Controls in C/C++ for VC6 without ATL, with plans to port a set of long-standing legacy third-party controls (~25 years old) to C/C++.
Feature Request: User Control hWnd Configuration
- wqweto raised a noteworthy suggestion: the ability to configure how a twinBASIC user control's
hWndis created, including specifying the window class name directly. The specific use case given was building a multi-column ComboBox ActiveX control where the user control'shWndwould be the nativeCombowindow class itself, rather than nesting it inside a separate container window — a pattern achievable in VC++ but not currently exposed in twinBASIC. waynephillipsea acknowledged the idea as sounding useful.
VB6 Migration: ActiveX EXE Multithreading
- axisdj raised a migration challenge around VB6's ActiveX EXE multithreading model, where worker classes each run in their own thread, communicate via timer-checked flags, and report back to the main UI using
WithEvents. axisdj proposed a conceptual twinBASIC feature where a class could be tagged as "execute in thread," with the runtime managing threading transparently. - waynephillipsea indicated he is not yet in a position to discuss potential future multi-thread syntax. Community member antsantix raised design concerns around thread heartbeat detection and suggested message queue solutions may be better suited than a language-level feature.
- As a practical near-term workaround, community member deletedewd pointed to an existing project demonstrating how to implement
IWorkItemHandlerto execute class methods on separate threads.
Conclusion
The week's standout development was the documentation tooling progress delivered by okas_o, which brings a new level of automation and version-traceability to twinBASIC's growing documentation ecosystem. On the technical side, the multithreading migration discussion highlights the real-world complexity of transitioning legacy VB6 ActiveX EXE architectures, and the community continues to demonstrate its strength in surfacing practical workarounds while longer-term language design decisions mature. With contributed package documentation nearly ready to ship and the Wisdom findings file primed for ongoing triage, the project heads into the coming weeks with meaningful momentum on multiple fronts.
Around the Web
Quiet Week
There were no notable public discussions regarding twinBASIC outside of the Discord server this week, nor were there any new projects released in the Discord server's show-and-tell channel.
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
- No new releases this week.

