Categories
Review

Twinless (2025)

Am I my brother's keeper?

I almost don’t want to review Twinless because I want you to go in with as little context as possible. That’s how I went in, and I ended up loving the film. It’s a movie filled with tone shifts and curveballs, and not what I expected it to be after the film’s first five minutes. I also don’t want to inflate it too much; part of its charm is its unassuming indie exterior that unrealistic expectations will surely pierce. The rest of this review will acknowledge the movie’s key plot points and pivots. You’ve been warned — just go watch it!

Twinless begins as one thing and quickly becomes something else. The film opens with a mordant, Sundance-friendly premise: Roman (Dylan O’Brien) mourns the sudden death of his identical twin, Rocky (also Dylan O’Brien). He lands in a grief circle specifically for “twinless twins,” where he meets Dennis (James Sweeney), a chatty, lonely gay man in the same boat. For about twenty minutes, the movie plays as a “well-observed” (my backhanded compliment to low-incident character portraits) indie dramedy about sad people finding connection in strange, specific circumstances. And then the floor drops out, and the movie mutates into a psychosexual comedy-thriller closer to The Talented Mr. Ripley, but told with a blend of awkwardness and compassion.

Writer-director-star James Sweeney’s first film, Straight Up, was a tart, wordy spin on a rom-com. Twinless keeps the screwball dialogue dense with jokes, deflections, and weird little run-on tangents, but drops those rhythms into something darker. Visually, Sweeney’s working in a kind of lightweight Wes Anderson mode: neat, symmetrical compositions, controlled color palettes, actors pinned into their marks like dollhouse figures. It’s stylized without tipping into diorama parody. The look really matters once the story leans more into obsession and paralleled perspectives (which of course echo the “twin” motif). The tidy frames start feeling like cages. Around Roman and Dennis, Sweeney builds a small but sharp ensemble, especially Marcy (Aisling Franciosi), the sharp-eyed maybe-love-interest who slowly turns into the film’s detective, and Roman’s mom (Lauren Graham), whose presence feels like a deliberate nod to both the Gilmore Girls pace of the dialogue and the references to the show in Straight Up.

The key choice, the one that makes the movie, is that Sweeney doesn’t sit on his twist. That big left turn at the twenty minute mark is a flashback that blows up Dennis’s entire story: He not only never had a twin, but is partially responsible for Rocky’s death. We see in flashback that Dennis has a brief but intense fling with Rocky that fizzled out before it became love. In his desperate clinginess, Dennis helped set in motion the accident that killed Rocky. Instead of playing this as a late shock, Sweeney puts it on the table early, shifting Twinless from mystery (“what’s this guy hiding?”) to tension (“how long until Roman finds out?”). It’s pure Hitchcock logic of suspense over surprise: once we know there’s a bomb under the table, every polite conversation between Roman and Dennis starts to feel like a countdown.

All of this works especially well because O’Brien is operating on a world-class level. As Roman, he initially offers “generic handsome guy” vibes — a little bland, a little affable, a little dopey — but lets a gnarly cocktail of anger and grief leak out of the hunky exterior as the film progresses. He grows especially prickly whenever Rocky’s sexuality comes up, especially when the conversation turns towards what it says about his own blind spots and self-doubts. O’Brien has a monologue about halfway through the film that is my favorite bit of soliloquy acting since Mia Goth’s late speech in Pearl. As Rocky, seen entirely in flashback, O’Brien transforms radically: different posture, trendier look, a goofy mustache, a flicker of vivacity that makes it instantly clear why Dennis latched on. Rocky is also a total contrast to Roman. As just one of those two, it’d be a great performance; pulling both off so well, which in turn does so much to elevate the film, makes it the best acting performance of the year in my eyes.

Dennis, meanwhile, is both villain and protagonist, and Sweeney walks that tightrope with unnerving charm. It’s a similar turn to his character in Straight Up but with the neurosis better channeled into his paranoia of being discovered. He plays Dennis with an unfiltered precociousness and relentless smirk, someone who turns every interaction into a bit as an obvious means of hiding his guilt and loneliness. Once we know what he’s done, his campaign to ingratiate himself into Roman’s life becomes a nauseating attempt to rewrite a failed romance with Rocky. The horror isn’t that he’s a master manipulator, it’s that he’s a mediocre one, constantly pushing his luck, lying badly, getting caught in tiny inconsistencies that pile up even as he and Roman build a genuine bromantic connection.

