She lost him.
It’s been two years since Circuit sacrificed himself so that she could upload the All-Access virus and get offline before the resulting Tech Fail. Two years since she reinvented herself as Grace in the real world, where she’s got a home, some pets—everything she ever wanted. Two years since she became Ghost online, the hacker who works to prevent another digital apocalypse. Everything’s fine.
Except the nightmares never stop, and someone—or something—is definitely launching a series of coordinated attacks on the grid.
We found you.
Then Circuit walks into her living room, a nightmare come to life. Which shouldn’t be possible. Because he’s dead. He died online and she buried his source body in the real world.
But two years is a very long time on the Internet, especially for a ghost in the machine, and some things can’t be explained.
Circuit is back. When Ghost’s home explodes around them, he protects her and takes her on the run. She has no choice but to go with him if she wants to find out who’s behind the coordinated attacks on the grid and on her.
Can she trust Circuit, figure out who’s behind the attacks and prevent the next digital apocalypse—or will she become just another ghost in the machine?
Excerpt
Chapter One
“Access?”
“Kit?” I blink, but the fog is too thick.
“We’re lost,” Kit whimpers.
“I’m right here, kiddo.” I can’t see anything in this pea soup. “Waiting for you.”
I jump when their hand slips into mine. “We miss you, Access.” Their voice is distant, even though they’re next to me. “We miss Rachel, too.”
I relax. I didn’t lose them after all. “Miss you too, hon. You and Sweetie and Circuit. We’ve got a nice place with dogs and a cat and a room just for you and lots of candy. You come home when you can.” It’s all I want, for them to make it home.
“We’re trying but every time we think we figured it out…we’re lost again,” Kit repeats, frustration in their voice.
“Don’t give up. We’ll keep waiting, promise.” But when I go to my knees to hug them, my arms cut through swirling fog. “Kit? Hello?” I search for them, but I’m alone.
Because I left them. I broke my promise and left them.
“Kit?” Standing, I turn to look for them and jump because Circuit’s in front of me. I don’t have to search through the fog or anything. “Oh!”
“Hey, Access.”
I scrub at my wet cheeks with the palm of my hand and smile up at him. He looks…not great. Taller, paler, thinner, with a patchy beard and long greasy hair. Like he hasn’t seen the sun or a shower in months. “Hey, yourself. Where have you been?”
“Lost,” he says with a shrug, but unlike when he’s Kit, he’s not upset.
“I know. You okay?”
Circuit gives me a look I can’t interpret. “Figured it out.” He starts to dissolve into a shimmer of light. “Wanted you to know…”
“Figured out what? Circuit?” But the fog moves in to fill the space he left, no, not this again.
Then I see it, towering above me—Marty the Malt, mascot of the Burgers N’ Malts restaurant chain. Oh, no. No no no. And it gets worse when Marty says, “The wait’s almost over,” with a wink, the flirt, just as a huge weight crashes into me and I scream and—
—jerk awake when Lucky, my huge orange tabby cat, hefts herself onto my chest. Clover, my senior wiener dog, is tugging on the sleeve of my t-shirt and growling. At my feet, Rabbit snores softly.
“Okay.” Not bad enough to wake up Rabbit. The three-legged beagle sleeps through everything non-food related, unless it’s really bad.
I curl around my rescue pets and focus on breathing. It was just a dream. Lucky purrs while Clover licks my face until I stop crying. This is real and I’m real and the critters are real and I’m safe. That’s what I keep telling myself.
They’re just dreams. Nothing more.
I don’t go back to sleep.
*
“Ready, boy?” Rabbit hops surprisingly fast on his three legs, a stick dangling in his mouth. Clover bounds after him as fast as he can on his stubby little legs while Lucky ignores us all from her sunny spot at the edge of the meadow.
I wrestle the stick from Rabbit and launch it again, grinning as the two dogs do their best impression of running. But even with the warmth of the sun on my face, the happy yips and yowls of my pack around me, I still can’t shake last night’s dream.
Usually when Kit or Circuit or any of the people I lost online haunt my dreams, it’s nightmare-o’clock. They’re degrading, bricking, dying. Not…
Circuit was older. Which isn’t possible because he died at about the age of seventeen or so, after he’d merged with Kit and Sweetie, the baby. He’s never been older in my dreams before. None of them have. Just dead.
Why was he older?
Maybe because—
Nope, not thinking about it.
Ugh, need more coffee. I whistle for the dogs and head for the shed, which is not an accurate description of the secure location that houses my technology. Lucky will follow whenever she feels like it.
My house is off the grid, except for a landline phone for emergencies. Even the electricity is mostly generated by hydroelectricity.
But the shed is a different matter entirely. A single-story red building with one door and one window, it’s tucked away in the woods not far from a small spring-fed pond. It doesn’t look like one of the world’s most sophisticated hacking terminals.
Even if that’s what it is.
I unlock the door with my thumbprint. The grinding noise of the steel doors withdrawing into the foot-thick concrete walls and the antenna being raised above the copper roof shatter the forest quiet but it’s important to make sure that, when I’m not online in the shed, the building is un-hackable.
Behind me, there’s the distinctive splash of Rabbit hitting the pond at full speed. That pup and the water. Clover barks ferociously from the small dock I built for him because he’s too fussy to get his paws wet. The cat keeps an eye open for any interesting minnows. I duck inside to grab my cell phone—which only leaves the shed when I make a grocery run once a month—and snap a picture of another perfect morning.
This is real. The life I always wanted. The life I promised Kit, once upon a time.
Coffee brewing, I upload the photo to the photo-sharing site that picked up where the Leaf based photo-sharing site, Bark, left off after the Tech Fail. This one is called DirectSnapp and it’s…okay. It’s not as sleek or sophisticated as Bark was, but it gets the job done and the security is decent.
That’s what everyone touts these days—their sites or products are secure, unhackable, virus-proof. Of course, very few of them are. It takes me less than a minute to crack the DirectSnapp code on a bad day, but still.
Once the photo is live, I go into the code and write, just like I do every time one of them visits me in my dreams.
“Dear Circuit and Kit, you both came to see me last night…”
My handle is “forkit” and my avatar is a four-leaf clover with a tiny screwdriver for the stem, just like the one I made for Kit when we were digital. Set to private, the account is only pics of the critters doing adorable things. I have no followers, not even Vulture. No one ever sees the photos, much less reads what are basically diary entries hidden in the code. But…
“If you’re there,” I add at the end, like always, “find your way home. Love, Access.” It’s the only time I use the name anymore.
I start to shiver. The shed is cold, like always. Keeps the tech from overheating but also, I don’t like to look at my arms and it’s hard to avoid seeing them when they’re on a keyboard in front of you, so I grab the cardigan that lives in the shed and shrug it on, then wrap my hands around the hot cup of coffee. Ah, that’s better.
On my second screen, the video chat blinks. Seven a.m. my time, four his time. Right on schedule for my morning meeting with Vulture. I minimize the screen with my face in it before I’m forced to look at my reflection, something I’ve gotten very good at doing.
Then I turn my attention to Khalil. “Morning—whoa.” I recoil from what greets me. “You look like crap.”
“Shut it,” Vulture grumbles. “You have the night’s data?”
“Looking at it now.” But I’m not. I’m staring at him. The bruised shadows under his dark brown eyes are so vividly blue that if I didn’t know how much Khalil Brown hated physical violence, I’d think that he’d been out brawling.
But I do know him better than that. He rarely leaves his fortress of a mansion and when he does, it’s with a security detail that would rival most small armies, headed up by Dionte, the only person both of us trust with our lives.
Khalil usually looks like he hasn’t slept for days but even for him, this is bad. His light brown skin is a washed-out gray and his eyelids blink at different speeds. “When was the last time you slept?” I ask, opening the overnight reports. “Because you’re almost as pretty as your avatar, Vulture.”
Given that Vulture’s online avatar was a horrifyingly gray, faceless human-ish being with vulture wings and two python-headed appendages that tied the whole look together, that’s saying something.
“Such a joy to start the morning with you, Access,” he replies, rubbing his eyes.
“Access is dead,” I remind him in a sing-song voice.
Access died in a virtual environment coded to look like a Burgers N’ Malts restaurant when she injected herself with the All-Access virus and downloaded, milliseconds after merging with the childhood fragment of her consciousness.
No matter how many times I think that, it never sounds any less weird.
But that’s what I did. And somehow, it worked. I still haven’t figured out how, exactly, but some things can’t be explained. All I know for sure is that I woke up in my body, with my mind intact. Mostly, anyway. Memories from childhood exist alongside all the fun ones from foster care, and all of that is jumbled together with everything I did when I was uploaded.
But that person doesn’t exist anymore. I’ve forgotten how to be her. I’ve barely figured out how to be this new person. Some days—and nights—I don’t make it. Like last night.
But it’s fine. I can tell reality from illusion. My shed isn’t a virtual environment and Circuit and Kit…
“Access?” Khalil’s voice snaps me back to the present. He gaze at me through the screen, a blend of irritation and something else I can’t pin down warring with exhaustion. “You okay?”
Right. We’re in the middle of an argument. The same argument we have every day and twice on Tuesdays. What day is it?
Crap, it’s Tuesday. Vulture knows that name drives me nuts, which is why he won’t let it go. So mature. You’d never know that I’m the one who just turned eighteen and he’s the one who’s almost fifty. “It’s Ghost now, Vulture. You know that.”
As Ghost, I’m little more than a rumor that only a few of the most talented hackers in the world have even caught glimpses of out of the corners of their eyes. I slip in and out of servers like a, well, like a ghost in the machine.
No one ever sees me coming. That’s the way I like it.
There’s real relief in his smile. He’s not worried about me, is he? “Of course. I’m just tired. My apologies, Access.”
I snarl at him, the jerk. Of course he’s not worried. What was I thinking? To be worried about me means he’d have to care and he doesn’t. We barely tolerate each other.
“So what’s your problem? Because your face is scaring my cat.”
His grin lets me know he’s not buying that. Just over my shoulder, Lucky saunters into the shed and stretches lazily in a sunbeam in full view of the webcam, making it clear that she’s not paying attention to us. As usual.
Great timing, cat. “Well, you’re scaring me, anyway.”
I glance out the window at my literal hundred-acre-woods, which backs up against the edge of the Chattahoochee National Forest in Georgia. The birds sing to the sun, which bathes the world in warm light filtered through new green leaves. The dogs make a racket as they snuffle through the brush. We’re a ten-minute-walk away from the house, a beautiful three-bedroom stone cottage on the banks of the Toccoa River that was some billionaire’s hunting cabin back in the fifties but now is all mine. It’s secure, almost entirely off the grid and quiet. Private. Isolated.
Lonely.
No, not lonely. Peaceful. That’s what it is. Peaceful.
A set-up like this is the whole reason I took the job from Panther without asking any questions. He wanted me to code an on-switch for a hundred grand. It was such a simple job that I jumped at the chance, no questions asked.
I should’ve asked questions. Access was a lot more trusting that Ghost is and look where that got her. RIP, Access.
“I had to give another interview,” Vulture explains around a yawn.
Man, my head is not in the game right now. Usually, when I have bad dreams—which is practically every night—I come out here, write them down and then let them go. But the past isn’t in a hurry to go anywhere today. “Yeah? How’d it go?”
“Mphm.” Shaking himself, he grabs a mug and loudly slurps down what I hope is coffee. “If I’d realized being the famous, beloved hero was so annoying, I would’ve stayed anonymous.”
Now there’s a bald-faced lie. If there’s one thing Khalil Brown loves, it’s being a celebrity—the gratitude, the adoration, the fan clubs (plural) and most especially the power. He loves everything about being the savior who’s single-handedly restoring order to the post-Tech Fail world.
Almost everything. Except those who refuse to fawn over him. I can tell the interviewer fell into that second group.
“I assume you kept to the party line?” When we came up with a story, we codified our lies. Like, literally. We wrote a two-page document outlining ‘what happened.’
Khalil Brown saved the day. D’Arcy and Park were the good guys. Macron was the villain. Borden died.
If Vulture ever deviates away from that story, I’ll do the one thing no one else can do—I’ll reveal the truth, the whole truth and nothing but the truth. Because the truth is this—Vulture? He’s not the hero. He wasn’t even the sidekick.
Instead, as Khalil he worked with D’Arcy to salvage the EMP project while, as Vulture, he simultaneously tried to trick me into giving him the code for the EMPs to keep it away from Blizzard.
Yeah, it’s exactly that confusing.
Khalil was never a terrorist but an opportunist and the opportunity was too good for him to pass up. If he’d gotten my code—and the backdoor code the hacker Spiral had written into it—he would’ve sold it for a lot of money. He was up to his neck in the worst parts of the lead-up to the Tech Fail and at no point was he the beloved hero until I saved the day.
I know it. He knows it. Dionte…sorta knows it. I think.
Everyone else? They think Khalil’s the good guy. The best guy. And by doing the right thing—even if I forced him into it—he wound up with all that money anyway.
It’d be a darned shame if that all got taken away from him, wouldn’t it?
So he protects me and I cover for him. Yeah, it’s not exactly a friendship, not like I had with Circuit—but it’s something. For better or worse, together Vulture and I make the world a little less alone.
Funny how things turn out sometimes.
Today, however, is clearly going to be for worse.
“This guy really didn’t like me, though,” he adds with a pout.
I snort. The interviewer was probably negatively impacted by one of Vulture’s pre-Tech-Fail ransomware attacks. But I don’t say it out loud. Part of our agreement is letting the past stay dead.
If only all parts of the past could stay dead.
I start skimming the overnight data dump. When Khalil was third in line at Leaf, Inc., before the Tech Fail, he was the COO but in reality, his job was data. Figuring out how to collect it, aggregate it, anonymize it, process it and most importantly, use it. Given that D’Arcy was recording every keystroke and link click on every Leaf device, it was a metric crap-ton of data.
Now? Khalil still collects all that data. But instead of processing it to identify market trends and sales opportunities—among other things—he and I use it to monitor the world’s remaining tech and the Internet for threats.
Because of me, we almost lost everything to a digital apocalypse and I have to make up for that. I have to. Spying on the remaining telecommunication and tech companies, keeping tabs on government agencies, monitoring online criminal activity—from my shed, not uploading myself ever again—that’s all in a day’s work.
Sometimes, you have to do bad things for good reasons and if I have to break a few international laws to keep the world from stumbling into another digital apocalypse, well, so be it.
Still, I’m a programmer. I prefer code. Terabytes of data points every hour is a lot. It took forever before I figured out how to use a spreadsheet without driving Khalil to tears.
Although honestly? That part was kinda fun. “If the interviews are so bad, why do them?”
Redundant questions are redundant because I know why. After decades of working in the shadows cast by Hugh D’Arcy and Jay Park as they built Leaf into the tech company that powered—and nearly ended—the world, Khalil finally has the spotlight all to himself and he likes it that way.
I go on, “You’ve been doing a lot of them recently. Maybe you should pull back.”
Through the video chat screen, he gives me a dull look, exhaustion winning over that other emotion I can’t pin down. “Because. Don’t you remember?”
“Remember what?”
Wait—the Isle of Wight went dark last night for six hours? That’s not good. A lot of smaller islands, especially off the coast of southeast Asia, have had trouble getting back online, despite some serious infrastructure investments. We’ve argued about this before—I maintain there’s a coordinated attack unfolding, while he blames unstable governments, global warming, islands sinking into the oceans—you name it.
But the Isle of Wight—that’s not an island that never got back online after the Tech Fail. That’s a British island well above sea level. It was up and running.
This wasn’t an accident. This wasn’t even an attack.
This? This was an escalation.
For an awful second, my nightmare replays itself. Circuit figured it out? Figured what out? It’s been two years. Online, things may never really go away but in the real world, the dead stay that way.
I shake the ridiculous thought away. No, this is a different player, someone who’s managed to stay under the radar. Which I do not like. No one should be this invisible except me.
What’s the pattern? Last week, three islands in the Azores went dark for five hours before they came back up. The week before? Capri blinked out for four whole hours for no obvious reason.
Vulture clears his throat, demanding to be the center of attention. Again. “It’ll be two years next Saturday, Rachel.”
His words are like ice water dumped down my back, freezing the blood in my veins. I haven’t heard that name spoken out loud in…well, not since we agreed she was dead, too.
“We, uh, we need to look at the Isle of Wight,” I mumble, not looking at the video chat. “Power went down for six hours. I’m telling you, the way islands keep going dark, it’s not an accident. I think there’s a—”
“Stop. Stop!” Khalil interrupts. And I do, although I don’t want to listen to him and I definitely don’t want to think about the anniversary or the deaths or the loss. We lost so much. “We need to talk about this.”
“Sure don’t,” I say, forcing a smile. Feels like a snarl. “It’s fine!”
“Rachel—”
The image of a little girl—me as a five-year-old—bricked to a dull gray and laid out in a wagon that I hauled around the Internet for a stinking month floats before my mind’s eye. The fragment of myself that I’d lost without even knowing it, because that’s what happens to a mind when it gets uploaded to the Internet—it fragments. I split into two, Access and Rachel, and hadn’t even realized I’d lost my younger self. And when I’d found her—I mean, myself—the younger me bricked herself with my own virus.
Just like she did in a nightmare a few nights ago where Gracie, the waitress who was basically my only IRL friend from before and who also died in that test environment, was holding Rachel’s gray form and screaming, “Look what you did!” over and over as she degraded before my eyes until they’d both decomposed into puddles of code.
It’s too much. We’re not doing this. Not now. Not ever.
I meet Khalil’s gaze—full of worry and, yes, that’s pity. Screw his pity. I don’t look away. “Rachel is dead! They’re all dead, because of me!”