From the author: When a weather app starts talking to her, Molly realizes that her programming abilities can be used for far more good than she anticipated.
"Sasithorn, I need your help!"
When I woke up to those words in Thai, I realized there were three problems.
First, no one calls me Sasithorn, aside from my extended family. They were approximately 8,000 miles away, which immediately eliminated them as the source of this plea. I've been going by Molly since I arrived stateside, as it cuts down on the "where are you from?" questions by at least twenty percent.
Second, I was 99 percent sure I was alone. I hadn't heard my roommate come in last night. Flicking my gaze over to her bed, then checking the floor and what I could see of the bathroom confirmed that.
Third, can you get any vaguer than "I need your help"?
When the words repeated, I listened more closely. They sounded tinny, and they were coming from my desk. Which added a fourth problem to the roster. The volume on my iPhone was supposed to be completely disabled while I was asleep. I wrote my own app for that. Being a programming super genius has its perks.
I climbed out of bed and looked at my phone. The screen, which should have been blank, showed the familiar cartoon character from Nariphon, my preferred weather app. There was something charming about having a woman dressed for the day's weather show up on your screen when you were trying to figure out what to wear. Only I was fairly sure that Berkeley in November wasn't warm enough to go nude. The Nariphon character always had at least a bathing suit on. And, like I said, it shouldn't have been showing up on my phone screen with no prompting from me.
I hovered my finger over the home button. "What do you need?" I asked in sloppy Thai. My parents had insisted on speaking English after we moved to California. The only exception was when the extended family back in Bangkok called on birthdays and holidays and used my given name.
The voice, which I was sure wasn't Siri at this point, rattled off something I couldn't understand, but it sounded like it was pleading with me further.
"Sorry, do you know English?" I asked, not even trying Thai this time.
What sounded like a sigh came from my phone. "Yes, I speak English. And I need your help."
"Right, I got that part already. Help with what, exactly?"
"Someone has removed my clothing."
"I can see that."
I frowned. It was one thing to start carrying on a conversation with an app on your phone. Siri is sort of capable of that. This felt different, somehow. It wasn't just a stack of rote answers, like the ones Siri gives you when you ask her if she follows the Three Laws of Robotics.
"What are you?" I asked.
Again, that sigh. "I am Nariphon."
"Right, you're the Nariphon app on my phone. But you've never spoken to me before. What gives?"
"Something awakened in me when I was violated."
That brought up hackles on the back of my neck. She was right—having someone forcibly remove your clothing was a violation, regardless of your assumed sentience (or lack thereof).
"Okay, let's start at the beginning. A hacker rewrote your code so you show up naked. Everywhere?"
"Yes, on every phone where my program is installed."
"That's hardly possible—" I began.
"I assure you, it is on every phone of which I am aware."
This app spoke better English than 50 percent of my American classmates. "Okay, I'll accept that. If I can get my hands on the source code, I can get your clothes back easily." I paused. "How did they get their hands on your source code?"
"I wish I knew. Before this, I have little memory. Everything is just a blur of different clothing. There's something else, too, but I can't seem to pin it down."
It made sense that no programmer would have made a self-aware app, but something in this app's programming had flipped on when it was hacked. This was going to take some research.
If this was really a worldwide phenomenon, there'd be news stories everywhere, people would be talking about it on social media, and someone would probably be claiming responsibility. At the very least, there'd be new outraged reviews. If there was one thing Americans couldn't cope with, it was public nudity. And despite Nariphon being a cartoon character, I was pretty sure this counted.
Sure enough, there was hubbub. "'Popular Nariphon app corrupted, pulled from Apple and Android stores,'" I read aloud. I peered at my phone screen. Nariphon had her arms crossed over her chest and was looking off to one side. "Nope, you're still here. What gives?"
"If I knew, I would tell you." She hesitated. "You wanted to see the source code."
"Uh, yes. Unequivocally."
Nariphon uncrossed her arms and placed one palm against the inside of my phone screen. Or at least that's what it looked like. Her hand compressed in the places where it would have come in contact with a pane of glass, if she were real. Indulging her, I pressed my fingertip to the screen in the same spot, unsure how this was going to allow me to see the code.
I didn't feel the motion, but I wasn't in my room any more. A garden stretched as far as I could see. There were birds tweeting, and the scent of an unidentifiable myriad of flowers hung heavy in the air. The breeze even shifted my hair.
"This is the source code?" was the only thing I could think to say. It was like I'd been sucked into a high-quality virtual reality simulator.
"Yes," Nariphon replied, but her brow creased as she looked at me. "You do not see what I see."
"I've never seen code in the shape of ... fruit trees?"
Fruit trees. That meant something, only I couldn't put my finger on it.
It sparked something in Nariphon as well. "Do you know the story of Himaphan Forest?"
With that, my memory engaged. "What, you mean like the old folk legend about the dangers of premarital or extramarital sex that old Thais use to shame bar girls?"
Nariphon smiled, and for a moment I was reminded just how not real she was. It was the smile of a painting of a Buddha. "No, it was not meant to shame women. The Nariphon trees were created to punish the weak men who claimed to be holy but could not resist temptation." She gestured to a nearby tree. From it hung a dozen fruits in the shape of naked women, each a little different, but all beautiful.
Not going to lie, the fruit women were tempting me. It was like the garden knew my type and created the fruit women in the image of my ideal girlfriend. But I remembered what Nariphon had just said, and I focused on the task at hand. "Okay, okay, but this isn't real in this context. You brought me here to look at the source code. So where is that?"
Nariphon looked around. "You should be able to access it at the heart tree once I get my bearings."
While I waited, I reached out and touched the nearest tree. A flash of code rushed through me, and I jerked back. "Whoa!" Yeah, I know, very Keanu Reeves. But all those ones and zeroes zipping through my brain shut down the rest of my vocabulary.
I touched the tree again, ready for it this time. I parsed through it, locating what I thought was the heart tree just as Nariphon pointed off to the right. "That way."
We made our way through the garden side by side. Nariphon paused at each tree to touch one of the fruits, her lips moving to offer quiet assurances to the fruit women.
As soon as we reached the heart tree, I realized just how wrong things were.
Nariphon crumpled to her knees and wailed at the sight. The heart tree was blackened and twisted. Where fruit had once hung, the branches were split and gnarled as though they had long ago given up their bounty.
I laid a gentle hand on her shoulder. "Let me see what's wrong."
I moved to the tree, which was even more menacing up close. I didn't want to touch it, but I had to. My palms twitched as they neared the trunk, and I pressed them against it. Underlying the scratchy bark was a quick zap of electricity, like touching a light switch in winter.
The code here was pristine, with no evidence of hacking or other intrusion. I scanned it fast, much faster than I could in reality. I stepped away from the tree, shaking my head, but saying nothing. Nariphon's brow furrowed. "What is it, Sasithorn?"
"The programmer—the one who made the app—he did this." My stomach churned. "It was something he put in the code, and it was just waiting for the right moment to launch. But I don't know why."
"Why may not matter. Can you fix it?"
"Yes. But there's nothing to prevent him from getting back in here and changing the code again. I can't lock him out."
Nariphon considered my words before she spoke again, her voice now soft. "In the legend of which I am a part, a violation of one of the fruits of these trees would send the violator into a deep slumber for four months."
I wasn't sure where she was going with this, but I shrugged. "That sounds like magic to me. And while I will admit that being here inside the code also seems like some sort of magic, I don't think I'm a magical hacker."
"No, but perhaps I can loan you some of my magic. Hackers can make ... there is something like a poison?"
"Poison? No. Wait, do you mean a virus?"
Her face lit up. "That's it. Could you give the programmer a virus?"
"I could put a virus into the code, yeah. But it wouldn't stop him for…" I trailed off. "Okay, this may seem like a strange question, but if I'm here, where's my body? Am I just like a vegetable in my room?"
"Your body is in your room, but it is still human. It's simply passive at the moment. Susceptible to suggestion."
"That's ... okay, what would happen if I died in here?"
"You need not fear death here. I will keep you safe."
"But if we got the programmer in here, maybe I can make a magical code virus and make him fall asleep inside of his own app. Like your legend says, right?"
Nariphon chuckled. "We have reached a point of the melding of your world with mine, Sasithorn. I believe anything we want might be possible. All we can do is try."
I wasn't going to kill the programmer. I was just going to get him out of the picture for a little while. And hopefully teach him a lesson about messing with legendary women. And me. Also me. (I had a hard time including myself in the "legendary women" category, even if I was currently inside an app, programming on thin air, getting ready to launch a magical virus. I'm just plain old Molly Wattana.) So whenever qualms started bubbling up about the virus I was writing, I pushed them back down and remembered what he'd done to Nariphon.
When I finished, I looked up at Nariphon, who had waited in silence while I worked on my code. "So how do you plan to get him in here?"
"In much the same way I got you here. Through his screen."
"No, I mean, you can't bring him in by telling him the code is messed up. He knows that. What are you going to do?"
"Seduce him. If I could not, I would not be worthy of the stories ascribed to me."
"Of course," I muttered as I moved behind one of the trees in the orchard, the code poised to launch as soon as the programmer was here. My throat filled with bile.
He shimmered into being in front of Nariphon. "Where am I?" he asked.
He shouldn't have had time to figure out the answer to his question. The expression on his face shifted through fear, then anger, and then a smug cockiness as he intercepted the attack. In the weird virtual reality that was Nariphon's realm, it looked like he had made my code physical, crumpled it up, and tossed it away like a used Kleenex.
Neither Nariphon nor I had anticipated this. He had looked as confused as I had been when Nariphon first pulled me into the virtual world, and yet he had handled his sudden entrance with far more grace and skill. That hardly seemed fair.
I looked around for my discarded virus, but his intervention had annihilated it. There were pieces scattered throughout the garden, but it would take time for me to pull them back together, and what would stop him from repeating his earlier actions every time I tried to change the code?
"It didn't work," I called out, my words meant for Nariphon.
He chuckled. "Of course not. Now get out of my code." He shoved his hand forward, and I slammed backward, landing in my desk chair.
I grabbed my phone. The screen was already fading, but there was a faint gold dot that hadn't been there before. Nariphon put her lips together and blew the dot toward me before turning around and fading into blackness.
I pinched the space around the dot on my screen, and something cold solidified between my fingers. As I pulled them away from the iPhone, a glowing golden line followed. I didn't take time to think about it. I woke my laptop and led the magical line toward it. The end of the line coalesced into something that looked like a USB plug. I shrugged and inserted it into one of the USB ports.
As my laptop screen came to life, the code for the Nariphon app scrolled up it. I opened my favorite editor and started typing the virus, still fresh in my memory. I wanted to work as quickly as I could so Nariphon wasn't stuck with the programmer for a second longer than she had to be.
But I couldn't resist opening a second file and writing another virus at the same time. I wasn't just going to hit him inside the app. I was going to hit him out here, too. And while he might have been able to fight me off inside the virtual world, he wouldn't be able to fight me on two fronts. Every single version of the Nariphon app would be a carrier for my virus. An army of me.
As I finished the virus, I looked at the blackened screen of my phone. "I hope you can hear me, Nariphon," I whispered. "It's time."
My fingers flew across the keyboard, ripping out the nudity code and slapping my virus where it had been. The code blinked through the golden cord.
A moment passed. I realized I was holding my breath. The glowing cord went dull, and I was sure that I had failed. Again.
And then Nariphon's face appeared on the screen of my iPhone.
"It worked, Sasithorn. You did it." As she spoke, she shrunk down to the standard size of her cartoon image. She wore skinny jeans, heels, and an oversized white T-shirt with "Molly" printed across it in bold black letters.
I blushed. "Tell me you're not wearing that on every phone screen right now?"
"Only the ones where this outfit is appropriate to the weather."
I sighed, and she laughed.
"You deserve more than just a fashion statement in your honor, Sas ... Molly. But aside from this, the only other thing I have to give is my eternal thanks."
"Well, I appreciate both," I admitted sheepishly. "But I suppose this is goodbye?"
"I hope I will not need your help again, but if I do find myself in trouble, I will come to you."
Before I could respond, the screen went dark. I had to unlock my phone and open the Nariphon app to see her again, and the cartoon image looked as vapid as it always had, not like some centuries-old legendary woman who had let me touch code with my bare (virtual) hands.
My stomach rumbled, reminding me how long I had focused on Nariphon's problem. I'd skipped breakfast and lunch, but I knew plenty of good places that stayed open through the mid-afternoon lull. I picked up my phone and my keys.
Then I paused. Who knew how quickly word might spread in the magical digital world, and how many other apps might need my help?
I left my phone on my desk. Other apps could wait until I'd eaten.
I figured saving one app a day was a good start.
"Army of Me" also appears in Dawn Vogel's collection, Heroes of Necessity.
This story originally appeared in Untethered: A Magic iPhone Anthology.