The filmmaking centerpiece is a Halloween party sequence where Roman and Dennis show up as Bert and Ernie lookalikes, each with a little green Sims crystal over their head. The scene begins in a single frame, then fractures into a split screen: on one side, Roman and Marcy meeting and connecting; on the other, Dennis scrambling to find Roman to keep him under his thumb. The scene ends with a split close-up on both, gradually zooming out on Dennis and uniting the frame until he’s a distant reflection in the mirror. It’s clever and expertly designed, the final zoom landing as both a genius visual payoff and an emotional cue of Dennis’s dawning awareness that he’s lost control of his lie. Mirrored stories, false reflections, alternate lives, Roman’s perspective sharply separated from Dennis’s: it’s all baked into that one trick the screen splitting then reuniting.

By the time we get to the climactic hotel-room confrontation, the same spot where Roman previously spilled his heart, Dennis is drunk and desperate, massaging Roman’s foot to mold him back into Rocky, then blurting out the awful truth. The movie has earned its squirms: The scene is almost physically painful to sit through, because it’s every bad impulse in Dennis crashing together at once: the need to be forgiven, the need to be desired, the misguided belief that confession might magically reset the relationship. Roman’s brutal response loops back to the anger we’ve seen simmering throughout.

The low-key reunion in a sandwich shop that makes up the final scene is almost perversely gentle, but it’s also where the movie’s emotional core finally crystallizes: Dennis, horribly and selfishly, is still the only person who can tell Roman with certainty that Rocky loved him, believed he was the “good twin” just as Roman did Rocky, giving Roman the closure he needs. It highlights a cruel irony the movie drags to its very conclusion: The one person who can offer Roman real comfort and insight into Rocky’s final thoughts of him is Dennis, the one person who had to lie in order to connect with Roman in the first place.

One minor complaint on the screenplay: Twinless ties together most of its arcs at the right balance between payoff and ambiguity, but the one big letdown is the relationship between Roman and his mother, which never gets a resolution and ends as sour as it starts. I like the way Sweeney uses a scene between the mother and Dennis to highlight how Dennis serves as a stand-in for Rocky to let her (like Roman) sort out her feelings on Rocky’s sudden passing, but this never comes full circle to letting Roman and his mother use this idea to mend their conflict.

Underneath the social thriller mechanics, Twinless plays as a distorted coming-out story. Dennis is sitting on a secret he’s sure will make him unlovable if anyone knows the full extent of it, and the longer he keeps it buried, the more warped his life becomes. Roman’s journey, meanwhile, is about grieving someone he never properly accepted, about having to confront the ways his own insecurities gave him complicated feelings towards Rocky’s queerness. Their relationship is deeply toxic, obviously, but it also becomes the only space where each can be honest about their own holes in their lives, which is a sophisticated needle for the movie to thread. All of this echoes Straight Up’s uneasiness with rigid sexual orientation boundaries.

Twinless is a weird, prickly genre chameleon that somehow pulls together screwball banter, stalker-movie tension, cringe comedy, and messy emotional release without collapsing into tone-deaf mush. It confirms Sweeney as a filmmaker with a distinct, formally playful voice, and it gives O’Brien a towering showcase in a dual role. Unusually, the guileless “straight” man (double entendre) is the deeper and more fascinating character in this odd couple. Sweeney still errs towards dramedy warmth and breezy cast chemistry, opting ultimately for empathy and peace instead of tightening the screw on suspense and cruelty, but the balance really worked for me. I walked away feeling both moved and breathlessly entertained. It’s diabolical, sweet, funny, sad, and tense; sometimes separately, often at the same time. It’s a damn triumph and one of my favorite movies of the year.

Is It Good?

Exceptionally Good (7/8)

Related Articles

JustWatch

Dan is the founder and head critic of The Goods. Follow Dan on Letterboxd. Join the Discord for updates and discussion.

Leave a Reply

Your email address will not be published. Required fields are marked *