MARIONETTE 5.1
Pull a few
strings.
A JavaScript UI library for
agent-led development.
Your agent learns the patterns.
You direct the application.
The code stays yours to follow.
Explore the code
// A View renders its state.const Heading = View.extend({ createState: () => ({ visible: false }), templateContext() { return this.getState(); }, template: ({ visible }) => visible ? html`<h1>Pull a few strings.</h1>` : null});// Now give it the stage.heading.getState().visible = true;heading.render();
Illustrative code, with the plumbing left out. Enable JavaScript to follow the walkthrough.
An illustrative sketch. A few strings worth following.
Explore the code
// A View renders its state.const Heading = View.extend({ createState: () => ({ visible: false }), templateContext() { return this.getState(); }, template: ({ visible }) => visible ? html`<h1>Pull a few strings.</h1>` : null});// Now give it the stage.heading.getState().visible = true;heading.render();
Illustrative code, with the plumbing left out. Enable JavaScript to follow the walkthrough.
An illustrative sketch. A few strings worth following.
BRING YOUR AGENT BACKSTAGE
Brought an agent?
Click Copy prompt, then paste it into your agent’s chat. It’ll read the instructions here and build a small app for you. Try it, then tell it what to change.
Use an agent with a browser you can both see and control.
Bring an idea. Leave with an app you can try.
Already here with your agent? Ask it to try the interaction.
Read the prompt
Open the agent workshop01 / A LIFECYCLE, ILLUSTRATED
A good entrance.
A clean exit.
Ask for a different panel. The Region replaces its View and cleans up the old one. Follow the change below.
region.show(notes);The Region renders and attaches its current View.
The contract your agent reads →previewLEAVING IS PART OF IT.
02 / A PLACE FOR THE WHOLE APPLICATION
Give every part
a place to work.
Screens, changing lists, and work that starts and stops with a feature. Each gets a clear owner you can build on. Compose Views, Regions and CollectionViews into an interface you can keep changing.
Build on that structure →03 / REASONABLE SUPERVISION
We’re optimistic
about agents.
We’ve also read
the diffs.
An agent can write the next feature. You should be able to follow what changed.
Marionette makes ownership explicit, gives changes a place to belong, and keeps the structure visible to whoever reads the diff.
Our RealWorld case study follows an agent-built Conduit application through implementation, review, and a measured comparison with other examples.
Read the RealWorld case study →YES, THAT MARIONETTE.
A familiar name.
Fewer strings attached.
No Backbone, jQuery, or Underscore required.
Pick your toolsPULL A FEW STRINGS
Try the app.
Direct the next act.
Add a todo, retire a radio, or cancel a launch. Follow the source, then download a demo and give your agent a change to make.
Explore the demos →OPEN SOURCE / HUMAN MAINTAINED
A little help behind the strings.
Support the maintenance, docs, and releases through GitHub Sponsors.
Or put your very specific taste in JavaScript on a T-shirt.