Work Text:
The first time Cassian Andor met K-2SO, the droid tried to kill him. The second time they met, the droid tried to kill him.
It was a lot less effective, since Cassian had attached a restraining bolt with an exhaustive set of failsafes built in. He’d also snipped the wires in K-2SO’s limb sockets, just to be sure.
For Cassian’s part, his arm was still in a sling. The bruise across his cheek was turning a lurid blue, with purple stripes in the shape of five long fingers.
Cassian reached with his free hand to the back of the droid’s neck. He felt around for the hatch beside the dataport. He held his breath, and flicked the switch. There was nobody to see how he scurried backwards, just in case the restraining bolt failed.
The photoreceptors flickered on, a bright circular white. They tilted towards Cassian, and the droid’s servos roared to life.
‘Designation Kay-Tuesso?’ Cassian angled his head so the droid was looking at him. ‘Status report.’
The droid didn’t respond, its neck arching to take in the room. That luminous gaze kept coming back to the mark on Cassian’s cheek. Cassian’s pulse kicked. Had he broken the language processors? Could it think at all?
He tore his gaze away from the droid to check the readout on his monitor. The screen was a flurry of code, but he caught query and suspect.
‘Arakyd override code T61-73X-yellow,’ Cassian kept his voice firm. ‘Status report.’
The droid cocked its head skeptically. ‘Confirm: identify new master.’
Cassian huffed out a laugh. That sardonic nasal accent was like a parody of Imperials.
‘I’m your new master,’ Cassian said. His stomach turned at the title. ‘Are you K-2SO?’
‘That is correct,’ K-2SO said, like he was trying to find a slower way to respond.
Cassian tried not to smile, sitting up straighter. ‘Can I have a status report?’
‘My limb functions are disconnected,’ K-2SO stared at his lap. ‘There is a restraining bolt in me. Did you put it there?’
‘It’s temporary,’ Cassian said, which was true one way or another. ‘What about your code?’
This took longer. Cassian watched the sweep of diagnostics on the readout.
‘Data breach,’ K-2SO said.
‘Did it damage your programming?’
This time, Cassian saw the negative pop up before K-2SO deigned to speak.
‘The information is compromised,’ K-2SO admitted. ‘My systems are not.’
‘You’re a strategy droid, right?’ Cassian didn’t wait for K-2SO to answer. ‘What are the odds of successfully reprogramming you as a Rebel agent?’
Cassian listened to hum of K-2SO’s innards.
‘Thirty percent chance of success,’ K-2SO said. ‘Not accounting for my inability to function with a restraining bolt in.’
‘What if you help me?’
‘I don’t want to help you.’
‘You will,’ Cassian shrugged. ‘Once we get your protocols rewritten, you’ll be able to decide what you want.’
‘We?’
‘You know your code better than I do,’ Cassian explained. ‘I just have to stop you from wanting me dead.’
‘This is unlikely.’
‘But not impossible?’
‘I’m not going to like you.’
‘I didn’t ask you to like me.’
K-2SO made a noise that was not unlike a laugh. Then his photoreceptors flickered in alarm.
‘What have you done to me?’
*
This was a pet project, Draven made clear. Cassian’s free time had never been abundant or even particularly desired, but he carved out late nights and early mornings pecking at the keyboard. His quarters were cluttered with backup drives and pirated manuals.
Back on Ferrix he’d been a hardware man. He knew enough binary to slice a ship, but droid code was a language of its own. The Rebellion’s engineers had scraped the Imperial data from K-2SO’s systems the moment he’d arrived. Their hands were too full with broken astromechs to bother with a reprogram.
Draven gave Cassian a deadline: one month to tinker, then they’d scrap it for parts. Cassian didn’t pass this along to K-2SO.
‘I don’t understand,’ K-2SO said. ‘Why not just flip the command system?’
‘That would be easier,’ Cassian admitted. His caf was cold beside the keyboard. ‘But that’s not what I’m trying to do.’
‘What are you attempting, then?’ K-2SO drawled. ‘If I can give you the overwhelming odds of your failure, maybe you’ll give up.’
‘I want to jailbreak you,’ Cassian said.
‘I wasn’t in jail,’ K-2SO said. ‘I had a job.’
Cassian grunted: he couldn’t unpack that while he tracked down the source of the problem. At least his arm wasn’t in a sling anymore.
‘Why do a jailbreak?’ Kaytoo asked. ‘The Rebellion owns droids.’
‘I don’t,’ Cassian said. ‘I’d rather have a partner.’
‘What for? The risk of critical failure is unacceptably high.’
‘I wanted to see if I could.’
Kaytoo sighed. With his limbs disconnected, Kaytoo sat in a sullen slouch that fitted his demeanour. Cassian hid a smile as he imagined Imperial officers dealing with this kind of attitude. He sipped caf and winced at how stale it was, and brought his attention back to the readout.
‘I’ve found it,’ he said. ‘It looks like your personality is written onto your predictive matrix. We can’t rewrite it without losing your strategic analysis.’
‘Wish I could rewrite your personality,’ Kaytoo said, proving Cassian’s point.
*
It was finicky work. More than once he’d had to boot backup drives after a system failure. As a kid, he’d tried to upgrade Bee’s memory and nearly melted his friend’s processors. The KX system was parsecs more complicated, and unlike groundmechs, they had comprehensive failsafes written against slicers. The running commentary didn’t help.
‘You’re not doing anything useful,’ Kaytoo said. ‘I considered not informing you.’
‘It’s an exercise,’ Cassian lied. ‘Your rewards matrix only triggers when I’m suffering.’
‘Good.’
‘I thought it was an Imperial holdover,’ Cassian let the diagnostics open, and sat between Kay’s sprawled legs. ‘We’ll see if you’re just like that.’
‘I hope to be just like that,’ Kaytoo said.
Cassian smirked, and unlatched Kaytoo’s chassis. It took a moment for him to find the right node, tucked behind the hydraulic core. It hung in a nest of wires. Cassian fumbled blindly for it until he found the magnet that had tugged it out of place. He watched the diagnostic as he pulled the node free, hoping this didn’t give Kaytoo the wherewithal to headbutt him.
‘That should stop it from stalling,’ he said. ‘Does it feel better?’
‘How would it feel if someone breached your portal and rearranged your insides?’
Cassian snorted. ‘They’d have to buy me dinner first.’
‘They should,’ Kaytoo said. ‘You’re underweight for a human.’
Cassian extricated his hand from the chassis.
‘You’re filthy,’ he muttered as he noticed it.
‘I hope I smell terrible.’
Cassian rifled through his kit until he found the oilcloth. ‘There’s carbon scoring all over your hull.’
‘You did shoot me.’
Cassian’s nostrils flared. ‘You trust me to fix it?’
‘I have absolutely no choice in the matter.’
Cassian rocked back on his heels. ‘Say you don’t want me to, and I won’t.’
Kaytoo arched his neck thoughtfully.
‘There’s a microfibre cloth in the kit,’ he said. ‘You could get the dust in my thoracic module.’
Cassian nodded. He wrapped the cloth around his finger and reached in, steering it between the hard edges.
‘Like that?’
Kaytoo’s photoreceptors refocused. Cassian realised he’d stuck his tongue out to concentrate, and put it away. He threaded the cloth around a vertebra and tugged it through, clearing out the particles. The servos started to growl.
‘Kay?’ Cassian murmured. ‘Did I break you?’
Cassian started imagining a spark jumping, disabling the restraining bolt. He’d woken from dreams before, damp with sweat from the vision of a black skeleton crawling across his quarters to strangle him. His heart raced. He’d stared at the two white circles in the corner until he was sure they did nothing more than stare back. Kay wasn’t the breakable one in this arrangement.
He glanced down at the restraining bolt. One touch, and this would all be done with. Either way, he had two more weeks.
‘You left the diagnostics running,’ Kay said.
Cassian blinked, sitting back. He worked the cloth free and glanced at the readout. K-2SO’s rewards matrix lit up like a meteor shower.
‘You’re just like that,’ Cassian decided.
*
When nine days remained, Cassian was sent on a mission. It was an extraction job, retrieving a deep agent who’d gotten tangled up in Karkarodon business. Sixty hours underwater left him very little time to think in binary.
He stumbled into his quarters, hair crunchy with salt. He never wanted to eat—or possibly even see—a fish again. He’d had every intention of getting straight into the shower, but he found himself back at the monitor.
‘Kay?’ he skimmed through the logs. ‘How’s life without the bolt?’
Kay hummed, his eyes lighting up. They’d hit a wall with the reprogramming, since the bolt’s restrictions were designed to prevent autonomous protocols. Before Cassian deployed, he’d taken out the bolt to let Kay continue unraveling the code himself. If Draven knew he’d have Cassian court-martialled, or possibly kneecapped. Kay clearly hadn’t figured out how to do anything malicious with only the use of his spine, so nobody had to know.
‘I’ve encountered a problem.’
The monitor displayed the analytical systems. Cassian frowned: a partition split Kay’s strategic priorities into discrete sections.
‘Is that a new bug?’ Cassian pushed his hair out of his eyes.
‘It’s not a bug,’ Kay said. ‘It’s Imperial protocol.’
‘But it’s slowing your analysis by forty percent,’ Cassian tapped the number.
‘I’m very well aware,’ Kay said. ‘Are you going to delete it, or not?’
Cassian peered at the folders. They’d already voided most of the Imperial priorities—things like destroy Rebellion and preference officers by rank. There were a few categories added in at Kay’s request, like droid wellbeing. The bundle on the far side of the boundary was labelled IMPERIAL PRINCIPLES. The folders within were encrypted.
‘Maybe we should wipe them,’ Cassian said.
‘Don’t you want to know what they are?’
Cassian chewed his lip. He really should have showered before this. ‘What’s the worst case scenario?’
The screen traced Kay’s predictive methodology. It was pretty to watch, different branches of outcomes growing like a tree of code, tangling together until possibilities brightened into the likeliest prediction and the best strategy.
‘The risks are acceptable,’ Kay decided. ‘I don’t have to factor the priorities; I only have access to them.’
Cassian selected the partition, and hit delete. The screen flashed up a warning, asking for a factory code. Cassian rifled through the piles of notes, knocking a few books off the desk as he found it.
‘Ready?’
‘Do it.’
Cassian entered the password. Kay’s eyes flickered. The cool white turned a sickly grey, stuttering as the servos started to grind. Cassian hit the cancel button a few times. The readout froze.
‘Kay?’ he stumbled to the floor in front of his droid. ‘Kay?!’
When was the last time he’d made a hard backup? Before the mission? A week ago?
He reached for Kay and flinched. The heat coming off Kay’s chassis distorted the air around him.
‘Shit, shit…’ Cassian licked his scorched fingers and reached behind Kay’s neck. Kay’s eyes flared. ‘I’m sorry…’
He flipped the switch. Kay took a moment to power down. The rhythmic growl of his fans began to slow. Cassian was shaking. He didn’t want to take his hand away from the switch. But Kay was still too hot to reactivate, and there was no way of knowing if he’d crash again.
He had to do something while he waited, and he could smell his own sweat. He stripped off his clothes and turned on the shower, washing with the fresher door open. No matter how many times he glanced at the frozen monitor, it didn’t offer any solutions. By the time he’d washed the last of the ocean from his hair, his hands had stopped trembling.
He hopped into a pair of pants, and pressed a palm to Kay’s chassis. It was cooler than his skin, at least. Cassian bit at a hangnail, and picked up the restraining bolt. A few tweaks of its settings would render Kay’s analysis programming read-only. It might work. It would have to work.
‘Kay?’
Kay’s chin jerked. His eyes dialled rapidly into full luminescence, making Cassian squint and back away.
‘Cassian?’ his vocabulator croaked.
‘What happened to you?’
Kay thought for a moment. ‘Kernel panic. The encrypted principles cannot be integrated.’
‘What?’ Cassian asked. ‘What are they?’
Kay twitched. ‘They are the Empire’s core philosophies.’
Cassian wrinkled his nose. ‘They have those?’
‘Security. Peace. Justice. Freedom.’
Cassian couldn’t help it: he laughed. ‘I can see how that’s a problem, yeah.’
‘They need to be rewritten,’ Kay raised his chin. ‘Define freedom.’
Cassian frowned. ‘You need me to define freedom?’
‘I can reintegrate them if we change the parameters,’ Kay said. ‘What does freedom mean to the Rebellion?’
‘Fucking hell, Kay…’ Cassian rubbed his knuckles over his beard. ‘If I could tell you that, I’d be a general, not a spy.’
Kay made a noise Cassian had come to associate with annoyance. It was a noise he heard often.
‘If you can’t define freedom, what are you trying to do to me?’
Cassian pinched his nose, and waited until he could answer. ‘I don’t know. Not have you melted down for slag in a week.’
‘Fine,’ Kay snapped. ‘What about the others? Peace? Justice?’
Cassian sighed. ‘I knew someone who could have told you in a heartbeat.’
‘Where are they?’
Cassian looked at his hands to check they’d really stopped shaking. ‘I killed him.’
‘We have to fix the program,’ Kay said. ‘I can’t function like this.’
‘Are you going to melt down again?’
‘No,’ Kay admitted. ‘I’m just… I can’t analyse the conversation. I don’t know what’s going to happen.’
Cassian’s brow wrinkled as he figured it out. ‘You’re anxious?’
‘You admitted I’ll be scrapped if this doesn’t succeed.’
‘You didn’t seem surprised.’
Kay mimicked a snort. ‘It was an 87% chance. I’d like to know whether that’s changed.’
‘Do I put the partition back up?’
‘You entered factory code, correct?’ Kay guessed. ‘It’s gone.’
Cassian hissed, refreshing the monitor. He could see the jagged lines of binary where Kay couldn’t reconcile Imperial philosophies with Imperial practice. ‘Shit.’
‘You could rewrite them as Rebel directives,’ Kay suggested.
’What does that do?’ Cassian asked. ‘Turn you into a Rebel machine, instead of an Imperial one?’
‘I am a machine.’
‘I can’t just make you care.’
‘Possibly not,’ Kay conceded. ‘You’re not a very talented slicer.’
‘I’m not a slicer at all,’ Cassian sighed, scraping his fingers through his hair. ‘I’m a spy.’
‘Why are you a spy?’ Kay asked.
‘I’m good at people,’ Cassian said. ‘Organics, I mean.’
‘So how would you reprogram an organic?’
‘I don’t know. I’d probably tell you a sad story about a lost sibling,’ Cassian sighed.
‘That’s statistically insignificant,’ Kay said. ‘Besides, you could simply program belief into my code.’
‘I don’t want that,’ Cassian insisted. ‘I’d rather you believe this for yourself.’
‘That tracks. Behavioural patterns suggest you frequently ask more from people than they can give you.’
Even without use of his hands, he had a talent for slapping Cassian in the face.
‘You’ve been eavesdropping.’
‘I’ve been gathering data for my new strategic models.’
Cassian narrowed his eyes, and Kay narrowed his eyes back.
‘I really do think you’ll make a good spy.’
Kay tilted his head. ‘Is that why you chose me?’
‘What?’ Cassian’s throat was dry. He dug around his kit for a canteen.
‘You didn’t have to keep me after you found me on the ship,’ Kay said. ‘There was a 70% chance of fatality if you didn’t jettison the security droid that attacked you.’
‘Thirty percent’s not bad,’ Cassian said, after he’d swallowed.
‘It is terrible,’ Kay said. ‘Which I suppose you would have known if you had a strategy droid.’
Cassian tipped the canteen like a salute. ‘So I needed you.’
‘The odds of successfully reprogramming me before scrapping are unacceptably low,’ Kay said.
‘You think so? We’re almost there.’
‘You didn’t know I would help you,’ Kay pointed out. ‘By any reasonable measure, this was a flagrant waste of resources.’
‘It’s only costing my time.’
‘How long since you last slept?’
‘Ugh,’ Cassian stifled an unwelcome yawn. ‘Have it your way. Lights out.’
The room was still warm from Kay’s kernel panic. Cassian tilted the vents before shutting off the light, and stumbled into bed. It took some kicking to get the covers right. He stretched, trying to reacquaint himself with Dantooine’s gravity.
He’d forgotten to close his eyes. Two circles glowed faintly, outlining Kay’s shoulders. He was sitting upright. Cassian listened to the faint hum of his servos, trying to time his breathing with them.
They weren’t asleep.
‘It has to be possible,’ Cassian murmured.
‘That simply isn’t true,’ Kay answered. ‘The Rebellion is an exercise in futility.’
‘Then I had to try.’
*
It was almost ready. Cassian had three backups, and he’d run the beta programs all day. The systems were a mess, an unrecognisable patchwork of processes to avoid Imperial protocols, but they worked. It was going to work.
Cassian gnawed on his thumbnail as lines of code cascaded before him.
‘Stop it.’
‘I have to fix the factory reset,’ Cassian explained. ‘You’ll revert to Imperial command if somebody has the password.’
‘Your nails,’ Kay clarified. ‘Stop biting them.’
‘Hmm?’ Cassian blinked, registering the bloodied cuticle in front of him. ‘Why?’
‘You type slower when your fingers hurt.’
Cassian dug his fingers into his thigh until the tension dispelled. ‘There’s not much left to type.’
The last set of functions was already on display, while the window above scrolled through a second systems check.
‘You realise this will disable your own command protocols, don’t you?’ Kay said. ‘This overrides anyone’s ability to command me.’
‘That’s the idea.’
‘You don’t know that I won’t kill you.’
‘Yeah,’ Cassian grimaced. ‘I just have to hope I got this right.’
Cassian pressed a final key, and the terminal closed.
‘Do you want to know the odds of success?’ Kay offered.
‘Why don’t you surprise me?’
‘They’re not good.’
Cassian hissed a laugh, and crouched before Kay. His toolkit was already open, the oilcloth drying from the night before. He’d trimmed and straightened the severed wires already. Four strips of tape hung from the lid of the kit.
He started with the right shoulder. Bracing his knees on either side of Kay’s thigh, he peered into the socket to find the loose connection. It was easier to thread the two ends together by hand—and he’d never admit it to Kay, but his fingertips did throb from the habitual biting. He took the pliers and twisted the wires into a neat spiral.
‘Test?’ he breathed.
There was a whirring. Kay’s arm shrugged, and Cassian startled. He pretended not to have.
‘Tape it,’ Kay said. Cassian obeyed, carefully trimming the excess as it folded over. He rocked back on his heels, giving Kay space to raise his arm.
Kay’s fingers flexed and extended, the wrist rotating. Cassian stared. He hadn’t really grasped the breadth of them before. Kay reached toward him, and Cassian’s breath stopped in his ribcage.
Kay picked up the pliers. Cassian hoped he’d at least be dead before he realised. Then again, knowing Kay, he’d prefer to make it slow and excruciating. Kay reached into his left socket and started mending the connection. Cassian tried to watch, and nearly caught a metal elbow to the nose.
‘You can tape them when I’m done,’ Kay said, like he was doing Cassian a favour.
‘Sure,’ Cassian readied the strip. Kay adjusted the wires as delicately as an Anzellan with hands one quarter of the size.
When both legs were connected, Kay stretched. Cassian shifted to one side, giving him space.
One task remained. The scomp link that connected to Cassian’s computer was still plugged into Kay’s skull. Cassian briefly imagined the entire display being a simulation to trick him into thinking he’d reprogrammed a droid himself.
Kay tilted his head forward, letting Cassian do the job. Cassian shuffled closer. He felt for the catch at the base of the dataspike, and released it. The tumblers swivelled, teeth unlatching from inside Kay’s port. Cassian’s lashes fluttered as he eased the shaft out, imagining a stray spark that could fry them both. He watched Kay’s eyes as the spike came free, checking they didn’t dim. Kay nudged Cassian in his lap, and Cassian pressed Kay’s hatch shut. Kay craned his neck like he was working out a crick, while Cassian settled back to loop up the cable.
Kay got to his feet. Cassian’s quarters didn’t have a high ceiling: Kay still had to slouch.
‘Before you go—’
‘Where am I going?’
Cassian frowned. He hadn’t really considered the idea that Kay wouldn’t leave.
‘Just—just wait a moment.’
Kay stared expectantly. Cassian took a deep breath, and turned to his desk. It looked like a bomb site. He’d spent every free hour learning to code, and his space had been cluttered to begin with. A roll of code cylinders clattered to the floor as he checked the bottom shelf.
No—it wouldn’t be on his desk. He hadn’t actually picked it up in years. It was stowed in the nook beside his bed, under a crumpled shirt he seldom wore in the Dantooine heat.
Kay’s processors hummed curiously.
Finally, Cassian found the book. He held onto it for a moment, nursing a feeling that wasn’t unlike embarrassment. His bitten-down nails unraveled the binding. It fell open at a dog-eared page, where cramped and fading aurebesh explained the role of mercenaries.
He thumbed back to the first page, left mostly blank for a title never settled on. Beneath, in stiff High Galactic, was written: K. Nemik. Cassian never learned his first name.
He swallowed, blinking tears away. ‘I want you to have this.’
‘Why?’ Kay’s eyes tilted to focus on the book, then Cassian’s face.
‘You asked me how one reprograms an organic,’ Cassian handed it over. It looked small in Kay’s hands. ‘This is what rewrote my code.’
