<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [Singularity](./bitburner.singularity.md) &gt; [createProgram](./bitburner.singularity.createprogram.md)

## Singularity.createProgram() method

Create a program.

**Signature:**

```typescript
createProgram(programName: ProgramName, focus?: boolean): boolean;
```

## Parameters

<table><thead><tr><th>

Parameter


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

programName


</td><td>

[ProgramName](./bitburner.programname.md)


</td><td>

Name of program to create.


</td></tr>
<tr><td>

focus


</td><td>

boolean


</td><td>

_(Optional)_ Acquire player focus on this program creation. Optional. Defaults to true.


</td></tr>
</tbody></table>

**Returns:**

boolean

True if you successfully start working on the specified program, and false otherwise.

## Remarks

RAM cost: 5 GB \* 16/4/1

This function will automatically set you to start working on creating the specified program. If you are already in the middle of some “working” action (such as working for a company, training at a gym, or taking a course), then running this function will automatically cancel that action and give you your earnings.

This function returns true if you successfully start working on the specified program, and false otherwise.

Note that creating a program using this function has the same hacking level requirements as it normally would. You can call [getHackingLevelRequirementOfProgram](./bitburner.singularity.gethackinglevelrequirementofprogram.md) to get that value.

## Example


```js
const programName = "BruteSSH.exe";
const success = ns.singularity.createProgram(programName);
if (!success) ns.tprint(`ERROR: Failed to start working on ${programName}`);
```

