Appearance
Best practices
Always Check Operation Results
python
write_result = session.file.write("/tmp/file.txt", "content")
if write_result.success:
print("File written successfully")
else:
print(f"Write failed: {write_result.error_message}")typescript
const writeResult = await session.file.write("/tmp/file.txt", "content");
if (writeResult.success) {
console.log("File written successfully");
} else {
console.error("Write failed:", writeResult.errorMessage);
}Use Absolute Paths
python
session.file.write("/tmp/myfile.txt", "content") # ✅ absolute path
session.file.write("myfile.txt", "content") # ❌ relative pathtypescript
await session.file.write("/tmp/myfile.txt", "content"); // ✅ absolute path
await session.file.write("myfile.txt", "content"); // ❌ relative pathLarge Files Are Handled Automatically
python
large_content = "x" * (2 * 1024 * 1024) # 2MB content
result = session.file.write("/tmp/large_file.txt", large_content)
if result.success:
print("Large file written successfully with automatic chunking")typescript
const largeContent = "x".repeat(2 * 1024 * 1024); // 2MB content
const result = await session.file.write("/tmp/large_file.txt", largeContent);
if (result.success) {
console.log("Large file written successfully with automatic chunking");
}Clean Up Temporary Files
python
def with_temp_file(session, content, operation):
temp_file = f"/tmp/temp_{hash(content)}.txt"
try:
session.file.write(temp_file, content)
return operation(session, temp_file)
finally:
session.file.move(temp_file, "/tmp/trash/" + temp_file.split("/")[-1])
def process_file(session, filepath):
read_result = session.file.read(filepath)
return read_result.content.upper() if read_result.success else None
result = with_temp_file(session, "hello world", process_file)
print(result) # "HELLO WORLD"typescript
async function withTempFile<T>(
session: Session, content: string, operation: (s: Session, path: string) => Promise<T>,
): Promise<T> {
const tempFile = `/tmp/temp_${Date.now()}.txt`;
try {
await session.file.write(tempFile, content);
return await operation(session, tempFile);
} finally {
await session.file.move(tempFile, `/tmp/trash/${tempFile.split("/").pop()}`);
}
}
const result = await withTempFile(session, "hello world", async (s, path) => {
const readResult = await s.file.read(path);
return readResult.success ? readResult.content?.toUpperCase() : null;
});
console.log(result); // "HELLO WORLD"