可塑性软件:在封闭式应用的世界中恢复用户自主权 --- Malleable software: Restoring user agency in a world of locked-down apps
The original promise of personal computing was a new kind of clay—a malleable material that users could reshape at will. Instead, we got appliances: built far away, sealed, unchangeable. When your tools don’t work the way you need them to, you submit feedback and hope for the best. You’re forced to adapt your workflow to fit your software, when it should be the other way around.
In this essay, we envision malleable software: tools that users can reshape with minimal friction to suit their unique needs. Modification becomes routine, not exceptional. Adaptation happens at the point of use, not through engineering teams at distant corporations.
Realizing this vision will require confronting many barriers. From programming languages to operating systems and app stores, every layer of the modern computing landscape has been built upon the assumption that users are passive recipients rather than active co-creators. What we need instead are computing systems that invite every user to gradually become a creator. Tools that compose into custom workflows, rather than siloed monolithic apps. Systems that support local groups in communal creation.
Fortunately, there’s a lot of inspiration to draw on—both research work and commercial products spanning the past several decades. In this essay, we synthesize ideas from that body of work, as well as lessons learned from years of testing our own prototypes. Whether you’re a software developer, a researcher, or any kind of computer user, we invite you to join us in striving towards a world of malleable software.

Please cite this work as:
We welcome your feedback: @inkandswitch or hello@inkandswitch.com.



A wall of index cards is a malleable medium for managing software development.

Inflexible electronic medical records systems are driving doctors to burnout.

Settings allow for certain customizations chosen in advance by an application developer.

The Obsidian Markdown editor offers a rich ecosystem of community plugins for extending the editor's behavior.

An example of a browser extension serving a niche need: BoA Checklist adds a persistent checkbox next to each transaction on the Bank of America website, to track if you've already reviewed that transaction.

Users can propose changes to an open source project on GitHub.

Building a workout timer tool using AI in Claude Artifacts

Going from changing settings to full programming is a sharp "cliff" that's hard to scale. (figure from MacLean et al)

A gentle slope of tailorability, made up of many different customization techniques. (figure from MacLean et al)

In HyperCard, users could select a "level" to restrict their editing capabilities.

Each level in HyperCard represents a modest step up in power and skill.

Going from installing a browser extension to making one is a steep cliff. It requires leaving the browser and doing involved programming.

Arc Boosts lets users restyle a website with direct manipulation interactions from directly within the browser.

An avocado slicer is specialized to one use case.

A knife can cut an avocado, and much more.